@vtj/designer 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/LICENSE +21 -0
  2. package/dist/Editor-ctkAn2cu.js +67 -0
  3. package/dist/Editor-ragV9vX2.cjs +1 -0
  4. package/dist/index.cjs +44 -0
  5. package/dist/index.mjs +7433 -0
  6. package/dist/style.css +1 -0
  7. package/package.json +44 -0
  8. package/types/components/binders/event.d.ts +20 -0
  9. package/types/components/binders/index.d.ts +3 -0
  10. package/types/components/binders/variable.d.ts +19 -0
  11. package/types/components/editor/Editor.d.ts +65 -0
  12. package/types/components/editor/index.d.ts +86 -0
  13. package/types/components/hooks/index.d.ts +15 -0
  14. package/types/components/hooks/useAssets.d.ts +19 -0
  15. package/types/components/hooks/useBinder.d.ts +12 -0
  16. package/types/components/hooks/useBlocks.d.ts +7 -0
  17. package/types/components/hooks/useColSpan.d.ts +6 -0
  18. package/types/components/hooks/useCurrent.d.ts +10 -0
  19. package/types/components/hooks/useDataSources.d.ts +8 -0
  20. package/types/components/hooks/useDeps.d.ts +7 -0
  21. package/types/components/hooks/useDesigner.d.ts +33 -0
  22. package/types/components/hooks/useDirectives.d.ts +17 -0
  23. package/types/components/hooks/useHistory.d.ts +13 -0
  24. package/types/components/hooks/useNodeEvents.d.ts +17 -0
  25. package/types/components/hooks/useNodeProps.d.ts +13 -0
  26. package/types/components/hooks/useProject.d.ts +7 -0
  27. package/types/components/hooks/useRegion.d.ts +6 -0
  28. package/types/components/hooks/useSelected.d.ts +8 -0
  29. package/types/components/index.d.ts +9 -0
  30. package/types/components/regions/actions.d.ts +19 -0
  31. package/types/components/regions/apps.d.ts +35 -0
  32. package/types/components/regions/brand.d.ts +19 -0
  33. package/types/components/regions/empty.d.ts +15 -0
  34. package/types/components/regions/index.d.ts +147 -0
  35. package/types/components/regions/preview.d.ts +20 -0
  36. package/types/components/regions/settings.d.ts +19 -0
  37. package/types/components/regions/status.d.ts +19 -0
  38. package/types/components/regions/toolbar.d.ts +20 -0
  39. package/types/components/regions/workspace.d.ts +21 -0
  40. package/types/components/setter.d.ts +54 -0
  41. package/types/components/setters/boolean.d.ts +3 -0
  42. package/types/components/setters/color.d.ts +3 -0
  43. package/types/components/setters/expression.d.ts +30 -0
  44. package/types/components/setters/function.d.ts +40 -0
  45. package/types/components/setters/icon.d.ts +39 -0
  46. package/types/components/setters/index.d.ts +139 -0
  47. package/types/components/setters/json.d.ts +37 -0
  48. package/types/components/setters/number.d.ts +19 -0
  49. package/types/components/setters/select.d.ts +35 -0
  50. package/types/components/setters/string.d.ts +3 -0
  51. package/types/components/shared/Icon.d.ts +40 -0
  52. package/types/components/shared/binder.d.ts +45 -0
  53. package/types/components/shared/box.d.ts +29 -0
  54. package/types/components/shared/index.d.ts +11 -0
  55. package/types/components/shared/item.d.ts +98 -0
  56. package/types/components/shared/panel.d.ts +54 -0
  57. package/types/components/shared/slots.d.ts +36 -0
  58. package/types/components/shared/tabs.d.ts +49 -0
  59. package/types/components/shared/types.d.ts +1 -0
  60. package/types/components/shared/viewer.d.ts +22 -0
  61. package/types/components/shared/viewport.d.ts +38 -0
  62. package/types/components/skeleton.d.ts +55 -0
  63. package/types/components/widgets/actions/index.d.ts +31 -0
  64. package/types/components/widgets/apis/index.d.ts +3 -0
  65. package/types/components/widgets/blocks/index.d.ts +3 -0
  66. package/types/components/widgets/components/index.d.ts +3 -0
  67. package/types/components/widgets/css/index.d.ts +3 -0
  68. package/types/components/widgets/data-sources/form.d.ts +19 -0
  69. package/types/components/widgets/data-sources/index.d.ts +3 -0
  70. package/types/components/widgets/defined/events.d.ts +19 -0
  71. package/types/components/widgets/defined/index.d.ts +3 -0
  72. package/types/components/widgets/defined/injects.d.ts +19 -0
  73. package/types/components/widgets/defined/props.d.ts +19 -0
  74. package/types/components/widgets/defined/slots.d.ts +19 -0
  75. package/types/components/widgets/deps/index.d.ts +3 -0
  76. package/types/components/widgets/designer/actions.d.ts +36 -0
  77. package/types/components/widgets/designer/index.d.ts +7 -0
  78. package/types/components/widgets/directives/index.d.ts +3 -0
  79. package/types/components/widgets/docs/index.d.ts +29 -0
  80. package/types/components/widgets/empty/index.d.ts +3 -0
  81. package/types/components/widgets/events/index.d.ts +8 -0
  82. package/types/components/widgets/history/index.d.ts +3 -0
  83. package/types/components/widgets/index.d.ts +109 -0
  84. package/types/components/widgets/logo/index.d.ts +34 -0
  85. package/types/components/widgets/node-path/index.d.ts +3 -0
  86. package/types/components/widgets/outline/index.d.ts +19 -0
  87. package/types/components/widgets/pages/form.d.ts +17 -0
  88. package/types/components/widgets/pages/index.d.ts +3 -0
  89. package/types/components/widgets/previewer/index.d.ts +18 -0
  90. package/types/components/widgets/properties/index.d.ts +3 -0
  91. package/types/components/widgets/properties/setters.d.ts +28 -0
  92. package/types/components/widgets/raw/index.d.ts +3 -0
  93. package/types/components/widgets/schema/index.d.ts +3 -0
  94. package/types/components/widgets/scripts/computed.d.ts +18 -0
  95. package/types/components/widgets/scripts/group.d.ts +52 -0
  96. package/types/components/widgets/scripts/index.d.ts +3 -0
  97. package/types/components/widgets/scripts/lifeCycles.d.ts +18 -0
  98. package/types/components/widgets/scripts/methods.d.ts +18 -0
  99. package/types/components/widgets/scripts/state.d.ts +18 -0
  100. package/types/components/widgets/scripts/watch.d.ts +18 -0
  101. package/types/components/widgets/style/index.d.ts +3 -0
  102. package/types/components/widgets/switcher/index.d.ts +7 -0
  103. package/types/components/widgets/toolbar/index.d.ts +17 -0
  104. package/types/constants.d.ts +28 -0
  105. package/types/framework/assets.d.ts +22 -0
  106. package/types/framework/designer.d.ts +57 -0
  107. package/types/framework/engine.d.ts +51 -0
  108. package/types/framework/index.d.ts +6 -0
  109. package/types/framework/renderer.d.ts +21 -0
  110. package/types/framework/simulator.d.ts +39 -0
  111. package/types/framework/types.d.ts +119 -0
  112. package/types/index.d.ts +7 -0
  113. package/types/managers/built-in/deps.d.ts +2 -0
  114. package/types/managers/built-in/index.d.ts +4 -0
  115. package/types/managers/built-in/materials.d.ts +2 -0
  116. package/types/managers/built-in/setters.d.ts +3 -0
  117. package/types/managers/built-in/widgets.d.ts +2 -0
  118. package/types/managers/deps.d.ts +33 -0
  119. package/types/managers/index.d.ts +4 -0
  120. package/types/managers/setter.d.ts +29 -0
  121. package/types/managers/widget.d.ts +36 -0
  122. package/types/utils.d.ts +6 -0
  123. package/types/version.d.ts +8 -0
  124. package/types/wrappers/index.d.ts +4 -0
  125. package/types/wrappers/region.d.ts +15 -0
  126. package/types/wrappers/setter.d.ts +90 -0
  127. package/types/wrappers/skeleton.d.ts +78 -0
  128. package/types/wrappers/widget.d.ts +24 -0
