mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-10 18:03:01 +00:00
feat(skeleton): add onDisableWidget & onEnableWidget APIs
This commit is contained in:
parent
4a502f823c
commit
e79f68611a
@ -387,7 +387,7 @@ export default controlPanelWidthPlugin;
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onShowPanel(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onShowPanel(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
```
|
||||
|
||||
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||
@ -403,11 +403,38 @@ onShowPanel(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onHidePanel(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onHidePanel(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
```
|
||||
|
||||
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||
|
||||
### onDisableWidget
|
||||
|
||||
监听 Widget 实例 Disable 事件
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* 监听 Widget 实例 Disable 事件
|
||||
* @param listener
|
||||
*/
|
||||
onDisableWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
```
|
||||
|
||||
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||
|
||||
### onEnableWidget
|
||||
|
||||
监听 Widget 实例 Enable 事件
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* 监听 Widget 实例 Enable 事件
|
||||
* @param listener
|
||||
*/
|
||||
onEnableWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
```
|
||||
|
||||
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||
|
||||
### onShowWidget
|
||||
|
||||
@ -420,7 +447,7 @@ onHidePanel(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onShowWidget(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onShowWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
```
|
||||
|
||||
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||
@ -436,7 +463,7 @@ onShowWidget(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onHideWidget(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onHideWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
```
|
||||
|
||||
相关类型:[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
|
||||
|
||||
@ -154,16 +154,30 @@ export class Skeleton implements IPublicApiSkeleton {
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onShowPanel(listener: (...args: any[]) => void): IPublicTypeDisposable {
|
||||
onShowPanel(listener: (paneName: string, panel: IPublicModelSkeletonItem) => void): IPublicTypeDisposable {
|
||||
const { editor } = this[skeletonSymbol];
|
||||
editor.eventBus.on(SkeletonEvents.PANEL_SHOW, (name: any, panel: any) => {
|
||||
// 不泄漏 skeleton
|
||||
const { skeleton, ...restPanel } = panel;
|
||||
listener(name, restPanel);
|
||||
listener(name, new SkeletonItem(panel));
|
||||
});
|
||||
return () => editor.eventBus.off(SkeletonEvents.PANEL_SHOW, listener);
|
||||
}
|
||||
|
||||
onDisableWidget(listener: (...args: any[]) => void): IPublicTypeDisposable {
|
||||
const { editor } = this[skeletonSymbol];
|
||||
editor.eventBus.on(SkeletonEvents.WIDGET_DISABLE, (name: any, panel: any) => {
|
||||
listener(name, new SkeletonItem(panel));
|
||||
});
|
||||
return () => editor.eventBus.off(SkeletonEvents.WIDGET_DISABLE, listener);
|
||||
}
|
||||
|
||||
onEnableWidget(listener: (...args: any[]) => void): IPublicTypeDisposable {
|
||||
const { editor } = this[skeletonSymbol];
|
||||
editor.eventBus.on(SkeletonEvents.WIDGET_ENABLE, (name: any, panel: any) => {
|
||||
listener(name, new SkeletonItem(panel));
|
||||
});
|
||||
return () => editor.eventBus.off(SkeletonEvents.WIDGET_ENABLE, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听 panel 隐藏事件
|
||||
* @param listener
|
||||
@ -172,9 +186,7 @@ export class Skeleton implements IPublicApiSkeleton {
|
||||
onHidePanel(listener: (...args: any[]) => void): IPublicTypeDisposable {
|
||||
const { editor } = this[skeletonSymbol];
|
||||
editor.eventBus.on(SkeletonEvents.PANEL_HIDE, (name: any, panel: any) => {
|
||||
// 不泄漏 skeleton
|
||||
const { skeleton, ...restPanel } = panel;
|
||||
listener(name, restPanel);
|
||||
listener(name, new SkeletonItem(panel));
|
||||
});
|
||||
return () => editor.eventBus.off(SkeletonEvents.PANEL_HIDE, listener);
|
||||
}
|
||||
@ -187,9 +199,7 @@ export class Skeleton implements IPublicApiSkeleton {
|
||||
onShowWidget(listener: (...args: any[]) => void): IPublicTypeDisposable {
|
||||
const { editor } = this[skeletonSymbol];
|
||||
editor.eventBus.on(SkeletonEvents.WIDGET_SHOW, (name: any, panel: any) => {
|
||||
// 不泄漏 skeleton
|
||||
const { skeleton, ...rest } = panel;
|
||||
listener(name, rest);
|
||||
listener(name, new SkeletonItem(panel));
|
||||
});
|
||||
return () => editor.eventBus.off(SkeletonEvents.WIDGET_SHOW, listener);
|
||||
}
|
||||
@ -202,9 +212,7 @@ export class Skeleton implements IPublicApiSkeleton {
|
||||
onHideWidget(listener: (...args: any[]) => void): IPublicTypeDisposable {
|
||||
const { editor } = this[skeletonSymbol];
|
||||
editor.eventBus.on(SkeletonEvents.WIDGET_HIDE, (name: any, panel: any) => {
|
||||
// 不泄漏 skeleton
|
||||
const { skeleton, ...rest } = panel;
|
||||
listener(name, rest);
|
||||
listener(name, new SkeletonItem(panel));
|
||||
});
|
||||
return () => editor.eventBus.off(SkeletonEvents.WIDGET_HIDE, listener);
|
||||
}
|
||||
|
||||
@ -95,7 +95,7 @@ export interface IPublicApiSkeleton {
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onShowPanel(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onShowPanel(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
|
||||
/**
|
||||
* 监听 Panel 实例隐藏事件
|
||||
@ -103,7 +103,19 @@ export interface IPublicApiSkeleton {
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onHidePanel(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onHidePanel(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
|
||||
/**
|
||||
* 监听 Widget 实例 Disable 事件
|
||||
* @param listener
|
||||
*/
|
||||
onDisableWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
|
||||
/**
|
||||
* 监听 Widget 实例 Enable 事件
|
||||
* @param listener
|
||||
*/
|
||||
onEnableWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
|
||||
/**
|
||||
* 监听 Widget 显示事件
|
||||
@ -111,7 +123,7 @@ export interface IPublicApiSkeleton {
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onShowWidget(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onShowWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
|
||||
/**
|
||||
* 监听 Widget 隐藏事件
|
||||
@ -119,7 +131,7 @@ export interface IPublicApiSkeleton {
|
||||
* @param listener
|
||||
* @returns
|
||||
*/
|
||||
onHideWidget(listener: (...args: any[]) => void): IPublicTypeDisposable;
|
||||
onHideWidget(listener: (paneName?: string, panel?: IPublicModelSkeletonItem) => void): IPublicTypeDisposable;
|
||||
|
||||
/**
|
||||
* 注册一个面板的配置转换器(transducer)。
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user