@ibiz-template/vue3-components 0.7.26 → 0.7.28-alpha.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 (186) hide show
  1. package/dist/{index-RwYoggQd.js → index-HNRMy1_g.js} +1 -1
  2. package/dist/index-QB7iGpIB.js +4 -0
  3. package/dist/{index-s7g1-ymW.js → index-xa8K5AHD.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/wang-editor-YqnK5uQU.js +1 -0
  7. package/dist/{xlsx-util-Rf5FMxyR.js → xlsx-util-nADTbeWP.js} +1 -1
  8. package/es/common/action-toolbar/action-toolbar.mjs +1 -1
  9. package/es/common/custom-theme/custom-theme.mjs +1 -1
  10. package/es/common/data-import2/data-import2.mjs +4 -1
  11. package/es/control/context-menu/context-menu.mjs +2 -2
  12. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +0 -1
  13. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.mjs +1 -1
  14. package/es/control/dashboard/dashboard-design/dashboard-design.mjs +3 -3
  15. package/es/control/drtab/drtab-control.util.mjs +7 -11
  16. package/es/control/form/form-detail/form-button/form-button.mjs +1 -1
  17. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  18. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.d.ts +28 -0
  19. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +52 -7
  20. package/es/control/form/form-detail/form-item/form-item.mjs +4 -0
  21. package/es/control/grid/grid/grid-control.util.d.ts +0 -2
  22. package/es/control/grid/grid/grid-control.util.mjs +24 -83
  23. package/es/control/grid/grid/grid.css +1 -1
  24. package/es/control/grid/grid/grid.d.ts +0 -2
  25. package/es/control/grid/grid/grid.mjs +1 -7
  26. package/es/control/grid/grid/index.d.ts +0 -2
  27. package/es/control/report-panel/report-panel.mjs +5 -0
  28. package/es/control/search-bar/search-bar.mjs +2 -2
  29. package/es/control/toolbar/export-excel/export-excel.mjs +2 -2
  30. package/es/control/toolbar/short-cut-button/short-cut-button.mjs +4 -1
  31. package/es/control/toolbar/toolbar.css +1 -1
  32. package/es/control/toolbar/toolbar.mjs +146 -10
  33. package/es/control/tree/index.d.ts +9 -0
  34. package/es/control/tree/tree.d.ts +9 -0
  35. package/es/control/tree/tree.mjs +5 -1
  36. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  37. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +2 -2
  38. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.css +1 -1
  39. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.d.ts +4 -0
  40. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.mjs +48 -3
  41. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +2 -2
  42. package/es/editor/data-picker/picker-editor.controller.d.ts +2 -2
  43. package/es/editor/dropdown-list/dropdown-list-editor.controller.d.ts +6 -0
  44. package/es/editor/dropdown-list/dropdown-list-editor.controller.mjs +10 -1
  45. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +1 -1
  46. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +17 -4
  47. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.css +1 -1
  48. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +3 -1
  49. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.mjs +26 -12
  50. package/es/editor/html/html-editor.controller.d.ts +88 -0
  51. package/es/editor/html/html-editor.controller.mjs +169 -6
  52. package/es/editor/html/wang-editor/component/emoji/emoji.css +1 -0
  53. package/es/editor/html/wang-editor/component/emoji/emoji.d.ts +17 -0
  54. package/es/editor/html/wang-editor/component/emoji/emoji.mjs +42 -0
  55. package/es/editor/html/wang-editor/component/index.d.ts +1 -0
  56. package/es/editor/html/wang-editor/component/index.mjs +3 -0
  57. package/es/editor/html/wang-editor/element/emoji.d.ts +7 -0
  58. package/es/editor/html/wang-editor/element/emoji.mjs +22 -0
  59. package/es/editor/html/wang-editor/element/index.d.ts +1 -0
  60. package/es/editor/html/wang-editor/element/index.mjs +3 -0
  61. package/es/editor/html/wang-editor/index.d.ts +4 -0
  62. package/es/editor/html/wang-editor/index.mjs +11 -0
  63. package/es/editor/html/wang-editor/module/ai-module.d.ts +67 -0
  64. package/es/editor/html/wang-editor/module/ai-module.mjs +76 -0
  65. package/es/editor/html/wang-editor/module/emoji-module.d.ts +7 -0
  66. package/es/editor/html/wang-editor/module/emoji-module.mjs +125 -0
  67. package/es/editor/html/wang-editor/module/index.d.ts +2 -0
  68. package/es/editor/html/wang-editor/module/index.mjs +4 -0
  69. package/es/editor/html/wang-editor/plugin/index.d.ts +1 -0
  70. package/es/editor/html/wang-editor/plugin/index.mjs +3 -0
  71. package/es/editor/html/wang-editor/plugin/plugin.d.ts +7 -0
  72. package/es/editor/html/wang-editor/plugin/plugin.mjs +23 -0
  73. package/es/editor/html/wang-editor/wang-editor.css +1 -1
  74. package/es/editor/html/wang-editor/wang-editor.mjs +7 -7
  75. package/es/editor/span/span/span.mjs +3 -1
  76. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +12 -10
  77. package/es/editor/text-box/input/input.mjs +3 -0
  78. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs +1 -1
  79. package/es/locale/en/index.d.ts +4 -0
  80. package/es/locale/en/index.mjs +5 -1
  81. package/es/locale/zh-CN/index.d.ts +4 -0
  82. package/es/locale/zh-CN/index.mjs +5 -1
  83. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/h.mjs +89 -0
  84. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/helpers/attachto.mjs +47 -0
  85. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/hooks.mjs +1 -0
  86. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/htmldomapi.mjs +115 -0
  87. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/index.mjs +18 -0
  88. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/init.mjs +376 -0
  89. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/is.mjs +9 -0
  90. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/jsx.mjs +64 -0
  91. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/attributes.mjs +59 -0
  92. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/class.mjs +28 -0
  93. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/dataset.mjs +42 -0
  94. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/eventlisteners.mjs +85 -0
  95. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/props.mjs +24 -0
  96. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/style.mjs +115 -0
  97. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/thunk.mjs +52 -0
  98. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/tovnode.mjs +62 -0
  99. package/es/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/vnode.mjs +6 -0
  100. package/es/panel-component/nav-tabs/nav-tabs.controller.mjs +3 -2
  101. package/es/panel-component/panel-button/panel-button.mjs +1 -1
  102. package/es/view-engine/edit-view.engine.mjs +3 -2
  103. package/es/view-engine/opt-view.engine.mjs +2 -1
  104. package/es/view-engine/pickup-tree-view.engine.mjs +1 -0
  105. package/es/web-app/attach-environment-config.mjs +2 -1
  106. package/lib/common/action-toolbar/action-toolbar.cjs +1 -1
  107. package/lib/common/custom-theme/custom-theme.cjs +1 -1
  108. package/lib/common/data-import2/data-import2.cjs +4 -1
  109. package/lib/control/context-menu/context-menu.cjs +2 -2
  110. package/lib/control/dashboard/custom-dashboard-container/custom-dashboard-container.cjs +1 -1
  111. package/lib/control/dashboard/dashboard-design/dashboard-design.cjs +3 -3
  112. package/lib/control/drtab/drtab-control.util.cjs +7 -11
  113. package/lib/control/form/form-detail/form-button/form-button.cjs +1 -1
  114. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +51 -6
  115. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  116. package/lib/control/form/form-detail/form-item/form-item.cjs +4 -0
  117. package/lib/control/grid/grid/grid-control.util.cjs +24 -83
  118. package/lib/control/grid/grid/grid.cjs +1 -7
  119. package/lib/control/grid/grid/grid.css +1 -1
  120. package/lib/control/report-panel/report-panel.cjs +5 -0
  121. package/lib/control/search-bar/search-bar.cjs +2 -2
  122. package/lib/control/toolbar/export-excel/export-excel.cjs +2 -2
  123. package/lib/control/toolbar/short-cut-button/short-cut-button.cjs +4 -1
  124. package/lib/control/toolbar/toolbar.cjs +146 -10
  125. package/lib/control/toolbar/toolbar.css +1 -1
  126. package/lib/control/tree/tree.cjs +5 -1
  127. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  128. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +2 -2
  129. package/lib/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.cjs +48 -3
  130. package/lib/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.css +1 -1
  131. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +2 -2
  132. package/lib/editor/dropdown-list/dropdown-list-editor.controller.cjs +10 -1
  133. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +17 -4
  134. package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.cjs +24 -10
  135. package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.css +1 -1
  136. package/lib/editor/html/html-editor.controller.cjs +169 -6
  137. package/lib/editor/html/wang-editor/component/emoji/emoji.cjs +44 -0
  138. package/lib/editor/html/wang-editor/component/emoji/emoji.css +1 -0
  139. package/lib/editor/html/wang-editor/component/index.cjs +7 -0
  140. package/lib/editor/html/wang-editor/element/emoji.cjs +24 -0
  141. package/lib/editor/html/wang-editor/element/index.cjs +7 -0
  142. package/lib/editor/html/wang-editor/index.cjs +19 -0
  143. package/lib/editor/html/wang-editor/module/ai-module.cjs +78 -0
  144. package/lib/editor/html/wang-editor/module/emoji-module.cjs +127 -0
  145. package/lib/editor/html/wang-editor/module/index.cjs +9 -0
  146. package/lib/editor/html/wang-editor/plugin/index.cjs +7 -0
  147. package/lib/editor/html/wang-editor/plugin/plugin.cjs +25 -0
  148. package/lib/editor/html/wang-editor/wang-editor.cjs +7 -7
  149. package/lib/editor/html/wang-editor/wang-editor.css +1 -1
  150. package/lib/editor/span/span/span.cjs +2 -0
  151. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +12 -10
  152. package/lib/editor/text-box/input/input.cjs +3 -0
  153. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.cjs +1 -1
  154. package/lib/locale/en/index.cjs +5 -1
  155. package/lib/locale/zh-CN/index.cjs +5 -1
  156. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/h.cjs +93 -0
  157. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/helpers/attachto.cjs +49 -0
  158. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/hooks.cjs +2 -0
  159. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/htmldomapi.cjs +117 -0
  160. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/index.cjs +42 -0
  161. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/init.cjs +378 -0
  162. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/is.cjs +12 -0
  163. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/jsx.cjs +67 -0
  164. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/attributes.cjs +61 -0
  165. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/class.cjs +30 -0
  166. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/dataset.cjs +44 -0
  167. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/eventlisteners.cjs +87 -0
  168. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/props.cjs +26 -0
  169. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/modules/style.cjs +117 -0
  170. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/thunk.cjs +54 -0
  171. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/tovnode.cjs +64 -0
  172. package/lib/node_modules/.pnpm/snabbdom@3.5.1/node_modules/snabbdom/build/vnode.cjs +8 -0
  173. package/lib/panel-component/nav-tabs/nav-tabs.controller.cjs +3 -2
  174. package/lib/panel-component/panel-button/panel-button.cjs +1 -1
  175. package/lib/view-engine/edit-view.engine.cjs +3 -2
  176. package/lib/view-engine/opt-view.engine.cjs +2 -1
  177. package/lib/view-engine/pickup-tree-view.engine.cjs +1 -0
  178. package/lib/web-app/attach-environment-config.cjs +2 -1
  179. package/package.json +8 -7
  180. package/dist/index-28jZm-aB.js +0 -4
  181. package/dist/wang-editor-XpJH4SXt.js +0 -1
  182. package/es/editor/html/wang-editor/ai/ai-modules.d.ts +0 -10
  183. package/es/editor/html/wang-editor/ai/ai-modules.mjs +0 -32
  184. package/lib/editor/html/wang-editor/ai/ai-modules.cjs +0 -34
  185. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.26_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.28-alpha.0_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  186. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.26_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.28-alpha.0_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -31,6 +31,42 @@ const IBizPickerEmbedView = /* @__PURE__ */ vue.defineComponent({
31
31
  setViewParam();
32
32
  }
33
33
  });
