@ibiz-template/vue3-components 0.7.7 → 0.7.9

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 (57) hide show
  1. package/dist/index-GAvjatsT.js +4 -0
  2. package/dist/index-dsmTOMa5.js +1 -0
  3. package/dist/index-sGpuIVYT.js +1 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/wang-editor-mq8sQSDK.js +1 -0
  7. package/dist/{xlsx-util-2u3vZn2l.js → xlsx-util-Fc3O95jH.js} +1 -1
  8. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +3 -1
  9. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.mjs +24 -7
  10. package/es/control/dashboard/dashboard-design/dashboard-design.d.ts +3 -2
  11. package/es/control/dashboard/dashboard-design/dashboard-design.mjs +29 -30
  12. package/es/control/dashboard/dashboard.d.ts +1 -0
  13. package/es/control/dashboard/dashboard.mjs +10 -3
  14. package/es/control/dashboard/index.d.ts +1 -0
  15. package/es/control/dashboard/portlet/chart-portlet/chart-portlet.mjs +13 -1
  16. package/es/control/dashboard/portlet/list-portlet/list-portlet.mjs +13 -1
  17. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +1 -0
  18. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +10 -1
  19. package/es/control/dashboard/portlet/view-portlet/view-portlet.mjs +13 -1
  20. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +1 -0
  21. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +3 -1
  22. package/es/control/form/form-detail/form-mdctrl/index.d.ts +1 -0
  23. package/es/control/toolbar/toolbar.css +1 -1
  24. package/es/control/toolbar/toolbar.mjs +14 -3
  25. package/es/editor/html/html-editor.controller.d.ts +25 -2
  26. package/es/editor/html/html-editor.controller.mjs +38 -1
  27. package/es/editor/html/wang-editor/ai/ai-modules.d.ts +9 -0
  28. package/es/editor/html/wang-editor/ai/ai-modules.mjs +32 -0
  29. package/es/editor/html/wang-editor/wang-editor.css +1 -1
  30. package/es/editor/html/wang-editor/wang-editor.mjs +98 -6
  31. package/es/editor/text-box/input/input.mjs +9 -5
  32. package/es/locale/en/index.d.ts +204 -0
  33. package/es/locale/en/index.mjs +205 -0
  34. package/es/locale/zh-CN/index.d.ts +204 -0
  35. package/es/locale/zh-CN/index.mjs +205 -0
  36. package/lib/control/dashboard/custom-dashboard-container/custom-dashboard-container.cjs +23 -6
  37. package/lib/control/dashboard/dashboard-design/dashboard-design.cjs +29 -30
  38. package/lib/control/dashboard/dashboard.cjs +9 -2
  39. package/lib/control/dashboard/portlet/chart-portlet/chart-portlet.cjs +12 -0
  40. package/lib/control/dashboard/portlet/list-portlet/list-portlet.cjs +12 -0
  41. package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +10 -1
  42. package/lib/control/dashboard/portlet/view-portlet/view-portlet.cjs +12 -0
  43. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +3 -1
  44. package/lib/control/toolbar/toolbar.cjs +14 -3
  45. package/lib/control/toolbar/toolbar.css +1 -1
  46. package/lib/editor/html/html-editor.controller.cjs +37 -0
  47. package/lib/editor/html/wang-editor/ai/ai-modules.cjs +34 -0
  48. package/lib/editor/html/wang-editor/wang-editor.cjs +97 -5
  49. package/lib/editor/html/wang-editor/wang-editor.css +1 -1
  50. package/lib/editor/text-box/input/input.cjs +9 -5
  51. package/lib/locale/en/index.cjs +205 -0
  52. package/lib/locale/zh-CN/index.cjs +205 -0
  53. package/package.json +7 -7
  54. package/dist/index-Rqr5SnvQ.js +0 -1
  55. package/dist/index-ntRuv0hC.js +0 -4
  56. package/dist/index-x-jLCilD.js +0 -1
  57. package/dist/wang-editor-0uYWEddj.js +0 -1
@@ -2056,6 +2056,7 @@ export declare const CustomDashboardContainer: import("vue").DefineComponent<{
2056
2056
  ownerType: string;
2057
2057
  ownerId: string;
2058
2058
  loadCustomModelData: () => Promise<IData>;
2059
+ resetCustomModelData: () => Promise<IData>;
2059
2060
  saveCustomModelData: (model: IData[], config?: IData | undefined) => Promise<IData>;
2060
2061
  };
2061
2062
  isShowDesign: import("vue").Ref<boolean>;
