Browse Source

Add asset event callbacks

fix-improve-data-coll-up
Artur Arseniev 2 months ago
parent
commit
041b17a867
  1. 36
      packages/core/src/asset_manager/types.ts
  2. 4
      packages/core/src/editor/types.ts

36
packages/core/src/asset_manager/types.ts

@ -1,3 +1,12 @@
import AssetManager from '.';
import {
EventCallbackAdd,
EventCallbackAll,
EventCallbackRemove,
EventCallbackRemoveBefore,
EventCallbackUpdate,
ObjectAny,
} from '../common';
import ComponentView from '../dom_components/view/ComponentView';
import Asset from './model/Asset';
@ -12,6 +21,18 @@ export interface AssetOpenOptions {
target?: any;
}
export interface AssetsCustomData {
am: AssetManager;
open: boolean;
assets: Asset[];
types: string[];
container: HTMLElement | undefined;
close: () => void;
remove: (asset: Asset, opts?: ObjectAny) => Asset;
select: (asset: Asset, complete?: boolean) => void;
options: AssetOpenOptions;
}
export interface AssetProps {
src: string;
[key: string]: unknown;
@ -108,5 +129,20 @@ export enum AssetsEvents {
}
/**{END_EVENTS}*/
export interface AssetsEventCallback {
[AssetsEvents.add]: EventCallbackAdd<Asset>;
[AssetsEvents.remove]: EventCallbackRemove<Asset>;
[AssetsEvents.removeBefore]: EventCallbackRemoveBefore<Asset>;
[AssetsEvents.update]: EventCallbackUpdate<Asset>;
[AssetsEvents.open]: [];
[AssetsEvents.close]: [];
[AssetsEvents.uploadStart]: [];
[AssetsEvents.uploadEnd]: [any];
[AssetsEvents.uploadError]: [Error];
[AssetsEvents.uploadResponse]: [any];
[AssetsEvents.custom]: [AssetsCustomData];
[AssetsEvents.all]: EventCallbackAll<AssetEvent, Asset>;
}
// need this to avoid the TS documentation generator to break
export default AssetsEvents;

4
packages/core/src/editor/types.ts

@ -1,4 +1,4 @@
import { AssetEvent } from '../asset_manager/types';
import { AssetEvent, AssetsEventCallback } from '../asset_manager/types';
import { BlockEvent } from '../block_manager';
import { BlocksEventCallback } from '../block_manager/types';
import { CanvasEvent } from '../canvas';
@ -37,7 +37,7 @@ export type EditorConfigType = EditorConfig & { pStylePrefix?: string };
export type EditorModelParam<T extends keyof EditorModel, N extends number> = Parameters<EditorModel[T]>[N];
export interface EditorEventCallbacks extends BlocksEventCallback, DataSourcesEventCallback {
export interface EditorEventCallbacks extends AssetsEventCallback, BlocksEventCallback, DataSourcesEventCallback {
[key: string]: any[];
}

Loading…
Cancel
Save