@@ -0,0 +1,57 @@
1
+ import { type Ref, type ShallowRef } from 'vue';
2
+ import { type Context } from '@vtj/renderer';
3
+ import { type Dependencie, type DropPosition, type MaterialDescription, type MaterialSlot, NodeModel, BlockModel } from '@vtj/core';
4
+ import { type Engine } from './engine';
5
+ export declare function createSlotsPicker(slots: MaterialSlot[]): Promise<MaterialSlot>;
6
+ export interface VtjElement extends HTMLElement {
7
+ __vtj__?: string;
8
+ __context__?: Context;
9
+ }
10
+ export interface DesignHelper {
11
+ model: NodeModel | BlockModel;
12
+ el: VtjElement;
13
+ rect: DOMRect;
14
+ type?: DropPosition;
15
+ path?: Array<NodeModel | BlockModel>;
16
+ }
17
+ export declare class Designer {
18
+ engine: Engine;
19
+ contentWindow: Window;
20
+ dependencies: Ref<Dependencie[]>;
21
+ private proxied;
22
+ document: Document | null;
23
+ hover: ShallowRef<DesignHelper | null>;
24
+ dropping: ShallowRef<DesignHelper | null>;
25
+ selected: ShallowRef<DesignHelper | null>;
26
+ dragging: MaterialDescription | null;
27
+ constructor(engine: Engine, contentWindow: Window, dependencies: Ref<Dependencie[]>);
28
+ private bind;
29
+ private bindEvents;
30
+ private unbindEvents;
31
+ private onMouseOver;
32
+ private onViewChange;
33
+ private onLeave;
34
+ private onActiveChange;
35
+ getDropSlot(to: NodeModel | null): Promise<MaterialSlot | null | undefined>;
36
+ private onDrop;
37
+ private onSelected;
38
+ private onDragOver;
39
+ private isVtjElement;
40
+ private findVtjElement;
41
+ private getNodeByElement;
42
+ private getDropType;
43
+ private getNodePath;
44
+ private setDslFrom;
45
+ private createNodeDsl;
46
+ private getElmenetByModel;
47
+ private findPathByNode;
48
+ getHelper(e: DragEvent | MouseEvent): DesignHelper | null;
49
+ cleanHelper(): void;
50
+ updateRect(): Promise<void>;
51
+ setDragging(desc: MaterialDescription | null): void;
52
+ setHover(model: NodeModel | BlockModel | null): Promise<void>;
53
+ setSelected(model: NodeModel | BlockModel | null): Promise<void>;
54
+ setDropping(model: NodeModel | BlockModel | null, type?: DropPosition): Promise<void>;
55
+ allowDrop(target: NodeModel | BlockModel, type?: DropPosition): Promise<boolean>;
56
+ dispose(): void;
57
+ }
@@ -0,0 +1,51 @@
1
+ import { type ShallowReactive, type InjectionKey, type MaybeRef, type App, type Ref } from 'vue';
2
+ import { Base, ProjectModel, BlockModel, HistoryModel, type Service, type Emitter, type ProjectSchema } from '@vtj/core';
3
+ import { type Context, Provider, type ProvideAdapter } from '@vtj/renderer';
4
+ import { type SkeletonWrapperInstance } from '../wrappers';
5
+ import { Simulator } from './simulator';
6
+ import { Assets } from './assets';
7
+ export declare const engineKey: InjectionKey<ShallowReactive<Engine>>;
8
+ export interface EngineOptions {
9
+ container: MaybeRef<HTMLElement | undefined>;
10
+ service: Service;
11
+ project?: Partial<ProjectSchema>;
12
+ dependencies?: Record<string, () => Promise<any>>;
13
+ materials?: Record<string, () => Promise<any>>;
14
+ globals?: Record<string, any>;
15
+ adapter?: ProvideAdapter;
16
+ }
17
+ export declare class Engine extends Base {
18
+ app?: App;
19
+ skeleton?: SkeletonWrapperInstance | null;
20
+ container: MaybeRef<HTMLElement | undefined>;
21
+ service: Service;
22
+ assets: Assets;
23
+ simulator: Simulator;
24
+ emitter: Emitter;
25
+ project: Ref<ProjectModel | null>;
26
+ current: Ref<BlockModel | null>;
27
+ context: Ref<Context | null>;
28
+ isEmptyCurrent: Ref<boolean>;
29
+ history: Ref<HistoryModel | null>;
30
+ provider: Provider;
31
+ constructor(options: EngineOptions);
32
+ private init;
33
+ private render;
34
+ private bindEvents;
35
+ private activeFile;
36
+ private changeFile;
37
+ private changeCurrentFile;
38
+ private updateCurrent;
39
+ private saveProject;
40
+ private saveBlockFile;
41
+ private saveMaterials;
42
+ private saveCurrentFile;
43
+ private initHistory;
44
+ private saveHistory;
45
+ private loadHistory;
46
+ private publish;
47
+ private publishCurrent;
48
+ dispose(): void;
49
+ openFile(fileId?: string): Promise<void>;
50
+ }
51
+ export declare function useEngine(): ShallowReactive<Engine>;
@@ -0,0 +1,6 @@
1
+ export * from './types';
2
+ export * from './engine';
3
+ export * from './assets';
4
+ export * from './simulator';
5
+ export * from './renderer';
6
+ export * from './designer';
@@ -0,0 +1,21 @@
1
+ import { type BlockSchema, type NodeSchema, type BlockModel, type Service } from '@vtj/core';
2
+ import { type SimulatorEnv } from './simulator';
3
+ import { type Context } from '@vtj/renderer';
4
+ import { type Designer } from './designer';
5
+ export declare class Renderer {
6
+ env: SimulatorEnv;
7
+ service: Service;
8
+ designer: Designer | null;
9
+ private app;
10
+ private dsl;
11
+ private nodeChange;
12
+ private blockChange;
13
+ context: Context | null;
14
+ constructor(env: SimulatorEnv, service: Service, designer?: Designer | null);
15
+ private install;
16
+ render(block: BlockModel): void;
17
+ dispose(): void;
18
+ updateChild(node: NodeSchema, parent: BlockSchema | NodeSchema): void;
19
+ private __onNodeChange;
20
+ private __onBlockChange;
21
+ }
@@ -0,0 +1,39 @@
1
+ import { type Ref, type ShallowRef } from 'vue';
2
+ import { type Dependencie, type Material, Base } from '@vtj/core';
3
+ import { Renderer } from './renderer';
4
+ import { Designer } from './designer';
5
+ import { type Engine } from './engine';
6
+ declare global {
7
+ interface Window {
8
+ __simulator__: Simulator;
9
+ Vue?: any;
10
+ VueRouter?: any;
11
+ ElementPlus?: any;
12
+ }
13
+ }
14
+ export interface SimulatorEnv {
15
+ window: Window;
16
+ Vue: any;
17
+ library: Record<string, any>;
18
+ materials: Record<string, any>;
19
+ components: Record<string, any>;
20
+ apis: Record<string, any>;
21
+ container: HTMLElement;
22
+ globals: Record<string, any>;
23
+ }
24
+ export interface SimulatorOptions {
25
+ engine: Engine;
26
+ }
27
+ export declare class Simulator extends Base {
28
+ contentWindow: Window | null;
29
+ renderer: Renderer | null;
30
+ designer: ShallowRef<Designer | null>;
31
+ engine: Engine;
32
+ constructor(options: SimulatorOptions);
33
+ init(iframe: Ref<HTMLIFrameElement | undefined>, deps: Ref<Dependencie[]>): void;
34
+ private setup;
35
+ emitReady(libraryExports?: string[], materialExports?: string[], materialMapLibrary?: Record<string, string>): Promise<void>;
36
+ createEnv(libraryExports?: string[], materialMapLibrary?: Record<string, string>, materials?: Material[]): SimulatorEnv;
37
+ refresh(): void;
38
+ dispose(): void;
39
+ }
@@ -0,0 +1,119 @@
1
+ import { type VNode, type DefineComponent } from 'vue';
2
+ import { type BlockPropDataType } from '@vtj/core';
3
+ export type VueComponent = Record<string, any> | VNode | DefineComponent<any, any, any, any>;
4
+ /**
5
+ * 器件分组
6
+ */
7
+ export declare enum WidgetGroup {
8
+ Block = "block",
9
+ Node = "node"
10
+ }
11
+ /**
12
+ * 区域类型
13
+ */
14
+ export declare enum RegionType {
15
+ Brand = "Brand",
16
+ Toolbar = "Toolbar",
17
+ Actions = "Actions",
18
+ Apps = "Apps",
19
+ Workspace = "Workspace",
20
+ Settings = "Settings",
21
+ Status = "Status",
22
+ Preview = "Preview"
23
+ }
24
+ /**
25
+ * 基础器件
26
+ */
27
+ export interface Widget {
28
+ /**
29
+ * 器件名称
30
+ */
31
+ name: string;
32
+ /**
33
+ * 放置区域
34
+ */
35
+ region: keyof typeof RegionType;
36
+ /**
37
+ * Vue组件
38
+ */
39
+ component: VueComponent;
40
+ /**
41
+ * 组件默认参数
42
+ */
43
+ props?: Record<string, any>;
44
+ /**
45
+ * 不可见,停用
46
+ */
47
+ invisible?: boolean;
48
+ /**
49
+ * 分组名称
50
+ */
51
+ group?: string;
52
+ }
53
+ /**
54
+ * App类型器件
55
+ */
56
+ export interface AppWidget extends Widget {
57
+ /**
58
+ * 标识app
59
+ */
60
+ type: 'app';
61
+ /**
62
+ * 应用图标
63
+ */
64
+ icon: VueComponent;
65
+ /**
66
+ * 应用名称
67
+ */
68
+ label?: string;
69
+ /**
70
+ * 应用打开方式
71
+ */
72
+ openType?: 'panel' | 'link' | 'dialog';
73
+ /**
74
+ * 链接url,openType 为 link 时有效
75
+ */
76
+ url?: string;
77
+ }
78
+ /**
79
+ * 选项卡类型器件
80
+ */
81
+ export interface TabWidget extends Widget {
82
+ /**
83
+ * 标识tab
84
+ */
85
+ type: 'tab';
86
+ /**
87
+ * tab名称
88
+ */
89
+ label: string;
90
+ /**
91
+ * tab图标
92
+ */
93
+ icon?: VueComponent;
94
+ /**
95
+ * 能关闭的
96
+ */
97
+ closable?: boolean;
98
+ }
99
+ /**
100
+ * 设置器配置
101
+ */
102
+ export interface Setter {
103
+ /**
104
+ * 设置器名称
105
+ */
106
+ name: string;
107
+ /**
108
+ * 设置器组件
109
+ */
110
+ component: VueComponent;
111
+ /**
112
+ * 设置器数据类型
113
+ */
114
+ type: BlockPropDataType;
115
+ /**
116
+ * 设计器参数
117
+ */
118
+ props?: Record<string, any>;
119
+ }
@@ -0,0 +1,7 @@
1
+ export { version as VTJ_DESIGNER_VERSION } from './version';
2
+ export * from './constants';
3
+ export * from './components';
4
+ export * from './framework';
5
+ export * from './managers';
6
+ export * from './wrappers';
7
+ export * from './utils';
@@ -0,0 +1,2 @@
1
+ import type { Dependencie } from '@vtj/core';
2
+ export declare const builtInDeps: Dependencie[];
@@ -0,0 +1,4 @@
1
+ export * from './widgets';
2
+ export * from './deps';
3
+ export * from './materials';
4
+ export * from './setters';
@@ -0,0 +1,2 @@
1
+ import type { Material } from '@vtj/core';
2
+ export declare const builtInMaterials: Material[];
@@ -0,0 +1,3 @@
1
+ import { type Setter } from '../../framework';
2
+ export declare const defaultSetter: Setter;
3
+ export declare const builtInSetters: Array<Setter>;
@@ -0,0 +1,2 @@
1
+ import { type Widget, type AppWidget, type TabWidget } from '../../framework';
2
+ export declare const builtInWidgets: Array<AppWidget | TabWidget | Widget>;
@@ -0,0 +1,33 @@
1
+ import type { Dependencie } from '@vtj/core';
2
+ declare class DepsManager {
3
+ private deps;
4
+ constructor(deps?: Dependencie[]);
5
+ /**
6
+ * 获取内置依赖
7
+ * @returns
8
+ */
9
+ get(): Dependencie[];
10
+ /**
11
+ * 重置内置依赖
12
+ * @param deps
13
+ */
14
+ set(deps: Dependencie[]): void;
15
+ /**
16
+ * 增加依赖项
17
+ * @param dep
18
+ */
19
+ add(dep: Dependencie): void;
20
+ /**
21
+ * 项目与内置依赖进行合并,返回合并最终结果
22
+ * @param projectDeps
23
+ * @returns
24
+ */
25
+ merge(projectDeps: Dependencie[]): Dependencie[];
26
+ /**
27
+ * 删除内置依赖项
28
+ * @param name
29
+ */
30
+ remove(name: string): void;
31
+ }
32
+ export declare const depsManager: DepsManager;
33
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './built-in';
2
+ export * from './widget';
3
+ export * from './deps';
4
+ export * from './setter';
@@ -0,0 +1,29 @@
1
+ import { type BlockPropDataType } from '@vtj/core';
2
+ import { type Setter } from '../framework';
3
+ declare class SetterManager {
4
+ private setters;
5
+ defaultSetter: Setter;
6
+ constructor();
7
+ private createSetters;
8
+ /**
9
+ * 注册一个设置器
10
+ * @param widget
11
+ */
12
+ register(setter: Setter): void;
13
+ /**
14
+ * 根据名称获取设置器
15
+ * @param name
16
+ * @returns
17
+ */
18
+ get(name: string): Setter;
19
+ /**
20
+ * 修改设置器
21
+ * @param name
22
+ * @param widget
23
+ * @returns
24
+ */
25
+ set(name: string, setter: Partial<Setter>): void;
26
+ getByType(type: BlockPropDataType): string[];
27
+ }
28
+ export declare const setterManager: SetterManager;
29
+ export {};
@@ -0,0 +1,36 @@
1
+ import { type Widget, RegionType } from '../framework';
2
+ /**
3
+ * Widget管理类
4
+ */
5
+ declare class WidgetManager {
6
+ private widgets;
7
+ constructor();
8
+ private createWidgets;
9
+ /**
10
+ * 注册一个器件
11
+ * @param widget
12
+ */
13
+ register(widget: Widget): void;
14
+ /**
15
+ * 根据名称获取器件配置
16
+ * @param name
17
+ * @returns
18
+ */
19
+ get(name: string): Widget;
20
+ /**
21
+ * 修改器件
22
+ * @param name
23
+ * @param widget
24
+ * @returns
25
+ */
26
+ set(name: string, widget: Partial<Widget>): void;
27
+ /**
28
+ * 根据区域名称获取区域内的器件配置
29
+ * @param region
30
+ * @param group
31
+ * @returns
32
+ */
33
+ getWidgets(region?: keyof typeof RegionType, group?: string): Widget[];
34
+ }
35
+ export declare const widgetManager: WidgetManager;
36
+ export {};
@@ -0,0 +1,6 @@
1
+ import { NotificationHandle, MessageBoxData, MessageHandler } from 'element-plus';
2
+ import { type JSExpression, type JSFunction } from '@vtj/core';
3
+ export declare function notify(message: string, title?: string): NotificationHandle;
4
+ export declare function confirm(message: string): Promise<boolean | MessageBoxData>;
5
+ export declare function message(message: string, type?: 'success' | 'warning'): MessageHandler;
6
+ export declare function expressionValidate(str: JSExpression | JSFunction, self: any, thisRequired?: boolean): boolean;
@@ -0,0 +1,8 @@
1
+ /**!
2
+ * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
+ * @name @vtj/designer
4
+ * @author CHC chenhuachun1549@dingtalk.com
5
+ * @version 0.7.0
6
+ * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
+ */
8
+ export declare const version = "0.7.0";
@@ -0,0 +1,4 @@
1
+ export * from './skeleton';
2
+ export * from './region';
3
+ export * from './widget';
4
+ export * from './setter';
@@ -0,0 +1,15 @@
1
+ import { DefineComponent, Ref, ComponentOptionsMixin, PublicProps, ExtractPropTypes, type PropType } from 'vue';
2
+ export declare const RegionWrapper: DefineComponent<{
3
+ region: {
4
+ type: PropType<"Brand" | "Toolbar" | "Actions" | "Apps" | "Workspace" | "Settings" | "Status" | "Preview">;
5
+ required: true;
6
+ };
7
+ }, {
8
+ regionRef: Ref<any>;
9
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
10
+ region: {
11
+ type: PropType<"Brand" | "Toolbar" | "Actions" | "Apps" | "Workspace" | "Settings" | "Status" | "Preview">;
12
+ required: true;
13
+ };
14
+ }>>, {}, {}>;
15
+ export type RegionWrapperInstance = InstanceType<typeof RegionWrapper>;
@@ -0,0 +1,90 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ExtractPropTypes, type PropType } from 'vue';
2
+ import { type MaterialSetter } from '@vtj/core';
3
+ import { type Context } from '@vtj/renderer';
4
+ import { BlockModel } from '@vtj/core';
5
+ import { type Setter } from '../framework';
6
+ export declare const SetterWrapper: DefineComponent<{
7
+ context: {
8
+ type: PropType<Context | null>;
9
+ };
10
+ current: {
11
+ type: PropType<BlockModel | null>;
12
+ };
13
+ name: StringConstructor;
14
+ label: StringConstructor;
15
+ title: StringConstructor;
16
+ value: {
17
+ type: (BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor | ArrayConstructor)[];
18
+ default: undefined;
19
+ };
20
+ setters: {
21
+ type: PropType<string | MaterialSetter | (string | MaterialSetter)[]>;
22
+ required: true;
23
+ default(): never[];
24
+ };
25
+ options: {
26
+ type: ArrayConstructor;
27
+ default(): never[];
28
+ };
29
+ variable: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ removable: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
37
+ }, unknown, unknown, {
38
+ computedSetters(): {
39
+ component: any;
40
+ name: string;
41
+ label: string;
42
+ props: Record<string, any>;
43
+ }[];
44
+ computedOptions(): unknown[];
45
+ defaultSetter(): string;
46
+ }, {
47
+ getSetter(name: string | Setter): Setter;
48
+ changeValue(val: any): void;
49
+ onRemove(name: string): void;
50
+ }, ComponentOptionsMixin, ComponentOptionsMixin, ("change" | "remove")[], "change" | "remove", PublicProps, Readonly<ExtractPropTypes<{
51
+ context: {
52
+ type: PropType<Context | null>;
53
+ };
54
+ current: {
55
+ type: PropType<BlockModel | null>;
56
+ };
57
+ name: StringConstructor;
58
+ label: StringConstructor;
59
+ title: StringConstructor;
60
+ value: {
61
+ type: (BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor | ArrayConstructor)[];
62
+ default: undefined;
63
+ };
64
+ setters: {
65
+ type: PropType<string | MaterialSetter | (string | MaterialSetter)[]>;
66
+ required: true;
67
+ default(): never[];
68
+ };
69
+ options: {
70
+ type: ArrayConstructor;
71
+ default(): never[];
72
+ };
73
+ variable: {
74
+ type: BooleanConstructor;
75
+ default: boolean;
76
+ };
77
+ removable: {
78
+ type: BooleanConstructor;
79
+ default: boolean;
80
+ };
81
+ }>> & {
82
+ onChange?: ((...args: any[]) => any) | undefined;
83
+ onRemove?: ((...args: any[]) => any) | undefined;
84
+ }, {
85
+ value: string | number | boolean | Record<string, any> | unknown[];
86
+ options: unknown[];
87
+ setters: string | MaterialSetter | (string | MaterialSetter)[];
88
+ removable: boolean;
89
+ variable: boolean;
90
+ }, {}>;
@@ -0,0 +1,78 @@
1
+ import { DefineComponent, Ref, ShallowReactive, CreateComponentPublicInstance, ExtractPropTypes, PropType, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, PublicProps } from 'vue';
2
+ import { Engine, Widget, RegionType } from '../framework';
3
+ import { type RegionWrapperInstance } from './region';
4
+ import { type WidgetWrapperInstance } from './widget';
5
+ export declare const SkeletonWrapper: DefineComponent<{}, {
6
+ skeletonRef: Ref<any>;
7
+ engine: ShallowReactive<Engine>;
8
+ widgets: Ref<Record<string, CreateComponentPublicInstance<Readonly<ExtractPropTypes<{
9
+ region: {
10
+ type: PropType<RegionType>;
11
+ required: true;
12
+ };
13
+ widget: {
14
+ type: PropType<Widget>;
15
+ required: true;
16
+ };
17
+ }>>, {
18
+ widgetRef: Ref<any>;
19
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<ExtractPropTypes<{
20
+ region: {
21
+ type: PropType<RegionType>;
22
+ required: true;
23
+ };
24
+ widget: {
25
+ type: PropType<Widget>;
26
+ required: true;
27
+ };
28
+ }>>, {}, true, {}, {}, {
29
+ P: {};
30
+ B: {};
31
+ D: {};
32
+ C: {};
33
+ M: {};
34
+ Defaults: {};
35
+ }, Readonly<ExtractPropTypes<{
36
+ region: {
37
+ type: PropType<RegionType>;
38
+ required: true;
39
+ };
40
+ widget: {
41
+ type: PropType<Widget>;
42
+ required: true;
43
+ };
44
+ }>>, {
45
+ widgetRef: Ref<any>;
46
+ }, {}, {}, {}, {}>>>;
47
+ }, {}, {}, {
48
+ /**
49
+ * 获取区域wrapper组件实例
50
+ * @param region
51
+ * @returns
52
+ */
53
+ getRegion(region: keyof typeof RegionType): RegionWrapperInstance;
54
+ /**
55
+ * 切换应用区域折叠或展开
56
+ */
57
+ toggleCollapse(value?: boolean): void;
58
+ /**
59
+ * 控制设置区域隐藏或显示
60
+ * @param val
61
+ */
62
+ settable(val: boolean): void;
63
+ /**
64
+ * 获取区域内的 widget wrapper 实例数组
65
+ * @param region
66
+ * @returns
67
+ */
68
+ getWidgets(region: keyof typeof RegionType): WidgetWrapperInstance[];
69
+ /**
70
+ * 根据widget 名称获取 widget wrapper 实例
71
+ * @param name
72
+ * @returns
73
+ */
74
+ getWidget(name: string): WidgetWrapperInstance | undefined;
75
+ openPreview(_id: string): void;
76
+ closePreview(): void;
77
+ }, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{}>>, {}, {}>;
78
+ export type SkeletonWrapperInstance = InstanceType<typeof SkeletonWrapper>;
@@ -0,0 +1,24 @@
1
+ import { DefineComponent, Ref, ComponentOptionsMixin, PublicProps, ExtractPropTypes, type PropType } from 'vue';
2
+ import { type Widget, RegionType } from '../framework';
3
+ export declare const WidgetWrapper: DefineComponent<{
4
+ region: {
5
+ type: PropType<RegionType>;
6
+ required: true;
7
+ };
8
+ widget: {
9
+ type: PropType<Widget>;
10
+ required: true;
11
+ };
12
+ }, {
13
+ widgetRef: Ref<any>;
14
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
15
+ region: {
16
+ type: PropType<RegionType>;
17
+ required: true;
18
+ };
19
+ widget: {
20
+ type: PropType<Widget>;
21
+ required: true;
22
+ };
23
+ }>>, {}, {}>;
24
+ export type WidgetWrapperInstance = InstanceType<typeof WidgetWrapper>;