34
+ const editorParams = c.model.editorParams;
35
+ const singleSelect = vue.ref(true);
36
+ const checkStrictly = vue.ref(true);
37
+ const isShowText = vue.ref(true);
38
+ if (editorParams) {
39
+ if (editorParams.multiple) {
40
+ singleSelect.value = !c.toBoolean(editorParams.multiple);
41
+ }
42
+ if (editorParams.checkStrictly) {
43
+ checkStrictly.value = c.toBoolean(editorParams.checkStrictly);
44
+ }
45
+ if (editorParams.isShowText) {
46
+ isShowText.value = c.toBoolean(editorParams.isShowText);
47
+ }
48
+ }
49
+ const selectedData = vue.ref([]);
50
+ vue.watch(() => props.value, (newVal) => {
51
+ var _a, _b, _c, _d;
52
+ selectedData.value = [];
53
+ if (newVal) {
54
+ if (c.valueItem) {
55
+ const tempValue = (_c = (_b = (_a = props.data) == null ? void 0 : _a[c.valueItem]) == null ? void 0 : _b.split) == null ? void 0 : _c.call(_b, ",");
56
+ const tempText = (_d = newVal == null ? void 0 : newVal.split) == null ? void 0 : _d.call(newVal, ",");
57
+ if (tempValue && tempText) {
58
+ selectedData.value = tempValue.map((srfkey, index) => {
59
+ return {
60
+ srfkey,
61
+ srfmajortext: tempText[index]
62
+ };
63
+ });
64
+ }
65
+ }
66
+ }
67
+ }, {
68
+ immediate: true
69
+ });
34
70
  const onViewDataChange = (event) => {
35
71
  let tempValue = "";
36
72
  let temText = "";
@@ -63,14 +99,18 @@ const IBizPickerEmbedView = /* @__PURE__ */ vue.defineComponent({
63
99
  params,
64
100
  onSelectionChange,
65
101
  editorRef,
66
- pickupViewModel
102
+ pickupViewModel,
103
+ singleSelect,
104
+ checkStrictly,
105
+ isShowText,
106
+ selectedData
67
107
  };
68
108
  },
69
109
  render() {
70
110
  var _a;
71
111
  const viewShell = vue.resolveComponent("IBizViewShell");
72
112
  return vue.createVNode("div", {
73
- "class": [this.ns.b()],
113
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : ""],
74
114
  "ref": "editorRef"
75
115
  }, [this.pickupViewModel ? [vue.createVNode("div", {
76
116
  "class": this.ns.b("view")
@@ -78,8 +118,13 @@ const IBizPickerEmbedView = /* @__PURE__ */ vue.defineComponent({
78
118
  context: this.context,
79
119
  params: this.params,
80
120
  viewId: (_a = this.c.pickupView) == null ? void 0 : _a.id,
121
+ state: {
122
+ singleSelect: this.singleSelect,
123
+ checkStrictly: this.checkStrictly,
124
+ selectedData: this.selectedData
125
+ },
81
126
  onSelectionChange: this.onSelectionChange
82
- })]), vue.createVNode("div", {
127
+ })]), this.isShowText && vue.createVNode("div", {
83
128
  "class": this.ns.b("value")
84
129
  }, [this.$props.value ? this.$props.value.split(",").map((item) => {
85
130
  return vue.createVNode("span", null, [item, vue.createTextVNode("; ")]);
@@ -1 +1 @@
1
- .ibiz-picker-embed-view .ibiz-picker-embed-view-value{height:var(--ibiz-form-item-line-height);line-height:var(--ibiz-form-item-line-height)}
1
+ .ibiz-picker-embed-view--disabled{cursor:not-allowed}.ibiz-picker-embed-view--disabled *{pointer-events:none;cursor:not-allowed}.ibiz-picker-embed-view--disabled .el-tree-node__expand-icon{pointer-events:all;cursor:pointer}.ibiz-picker-embed-view .ibiz-picker-embed-view-value{height:var(--ibiz-form-item-line-height);line-height:var(--ibiz-form-item-line-height)}
@@ -268,8 +268,8 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
268
268
  const openLinkView = async (e) => {
269
269
  e.stopPropagation();
270
270
  const res = await c.openLinkView(props.data);
271
- if (res) {
272
- onViewDataChange(res);
271
+ if (res && res.ok && res.data) {
272
+ onViewDataChange(res.data);
273
273
  }
274
274
  };
275
275
  const onSelectChange = (selects) => {
@@ -26,9 +26,15 @@ class DropDownListEditorController extends runtime.CodeListEditorController {
26
26
  * @Date: 2024-03-12 14:33:14
27
27
  */
28
28
  __publicField(this, "forceSelection", true);
29
+ /**
30
+ * 预置项空白项名称
31
+ *
32
+ * @memberof DropDownListEditorController
33
+ */
34
+ __publicField(this, "blankItemName", "");
29
35
  }
30
36
  async onInit() {
31
- var _a;
37
+ var _a, _b;
32
38
  super.onInit();
33
39
  if (this.model.editorType === "MDROPDOWNLIST") {
34
40
  this.multiple = true;
@@ -36,6 +42,9 @@ class DropDownListEditorController extends runtime.CodeListEditorController {
36
42
  if ((_a = this.editorParams) == null ? void 0 : _a.forceSelection) {
37
43
  this.forceSelection = this.toBoolean(this.editorParams.forceSelection);
38
44
  }
45
+ if ((_b = this.editorParams) == null ? void 0 : _b.blankItemName) {
46
+ this.blankItemName = this.editorParams.blankItemName;
47
+ }
39
48
  }
40
49
  }
41
50
 
@@ -46,10 +46,11 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
46
46
  }
47
47
  const list = [];
48
48
  nodes.forEach((codeItem) => {
49
+ var _a;
49
50
  codeListItems.value.push(codeItem);
50
51
  const tempObj = {
51
52
  label: codeItem.text,
52
- value: codeItem.value.toString(),
53
+ value: (_a = codeItem.value) == null ? void 0 : _a.toString(),
53
54
  color: codeItem == null ? void 0 : codeItem.color,
54
55
  textCls: codeItem == null ? void 0 : codeItem.textCls,
55
56
  sysImage: codeItem.sysImage,
@@ -74,7 +75,14 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
74
75
  isLoading.value = true;
75
76
  const codeList = await c.loadCodeList(props.data);
76
77
  isLoadedCodeList.value = true;
77
- items.value = codeList;
78
+ if (c.blankItemName) {
79
+ items.value = [{
80
+ value: void 0,
81
+ text: c.blankItemName
82
+ }, ...codeList];
83
+ } else {
84
+ items.value = codeList;
85
+ }
78
86
  for (let i = 0; i < items.value.length; i++) {
79
87
  const _item = items.value[i];
80
88
  if (_item.children) {
@@ -124,7 +132,11 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
124
132
  }
125
133
  return (_c = props.value) == null ? void 0 : _c.toString();
126
134
  },
127
- set(select) {
135
+ set(_select) {
136
+ let select = _select;
137
+ if (c.blankItemName && !_select) {
138
+ select = void 0;
139
+ }
128
140
  if (Array.isArray(select)) {
129
141
  let selectArr = null;
130
142
  if (select.length === 0) {
@@ -304,9 +316,10 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
304
316
  }, this.$attrs), {
305
317
  default: () => {
306
318
  return this.items.map((item) => {
319
+ var _a;
307
320
  return vue.createVNode(vue.resolveComponent("el-option"), {
308
321
  "key": item.value,
309
- "value": item.value.toString(),
322
+ "value": (_a = item.value) == null ? void 0 : _a.toString(),
310
323
  "label": item.text,
311
324
  "disabled": item.disableSelect === true,
312
325
  "style": item.bkcolor ? this.ns.cssVarBlock({
@@ -6,9 +6,6 @@ var core = require('@ibiz-template/core');
6
6
  require('./ibiz-emoji-picker.css');
7
7
 
8
8
  "use strict";
9
- function _isSlot(s) {
10
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
11
- }
12
9
  const IBizEmojiPicker = /* @__PURE__ */ vue.defineComponent({
13
10
  name: "IBizEmojiPicker",
14
11
  props: vue3Util.getDropdownProps(),
@@ -18,8 +15,15 @@ const IBizEmojiPicker = /* @__PURE__ */ vue.defineComponent({
18
15
  }) {
19
16
  const ns = vue3Util.useNamespace("emoji-picker");
20
17
  const c = props.controller;
18
+ const emojiRef = vue.ref();
21
19
  const emoji = vue.ref("");
22
20
  const visible = vue.ref(false);
21
+ const showFormDefaultContent = vue.computed(() => {
22
+ if (props.controlParams && props.controlParams.editmode === "hover" && !props.readonly) {
23
+ return true;
24
+ }
25
+ return false;
26
+ });
23
27
  const onAddEmoji = (e) => {
24
28
  e.stopPropagation();
25
29
  e.preventDefault();
@@ -31,14 +35,17 @@ const IBizEmojiPicker = /* @__PURE__ */ vue.defineComponent({
31
35
  emoji.value = "";
32
36
  visible.value = false;
33
37
  emit("change", "");
38
+ emojiRef.value.click();
34
39
  };
35
40
  const onSelect = (val) => {
36
- emoji.value = val.data;
37
41
  visible.value = false;
42
+ emoji.value = val.data;
38
43
  emit("change", core.strToBase64(val.data));
39
44
  };
40
- vue.watch(() => props.value, (newVal) => {
41
- emoji.value = newVal ? core.base64ToStr(newVal) : "";
45
+ vue.watch(() => props.value, (newVal, oldVal) => {
46
+ if (newVal !== oldVal) {
47
+ emoji.value = newVal && core.isEmoji("".concat(newVal)) ? core.base64ToStr(newVal) : newVal;
48
+ }
42
49
  }, {
43
50
  immediate: true
44
51
  });
@@ -79,12 +86,16 @@ const IBizEmojiPicker = /* @__PURE__ */ vue.defineComponent({
79
86
  }
80
87
  return content;
81
88
  };
89
+ const renderFormDefaultContent = () => {
90
+ return vue.createVNode("div", {
91
+ "class": [ns.b("form-default-content"), ns.is("clear", !!emoji.value)]
92
+ }, [emoji.value ? emoji.value : "-"]);
93
+ };
82
94
  const renderReference = () => {
83
- let _slot;
84
95
  return vue.createVNode(vue.resolveComponent("el-button"), {
85
96
  "class": [ns.e("button"), ns.is("clear", !!emoji.value)]
86
- }, _isSlot(_slot = renderButtonContent()) ? _slot : {
87
- default: () => [_slot]
97
+ }, {
98
+ default: () => [showFormDefaultContent.value && renderFormDefaultContent(), renderButtonContent()]
88
99
  });
89
100
  };
90
101
  return {
@@ -92,6 +103,8 @@ const IBizEmojiPicker = /* @__PURE__ */ vue.defineComponent({
92
103
  c,
93
104
  emoji,
94
105
  visible,
106
+ emojiRef,
107
+ showFormDefaultContent,
95
108
  onSelect,
96
109
  onAddEmoji,
97
110
  onClearEmoji,
@@ -100,7 +113,8 @@ const IBizEmojiPicker = /* @__PURE__ */ vue.defineComponent({
100
113
  },
101
114
  render() {
102
115
  return vue.createVNode("div", {
103
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
116
+ "ref": "emojiRef",
117
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("active", this.visible), this.ns.is("show-default", this.showFormDefaultContent)]
104
118
  }, [vue.createVNode(vue.resolveComponent("el-popover"), {
105
119
  "trigger": "click",
106
120
  "placement": "bottom-start",
@@ -1 +1 @@
1
- .ibiz-emoji-picker{display:flex;align-items:center;width:100%;height:100%}.ibiz-emoji-picker__button-content{display:flex;align-items:center;min-height:var(--ibiz-height-control-default)}.ibiz-emoji-picker__button-content--icon{margin-right:var(--ibiz-spacing-extra-tight);fill:var(--ibiz-color-primary-text)}.ibiz-emoji-picker__button.is-clear{position:relative;padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-0);background-color:transparent}.ibiz-emoji-picker__button.is-clear:hover .ibiz-emoji-picker__button-content--icon{display:block}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon{position:absolute;top:0;right:0;display:none;margin-right:0;font-size:var(--ibiz-font-size-regular);fill:var(--ibiz-color-text-3)}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon:hover{fill:var(--ibiz-color-primary)}.ibiz-emoji-picker--readonly{display:flex;align-items:center;font-size:var(--ibiz-font-size-header-3);line-height:32px}.ibiz-emoji-picker--readonly .ibiz-emoji-picker__button{pointer-events:none}.ibiz-emoji-picker--readonly .is-clear .ibiz-emoji-picker__button-content--icon{display:none}.ibiz-emoji-picker-popper.el-popper.el-popper{width:auto;padding:0}
1
+ .ibiz-emoji-picker{display:flex;align-items:center;width:100%;height:100%}.ibiz-emoji-picker__button-content{display:flex;align-items:center;min-height:var(--ibiz-height-control-default)}.ibiz-emoji-picker__button-content--icon{margin-right:var(--ibiz-spacing-extra-tight);fill:var(--ibiz-color-primary-text)}.ibiz-emoji-picker__button.is-clear{position:relative;padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);color:var(--ibiz-color-text-0);background-color:transparent}.ibiz-emoji-picker__button.is-clear:hover .ibiz-emoji-picker__button-content--icon{display:block}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon{position:absolute;top:0;right:0;display:none;margin-right:0;font-size:var(--ibiz-font-size-regular);fill:var(--ibiz-color-text-3)}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon:hover{fill:var(--ibiz-color-primary)}.ibiz-emoji-picker--readonly{display:flex;align-items:center;line-height:32px}.ibiz-emoji-picker--readonly .ibiz-emoji-picker__button{padding:0;color:var(--ibiz-form-item-readonly-color);pointer-events:none;cursor:default}.ibiz-emoji-picker--readonly .ibiz-emoji-picker__button .ibiz-emoji-picker__button-content{display:none}.ibiz-emoji-picker--readonly .is-clear.ibiz-emoji-picker__button .ibiz-emoji-picker__button-content{display:flex}.ibiz-emoji-picker--readonly .is-clear.ibiz-emoji-picker__button .ibiz-emoji-picker__button-content--icon{display:none}.ibiz-emoji-picker-popper.el-popper.el-popper{width:auto;padding:0}.ibiz-form-item .ibiz-emoji-picker.is-show-default{padding:var(--ibiz-form-item-hover-edit-padding)}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker-form-default-content,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker-form-default-content{display:none}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker__button,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker__button{padding:8px 15px;pointer-events:auto;background-color:var(--ibiz-color-primary)}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker__button.is-clear,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker__button.is-clear{padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);background-color:transparent}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker__button-content,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker__button-content{display:flex}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker__button{padding:var(--ibiz-spacing-none);pointer-events:none;background:0 0}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker-form-default-content{display:flex;align-items:center;width:100%;font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker-form-default-content.is-clear{padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);background-color:transparent}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker__button-content{display:none}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-editable .ibiz-emoji-picker-form-default-content{display:none}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-editable .ibiz-emoji-picker__button-content{display:flex}
@@ -1,8 +1,15 @@
1
1
  'use strict';
2
2
 
3
+ var vue = require('vue');
3
4
  var runtime = require('@ibiz-template/runtime');
5
+ var core = require('@ibiz-template/core');
4
6
  var editor = require('@wangeditor/editor');
5
- var aiModules = require('./wang-editor/ai/ai-modules.cjs');
7
+ require('./wang-editor/index.cjs');
8
+ var aiModule = require('./wang-editor/module/ai-module.cjs');
9
+ var emoji = require('./wang-editor/element/emoji.cjs');
10
+ var emojiModule = require('./wang-editor/module/emoji-module.cjs');
11
+ var plugin = require('./wang-editor/plugin/plugin.cjs');
12
+ var emoji$1 = require('./wang-editor/component/emoji/emoji.cjs');
6
13
 
7
14
  "use strict";
8
15
  var __defProp = Object.defineProperty;
@@ -45,9 +52,55 @@ class HtmlEditorController extends runtime.EditorController {
45
52
  * @type {boolean}
46
53
  */
47
54
  __publicField(this, "chatCompletion", false);
55
+ /**
56
+ * wangEditor 实例
57
+ *
58
+ * @private
59
+ * @type {IDomEditor}
60
+ * @memberof HtmlEditorController
61
+ */
62
+ __publicField(this, "wangEditor");
63
+ /**
64
+ * 气泡容器
65
+ *
66
+ * @type {(IOverlayPopoverContainer | null)}
67
+ * @memberof HtmlEditorController
68
+ */
69
+ __publicField(this, "overlay", null);
70
+ /**
71
+ * 清除回调
72
+ *
73
+ * @private
74
+ * @memberof HtmlEditorController
75
+ */
76
+ __publicField(this, "cleanup", core.NOOP);
77
+ /**
78
+ * 预定义阻止捕获事件code
79
+ *
80
+ * @private
81
+ * @type {number[]}
82
+ * @memberof HtmlEditorController
83
+ */
84
+ __publicField(this, "presetPreventEvents", [13, 38, 40]);
85
+ /**
86
+ * 预定义阻止冒泡事件code
87
+ *
88
+ * @private
89
+ * @type {number[]}
90
+ * @memberof HtmlEditorController
91
+ */
92
+ __publicField(this, "presetPreventPropEvents", [27]);
48
93
  }
94
+ /**
95
+ * 初始化
96
+ *
97
+ * @protected
98
+ * @return {*} {Promise<void>}
99
+ * @memberof HtmlEditorController
100
+ */
49
101
  async onInit() {
50
102
  await super.onInit();
103
+ this.customRegister();
51
104
  if (this.editorParams) {
52
105
  const { uploadParams, exportParams } = this.editorParams;
53
106
  if (uploadParams) {
@@ -87,14 +140,124 @@ class HtmlEditorController extends runtime.EditorController {
87
140
  }
88
141
  }
89
142
  }
143
+ }
144
+ /**
145
+ * 自定义注册
146
+ *
147
+ * @private
148
+ * @memberof HtmlEditorController
149
+ */
150
+ customRegister() {
90
151
  if (!window.aichartRegister) {
91
- editor.Boot.registerMenu({
92
- key: "aichart",
93
- factory() {
94
- return new aiModules.AIMenu();
152
+ editor.Boot.registerMenu(aiModule.AIMenu);
153
+ window.aichartRegister = true;
154
+ }
155
+ if (!window.customElements.get("emoji-elem")) {
156
+ window.customElements.define("emoji-elem", emoji.EmojiElem);
157
+ }
158
+ if (!window.emojiIsRegiter) {
159
+ editor.Boot.registerModule(emojiModule.EmojiModule);
160
+ window.emojiIsRegiter = true;
161
+ }
162
+ if (!window.wangEditorPlugin) {
163
+ editor.Boot.registerPlugin(plugin.Plugin);
164
+ window.wangEditorPlugin = true;
165
+ }
166
+ }
167
+ /**
168
+ * wangEditor 创建完成
169
+ *
170
+ * @private
171
+ * @param {IDomEditor} editor
172
+ * @memberof HtmlEditorController
173
+ */
174
+ onCreated(editor) {
175
+ this.wangEditor = editor;
176
+ this.listenEvent();
177
+ }
178
+ /**
179
+ * 监听事件
180
+ *
181
+ * @private
182
+ * @memberof HtmlEditorController
183
+ */
184
+ listenEvent() {
185
+ const container = this.wangEditor.getEditableContainer();
186
+ this.wangEditor.on("openEmojiSelect", () => this.openEmojiSelect());
187
+ this.cleanup = core.listenJSEvent(container, "keydown", (event) => {
188
+ var _a;
189
+ if (this.overlay && this.presetPreventEvents.includes(event.keyCode)) {
190
+ event.preventDefault();
191
+ }
192
+ if (this.overlay && this.presetPreventPropEvents.includes(event.keyCode)) {
193
+ event.stopPropagation();
194
+ (_a = this.overlay) == null ? void 0 : _a.dismiss();
195
+ }
196
+ });
197
+ }
198
+ /**
199
+ * 打开表情选择
200
+ *
201
+ * @memberof HtmlEditorController
202
+ */
203
+ async openEmojiSelect() {
204
+ const domSelection = document.getSelection();
205
+ const { focusNode } = domSelection;
206
+ if (focusNode) {
207
+ this.overlay = ibiz.overlay.createPopover(
208
+ (modal) => {
209
+ return vue.h(emoji$1.Emoji, {
210
+ modal
211
+ });
212
+ },
213
+ void 0,
214
+ {
215
+ width: "auto",
216
+ noArrow: true,
217
+ autoClose: true,
218
+ placement: "bottom-start"
95
219
  }
220
+ );
221
+ await this.overlay.present(focusNode.parentNode);
222
+ this.overlay.onWillDismiss().then((result) => {
223
+ var _a;
224
+ const _result = result;
225
+ const item = (_a = _result.data) == null ? void 0 : _a[0];
226
+ if (_result.ok && item) {
227
+ this.addEmojiNode(item);
228
+ }
229
+ this.overlay = null;
96
230
  });
97
- window.aichartRegister = true;
231
+ }
232
+ }
233
+ /**
234
+ * 添加表情
235
+ *
236
+ * @param {string} data
237
+ * @memberof HtmlEditorController
238
+ */
239
+ addEmojiNode(data) {
240
+ const emojiNode = {
241
+ data,
242
+ type: "emoji",
243
+ children: [{ text: "" }]
244
+ };
245
+ this.wangEditor.restoreSelection();
246
+ this.wangEditor.insertNode(emojiNode);
247
+ this.wangEditor.move(1);
248
+ }
249
+ /**
250
+ * 销毁
251
+ *
252
+ * @private
253
+ * @memberof HtmlEditorController
254
+ */
255
+ onDestroyed() {
256
+ if (this.cleanup !== core.NOOP) {
257
+ this.cleanup();
258
+ }
259
+ if (this.overlay) {
260
+ this.overlay.dismiss();
98
261
  }
99
262
  }
100
263
  }
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var core = require('@ibiz-template/core');
5
+ var vue3Util = require('@ibiz-template/vue3-util');
6
+ require('./emoji.css');
7
+
8
+ "use strict";
9
+ const Emoji = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizHtmlEmoji",
11
+ props: {
12
+ modal: {
13
+ type: Object,
14
+ required: true
15
+ }
16
+ },
17
+ setup(props) {
18
+ const ns = vue3Util.useNamespace("html-emoji");
19
+ const onSelect = (val) => {
20
+ const modalData = {
21
+ ok: true,
22
+ data: [{
23
+ emoji: core.strToBase64(val.data)
24
+ }]
25
+ };
26
+ props.modal.dismiss(modalData);
27
+ };
28
+ return {
29
+ ns,
30
+ onSelect
31
+ };
32
+ },
33
+ render() {
34
+ return vue.createVNode("div", {
35
+ "class": this.ns.b()
36
+ }, [vue.createVNode(vue.resolveComponent("iBizEmojiSelect"), {
37
+ "dark": true,
38
+ "continuousList": true,
39
+ "onSelect": this.onSelect
40
+ }, null)]);
41
+ }
42
+ });
43
+
44
+ exports.Emoji = Emoji;
@@ -0,0 +1 @@
1
+ .ibiz-html-emoji{width:auto;height:auto}
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var emoji = require('./emoji/emoji.cjs');
4
+
5
+ "use strict";
6
+
7
+ exports.Emoji = emoji.Emoji;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ "use strict";
4
+ class EmojiElem extends HTMLElement {
5
+ // 监听的 attr
6
+ static get observedAttributes() {
7
+ return ["data-value"];
8
+ }
9
+ attributeChangedCallback(tag, oldValue, newValue) {
10
+ if (tag === "data-value") {
11
+ if (newValue && oldValue === newValue)
12
+ return;
13
+ const shadow = this.attachShadow({ mode: "open" });
14
+ const document = shadow.ownerDocument;
15
+ const box = document.createElement("span");
16
+ box.innerHTML = newValue;
17
+ box.part.add("box");
18
+ box.classList.add("emoji-elem_box");
19
+ shadow.appendChild(box);
20
+ }
21
+ }
22
+ }
23
+
24
+ exports.EmojiElem = EmojiElem;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var emoji = require('./emoji.cjs');
4
+
5
+ "use strict";
6
+
7
+ exports.EmojiElem = emoji.EmojiElem;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ require('./module/index.cjs');
4
+ require('./element/index.cjs');
5
+ require('./plugin/index.cjs');
6
+ require('./component/index.cjs');
7
+ var aiModule = require('./module/ai-module.cjs');
8
+ var emojiModule = require('./module/emoji-module.cjs');
9
+ var emoji = require('./element/emoji.cjs');
10
+ var plugin = require('./plugin/plugin.cjs');
11
+ var emoji$1 = require('./component/emoji/emoji.cjs');
12
+
13
+ "use strict";
14
+
15
+ exports.AIMenu = aiModule.AIMenu;
16
+ exports.EmojiModule = emojiModule.EmojiModule;
17
+ exports.EmojiElem = emoji.EmojiElem;
18
+ exports.Plugin = plugin.Plugin;
19
+ exports.Emoji = emoji$1.Emoji;
@@ -0,0 +1,78 @@
1
+ 'use strict';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class AIButtonMenu {
11
+ constructor() {
12
+ /**
13
+ *
14
+ *
15
+ * @type {string}
16
+ * @memberof AIButtonMenu
17
+ */
18
+ __publicField(this, "title", "AI");
19
+ /**
20
+ *
21
+ *
22
+ * @type {string}
23
+ * @memberof AIButtonMenu
24
+ */
25
+ __publicField(this, "iconSvg", '<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <text x="0" y="13" font-size="16" fill="black">AI</text></svg>');
26
+ /**
27
+ *
28
+ *
29
+ * @type {string}
30
+ * @memberof AIButtonMenu
31
+ */
32
+ __publicField(this, "tag", "button");
33
+ }
34
+ /**
35
+ * 菜单是否需要激活(如选中加粗文本,“加粗”菜单会激活),用不到则返回 false
36
+ *
37
+ * @return {*} {boolean}
38
+ * @memberof AIButtonMenu
39
+ */
40
+ isActive() {
41
+ return false;
42
+ }
43
+ /**
44
+ * 获取菜单执行时的 value ,用不到则返回空 字符串或 false
45
+ *
46
+ * @return {*} {(string | boolean)}
47
+ * @memberof AIButtonMenu
48
+ */
49
+ getValue() {
50
+ return "aichart";
51
+ }
52
+ /**
53
+ * 菜单是否需要禁用(如选中 H1 ,“引用”菜单被禁用),用不到则返回 false
54
+ *
55
+ * @return {*} {boolean}
56
+ * @memberof AIButtonMenu
57
+ */
58
+ isDisabled() {
59
+ return false;
60
+ }
61
+ /**
62
+ * 点击菜单时触发的函数
63
+ *
64
+ * @param {IDomEditor} editor
65
+ * @memberof AIButtonMenu
66
+ */
67
+ exec(editor) {
68
+ editor.emit("aiClick");
69
+ }
70
+ }
71
+ const AIMenu = {
72
+ key: "aichart",
73
+ factory() {
74
+ return new AIButtonMenu();
75
+ }
76
+ };
77
+
78
+ exports.AIMenu = AIMenu;