@@ -2063,7 +2064,8 @@ export declare const CustomDashboardContainer: import("vue").DefineComponent<{
2063
2064
  isShowDefault: import("vue").ComputedRef<boolean>;
2064
2065
  showTypeDir: import("vue").Ref<boolean>;
2065
2066
  openDesign: () => void;
2066
- onSaved: (args: IData) => void;
2067
+ onSaved: (args: IData) => Promise<void>;
2068
+ onReset: () => Promise<void>;
2067
2069
  clickCollapse: (type: string) => void;
2068
2070
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
2069
2071
  modelData: {
@@ -1,4 +1,4 @@
1
- import { reactive, ref, computed, onMounted, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { reactive, ref, nextTick, computed, onMounted, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { CustomDashboardController } from '@ibiz-template/runtime';
3
3
  import { useNamespace } from '@ibiz-template/vue3-util';
4
4
  import './custom-dashboard-container.css';
@@ -54,23 +54,38 @@ const CustomDashboardContainer = /* @__PURE__ */ defineComponent({
54
54
  }
55
55
  return tempModelDatas;
56
56
  };
57
- const onSaved = (args) => {
57
+ const handleCustomModelChange = async (args) => {
58
+ await props.dashboard.initPortlets(args.model);
59
+ await props.dashboard.initPortletsConfig(args.config);
60
+ };
61
+ const onSaved = async (args) => {
58
62
  isShowDesign.value = false;
59
63
  const tempModelDatas = convertData(args.model);
64
+ await handleCustomModelChange({
65
+ model: tempModelDatas,
66
+ config: args.config
67
+ });
68
+ await props.dashboard.evt.emit("onSavePortlet", void 0);
60
69
  emit("changed", {
61
70
  model: tempModelDatas
62
71
  });
63
72
  };
73
+ const onReset = async () => {
74
+ isInited.value = false;
75
+ isShowDesign.value = false;
76
+ await props.dashboard.resetPortlets();
77
+ await nextTick();
78
+ isInited.value = true;
79
+ };
64
80
  const isShowDefault = computed(() => {
65
81
  return customC.customModelData.length === 0;
66
82
  });
67
- const handleCustomModelChange = async (args) => {
68
- await props.dashboard.initPortlets(args.model);
69
- await props.dashboard.initPortletsConfig(args.config);
70
- };
71
83
  onMounted(async () => {
72
84
  const response = await customC.loadCustomModelData();
73
85
  const tempModelDatas = convertData(response.model);
86
+ emit("changed", {
87
+ model: tempModelDatas
88
+ });
74
89
  await handleCustomModelChange({
75
90
  model: tempModelDatas,
76
91
  config: response.config
@@ -95,6 +110,7 @@ const CustomDashboardContainer = /* @__PURE__ */ defineComponent({
95
110
  showTypeDir,
96
111
  openDesign,
97
112
  onSaved,
113
+ onReset,
98
114
  clickCollapse
99
115
  };
100
116
  },
@@ -137,7 +153,8 @@ const CustomDashboardContainer = /* @__PURE__ */ defineComponent({
137
153
  "dashboard": this.dashboard,
138
154
  "custom-dashboard": this.customC,
139
155
  "is-show-design": this.isShowDesign,
140
- "onSaved": this.onSaved
156
+ "onSaved": this.onSaved,
157
+ "onReset": this.onReset
141
158
  }, null)]
142
159
  }), this.isInited && (this.isShowDefault ? (_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a) : this.customC.customModelData.map((item) => {
143
160
  var _a2, _b2;
@@ -63,7 +63,7 @@ export declare const DashboardDesign: import("vue").DefineComponent<{
63
63
  filterVal: Ref<string>;
64
64
  defaultOpens: import("vue").ComputedRef<string[]>;
65
65
  layoutModel: Ref<IData[]>;
66
- onReset: () => void;
66
+ onReset: () => Promise<void>;
67
67
  onSave: () => Promise<void>;
68
68
  removeItem: (child: IData) => Promise<void>;
69
69
  addLayoutItem: (child: IPortletList) => Promise<void>;
@@ -79,7 +79,7 @@ export declare const DashboardDesign: import("vue").DefineComponent<{
79
79
  getPortletByCodeName: (codeName: string) => IDBPortletPart | undefined;
80
80
  maskSize: import("vue").ComputedRef<string>;
81
81
  designPanel: Ref<Element | null>;
82
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "saved"[], "saved", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
82
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("reset" | "saved")[], "reset" | "saved", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
83
83
  dashboard: {
84
84
  type: PropType<DashboardController>;
85
85
  required: true;
@@ -93,6 +93,7 @@ export declare const DashboardDesign: import("vue").DefineComponent<{
93
93
  required: true;
94
94
  };
95
95
  }>> & {
96
+ onReset?: ((...args: any[]) => any) | undefined;
96
97
  onSaved?: ((...args: any[]) => any) | undefined;
97
98
  }, {}, {}>;
98
99
  export {};
@@ -24,7 +24,7 @@ const DashboardDesign = /* @__PURE__ */ defineComponent({
24
24
  required: true
25
25
  }
26
26
  },
27
- emits: ["saved"],
27
+ emits: ["saved", "reset"],
28
28
  setup(props, {
29
29
  emit
30
30
  }) {
@@ -100,12 +100,25 @@ const DashboardDesign = /* @__PURE__ */ defineComponent({
100
100
  const list2 = [];
101
101
  const app = ibiz.hub.getApp(ibiz.env.appId);
102
102
  if (app.model.appPortletCats && app.model.appPortlets) {
103
+ const isDEView = customC.model.appDataEntityId;
104
+ const categoryTag = props.dashboard.controlParams.categorytag;
103
105
  app.model.appPortlets.forEach((portlet) => {
104
106
  var _a;
107
+ if (!isDEView && !portlet.enableAppDashboard) {
108
+ return;
109
+ }
110
+ if (isDEView && !portlet.enableDEDashboard) {
111
+ return;
112
+ }
105
113
  const portletCat = (_a = app.model.appPortletCats) == null ? void 0 : _a.find((cat) => {
106
114
  var _a2;
107
115
  return cat.codeName === ((_a2 = portlet.appPortletCat) == null ? void 0 : _a2.codeName);
108
116
  });
117
+ if (categoryTag) {
118
+ if (!portletCat || portletCat.codeName !== categoryTag) {
119
+ return;
120
+ }
121
+ }
109
122
  const temp = {
110
123
  type: "app",
111
124
  portletCodeName: portlet.codeName,
@@ -143,11 +156,8 @@ const DashboardDesign = /* @__PURE__ */ defineComponent({
143
156
  if (filterVal.value) {
144
157
  tempOpens = [filterVal.value];
145
158
  } else {
146
- list.value.forEach((item, index) => {
147
- tempOpens.push(item.type + index);
148
- item.children.forEach((child, index2) => {
149
- tempOpens.push(child.type + index2);
150
- });
159
+ groups.value.forEach((item, index) => {
160
+ tempOpens.push(item.value + index);
151
161
  });
152
162
  }
153
163
  return tempOpens;
@@ -219,13 +229,17 @@ const DashboardDesign = /* @__PURE__ */ defineComponent({
219
229
  const model = layoutModel.value.find((item) => item.i === child.portletCodeName);
220
230
  return !!model;
221
231
  };
222
- const onReset = () => {
223
- layoutModel.value = [];
232
+ const onReset = async () => {
233
+ const res = await customC.resetCustomModelData();
234
+ layoutModel.value = res.model;
235
+ layoutConfig.value = res.config;
236
+ emit("reset");
224
237
  };
225
238
  const onSave = async () => {
226
239
  const res = await customC.saveCustomModelData(layoutModel.value);
227
240
  emit("saved", {
228
- model: res.model
241
+ model: res.model,
242
+ config: res.config
229
243
  });
230
244
  };
231
245
  const removeItem = async (child) => {
@@ -357,32 +371,17 @@ const DashboardDesign = /* @__PURE__ */ defineComponent({
357
371
  "class": this.ns.is("no-filter", true),
358
372
  "default-openeds": this.defaultOpens,
359
373
  "key": "default"
360
- }, _isSlot(_slot2 = this.list.map((item, index) => {
374
+ }, _isSlot(_slot2 = this.groups.map((group, index) => {
361
375
  return createVNode(resolveComponent("el-sub-menu"), {
362
- "key": item.type + index,
363
- "index": item.type + index
376
+ "key": group.value + index,
377
+ "index": group.value + index
364
378
  }, {
365
379
  title: () => {
366
- if (item.type === "app") {
367
- return ibiz.i18n.t("control.dashboard.dashboardDesign.global");
368
- }
369
- return item.name;
380
+ return group.name;
370
381
  },
371
382
  default: () => {
372
- return item.children.map((child, index2) => {
373
- return createVNode(resolveComponent("el-sub-menu"), {
374
- "key": child.type + index2,
375
- "index": child.type + index2
376
- }, {
377
- title: () => {
378
- return child.name;
379
- },
380
- default: () => {
381
- return child.children.map((child2) => {
382
- return renderElMenuItem(child2);
383
- });
384
- }
385
- });
383
+ return group.children.map((child) => {
384
+ return renderElMenuItem(child);
386
385
  });
387
386
  }
388
387
  });
@@ -22,6 +22,7 @@ export declare const DashboardControl: import("vue").DefineComponent<{
22
22
  c: DashboardController;
23
23
  ns: import("@ibiz-template/core").Namespace;
24
24
  customModelDatas: import("vue").Ref<never[]>;
25
+ handleCustomModelChange: (args: IData) => void;
25
26
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
26
27
  modelData: {
27
28
  type: PropType<IDashboard>;
@@ -1,4 +1,4 @@
1
- import { isVNode, createVNode, resolveComponent, h, ref, reactive, defineComponent } from 'vue';
1
+ import { isVNode, createVNode, resolveComponent, h, getCurrentInstance, ref, reactive, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './dashboard.css';
4
4
  import { DashboardController } from '@ibiz-template/runtime';
@@ -56,6 +56,7 @@ const DashboardControl = /* @__PURE__ */ defineComponent({
56
56
  },
57
57
  setup() {
58
58
  const c = useControlController((...args) => new DashboardController(...args));
59
+ const vue = getCurrentInstance().proxy;
59
60
  const customModelDatas = ref([]);
60
61
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
61
62
  c.evt.on("onCreated", () => {
@@ -63,10 +64,15 @@ const DashboardControl = /* @__PURE__ */ defineComponent({
63
64
  portlet.state = reactive(portlet.state);
64
65
  });
65
66
  });
67
+ const handleCustomModelChange = (args) => {
68
+ customModelDatas.value = args.model;
69
+ vue.$forceUpdate();
70
+ };
66
71
  return {
67
72
  c,
68
73
  ns,
69
- customModelDatas
74
+ customModelDatas,
75
+ handleCustomModelChange
70
76
  };
71
77
  },
72
78
  render() {
@@ -112,7 +118,8 @@ const DashboardControl = /* @__PURE__ */ defineComponent({
112
118
  }, {
113
119
  default: () => [state.isCreated && (model.enableCustomized ? createVNode(resolveComponent("iBizCustomDashboardContainer"), {
114
120
  "modelData": this.modelData,
115
- "dashboard": this.c
121
+ "dashboard": this.c,
122
+ "onChanged": this.handleCustomModelChange
116
123
  }, _isSlot(_slot2 = renderCustomSlots()) ? _slot2 : {
117
124
  default: () => [_slot2]
118
125
  }) : renderDefaultContent())]
@@ -19,6 +19,7 @@ export declare const IBizDashboardControl: import("@ibiz-template/vue3-util").Ty
19
19
  c: import("@ibiz-template/runtime").DashboardController;
20
20
  ns: import("@ibiz-template/core").Namespace;
21
21
  customModelDatas: import("vue").Ref<never[]>;
22
+ handleCustomModelChange: (args: IData) => void;
22
23
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
23
24
  modelData: {
24
25
  type: import("vue").PropType<import("@ibiz/model-core").IDashboard>;
@@ -1,4 +1,4 @@
1
- import { isVNode, resolveComponent, h, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, onMounted, onBeforeUnmount, resolveComponent, h, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { ChartPortletController, ControlType } from '@ibiz-template/runtime';
4
4
 
@@ -24,6 +24,18 @@ const ChartPortlet = /* @__PURE__ */ defineComponent({
24
24
  const chart = (_b = props.modelData.controls) == null ? void 0 : _b.find((item) => {
25
25
  return item.controlType === ControlType.CHART;
26
26
  });
27
+ let timerTag;
28
+ onMounted(() => {
29
+ const timer = props.controller.model.timer;
30
+ if (timer && timer > 0) {
31
+ timerTag = setInterval(() => {
32
+ props.controller.refresh();
33
+ }, timer);
34
+ }
35
+ });
36
+ onBeforeUnmount(() => {
37
+ clearInterval(timerTag);
38
+ });
27
39
  return {
28
40
  ns,
29
41
  chart
@@ -1,4 +1,4 @@
1
- import { isVNode, resolveComponent, h, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, onMounted, onBeforeUnmount, resolveComponent, h, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { ListPortletController, ControlType } from '@ibiz-template/runtime';
4
4
 
@@ -24,6 +24,18 @@ const ListPortlet = /* @__PURE__ */ defineComponent({
24
24
  const list = (_b = props.modelData.controls) == null ? void 0 : _b.find((item) => {
25
25
  return item.controlType === ControlType.LIST;
26
26
  });
27
+ let timerTag;
28
+ onMounted(() => {
29
+ const timer = props.controller.model.timer;
30
+ if (timer && timer > 0) {
31
+ timerTag = setInterval(() => {
32
+ props.controller.refresh();
33
+ }, timer);
34
+ }
35
+ });
36
+ onBeforeUnmount(() => {
37
+ clearInterval(timerTag);
38
+ });
27
39
  return {
28
40
  ns,
29
41
  list
@@ -12,6 +12,7 @@ export declare const PortletLayout: import("vue").DefineComponent<{
12
12
  }, {
13
13
  c: PortletPartController<import("@ibiz/model-core").IDBPortletPart>;
14
14
  ns: import("@ibiz-template/core").Namespace;
15
+ popperClass: import("vue").ComputedRef<string[]>;
15
16
  portletType: string;
16
17
  isShowHeader: import("vue").ComputedRef<string | import("@ibiz/model-core").ISysImage | import("@ibiz/model-core").IUIActionGroup | undefined>;
17
18
  onActionClick: (detail: IUIActionGroupDetail, event: MouseEvent) => Promise<void>;
@@ -17,6 +17,14 @@ const PortletLayout = /* @__PURE__ */ defineComponent({
17
17
  const ns = useNamespace("portlet-layout");
18
18
  const portletType = "portlet-".concat((_a = props.controller.model.portletType) == null ? void 0 : _a.toLowerCase());
19
19
  const c = props.controller;
20
+ const popperClass = computed(() => {
21
+ const classNames = [ns.em("toolbar", "".concat(portletType, "-").concat(c.model.id))];
22
+ const {
23
+ codeName
24
+ } = c.dashboard.view.model;
25
+ classNames.push(ns.em("toolbar", codeName));
26
+ return classNames;
27
+ });
20
28
  const isShowHeader = computed(() => {
21
29
  return c.model.showTitleBar && (c.model.title || c.model.sysImage) || c.model.uiactionGroup;
22
30
  });
@@ -26,6 +34,7 @@ const PortletLayout = /* @__PURE__ */ defineComponent({
26
34
  return {
27
35
  c,
28
36
  ns,
37
+ popperClass,
29
38
  portletType,
30
39
  isShowHeader,
31
40
  onActionClick
@@ -59,7 +68,7 @@ const PortletLayout = /* @__PURE__ */ defineComponent({
59
68
  "action-details": model.uiactionGroup.uiactionGroupDetails,
60
69
  "actions-state": state.actionGroupState,
61
70
  "mode": model.actionGroupExtractMode === "ITEMS" ? "dropdown" : "buttons",
62
- "popperClass": this.ns.em("toolbar", "".concat(this.portletType, "-").concat(model.id)),
71
+ "popperClass": this.popperClass,
63
72
  "onActionClick": this.onActionClick
64
73
  }, null)])]), createVNode("div", {
65
74
  "key": "content",
@@ -1,4 +1,4 @@
1
- import { isVNode, resolveComponent, h, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, onMounted, onBeforeUnmount, resolveComponent, h, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { ViewPortletController } from '@ibiz-template/runtime';
4
4
 
@@ -22,6 +22,18 @@ const ViewPortlet = /* @__PURE__ */ defineComponent({
22
22
  var _a;
23
23
  const ns = useNamespace("portlet-".concat((_a = props.modelData.portletType) == null ? void 0 : _a.toLowerCase()));
24
24
  const view = props.modelData.portletAppView;
25
+ let timerTag;
26
+ onMounted(() => {
27
+ const timer = props.controller.model.timer;
28
+ if (timer && timer > 0) {
29
+ timerTag = setInterval(() => {
30
+ props.controller.refresh();
31
+ }, timer);
32
+ }
33
+ });
34
+ onBeforeUnmount(() => {
35
+ clearInterval(timerTag);
36
+ });
25
37
  return {
26
38
  ns,
27
39
  view
@@ -15,6 +15,7 @@ export declare const FormMDCtrl: import("vue").DefineComponent<{
15
15
  c: FormMDCtrlController;
16
16
  ns: import("@ibiz-template/core").Namespace;
17
17
  hasCaption: boolean | undefined;
18
+ hasHeader: true | import("@ibiz/model-core").IUIActionGroup | undefined;
18
19
  onActionClick: (detail: IUIActionGroupDetail, event: MouseEvent) => Promise<void>;
19
20
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
20
21
  modelData: {
@@ -21,6 +21,7 @@ const FormMDCtrl = /* @__PURE__ */ defineComponent({
21
21
  useController(props.controller);
22
22
  const c = props.controller;
23
23
  const hasCaption = c.model.showCaption && !!c.model.caption;
24
+ const hasHeader = hasCaption || c.model.uiactionGroup;
24
25
  const onActionClick = async (detail, event) => {
25
26
  await props.controller.onActionClick(detail, event);
26
27
  };
@@ -28,6 +29,7 @@ const FormMDCtrl = /* @__PURE__ */ defineComponent({
28
29
  c,
29
30
  ns,
30
31
  hasCaption,
32
+ hasHeader,
31
33
  onActionClick
32
34
  };
33
35
  },
@@ -60,7 +62,7 @@ const FormMDCtrl = /* @__PURE__ */ defineComponent({
60
62
  }
61
63
  return createVNode("div", {
62
64
  "class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : ""]
63
- }, [createVNode("div", {
65
+ }, [this.hasHeader && createVNode("div", {
64
66
  "class": this.ns.b("header")
65
67
  }, [createVNode("div", {
66
68
  "class": this.ns.e("title")
@@ -11,6 +11,7 @@ export declare const IBizFormMDCtrl: import("@ibiz-template/vue3-util").TypeWith
11
11
  c: import("@ibiz-template/runtime").FormMDCtrlController;
12
12
  ns: import("@ibiz-template/core").Namespace;
13
13
  hasCaption: boolean | undefined;
14
+ hasHeader: true | import("@ibiz/model-core").IUIActionGroup | undefined;
14
15
  onActionClick: (detail: import("@ibiz/model-core").IUIActionGroupDetail, event: MouseEvent) => Promise<void>;
15
16
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
16
17
  modelData: {
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-control-toolbar{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2);--ibiz-control-toolbar-menu-height:32px;--ibiz-control-toolbar-text-margin:0 0 0 var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-toolbar__item{display:flex;align-items:center;margin:var(--ibiz-control-toolbar-item-margin);overflow:hidden}.ibiz-control-toolbar__item .el-button{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-control-toolbar-item-padding)}.ibiz-control-toolbar__item .el-button>span{display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height)}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon i{font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon img{display:inline-block;width:100%;height:100%}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon+.ibiz-toolbar-item-text{margin:var(--ibiz-control-toolbar-text-margin)}.ibiz-control-toolbar__item.is-loading .el-button .ibiz-icon{display:none}.ibiz-control-toolbar__item-separator{color:var(--ibiz-control-toolbar-separator-color)}.ibiz-control-toolbar__item-separator+.ibiz-control-toolbar__item-separator,.ibiz-control-toolbar__item-separator:first-child{display:none}.ibiz-control-toolbar__menu.el-menu{height:var(--ibiz-control-toolbar-menu-height);margin:var(--ibiz-control-toolbar-item-margin);border:none}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title{display:flex;align-items:center;justify-content:center;padding:0;font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary);border-bottom:none;border-radius:var(--ibiz-border-radius-small)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span{font-size:var(--ibiz-font-size-regular);display:flex;align-items:center;justify-content:center;line-height:1}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span .ibiz-toolbar-item-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span .ibiz-toolbar-item-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span .ibiz-toolbar-item-icon i{font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span .ibiz-toolbar-item-icon img{display:inline-block;width:100%;height:100%}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span .ibiz-toolbar-item-icon+.ibiz-toolbar-item-text{margin:var(--ibiz-control-toolbar-text-margin)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu.is-active .el-sub-menu__title{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2);--ibiz-control-toolbar-menu-height:32px;--ibiz-control-toolbar-text-margin:0 0 0 var(--ibiz-spacing-extra-tight);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu .el-sub-menu__title{padding:0 10px;font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu .el-sub-menu__title:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu.is-active .el-sub-menu__title{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu-rawitem{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item{font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon i{font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon img{display:inline-block;width:100%;height:100%}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon+.ibiz-toolbar-item-text{margin:var(--ibiz-control-toolbar-text-margin)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item.is-active{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .el-button{justify-content:flex-start;width:100%;padding:0;--el-button-active-bg-color:transparent;--el-button-hover-bg-color:transparent;--el-button-bg-color:transparent;--el-mask-color-extra-light:transparent}
1
+ @charset "UTF-8";.ibiz-control-toolbar{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2);--ibiz-control-toolbar-menu-height:32px;--ibiz-control-toolbar-text-margin:0 0 0 var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-toolbar__item{display:flex;align-items:center;margin:var(--ibiz-control-toolbar-item-margin);overflow:hidden}.ibiz-control-toolbar__item .el-button{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-control-toolbar-item-padding)}.ibiz-control-toolbar__item .el-button>span{display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height)}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon i{font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon img{display:inline-block;width:100%;height:100%}.ibiz-control-toolbar__item .el-button>span .ibiz-toolbar-item-icon+.ibiz-toolbar-item-text{margin:var(--ibiz-control-toolbar-text-margin)}.ibiz-control-toolbar__item.is-loading .el-button .ibiz-icon{display:none}.ibiz-control-toolbar__item-separator{color:var(--ibiz-control-toolbar-separator-color)}.ibiz-control-toolbar__item-separator+.ibiz-control-toolbar__item-separator,.ibiz-control-toolbar__item-separator:first-child{display:none}.ibiz-control-toolbar__menu.el-menu{height:var(--ibiz-control-toolbar-menu-height);margin:var(--ibiz-control-toolbar-item-margin);border:none}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title{display:flex;align-items:center;justify-content:center;padding:0;font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary);border-bottom:none;border-radius:var(--ibiz-border-radius-small)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-button{display:flex;align-items:center;justify-content:center}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-button>span{display:flex;align-items:center;justify-content:center;font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-button>span .ibiz-toolbar-item-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-button>span .ibiz-toolbar-item-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-button>span .ibiz-toolbar-item-icon i{font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-button>span .ibiz-toolbar-item-icon img{display:inline-block;width:100%;height:100%}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-button>span .ibiz-toolbar-item-icon+.ibiz-toolbar-item-text{margin:var(--ibiz-control-toolbar-text-margin)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span{display:flex;align-items:center;justify-content:center;line-height:1}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu.is-active .el-sub-menu__title{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2);--ibiz-control-toolbar-menu-height:32px;--ibiz-control-toolbar-text-margin:0 0 0 var(--ibiz-spacing-extra-tight);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu .el-sub-menu__title{padding:0 10px;font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu .el-sub-menu__title:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu.is-active .el-sub-menu__title{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu-rawitem{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item{font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon .ibiz-icon{display:flex;align-items:center;justify-content:center}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon i{font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon img{display:inline-block;width:100%;height:100%}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-toolbar-item-icon+.ibiz-toolbar-item-text{margin:var(--ibiz-control-toolbar-text-margin)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item.is-active{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .el-button{justify-content:flex-start;width:100%;padding:0;--el-button-active-bg-color:transparent;--el-button-hover-bg-color:transparent;--el-button-bg-color:transparent;--el-mask-color-extra-light:transparent}
@@ -79,7 +79,16 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
79
79
  };
80
80
  const renderSubmenu = (item) => {
81
81
  const detoolbarItems = item.detoolbarItems || [];
82
- const loading = detoolbarItems.findIndex((item2) => c.state.buttonsState[item2.id].loading) !== -1;
82
+ const ploading = detoolbarItems.findIndex((item2) => c.state.buttonsState[item2.id].loading) !== -1;
83
+ const pvisible = detoolbarItems.findIndex((item2) => {
84
+ return c.state.buttonsState[item2.id].visible === true;
85
+ }) !== -1;
86
+ if (!pvisible) {
87
+ return null;
88
+ }
89
+ const pdisabled = detoolbarItems.findIndex((item2) => {
90
+ return c.state.buttonsState[item2.id].disabled === false;
91
+ }) === -1;
83
92
  const groupButtonStyle = item.buttonStyle || "";
84
93
  return createVNode(resolveComponent("el-sub-menu"), {
85
94
  "class": [ns.b("submenu"), ns.em("item", groupButtonStyle.toLowerCase()), calcCssName(item)],
@@ -148,7 +157,8 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
148
157
  title: () => {
149
158
  let _slot3;
150
159
  return createVNode(resolveComponent("el-button"), {
151
- "loading": loading
160
+ "loading": ploading,
161
+ "disabled": pdisabled
152
162
  }, _isSlot(_slot3 = btnContent(item)) ? _slot3 : {
153
163
  default: () => [_slot3]
154
164
  });
@@ -209,9 +219,10 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
209
219
  }
210
220
  if (item.itemType === "ITEMS") {
211
221
  let _slot5;
222
+ const groupButtonStyle = item.buttonStyle || "";
212
223
  return createVNode(resolveComponent("el-menu"), {
213
224
  "mode": "horizontal",
214
- "class": [ns.e("menu")],
225
+ "class": [ns.e("menu"), ns.em("menu", groupButtonStyle.toLowerCase()), calcCssName(item)],
215
226
  "ellipsis": false,
216
227
  "menu-trigger": "hover"
217
228
  }, _isSlot(_slot5 = renderSubmenu(item)) ? _slot5 : {
@@ -1,5 +1,5 @@
1
- import { EditorController } from '@ibiz-template/runtime';
2
- import { IHtml } from '@ibiz/model-core';
1
+ import { EditorController, IAppDEService } from '@ibiz-template/runtime';
2
+ import { IAppDEACMode, IHtml } from '@ibiz/model-core';
3
3
  /**
4
4
  * html框编辑器控制器
5
5
  *
@@ -16,5 +16,28 @@ export declare class HtmlEditorController extends EditorController<IHtml> {
16
16
  * 下载参数
17
17
  */
18
18
  exportParams?: IParams;
19
+ /**
20
+ * 应用实体服务
21
+ *
22
+ * @type {IAppDEService}
23
+ * @memberof HtmlEditorController
24
+ */
25
+ deService?: IAppDEService;
26
+ /**
27
+ * 自填模式
28
+ *
29
+ * @author chitanda
30
+ * @date 2023-10-12 10:10:52
31
+ * @type {IAppDEACMode}
32
+ */
33
+ deACMode?: IAppDEACMode;
34
+ /**
35
+ * AI 聊天自填模式
36
+ *
37
+ * @author chitanda
38
+ * @date 2023-10-12 10:10:37
39
+ * @type {boolean}
40
+ */
41
+ chatCompletion: boolean;
19
42
  protected onInit(): Promise<void>;
20
43
  }
@@ -1,4 +1,4 @@
1
- import { EditorController } from '@ibiz-template/runtime';
1
+ import { EditorController, getDeACMode } from '@ibiz-template/runtime';
2
2
 
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -18,6 +18,29 @@ class HtmlEditorController extends EditorController {
18
18
  * 下载参数
19
19
  */
20
20
  __publicField(this, "exportParams");
21
+ /**
22
+ * 应用实体服务
23
+ *
24
+ * @type {IAppDEService}
25
+ * @memberof HtmlEditorController
26
+ */
27
+ __publicField(this, "deService");
28
+ /**
29
+ * 自填模式
30
+ *
31
+ * @author chitanda
32
+ * @date 2023-10-12 10:10:52
33
+ * @type {IAppDEACMode}
34
+ */
35
+ __publicField(this, "deACMode");
36
+ /**
37
+ * AI 聊天自填模式
38
+ *
39
+ * @author chitanda
40
+ * @date 2023-10-12 10:10:37
41
+ * @type {boolean}
42
+ */
43
+ __publicField(this, "chatCompletion", false);
21
44
  }
22
45
  async onInit() {
23
46
  await super.onInit();
@@ -46,6 +69,20 @@ class HtmlEditorController extends EditorController {
46
69
  }
47
70
  }
48
71
  }
72
+ const model = this.model;
73
+ if (model.appDEACModeId) {
74
+ this.deACMode = await getDeACMode(
75
+ model.appDEACModeId,
76
+ model.appDataEntityId,
77
+ this.context.srfappid
78
+ );
79
+ if (this.deACMode) {
80
+ if (this.deACMode.actype === "CHATCOMPLETION") {
81
+ this.deService = await ibiz.hub.getApp(model.appId).deService.getService(this.context, model.appDataEntityId);
82
+ this.chatCompletion = true;
83
+ }
84
+ }
85
+ }
49
86
  }
50
87
  }
51
88
 
@@ -0,0 +1,9 @@
1
+ import { IButtonMenu, IDomEditor } from '@wangeditor/editor';
2
+ export declare class AIMenu implements IButtonMenu {
3
+ title: string;
4
+ tag: string;
5
+ isActive(editor: IDomEditor): boolean;
6
+ getValue(editor: IDomEditor): string | boolean;
7
+ isDisabled(editor: IDomEditor): boolean;
8
+ exec(editor: IDomEditor, value: string | boolean): void;
9
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => {
5
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+ return value;
7
+ };
8
+ class AIMenu {
9
+ constructor() {
10
+ // TS 语法
11
+ __publicField(this, "title", "AI");
12
+ __publicField(this, "tag", "button");
13
+ }
14
+ // 菜单是否需要激活(如选中加粗文本,“加粗”菜单会激活),用不到则返回 false
15
+ isActive(editor) {
16
+ return true;
17
+ }
18
+ // 获取菜单执行时的 value ,用不到则返回空 字符串或 false
19
+ getValue(editor) {
20
+ return "aichart";
21
+ }
22
+ // 菜单是否需要禁用(如选中 H1 ,“引用”菜单被禁用),用不到则返回 false
23
+ isDisabled(editor) {
24
+ return false;
25
+ }
26
+ // 点击菜单时触发的函数
27
+ exec(editor, value) {
28
+ editor.emit("aiClick");
29
+ }
30
+ }
31
+
32
+ export { AIMenu };