@ibiz-template/vue3-components 0.7.41-alpha.20 → 0.7.41-alpha.21

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 (133) hide show
  1. package/dist/ibiz-markdown-editor-Bd4vTqbM.js +1 -0
  2. package/dist/index-8Yq7Bpp0.js +11 -0
  3. package/dist/{index-K6B-Odyq.js → index-mjpFeLkH.js} +1 -1
  4. package/dist/{index-Bt6TkADL.js → index-pz3nYBld.js} +1 -1
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/wang-editor-zhTZMXYX.js +1 -0
  8. package/dist/{xlsx-util-mN5WSU7v.js → xlsx-util-rX1J1Mx_.js} +1 -1
  9. package/es/common/action-toolbar/action-toolbar.css +1 -1
  10. package/es/common/action-toolbar/action-toolbar.d.ts +1 -1
  11. package/es/common/action-toolbar/action-toolbar.mjs +49 -7
  12. package/es/common/index.mjs +2 -1
  13. package/es/control/dashboard/dashboard.d.ts +2 -2
  14. package/es/control/dashboard/dashboard.mjs +3 -2
  15. package/es/control/dashboard/portlet/actionbar-portlet/actionbar-portlet.d.ts +1 -0
  16. package/es/control/dashboard/portlet/actionbar-portlet/actionbar-portlet.mjs +3 -0
  17. package/es/control/dashboard/portlet/actionbar-portlet/index.d.ts +1 -0
  18. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +4 -3
  19. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +6 -3
  20. package/es/control/data-view/data-view.css +1 -1
  21. package/es/control/data-view/data-view.mjs +4 -1
  22. package/es/control/form/edit-form/edit-form.mjs +10 -1
  23. package/es/control/form/form/form.d.ts +1 -1
  24. package/es/control/form/form/form.mjs +2 -1
  25. package/es/control/form/form-detail/form-group-panel/form-group-panel.d.ts +1 -0
  26. package/es/control/form/form-detail/form-group-panel/form-group-panel.mjs +3 -0
  27. package/es/control/form/form-detail/form-group-panel/index.d.ts +1 -0
  28. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +3 -1
  29. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +2 -1
  30. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +4 -1
  31. package/es/control/form/form-detail/form-mdctrl/index.d.ts +2 -1
  32. package/es/control/grid/grid/grid.mjs +3 -7
  33. package/es/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.mjs +4 -3
  34. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.d.ts +4 -0
  35. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.mjs +30 -3
  36. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +1 -1
  37. package/es/control/kanban/kanban.css +1 -1
  38. package/es/control/kanban/kanban.mjs +11 -6
  39. package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
  40. package/es/control/kanban/swimlane-kanban/swimlane-kanban.mjs +1 -0
  41. package/es/control/list/list.d.ts +1 -1
  42. package/es/control/list/list.mjs +4 -1
  43. package/es/control/search-bar/index.d.ts +1 -0
  44. package/es/control/search-bar/search-bar.css +1 -1
  45. package/es/control/search-bar/search-bar.d.ts +3 -2
  46. package/es/control/search-bar/search-bar.mjs +26 -3
  47. package/es/control/search-bar/search-groups/search-groups.css +1 -1
  48. package/es/control/search-bar/search-groups/search-groups.d.ts +11 -1
  49. package/es/control/search-bar/search-groups/search-groups.mjs +14 -1
  50. package/es/control/toolbar/index.d.ts +3 -3
  51. package/es/control/toolbar/toolbar.d.ts +5 -5
  52. package/es/control/toolbar/toolbar.mjs +1 -1
  53. package/es/control/tree-grid/tree-grid.mjs +2 -1
  54. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/index.d.ts +5 -4
  55. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.d.ts +5 -4
  56. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.mjs +8 -5
  57. package/es/control/tree-grid-ex/tree-grid-ex.d.ts +1 -1
  58. package/es/control/tree-grid-ex/tree-grid-ex.mjs +3 -2
  59. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.mjs +2 -2
  60. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +1 -1
  61. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +4 -1
  62. package/es/editor/html/wang-editor/wang-editor.d.ts +2 -0
  63. package/es/editor/html/wang-editor/wang-editor.mjs +3 -3
  64. package/es/editor/index.mjs +6 -0
  65. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.d.ts +2 -0
  66. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +2 -2
  67. package/es/editor/text-box/index.d.ts +1 -0
  68. package/es/editor/text-box/index.mjs +1 -0
  69. package/es/editor/text-box/signature/signature.css +1 -0
  70. package/es/editor/text-box/signature/signature.d.ts +102 -0
  71. package/es/editor/text-box/signature/signature.mjs +238 -0
  72. package/es/editor/text-box/text-box-editor.provider.mjs +4 -0
  73. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +2 -0
  74. package/es/editor/upload/ibiz-image-cropping/ibiz-image-cropping.d.ts +2 -0
  75. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +2 -0
  76. package/es/editor/upload/use/use-iview-upload.mjs +12 -3
  77. package/es/locale/en/index.d.ts +7 -0
  78. package/es/locale/en/index.mjs +7 -0
  79. package/es/locale/zh-CN/index.d.ts +7 -0
  80. package/es/locale/zh-CN/index.mjs +7 -0
  81. package/es/panel-component/panel-static-carousel/panel-static-carousel.d.ts +1 -1
  82. package/es/panel-component/user-message/async-action/async-data-export/async-data-export.mjs +1 -1
  83. package/es/util/open-view-util/open-view-util.mjs +1 -1
  84. package/es/view-engine/gantt-view.engine.mjs +4 -0
  85. package/lib/common/action-toolbar/action-toolbar.cjs +49 -7
  86. package/lib/common/action-toolbar/action-toolbar.css +1 -1
  87. package/lib/common/index.cjs +1 -0
  88. package/lib/control/dashboard/dashboard.cjs +2 -1
  89. package/lib/control/dashboard/portlet/actionbar-portlet/actionbar-portlet.cjs +3 -0
  90. package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +6 -3
  91. package/lib/control/data-view/data-view.cjs +3 -0
  92. package/lib/control/data-view/data-view.css +1 -1
  93. package/lib/control/form/edit-form/edit-form.cjs +10 -1
  94. package/lib/control/form/form/form.cjs +1 -0
  95. package/lib/control/form/form-detail/form-group-panel/form-group-panel.cjs +3 -0
  96. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +3 -1
  97. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +4 -1
  98. package/lib/control/grid/grid/grid.cjs +2 -6
  99. package/lib/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.cjs +4 -3
  100. package/lib/control/grid/grid-column/grid-field-column/attachment-column/file-util.cjs +30 -3
  101. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +1 -1
  102. package/lib/control/kanban/kanban.cjs +10 -5
  103. package/lib/control/kanban/kanban.css +1 -1
  104. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.cjs +1 -0
  105. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
  106. package/lib/control/list/list.cjs +3 -0
  107. package/lib/control/search-bar/search-bar.cjs +25 -2
  108. package/lib/control/search-bar/search-bar.css +1 -1
  109. package/lib/control/search-bar/search-groups/search-groups.cjs +14 -1
  110. package/lib/control/search-bar/search-groups/search-groups.css +1 -1
  111. package/lib/control/toolbar/toolbar.cjs +1 -1
  112. package/lib/control/tree-grid/tree-grid.cjs +1 -0
  113. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.cjs +8 -5
  114. package/lib/control/tree-grid-ex/tree-grid-ex.cjs +2 -1
  115. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.cjs +2 -2
  116. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +4 -1
  117. package/lib/editor/html/wang-editor/wang-editor.cjs +3 -3
  118. package/lib/editor/index.cjs +6 -0
  119. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +2 -2
  120. package/lib/editor/text-box/index.cjs +2 -0
  121. package/lib/editor/text-box/signature/signature.cjs +240 -0
  122. package/lib/editor/text-box/signature/signature.css +1 -0
  123. package/lib/editor/text-box/text-box-editor.provider.cjs +4 -0
  124. package/lib/editor/upload/use/use-iview-upload.cjs +12 -3
  125. package/lib/locale/en/index.cjs +7 -0
  126. package/lib/locale/zh-CN/index.cjs +7 -0
  127. package/lib/panel-component/user-message/async-action/async-data-export/async-data-export.cjs +1 -1
  128. package/lib/util/open-view-util/open-view-util.cjs +1 -1
  129. package/lib/view-engine/gantt-view.engine.cjs +4 -0
  130. package/package.json +6 -6
  131. package/dist/ibiz-markdown-editor-e33m6ees.js +0 -1
  132. package/dist/index-hzGAQk1t.js +0 -11
  133. package/dist/wang-editor-qbGW8Rzj.js +0 -1
