Browse Source

Add block events callbacks

fix-improve-data-coll-up
Artur Arseniev 10 months ago
parent
commit
a19e7c10a3
  1. 4
      packages/core/src/block_manager/index.ts
  2. 24
      packages/core/src/block_manager/types.ts

4
packages/core/src/block_manager/index.ts

@ -36,7 +36,7 @@ import Block, { BlockProperties } from './model/Block';
import Blocks from './model/Blocks';
import Categories from '../abstract/ModuleCategories';
import Category, { getItemsByCategory } from '../abstract/ModuleCategory';
import { BlocksByCategory, BlocksEvents } from './types';
import { BlocksByCategory, BlocksCustomData, BlocksEvents } from './types';
import BlocksView from './view/BlocksView';
export type BlockEvent = `${BlocksEvents}`;
@ -90,7 +90,7 @@ export default class BlockManager extends ItemManagerModule<BlockManagerConfig,
this.em.trigger(this.events.custom, this.__customData());
}
__customData() {
__customData(): BlocksCustomData {
const bhv = this.__getBehaviour();
return {
bm: this as BlockManager,

24
packages/core/src/block_manager/types.ts

@ -1,9 +1,22 @@
import { ItemsByCategory } from '../abstract/ModuleCategory';
import { AddOptions, RemoveOptions } from '../common';
import BlockManager from '.';
import Category, { CategoryProperties, ItemsByCategory } from '../abstract/ModuleCategory';
import { AddOptions, Model, ObjectAny, RemoveOptions } from '../common';
import Component from '../dom_components/model/Component';
import Block from './model/Block';
export interface BlocksByCategory extends ItemsByCategory<Block> {}
export interface BlocksCustomData {
bm: BlockManager;
blocks: Block[];
container: HTMLElement | undefined;
dragStart: (block: Block, ev?: Event) => void;
drag: (ev: Event) => void;
dragStop: (cancel?: boolean) => void;
}
export type BlockEvent = `${BlocksEvents}`;
/**{START_EVENTS}*/
export enum BlocksEvents {
/**
@ -81,7 +94,14 @@ export enum BlocksEvents {
export interface BlocksEventCallback {
[BlocksEvents.add]: [Block, AddOptions];
[BlocksEvents.remove]: [Block, RemoveOptions];
[BlocksEvents.removeBefore]: [Block, () => void, RemoveOptions];
[BlocksEvents.update]: [Block, AddOptions];
[BlocksEvents.dragStart]: [Block, DragEvent?];
[BlocksEvents.drag]: [Block, DragEvent?];
[BlocksEvents.dragEnd]: [Component | undefined, Block];
[BlocksEvents.categoryUpdate]: [{ category: Category; changes: Partial<CategoryProperties>; options: AddOptions }];
[BlocksEvents.custom]: [BlocksCustomData];
[BlocksEvents.all]: [{ event: BlockEvent; model?: Model; options: ObjectAny }];
}
// need this to avoid the TS documentation generator to break

Loading…
Cancel
Save