@@ -89,6 +89,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
89
89
  setup(props) {
90
90
  const c = vue3Util.useControlController((...args) => new runtime.ListController(...args));
91
91
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
92
+ vue3Util.useControlPopoverzIndex(c);
92
93
  const {
93
94
  onPageChange,
94
95
  onPageRefresh,
@@ -219,6 +220,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
219
220
  "class": ns.bem("item", "right", "actions"),
220
221
  "action-details": c.getOptItemModel(),
221
222
  "actions-state": c.state.uaState[item.srfkey],
223
+ "zIndex": c.state.zIndex,
222
224
  "onActionClick": (detail, event) => c.onActionClick(detail, item, event)
223
225
  }, null);
224
226
  };
@@ -249,6 +251,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
249
251
  const renderGroupAction = (group) => {
250
252
  if (c.model.groupUIActionGroup && group.groupActionGroupState) {
251
253
  return vue.createVNode(vue.resolveComponent("iBizActionToolbar"), {
254
+ "zIndex": c.state.zIndex,
252
255
  "class": ns.be("group-content", "header-actions"),
253
256
  "action-details": c.model.groupUIActionGroup.uiactionGroupDetails,
254
257
  "actions-state": group.groupActionGroupState,
@@ -42,6 +42,19 @@ const SearchBarControl = /* @__PURE__ */ vue.defineComponent({
42
42
  setup() {
43
43
  var _a;
44
44
  const c = vue3Util.useControlController((...args) => new runtime.SearchBarController(...args));
45
+ const counterData = vue.ref({});
46
+ const fn = (counter) => {
47
+ counterData.value = counter;
48
+ };
49
+ c.evt.on("onCreated", () => {
50
+ if (c.counter) {
51
+ c.counter.onChange(fn, true);
52
+ }
53
+ });
54
+ vue.onUnmounted(() => {
55
+ var _a2;
56
+ (_a2 = c.counter) == null ? void 0 : _a2.offChange(fn);
57
+ });
45
58
  c.setStorageKeyFn(vue3Util.useLocalCacheKey(c.context, "SEARCH_BAR_SELECTED_GROUP", c.view.modal.routeDepth, "@", "".concat(c.view.model.codeName, "@").concat(c.model.codeName)));
46
59
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
47
60
  let isSearch = false;
@@ -138,6 +151,7 @@ const SearchBarControl = /* @__PURE__ */ vue.defineComponent({
138
151
  ns,
139
152
  cssVars,
140
153
  filterButtonRef,
154
+ counterData,
141
155
  onClear,
142
156
  onSearch,
143
157
  onKeydown,
@@ -156,15 +170,24 @@ const SearchBarControl = /* @__PURE__ */ vue.defineComponent({
156
170
  default: () => {
157
171
  var _a;
158
172
  return [this.c.model.enableGroup && (this.c.isBackendSearchGroup ? vue.createVNode(vue.resolveComponent("iBizSearchGroups"), {
159
- "controller": this.c
173
+ "controller": this.c,
174
+ "counterData": this.counterData
160
175
  }, null) : vue.createVNode("div", {
161
176
  "class": this.ns.b("quick-group")
162
177
  }, [(_a = this.c.model.searchBarGroups) == null ? void 0 : _a.map((groupItem) => {
163
178
  var _a2;
179
+ const visible = this.c.calcCountVisible(groupItem);
180
+ if (!visible) {
181
+ return null;
182
+ }
164
183
  return vue.createVNode("span", {
165
184
  "class": [this.ns.b("quick-group-item"), this.ns.is("selected", ((_a2 = this.c.state.selectedGroupItem) == null ? void 0 : _a2.id) === groupItem.id)],
166
185
  "onClick": () => this.onGroupClick(groupItem)
167
- }, [groupItem.caption]);
186
+ }, [groupItem.caption, groupItem.counterId && vue.createVNode(vue.resolveComponent("iBizBadge"), {
187
+ "class": this.ns.e("counter"),
188
+ "value": this.counterData[groupItem.counterId],
189
+ "counterMode": groupItem.counterMode
190
+ }, null)]);
168
191
  })])), this.c.model.enableGroup && this.c.isBackendSearchGroup && vue.createVNode(vue.resolveComponent("el-button"), {
169
192
  "class": this.ns.b("save"),
170
193
  "title": core.showTitle(ibiz.i18n.t("control.searchBar.saveGroup")),
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-control-searchbar{--ibiz-control-searchbar-quick-search-width:220px;--ibiz-control-searchbar-quick-search-bg:var(--ibiz-color-bg-1);--ibiz-control-searchbar-quick-group-item-padding:var(--ibiz-spacing-base-tight);display:flex;align-items:center;justify-content:flex-start;height:100%}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search{width:var(--ibiz-control-searchbar-quick-search-width);margin-left:var(--ibiz-spacing-base-tight);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-text-color);background:var(--ibiz-control-searchbar-quick-search-bg);border:1px solid var(--ibiz-border-color);border-radius:var(--ibiz-border-radius-small)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search .el-input-group__prepend,.ibiz-control-searchbar .ibiz-control-searchbar-quick-search.el-input-group__append{padding:var(--ibiz-spacing-none)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search.is-advanced-quick-search .el-input-group__prepend+.el-input__wrapper{border-radius:0 var(--ibiz-border-radius-small) var(--ibiz-border-radius-small) 0}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group{height:100%;overflow-x:auto;white-space:nowrap}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item{position:relative;display:inline-block;height:100%;padding:var(--ibiz-control-searchbar-quick-group-item-padding);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item.is-selected::after{position:absolute;bottom:2px;left:var(--ibiz-spacing-base-tight);width:calc(100% - 2 * var(--ibiz-spacing-base-tight));height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item:hover{color:var(--ibiz-color-primary)}.ibiz-control-searchbar .el-input__icon{cursor:pointer}.ibiz-control-searchbar-filter{margin-right:var(--ibiz-spacing-extra-tight);margin-left:var(--ibiz-spacing-base-tight)}.ibiz-control-searchbar-save{margin-left:var(--ibiz-spacing-base-tight)}
1
+ @charset "UTF-8";.ibiz-control-searchbar{--ibiz-control-searchbar-quick-search-width:220px;--ibiz-control-searchbar-quick-search-bg:var(--ibiz-color-bg-1);--ibiz-control-searchbar-quick-group-item-padding:var(--ibiz-spacing-base-tight);display:flex;align-items:center;justify-content:flex-start;height:100%}.ibiz-control-searchbar__counter{margin-left:var(--ibiz-spacing-tight)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search{width:var(--ibiz-control-searchbar-quick-search-width);margin-left:var(--ibiz-spacing-base-tight);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-text-color);background:var(--ibiz-control-searchbar-quick-search-bg);border:1px solid var(--ibiz-border-color);border-radius:var(--ibiz-border-radius-small)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search .el-input-group__prepend,.ibiz-control-searchbar .ibiz-control-searchbar-quick-search.el-input-group__append{padding:var(--ibiz-spacing-none)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search.is-advanced-quick-search .el-input-group__prepend+.el-input__wrapper{border-radius:0 var(--ibiz-border-radius-small) var(--ibiz-border-radius-small) 0}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group{height:100%;overflow-x:auto;white-space:nowrap}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item{position:relative;display:inline-block;height:100%;padding:var(--ibiz-control-searchbar-quick-group-item-padding);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item.is-selected::after{position:absolute;bottom:2px;left:var(--ibiz-spacing-base-tight);width:calc(100% - 2 * var(--ibiz-spacing-base-tight));height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item:hover{color:var(--ibiz-color-primary)}.ibiz-control-searchbar .el-input__icon{cursor:pointer}.ibiz-control-searchbar-filter{margin-right:var(--ibiz-spacing-extra-tight);margin-left:var(--ibiz-spacing-base-tight)}.ibiz-control-searchbar-save{margin-left:var(--ibiz-spacing-base-tight)}
@@ -22,6 +22,11 @@ const SearchGroups = /* @__PURE__ */ vue.defineComponent({
22
22
  controller: {
23
23
  type: Object,
24
24
  required: true
25
+ },
26
+ counterData: {
27
+ type: Object,
28
+ default: () => {
29
+ }
25
30
  }
26
31
  },
27
32
  setup(props) {
@@ -192,10 +197,18 @@ const SearchGroups = /* @__PURE__ */ vue.defineComponent({
192
197
  "class": this.ns.b()
193
198
  }, [(_a = this.showGroups) == null ? void 0 : _a.map((groupItem) => {
194
199
  var _a2;
200
+ const visible = this.c.calcCountVisible(groupItem);
201
+ if (!visible) {
202
+ return null;
203
+ }
195
204
  return vue.createVNode("span", {
196
205
  "class": [this.ns.b("quick-group-item"), this.ns.is("selected", ((_a2 = this.c.state.selectedSearchGroupItem) == null ? void 0 : _a2.name) === groupItem.name)],
197
206
  "onClick": () => this.onGroupClick(groupItem)
198
- }, [groupItem.caption || groupItem.name]);
207
+ }, [groupItem.caption || groupItem.name, groupItem.counterId && vue.createVNode(vue.resolveComponent("iBizBadge"), {
208
+ "class": this.ns.e("counter"),
209
+ "value": this.counterData[groupItem.counterId],
210
+ "counterMode": groupItem.counterMode
211
+ }, null)]);
199
212
  }), vue.createVNode(vue.resolveComponent("el-dropdown"), {
200
213
  "popper-class": this.ns.b("dropdown")
201
214
  }, {
@@ -1 +1 @@
1
- .ibiz-search-groups{display:flex;align-items:center;justify-content:flex-start;height:100%}.ibiz-search-groups .ibiz-search-groups-quick-group-item{position:relative;display:inline-block;height:100%;padding:var(--ibiz-spacing-tight);margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-search-groups .ibiz-search-groups-quick-group-item.is-selected::after{position:absolute;bottom:2px;left:0;width:100%;height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-search-groups .ibiz-search-groups-quick-group-item:hover{color:var(--ibiz-color-primary)}.ibiz-search-groups-dropdown .el-dropdown-menu__item{width:180px;display:flex;align-items:center;justify-content:space-b}.ibiz-search-groups-dropdown .el-dropdown-menu__item .ibiz-search-groups-item-caption{display:inline-block;flex:1;margin:0 var(--ibiz-spacing-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-search-groups-more{display:flex;align-items:center;justify-content:flex-start;padding:var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-search-groups-more:hover{color:var(--ibiz-color-primary)}.ibiz-search-groups-more>ion-icon{margin-left:var(--ibiz-spacing-extra-tight)}.ibiz-search-groups-more.is-selected::after{position:absolute;bottom:0;left:0;width:100%;height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top{display:flex;align-items:center;justify-content:space-between}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top .ibiz-search-groups-content-top-left{display:flex;align-items:center;justify-content:flex-start}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top .ibiz-search-groups-content-top-left>ion-icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top .ibiz-search-groups-content-top-right ion-icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom{width:100%;margin-top:var(--ibiz-spacing-base);border:1px solid var(--ibiz-color-border)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header{display:flex;align-items:center;justify-content:flex-start;width:100%;background-color:var(--ibiz-color-tertiary-light-hover)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header .ibiz-search-groups-name{width:40%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header .ibiz-search-groups-show{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header .ibiz-search-groups-action{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row{position:relative;cursor:pointer;border-bottom:1px solid var(--ibiz-color-border);display:flex;align-items:center;justify-content:flex-start}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row:nth-last-child(1){border-bottom:none}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-name{width:40%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-show{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-action{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-action .el-link{margin-right:var(--ibiz-spacing-loose)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row:hover{background-color:var(--ibiz-color-primary-light-default)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row-ghost{background-color:var(--ibiz-color-primary-light-default);opacity:.5}.ibiz-search-groups-new-dialog .ibiz-search-groups-new-dialog-footer .ibiz-search-groups-cancel-btn{color:var(--ibiz-color-text-3);background-color:transparent}.ibiz-search-groups-new-dialog .ibiz-search-groups-new-dialog-footer .ibiz-search-groups-cancel-btn:hover{color:var(--ibiz-color-primary);background-color:transparent}.ibiz-search-groups-edit-dialog .ibiz-search-groups-edit-dialog-footer .ibiz-search-groups-cancel-btn{color:var(--ibiz-color-text-3);background-color:transparent}.ibiz-search-groups-edit-dialog .ibiz-search-groups-edit-dialog-footer .ibiz-search-groups-cancel-btn:hover{color:var(--ibiz-color-primary);background-color:transparent}.ibiz-search-groups-remove-dialog .ibiz-search-groups-remove-dialog-content{margin-bottom:var(--ibiz-spacing-base)}.ibiz-search-groups-remove-dialog .ibiz-search-groups-remove-dialog-content>span{padding:var(--ibiz-spacing-super-tight) var(--ibiz-spacing-tight);margin:0 var(--ibiz-spacing-tight);color:var(--ibiz-color-danger-text);background-color:var(--ibiz-color-danger);border-radius:var(--ibiz-border-radius-small)}.ibiz-search-groups-remove-dialog .ibiz-search-groups-remove-dialog-tip{color:var(--ibiz-color-text-3)}.ibiz-search-groups-remove-confirm-btn.el-button{background-color:var(--ibiz-color-danger)}.ibiz-search-groups-remove-confirm-btn:hover{background-color:var(--ibiz-color-danger-hover)}.ibiz-search-groups-remove-cancel-btn{color:var(--ibiz-color-text-3);background-color:transparent}.ibiz-search-groups-remove-cancel-btn:hover{color:var(--ibiz-color-primary);background-color:transparent}
1
+ .ibiz-search-groups{display:flex;align-items:center;justify-content:flex-start;height:100%}.ibiz-search-groups__counter{margin-left:var(--ibiz-spacing-tight)}.ibiz-search-groups .ibiz-search-groups-quick-group-item{position:relative;display:inline-block;height:100%;padding:var(--ibiz-spacing-tight);margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-search-groups .ibiz-search-groups-quick-group-item.is-selected::after{position:absolute;bottom:2px;left:0;width:100%;height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-search-groups .ibiz-search-groups-quick-group-item:hover{color:var(--ibiz-color-primary)}.ibiz-search-groups-dropdown .el-dropdown-menu__item{width:180px;display:flex;align-items:center;justify-content:space-b}.ibiz-search-groups-dropdown .el-dropdown-menu__item .ibiz-search-groups-item-caption{display:inline-block;flex:1;margin:0 var(--ibiz-spacing-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-search-groups-more{display:flex;align-items:center;justify-content:flex-start;padding:var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-search-groups-more:hover{color:var(--ibiz-color-primary)}.ibiz-search-groups-more>ion-icon{margin-left:var(--ibiz-spacing-extra-tight)}.ibiz-search-groups-more.is-selected::after{position:absolute;bottom:0;left:0;width:100%;height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top{display:flex;align-items:center;justify-content:space-between}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top .ibiz-search-groups-content-top-left{display:flex;align-items:center;justify-content:flex-start}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top .ibiz-search-groups-content-top-left>ion-icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-top .ibiz-search-groups-content-top-right ion-icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom{width:100%;margin-top:var(--ibiz-spacing-base);border:1px solid var(--ibiz-color-border)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header{display:flex;align-items:center;justify-content:flex-start;width:100%;background-color:var(--ibiz-color-tertiary-light-hover)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header .ibiz-search-groups-name{width:40%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header .ibiz-search-groups-show{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-header .ibiz-search-groups-action{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row{position:relative;cursor:pointer;border-bottom:1px solid var(--ibiz-color-border);display:flex;align-items:center;justify-content:flex-start}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row:nth-last-child(1){border-bottom:none}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-name{width:40%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-show{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-action{width:30%;padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row .ibiz-search-groups-action .el-link{margin-right:var(--ibiz-spacing-loose)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row:hover{background-color:var(--ibiz-color-primary-light-default)}.ibiz-search-groups-manage-dialog .ibiz-search-groups-manage-dialog-content .ibiz-search-groups-content-bottom .ibiz-search-groups-table-body .ibiz-search-groups-table-row-ghost{background-color:var(--ibiz-color-primary-light-default);opacity:.5}.ibiz-search-groups-new-dialog .ibiz-search-groups-new-dialog-footer .ibiz-search-groups-cancel-btn{color:var(--ibiz-color-text-3);background-color:transparent}.ibiz-search-groups-new-dialog .ibiz-search-groups-new-dialog-footer .ibiz-search-groups-cancel-btn:hover{color:var(--ibiz-color-primary);background-color:transparent}.ibiz-search-groups-edit-dialog .ibiz-search-groups-edit-dialog-footer .ibiz-search-groups-cancel-btn{color:var(--ibiz-color-text-3);background-color:transparent}.ibiz-search-groups-edit-dialog .ibiz-search-groups-edit-dialog-footer .ibiz-search-groups-cancel-btn:hover{color:var(--ibiz-color-primary);background-color:transparent}.ibiz-search-groups-remove-dialog .ibiz-search-groups-remove-dialog-content{margin-bottom:var(--ibiz-spacing-base)}.ibiz-search-groups-remove-dialog .ibiz-search-groups-remove-dialog-content>span{padding:var(--ibiz-spacing-super-tight) var(--ibiz-spacing-tight);margin:0 var(--ibiz-spacing-tight);color:var(--ibiz-color-danger-text);background-color:var(--ibiz-color-danger);border-radius:var(--ibiz-border-radius-small)}.ibiz-search-groups-remove-dialog .ibiz-search-groups-remove-dialog-tip{color:var(--ibiz-color-text-3)}.ibiz-search-groups-remove-confirm-btn.el-button{background-color:var(--ibiz-color-danger)}.ibiz-search-groups-remove-confirm-btn:hover{background-color:var(--ibiz-color-danger-hover)}.ibiz-search-groups-remove-cancel-btn{color:var(--ibiz-color-text-3);background-color:transparent}.ibiz-search-groups-remove-cancel-btn:hover{color:var(--ibiz-color-primary);background-color:transparent}
@@ -55,7 +55,7 @@ const ToolbarControl = /* @__PURE__ */ vue.defineComponent({
55
55
  required: true
56
56
  },
57
57
  /**
58
- * @description 绘制模式
58
+ * @description 绘制模式,可选值为DESIGN、RUNTIME,默认值为RUNTIME
59
59
  */
60
60
  runMode: {
61
61
  type: String,
@@ -92,6 +92,7 @@ const TreeGridControl = /* @__PURE__ */ vue.defineComponent({
92
92
  slots
93
93
  }) {
94
94
  const c = vue3Util.useControlController((...args) => new runtime.TreeGridController(...args));
95
+ vue3Util.useControlPopoverzIndex(c);
95
96
  const ns = vue3Util.useNamespace("control-grid");
96
97
  const ns2 = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
97
98
  const {
@@ -24,6 +24,7 @@ const TreeGridExFieldColumn = /* @__PURE__ */ vue.defineComponent({
24
24
  },
25
25
  setup(props) {
26
26
  const ns = vue3Util.useNamespace("tree-grid-ex-field-column");
27
+ const zIndex = props.controller.treeGrid.state.zIndex;
27
28
  const fieldValue = vue.computed(() => {
28
29
  if (props.row.data._nodeType !== "DE" && props.controller.isFirstShowColumn) {
29
30
  return props.row.data._text;
@@ -78,14 +79,15 @@ const TreeGridExFieldColumn = /* @__PURE__ */ vue.defineComponent({
78
79
  };
79
80
  return {
80
81
  ns,
81
- nodeColumn,
82
- fieldValue,
82
+ zIndex,
83
+ tooltip,
83
84
  showText,
84
85
  clickable,
85
- tooltip,
86
- onInfoTextChange,
86
+ nodeColumn,
87
+ fieldValue,
87
88
  onTextClick,
88
- onActionClick
89
+ onActionClick,
90
+ onInfoTextChange
89
91
  };
90
92
  },
91
93
  render() {
@@ -118,6 +120,7 @@ const TreeGridExFieldColumn = /* @__PURE__ */ vue.defineComponent({
118
120
  actions = this.$slots.actions();
119
121
  } else if (this.row.columnActionsStates[this.controller.name]) {
120
122
  actions = vue.createVNode(vue.resolveComponent("iBizActionToolbar"), {
123
+ "zIndex": this.zIndex,
121
124
  "class": this.ns.e("toolbar"),
122
125
  "action-details": (_c = this.nodeColumn) == null ? void 0 : _c.nodeColumn.deuiactionGroup.uiactionGroupDetails,
123
126
  "actions-state": this.row.columnActionsStates[this.controller.name],
@@ -3,10 +3,10 @@
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var runtime = require('@ibiz-template/runtime');
6
- require('./tree-grid-ex.css');
7
6
  var core = require('@ibiz-template/core');
8
7
  var qxUtil = require('qx-util');
9
8
  var useRowEditPopover = require('./use-row-edit-popover.cjs');
9
+ require('./tree-grid-ex.css');
10
10
 
11
11
  "use strict";
12
12
  function _isSlot(s) {
@@ -46,6 +46,7 @@ const TreeGridExControl = /* @__PURE__ */ vue.defineComponent({
46
46
  },
47
47
  setup() {
48
48
  const c = vue3Util.useControlController((...args) => new runtime.TreeGridExController(...args));
49
+ vue3Util.useControlPopoverzIndex(c);
49
50
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
50
51
  const renderNoData = () => {
51
52
  const {
@@ -42,9 +42,9 @@ const IBizCarousel = /* @__PURE__ */ vue.defineComponent({
42
42
  const downloadUrl = getDownloadUrl(props.data, carousel);
43
43
  carousel.imgUrl = carousel.imgUrl || downloadUrl.replace("%fileId%", carousel.id);
44
44
  if (ibiz.config.common.enableDownloadTicket) {
45
- ibiz.util.file.getDownloadTicket(c.context, {
45
+ ibiz.util.file.getDownloadTicket(c.context, c.params, props.data, {
46
46
  fileId: carousel.id
47
- }).then((downloadTicket) => {
47
+ }, c.downloadTicketParams).then((downloadTicket) => {
48
48
  if (downloadTicket && downloadTicket.ticket) {
49
49
  carousel.imgUrl = downloadUrl.replace("%fileId%", downloadTicket.ticket);
50
50
  }
@@ -174,9 +174,12 @@ const IBizMPicker = /* @__PURE__ */ vue.defineComponent({
174
174
  }
175
175
  };
176
176
  const onSelect = async (selects) => {
177
+ var _a2;
177
178
  setEditable(false);
178
- if (selects.includes("empty") || selects.some((selectKey) => selectKey.includes("DEUIACTION")))
179
+ if (selects.includes("empty") || selects.some((selectKey) => selectKey.includes("DEUIACTION"))) {
180
+ (_a2 = editorRef.value) == null ? void 0 : _a2.blur();
179
181
  return resetCurValue();
182
+ }
180
183
  const val = [];
181
184
  let value = null;
182
185
  const selections = selects.map((select) => {
@@ -139,7 +139,7 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
139
139
  },
140
140
  // 单个文件上传成功之后
141
141
  onSuccess(file, res) {
142
- if (ibiz.config.common.enableDownloadTicket) {
142
+ if (ibiz.config.common.enableDownloadTicket && res.ticket) {
143
143
  ibiz.util.file.setDownloadTicket(res.id, res.ticket);
144
144
  }
145
145
  console.log("".concat(file.name, " \u4E0A\u4F20\u6210\u529F"), res);
@@ -158,9 +158,9 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
158
158
  let url = downloadUrl.replace("%fileId%", res.id);
159
159
  const alt = res.filename;
160
160
  if (ibiz.config.common.enableDownloadTicket) {
161
- const downloadTicket = await ibiz.util.file.getDownloadTicket(c.context, {
161
+ const downloadTicket = await ibiz.util.file.getDownloadTicket(c.context, c.params, props.data, {
162
162
  fileId: res.id
163
- });
163
+ }, c.downloadTicketParams);
164
164
  if (downloadTicket && downloadTicket.ticket) {
165
165
  url = downloadUrl.replace("%fileId%", downloadTicket.ticket);
166
166
  insertFn(url, alt, "");
@@ -40,6 +40,7 @@ var spanLink = require('./span/span-link/span-link.cjs');
40
40
  var input = require('./text-box/input/input.cjs');
41
41
  var ibizInputNumber = require('./text-box/ibiz-input-number/ibiz-input-number.cjs');
42
42
  var ibizInputIp = require('./text-box/ibiz-input-ip/ibiz-input-ip.cjs');
43
+ var signature = require('./text-box/signature/signature.cjs');
43
44
  var ibizDropdown = require('./dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs');
44
45
  var ibizEmojiPicker = require('./dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.cjs');
45
46
  var ibizTreePicker = require('./dropdown-list/ibiz-tree-picker/ibiz-tree-picker.cjs');
@@ -116,6 +117,7 @@ const IBizEditor = {
116
117
  v.component(input.IBizInput.name, input.IBizInput);
117
118
  v.component(ibizInputNumber.IBizInputNumber.name, ibizInputNumber.IBizInputNumber);
118
119
  v.component(ibizInputIp.IBizInputIP.name, ibizInputIp.IBizInputIP);
120
+ v.component(signature.IBizSignature.name, signature.IBizSignature);
119
121
  v.component(ibizDropdown.IBizDropdown.name, ibizDropdown.IBizDropdown);
120
122
  v.component(ibizEmojiPicker.IBizEmojiPicker.name, ibizEmojiPicker.IBizEmojiPicker);
121
123
  v.component(ibizTreePicker.IBizTreePicker.name, ibizTreePicker.IBizTreePicker);
@@ -189,6 +191,10 @@ const IBizEditor = {
189
191
  );
190
192
  runtime.registerEditorProvider("MOBTEXTAREA", () => textBoxEditorProvider);
191
193
  runtime.registerEditorProvider("MOBPASSWORD", () => textBoxEditorProvider);
194
+ runtime.registerEditorProvider(
195
+ "TEXTBOX_SIGNATURE",
196
+ () => new textBoxEditor_provider.TextBoxEditorProvider("SIGNATURE")
197
+ );
192
198
  runtime.registerEditorProvider(
193
199
  "DROPDOWNLIST",
194
200
  () => new dropdownListEditor_provider.DropDownListEditorProvider()
@@ -74,9 +74,9 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
74
74
  const downloadUrl = getDownloadUrl(props.data || {}, data.fileid);
75
75
  let url = downloadUrl.replace("%fileId%", data.fileid);
76
76
  if (ibiz.config.common.enableDownloadTicket && c) {
77
- const downloadTicket = await ibiz.util.file.getDownloadTicket(c.context, {
77
+ const downloadTicket = await ibiz.util.file.getDownloadTicket(c.context, c.params, props.data || {}, {
78
78
  fileId: data.fileid
79
- });
79
+ }, c.downloadTicketParams);
80
80
  if (downloadTicket && downloadTicket.ticket) {
81
81
  url = downloadUrl.replace("%fileId%", downloadTicket.ticket);
82
82
  callback(url);
@@ -3,6 +3,7 @@
3
3
  var input = require('./input/input.cjs');
4
4
  var ibizInputNumber = require('./ibiz-input-number/ibiz-input-number.cjs');
5
5
  var ibizInputIp = require('./ibiz-input-ip/ibiz-input-ip.cjs');
6
+ var signature = require('./signature/signature.cjs');
6
7
  var textBoxEditor_controller = require('./text-box-editor.controller.cjs');
7
8
  var textBoxEditor_provider = require('./text-box-editor.provider.cjs');
8
9
 
@@ -11,5 +12,6 @@ var textBoxEditor_provider = require('./text-box-editor.provider.cjs');
11
12
  exports.IBizInput = input.IBizInput;
12
13
  exports.IBizInputNumber = ibizInputNumber.IBizInputNumber;
13
14
  exports.IBizInputIP = ibizInputIp.IBizInputIP;
15
+ exports.IBizSignature = signature.IBizSignature;
14
16
  exports.TextBoxEditorController = textBoxEditor_controller.TextBoxEditorController;
15
17
  exports.TextBoxEditorProvider = textBoxEditor_provider.TextBoxEditorProvider;
@@ -0,0 +1,240 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var core = require('@ibiz-template/core');
6
+ require('./signature.css');
7
+
8
+ "use strict";
9
+ const IBizSignature = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizSignature",
11
+ props: vue3Util.getInputProps(),
12
+ emits: vue3Util.getEditorEmits(),
13
+ setup(props, {
14
+ emit
15
+ }) {
16
+ const ns = vue3Util.useNamespace("signature");
17
+ const c = props.controller;
18
+ const editorModel = c.model;
19
+ const headers = vue.ref({
20
+ ["".concat(ibiz.env.tokenHeader, "Authorization")]: "".concat(ibiz.env.tokenPrefix, "Bearer ").concat(core.getAppCookie(core.CoreConst.TOKEN))
21
+ });
22
+ const uploadUrl = vue.ref("");
23
+ const downloadUrl = vue.ref("");
24
+ const signatureRef = vue.ref();
25
+ const fullScreen = vue.ref(false);
26
+ const currentDataURL = vue.ref("");
27
+ const currentVal = vue.ref("");
28
+ let saveMode = "img";
29
+ let buttons = [{
30
+ label: ibiz.i18n.t("editor.signature.undo"),
31
+ type: "undo"
32
+ }, {
33
+ label: ibiz.i18n.t("editor.signature.rewrite"),
34
+ type: "rewrite"
35
+ }, {
36
+ label: ibiz.i18n.t("editor.signature.confirm"),
37
+ type: "confirm",
38
+ buttonType: "primary"
39
+ }];
40
+ if (editorModel.editorParams) {
41
+ if (editorModel.editorParams.mode) {
42
+ saveMode = editorModel.editorParams.mode;
43
+ }
44
+ if (editorModel.editorParams.buttons) {
45
+ try {
46
+ buttons = JSON.parse(editorModel.editorParams.buttons);
47
+ } catch (error) {
48
+ ibiz.log.error(error);
49
+ }
50
+ }
51
+ }
52
+ const showFormDefaultContent = vue.computed(() => {
53
+ if (props.controlParams && props.controlParams.editmode === "hover" && !props.readonly) {
54
+ return true;
55
+ }
56
+ return false;
57
+ });
58
+ const restCavans = () => {
59
+ var _a;
60
+ (_a = signatureRef.value) == null ? void 0 : _a.updateSignaturePad(() => {
61
+ vue.nextTick(() => {
62
+ var _a2, _b;
63
+ if (currentDataURL.value) {
64
+ (_a2 = signatureRef.value) == null ? void 0 : _a2.signaturePad.fromDataURL(currentDataURL.value);
65
+ } else {
66
+ (_b = signatureRef.value) == null ? void 0 : _b.signaturePad.clear();
67
+ }
68
+ });
69
+ });
70
+ };
71
+ const handleCurrentVal = async () => {
72
+ var _a, _b;
73
+ if (currentVal.value) {
74
+ ibiz.loading.showRedirect();
75
+ if (saveMode === "img") {
76
+ currentDataURL.value = currentVal.value;
77
+ } else if (downloadUrl.value) {
78
+ const fileData = JSON.parse(currentVal.value)[0];
79
+ const _url = downloadUrl.value.replace("%fileId%", fileData.id);
80
+ try {
81
+ const editorParams = {
82
+ ...c.editorParams
83
+ };
84
+ if (editorParams.exportparams) {
85
+ editorParams.exportParams = JSON.parse(editorParams.exportparams);
86
+ }
87
+ const fileBlob = await ibiz.util.file.requestFile(_url, void 0, {
88
+ context: c.context,
89
+ params: c.params,
90
+ data: props.data,
91
+ file: {
92
+ fileId: fileData.id
93
+ },
94
+ extraParams: editorParams,
95
+ downloadTicketParams: c.downloadTicketParams
96
+ });
97
+ const dataUrl = await ((_a = signatureRef.value) == null ? void 0 : _a.signaturePad.blobToDataURL(fileBlob));
98
+ currentDataURL.value = dataUrl;
99
+ } catch (error) {
100
+ ibiz.log.error(error);
101
+ }
102
+ }
103
+ restCavans();
104
+ (_b = signatureRef.value) == null ? void 0 : _b.signaturePad.loadImage(currentDataURL.value, () => {
105
+ ibiz.loading.hideRedirect();
106
+ });
107
+ }
108
+ };
109
+ vue.watch(() => props.data, (newVal) => {
110
+ if (newVal) {
111
+ const urls = ibiz.util.file.calcFileUpDownUrl(c.context, c.params, newVal, c.editorParams);
112
+ uploadUrl.value = urls.uploadUrl;
113
+ downloadUrl.value = urls.downloadUrl;
114
+ }
115
+ }, {
116
+ immediate: true,
117
+ deep: true
118
+ });
119
+ vue.watch(() => props.value, async (newVal, oldVal) => {
120
+ if (newVal !== oldVal) {
121
+ if (!newVal) {
122
+ currentVal.value = "";
123
+ } else {
124
+ currentVal.value = "".concat(newVal || "");
125
+ }
126
+ await handleCurrentVal();
127
+ }
128
+ }, {
129
+ immediate: true
130
+ });
131
+ const handleEmit = (_value) => {
132
+ emit("change", _value);
133
+ };
134
+ const getFileType = (dataURL) => {
135
+ const parts = dataURL.split(",");
136
+ const mime = parts[0].split(":")[1].split(";")[0];
137
+ return {
138
+ type: mime
139
+ };
140
+ };
141
+ const handleUpload = async (dataURL) => {
142
+ const {
143
+ type
144
+ } = getFileType(dataURL);
145
+ const blob = core.base64ToBlob(dataURL);
146
+ const fileName = "signature_".concat(Date.now(), ".png");
147
+ const file = new File([blob], fileName, {
148
+ type
149
+ });
150
+ const fileInfo = await ibiz.util.file.fileUpload(uploadUrl.value, file, headers.value);
151
+ return fileInfo;
152
+ };
153
+ const handleRemove = () => {
154
+ var _a;
155
+ (_a = signatureRef.value) == null ? void 0 : _a.signaturePad.clear();
156
+ currentDataURL.value = "";
157
+ handleEmit(null);
158
+ };
159
+ const handleFileChange = async (dataURL) => {
160
+ const file = await handleUpload(dataURL);
161
+ handleEmit(JSON.stringify([{
162
+ name: file.name,
163
+ id: file.id
164
+ }]));
165
+ };
166
+ const handleConfirm = () => {
167
+ var _a, _b, _c;
168
+ fullScreen.value = false;
169
+ if (!((_a = signatureRef.value) == null ? void 0 : _a.signaturePad.isRedrawn()))
170
+ return;
171
+ if ((_b = signatureRef.value) == null ? void 0 : _b.signaturePad.isEmpty()) {
172
+ handleRemove();
173
+ return;
174
+ }
175
+ const dataURL = (_c = signatureRef.value) == null ? void 0 : _c.signaturePad.toDataURL();
176
+ if (dataURL === currentDataURL.value)
177
+ return;
178
+ currentDataURL.value = dataURL;
179
+ switch (saveMode) {
180
+ case "file":
181
+ handleFileChange(dataURL);
182
+ break;
183
+ case "img":
184
+ default:
185
+ handleEmit(dataURL);
186
+ break;
187
+ }
188
+ };
189
+ const handleButtonClick = (_type) => {
190
+ var _a, _b;
191
+ switch (_type) {
192
+ case "undo":
193
+ (_a = signatureRef.value) == null ? void 0 : _a.signaturePad.undoLastStep();
194
+ break;
195
+ case "rewrite":
196
+ (_b = signatureRef.value) == null ? void 0 : _b.signaturePad.clear();
197
+ break;
198
+ case "confirm":
199
+ handleConfirm();
200
+ break;
201
+ default:
202
+ break;
203
+ }
204
+ };
205
+ return {
206
+ c,
207
+ ns,
208
+ signatureRef,
209
+ fullScreen,
210
+ currentDataURL,
211
+ buttons,
212
+ showFormDefaultContent,
213
+ handleButtonClick
214
+ };
215
+ },
216
+ render() {
217
+ return vue.createVNode("div", {
218
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("show-default", this.showFormDefaultContent)]
219
+ }, [vue.createVNode(vue.resolveComponent("iBizSignaturePad"), {
220
+ "ref": "signatureRef",
221
+ "class": this.ns.e("pad"),
222
+ "options": {
223
+ ...this.c.model.editorParams,
224
+ ...this.$attrs
225
+ }
226
+ }, null), !this.readonly && vue.createVNode("div", {
227
+ "class": this.ns.e("toolbar")
228
+ }, [this.buttons.map((_btn) => {
229
+ return vue.createVNode(vue.resolveComponent("el-button"), {
230
+ "disabled": this.disabled,
231
+ "type": _btn.buttonType && _btn.buttonType.toLowerCase() || "default",
232
+ "onClick": () => this.handleButtonClick(_btn.type)
233
+ }, {
234
+ default: () => [_btn.label]
235
+ });
236
+ })])]);
237
+ }
238
+ });
239
+
240
+ exports.IBizSignature = IBizSignature;
@@ -0,0 +1 @@
1
+ .ibiz-signature{--ibiz-signature-min-height:200px;width:100%;height:100%;min-height:var(--ibiz-signature-min-height)}.ibiz-signature__pad .ibiz-signature-pad__container{background-color:var(--ibiz-color-bg-0)}.ibiz-signature__toolbar{display:flex;align-items:center;justify-content:flex-end;width:100%;margin-top:var(--ibiz-spacing-base)}.ibiz-signature--readonly{pointer-events:none}.ibiz-signature--disabled{pointer-events:none}.ibiz-form-item .ibiz-signature.is-show-default:hover .ibiz-signature__toolbar{display:flex}.ibiz-form-item .ibiz-signature.is-show-default .ibiz-signature__toolbar{display:none}
@@ -21,6 +21,10 @@ class TextBoxEditorProvider {
21
21
  this.formEditor = "IBizInputIP";
22
22
  this.gridEditor = "IBizInputIP";
23
23
  }
24
+ if (editorType === "SIGNATURE") {
25
+ this.formEditor = "IBizSignature";
26
+ this.gridEditor = "IBizSignature";
27
+ }
24
28
  }
25
29
  async createController(editorModel, parentController) {
26
30
  const c = new textBoxEditor_controller.TextBoxEditorController(editorModel, parentController);
@@ -102,7 +102,15 @@ function useIViewUpload(props, valueChange, c) {
102
102
  const downloadUrl = getDownloadUrl(props.data, file);
103
103
  file.url = file.url || downloadUrl.replace("%fileId%", file.id);
104
104
  if (ibiz.config.common.enableDownloadTicket) {
105
- ibiz.util.file.getDownloadTicket(c.context, { fileId: file.id }).then((downloadTicket) => {
105
+ ibiz.util.file.getDownloadTicket(
106
+ c.context,
107
+ c.params,
108
+ props.data,
109
+ {
110
+ fileId: file.id
111
+ },
112
+ c.downloadTicketParams
113
+ ).then((downloadTicket) => {
106
114
  if (downloadTicket && downloadTicket.ticket) {
107
115
  file.url = downloadUrl.replace(
108
116
  "%fileId%",
@@ -153,7 +161,7 @@ function useIViewUpload(props, valueChange, c) {
153
161
  if (!response) {
154
162
  return;
155
163
  }
156
- if (ibiz.config.common.enableDownloadTicket) {
164
+ if (ibiz.config.common.enableDownloadTicket && response.ticket) {
157
165
  ibiz.util.file.setDownloadTicket(response.id, response.ticket);
158
166
  }
159
167
  uploadCache.cacheFiles.push({
@@ -203,7 +211,8 @@ function useIViewUpload(props, valueChange, c) {
203
211
  params: c.params,
204
212
  data: props.data,
205
213
  file: { fileId: file.id, ...file },
206
- extraParams: editorParams
214
+ extraParams: editorParams,
215
+ downloadTicketParams: c.downloadTicketParams
207
216
  });
208
217
  };
209
218
  const limit = vue.computed(() => {
@@ -705,6 +705,13 @@ var index = {
705
705
  allProhibited: "All prohibited",
706
706
  expandAll: "Expand all",
707
707
  collapseAll: "Collapse all"
708
+ },
709
+ signature: {
710
+ undo: "Undo",
711
+ rewrite: "Rewrite",
712
+ confirm: "Confirm",
713
+ addSignature: "Click here to add signature",
714
+ signaturePrompt: "Please write horizontally in the blank area"
708
715
  }
709
716
  },
710
717
  panelComponent: {