@ibiz-template/vue3-components 0.7.41-alpha.12 → 0.7.41-alpha.14

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 (154) hide show
  1. package/dist/ibiz-markdown-editor-0VHzFa2l.js +1 -0
  2. package/dist/index-1fHusiqt.js +4 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{wang-editor-TYKjfyR5.js → wang-editor-z0RY8bO1.js} +1 -1
  6. package/dist/{xlsx-util-Q9msA8ef.js → xlsx-util-8Du1A340.js} +1 -1
  7. package/es/control/calendar/calendar.mjs +4 -1
  8. package/es/control/calendar/components/calendar-user/calendar-user.css +1 -1
  9. package/es/control/calendar/components/calendar-user/calendar-user.mjs +76 -2
  10. package/es/control/data-view/data-view.d.ts +1 -1
  11. package/es/control/data-view/index.d.ts +1 -1
  12. package/es/control/drbar/drbar.controller.d.ts +6 -0
  13. package/es/control/drbar/drbar.controller.mjs +8 -0
  14. package/es/control/drbar/drbar.mjs +6 -0
  15. package/es/control/drtab/drtab-control.util.mjs +1 -1
  16. package/es/control/drtab/drtab.controller.d.ts +6 -0
  17. package/es/control/drtab/drtab.controller.mjs +9 -0
  18. package/es/control/drtab/drtab.mjs +13 -0
  19. package/es/control/form/form/index.mjs +2 -0
  20. package/es/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  21. package/es/control/form/form-detail/form-iframe/form-iframe.d.ts +29 -0
  22. package/es/control/form/form-detail/form-iframe/form-iframe.mjs +53 -0
  23. package/es/control/form/form-detail/form-iframe/form-iframe.provider.d.ts +13 -0
  24. package/es/control/form/form-detail/form-iframe/form-iframe.provider.mjs +21 -0
  25. package/es/control/form/form-detail/form-iframe/index.d.ts +25 -0
  26. package/es/control/form/form-detail/form-iframe/index.mjs +12 -0
  27. package/es/control/form/form-detail/form-item/form-item.css +1 -1
  28. package/es/control/form/form-detail/form-item/form-item.mjs +6 -4
  29. package/es/control/form/form-detail/index.d.ts +1 -0
  30. package/es/control/form/form-detail/index.mjs +1 -0
  31. package/es/control/form/index.mjs +1 -0
  32. package/es/control/gantt/gantt.d.ts +1 -1
  33. package/es/control/gantt/gantt.mjs +4 -1
  34. package/es/control/gantt/index.d.ts +1 -1
  35. package/es/control/grid/grid/grid.d.ts +1 -1
  36. package/es/control/grid/grid/index.d.ts +1 -1
  37. package/es/control/grid/grid/index.mjs +2 -0
  38. package/es/control/grid/grid-column/grid-field-column/grid-field-column.d.ts +4 -4
  39. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +5 -8
  40. package/es/control/grid/virtualized-table/index.d.ts +136 -0
  41. package/es/control/grid/virtualized-table/index.mjs +18 -0
  42. package/es/control/grid/virtualized-table/virtualized-table.css +1 -0
  43. package/es/control/grid/virtualized-table/virtualized-table.d.ts +200 -0
  44. package/es/control/grid/virtualized-table/virtualized-table.mjs +325 -0
  45. package/es/control/grid/virtualized-table/virtualized-table.provider.d.ts +10 -0
  46. package/es/control/grid/virtualized-table/virtualized-table.provider.mjs +14 -0
  47. package/es/control/grid/virtualized-table/virtualized-table.util.d.ts +95 -0
  48. package/es/control/grid/virtualized-table/virtualized-table.util.mjs +191 -0
  49. package/es/control/index.mjs +1 -0
  50. package/es/control/kanban/index.d.ts +44 -1
  51. package/es/control/kanban/kanban.d.ts +56 -1
  52. package/es/control/kanban/kanban.mjs +36 -2
  53. package/es/control/list/index.d.ts +1 -1
  54. package/es/control/list/list.d.ts +1 -1
  55. package/es/control/list/list.mjs +1 -1
  56. package/es/control/search-bar/search-bar.mjs +3 -0
  57. package/es/control/tab-exp-panel/index.d.ts +1 -0
  58. package/es/control/tab-exp-panel/tab-exp-panel.css +1 -1
  59. package/es/control/tab-exp-panel/tab-exp-panel.d.ts +2 -1
  60. package/es/control/tab-exp-panel/tab-exp-panel.mjs +21 -2
  61. package/es/control/tree/index.d.ts +1 -1
  62. package/es/control/tree/tree.d.ts +1 -1
  63. package/es/control/tree/tree.mjs +4 -1
  64. package/es/control/tree-grid/index.d.ts +1 -1
  65. package/es/control/tree-grid/tree-grid.d.ts +1 -1
  66. package/es/editor/array/ibiz-array/ibiz-array.css +1 -1
  67. package/es/editor/array/ibiz-array/ibiz-array.mjs +4 -1
  68. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -1
  69. package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.d.ts +1 -1
  70. package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.d.ts +3 -2
  71. package/es/editor/date-range-select/date-range-select-picker/date-range-select.d.ts +5 -5
  72. package/es/editor/date-range-select/date-range-select.controller.mjs +9 -0
  73. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +1 -0
  74. package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.d.ts +4 -3
  75. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  76. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.d.ts +10 -7
  77. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.mjs +5 -5
  78. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +1 -1
  79. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +3 -3
  80. package/es/editor/span/span/span.d.ts +1 -1
  81. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  82. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.d.ts +3 -77
  83. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.mjs +167 -108
  84. package/es/editor/text-box/input/input.d.ts +4 -4
  85. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +1 -1
  86. package/es/index.mjs +1 -0
  87. package/es/panel-component/panel-button/panel-button.controller.mjs +2 -1
  88. package/es/panel-component/panel-button/panel-button.mjs +1 -1
  89. package/es/util/app-util/app-util.d.ts +54 -2
  90. package/es/util/app-util/app-util.mjs +48 -1
  91. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  92. package/es/view-engine/custom-view.engine.d.ts +1 -1
  93. package/es/view-engine/custom-view.engine.mjs +5 -5
  94. package/es/view-engine/de-index-view-engine.mjs +1 -1
  95. package/es/view-engine/edit-view.engine.mjs +1 -1
  96. package/es/view-engine/md-custom-view.engine.d.ts +1 -1
  97. package/es/view-engine/md-custom-view.engine.mjs +5 -5
  98. package/es/view-engine/opt-view.engine.mjs +1 -1
  99. package/lib/control/calendar/calendar.cjs +4 -1
  100. package/lib/control/calendar/components/calendar-user/calendar-user.cjs +76 -2
  101. package/lib/control/calendar/components/calendar-user/calendar-user.css +1 -1
  102. package/lib/control/drbar/drbar.cjs +6 -0
  103. package/lib/control/drbar/drbar.controller.cjs +8 -0
  104. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  105. package/lib/control/drtab/drtab.cjs +13 -0
  106. package/lib/control/drtab/drtab.controller.cjs +9 -0
  107. package/lib/control/form/form/index.cjs +2 -0
  108. package/lib/control/form/form-detail/form-iframe/form-iframe.cjs +58 -0
  109. package/lib/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  110. package/lib/control/form/form-detail/form-iframe/form-iframe.provider.cjs +23 -0
  111. package/lib/control/form/form-detail/form-iframe/index.cjs +17 -0
  112. package/lib/control/form/form-detail/form-item/form-item.cjs +5 -3
  113. package/lib/control/form/form-detail/form-item/form-item.css +1 -1
  114. package/lib/control/form/form-detail/index.cjs +2 -0
  115. package/lib/control/form/index.cjs +6 -4
  116. package/lib/control/gantt/gantt.cjs +4 -1
  117. package/lib/control/grid/grid/index.cjs +2 -0
  118. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +3 -6
  119. package/lib/control/grid/virtualized-table/index.cjs +23 -0
  120. package/lib/control/grid/virtualized-table/virtualized-table.cjs +327 -0
  121. package/lib/control/grid/virtualized-table/virtualized-table.css +1 -0
  122. package/lib/control/grid/virtualized-table/virtualized-table.provider.cjs +16 -0
  123. package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +193 -0
  124. package/lib/control/index.cjs +82 -80
  125. package/lib/control/kanban/kanban.cjs +34 -0
  126. package/lib/control/list/list.cjs +1 -1
  127. package/lib/control/search-bar/search-bar.cjs +3 -0
  128. package/lib/control/tab-exp-panel/tab-exp-panel.cjs +20 -1
  129. package/lib/control/tab-exp-panel/tab-exp-panel.css +1 -1
  130. package/lib/control/tree/tree.cjs +4 -1
  131. package/lib/editor/array/ibiz-array/ibiz-array.cjs +4 -1
  132. package/lib/editor/array/ibiz-array/ibiz-array.css +1 -1
  133. package/lib/editor/date-range-select/date-range-select.controller.cjs +9 -0
  134. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.cjs +5 -5
  135. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  136. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +1 -1
  137. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.cjs +166 -107
  138. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  139. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +1 -1
  140. package/lib/index.cjs +112 -110
  141. package/lib/panel-component/panel-button/panel-button.cjs +1 -1
  142. package/lib/panel-component/panel-button/panel-button.controller.cjs +2 -1
  143. package/lib/util/app-util/app-util.cjs +47 -0
  144. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  145. package/lib/view-engine/custom-view.engine.cjs +5 -5
  146. package/lib/view-engine/de-index-view-engine.cjs +1 -1
  147. package/lib/view-engine/edit-view.engine.cjs +1 -1
  148. package/lib/view-engine/md-custom-view.engine.cjs +5 -5
  149. package/lib/view-engine/opt-view.engine.cjs +1 -1
  150. package/package.json +5 -5
  151. package/dist/ibiz-markdown-editor-KyK5mBTS.js +0 -1
  152. package/dist/index-pyv7Wdpx.js +0 -4
  153. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.12_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.41-alpha.14_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
  154. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.12_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.41-alpha.14_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
@@ -284,7 +284,10 @@ const CalendarControl = /* @__PURE__ */ defineComponent({
284
284
  if (!contextMenuC.model.detoolbarItems) {
285
285
  return;
286
286
  }
287
- await contextMenuC.calcButtonState(item.deData || (item.deData ? item : void 0), targetCalendarItem.appDataEntityId);
287
+ await contextMenuC.calcButtonState(item.deData || (item.deData ? item : void 0), targetCalendarItem.appDataEntityId, {
288
+ view: c.view,
289
+ ctrl: c
290
+ });
288
291
  const menuState = contextMenuC.state.buttonsState;
289
292
  const menus = calcContextMenuItems(contextMenuC.model.detoolbarItems, item, evt, menuState);
290
293
  if (!menus.length) {
@@ -1 +1 @@
1
- .ibiz-calendar-user{--ibiz-calendar-user-cell-min-height:60px;display:flex;flex-direction:column;width:100%;height:100%;padding:var(--ibiz-spacing-base);overflow:hidden}.ibiz-calendar-user__cell{min-height:var(--ibiz-calendar-user-cell-min-height);border-bottom:1px solid var(--ibiz-color-tertiary);border-left:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__cell:last-child{border-right:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__black{width:100%;height:100%}.ibiz-calendar-user .ibiz-calendar-user-more{flex-shrink:0;padding-left:var(--ibiz-spacing-tight);overflow:hidden;font-size:var(--ibiz-font-size-small);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-calendar-user .ibiz-calendar-user-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-calendar-user .ibiz-calendar-user-header{flex-shrink:0;padding-right:4px}.ibiz-calendar-user-header__top{border-top:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user-header__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-header__week-day{display:flex;flex:1;align-items:center;justify-content:center;width:100%}.ibiz-calendar-user-header__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}.ibiz-calendar-user-header__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user .ibiz-calendar-user-content{flex:1;width:100%;height:100%;overflow:auto}.ibiz-calendar-user-content__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-content__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user-content__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}
1
+ .ibiz-calendar-user{--ibiz-calendar-user-cell-min-height:60px;display:flex;flex-direction:column;width:100%;height:100%;padding:var(--ibiz-spacing-base);overflow:hidden}.ibiz-calendar-user__cell{min-height:var(--ibiz-calendar-user-cell-min-height);border-bottom:1px solid var(--ibiz-color-tertiary);border-left:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__cell:last-child{border-right:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__black{width:100%;height:100%}.ibiz-calendar-user .ibiz-calendar-user-more{flex-shrink:0;padding-left:var(--ibiz-spacing-tight);overflow:hidden;font-size:var(--ibiz-font-size-small);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-calendar-user .ibiz-calendar-user-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-calendar-user .ibiz-calendar-user-header{flex-shrink:0}.ibiz-calendar-user-header__top{border-top:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user-header__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-header__week-day{display:flex;flex:1;align-items:center;justify-content:center;width:100%}.ibiz-calendar-user-header__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}.ibiz-calendar-user-header__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user .ibiz-calendar-user-content{position:relative;flex:1;width:100%;height:100%;overflow:hidden}.ibiz-calendar-user-content__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-content__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user-content__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}.ibiz-calendar-user-content__wrapping{width:100%;height:100%;overflow:auto}.ibiz-calendar-user-content__wrapping::-webkit-scrollbar{display:none}.ibiz-calendar-user-scroll-bar{position:absolute;top:var(--ibiz-calendar-user-scroll-bar-thumb-top);right:0;z-index:10;width:4px;height:100%;border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-calendar-user-scroll-bar__thumb{width:4px;height:var(--ibiz-calendar-user-scroll-bar-thumb-height);cursor:pointer;background-color:#d3d3d3;border-radius:var(--ibiz-border-radius-extra-small)}
@@ -20,6 +20,14 @@ const CalendarUser = /* @__PURE__ */ defineComponent({
20
20
  timeList.value = getDayTime();
21
21
  const popoverValue = ref("");
22
22
  const curPopover = ref();
23
+ const scrollContainerRef = ref();
24
+ const scrollTop = ref(0);
25
+ const thumbHeight = ref(0);
26
+ const enableScroll = ref(false);
27
+ const orginY = ref(0);
28
+ const realHeight = ref(1);
29
+ const visibleHeight = ref(1);
30
+ const isScroll = ref(false);
23
31
  watch(() => props.selectedDay, () => {
24
32
  if (props.selectedDay) {
25
33
  weekday.value = calcCurWeek(new Date(props.selectedDay));
@@ -102,9 +110,62 @@ const CalendarUser = /* @__PURE__ */ defineComponent({
102
110
  }, [renderEvent(item)]);
103
111
  })])]);
104
112
  };
113
+ const onMouseMove = (event) => {
114
+ if (enableScroll.value) {
115
+ const y = event.clientY - orginY.value;
116
+ scrollTop.value += y;
117
+ orginY.value = event.clientY;
118
+ if (scrollContainerRef.value) {
119
+ scrollContainerRef.value.scrollTop = realHeight.value * (scrollTop.value / visibleHeight.value);
120
+ }
121
+ }
122
+ event.preventDefault();
123
+ event.stopPropagation();
124
+ };
125
+ const onMouseUp = (event) => {
126
+ enableScroll.value = false;
127
+ event.preventDefault();
128
+ event.stopPropagation();
129
+ document.removeEventListener("mousemove", onMouseMove);
130
+ document.removeEventListener("mouseup", onMouseUp);
131
+ };
132
+ const onMouseDown = (event) => {
133
+ orginY.value = event.clientY;
134
+ enableScroll.value = true;
135
+ event.preventDefault();
136
+ event.stopPropagation();
137
+ document.addEventListener("mousemove", onMouseMove);
138
+ document.addEventListener("mouseup", onMouseUp);
139
+ };
140
+ const renderScrollbar = () => {
141
+ return createVNode("div", {
142
+ "class": ns.b("scroll-bar")
143
+ }, [createVNode("div", {
144
+ "class": ns.be("scroll-bar", "thumb"),
145
+ "onMousedown": onMouseDown
146
+ }, null)]);
147
+ };
148
+ const onScroll = (event) => {
149
+ var _a, _b, _c;
150
+ const realTop = ((_a = event.target) == null ? void 0 : _a.scrollTop) || 0;
151
+ realHeight.value = (_b = event.target) == null ? void 0 : _b.scrollHeight;
152
+ visibleHeight.value = (_c = event.target) == null ? void 0 : _c.clientHeight;
153
+ const realRatio = realTop / realHeight.value;
154
+ scrollTop.value = realRatio * visibleHeight.value;
155
+ };
105
156
  const renderWeekContent = () => {
106
157
  return createVNode("div", {
107
- "class": ns.b("content")
158
+ "class": ns.b("content"),
159
+ "style": {
160
+ ["--".concat(ns.namespace, "-calendar-user-scroll-bar-thumb-height")]: "".concat(thumbHeight.value, "px"),
161
+ ["--".concat(ns.namespace, "-calendar-user-scroll-bar-thumb-top")]: "".concat(scrollTop.value, "px")
162
+ }
163
+ }, [createVNode("div", {
164
+ "class": ns.be("content", "wrapping"),
165
+ "ref": (el) => {
166
+ scrollContainerRef.value = el;
167
+ },
168
+ "onScroll": onScroll
108
169
  }, [timeList.value.map((item) => {
109
170
  return createVNode("div", {
110
171
  "class": ns.be("content", "time-item")
@@ -115,8 +176,21 @@ const CalendarUser = /* @__PURE__ */ defineComponent({
115
176
  "class": [ns.be("content", "week-item"), ns.e("cell")]
116
177
  }, [renderEvent(day, item)]);
117
178
  })]);
118
- })]);
179
+ })]), isScroll.value && renderScrollbar()]);
119
180
  };
181
+ watch(() => scrollContainerRef.value, () => {
182
+ if (scrollContainerRef.value) {
183
+ realHeight.value = scrollContainerRef.value.scrollHeight;
184
+ visibleHeight.value = scrollContainerRef.value.clientHeight;
185
+ if (realHeight.value > visibleHeight.value) {
186
+ isScroll.value = true;
187
+ }
188
+ thumbHeight.value = visibleHeight.value * (visibleHeight.value / realHeight.value);
189
+ }
190
+ }, {
191
+ immediate: true,
192
+ deep: true
193
+ });
120
194
  return {
121
195
  ns,
122
196
  renderWeekHeader,
@@ -175,8 +175,8 @@ export declare const DataViewControl: import("vue").DefineComponent<{
175
175
  };
176
176
  }>>, {
177
177
  params: import("@ibiz-template/core").IApiParams;
178
- mdctrlActiveMode: number;
179
178
  singleSelect: boolean;
179
+ mdctrlActiveMode: number;
180
180
  isSimple: boolean;
181
181
  loadDefault: boolean;
182
182
  }, {}>;
@@ -114,8 +114,8 @@ export declare const IBizDataViewControl: import("@ibiz-template/vue3-util").Typ
114
114
  };
115
115
  }>>, {
116
116
  params: import("@ibiz-template/core").IApiParams;
117
- mdctrlActiveMode: number;
118
117
  singleSelect: boolean;
118
+ mdctrlActiveMode: number;
119
119
  isSimple: boolean;
120
120
  loadDefault: boolean;
121
121
  }, {}>>;
@@ -210,4 +210,10 @@ export declare class DRBarController extends ControlController<IDEDRBar, IDRBarS
210
210
  * @return {*} {Promise<void>}
211
211
  */
212
212
  protected onDestroyed(): Promise<void>;
213
+ /**
214
+ * @description 设置激活项
215
+ * @param {string} name
216
+ * @memberof DRBarController
217
+ */
218
+ setActive(name: string): void;
213
219
  }
@@ -555,6 +555,14 @@ class DRBarController extends ControlController {
555
555
  this.counter.destroy();
556
556
  }
557
557
  }
558
+ /**
559
+ * @description 设置激活项
560
+ * @param {string} name
561
+ * @memberof DRBarController
562
+ */
563
+ setActive(name) {
564
+ this.handleSelectChange(name);
565
+ }
558
566
  }
559
567
 
560
568
  export { DRBarController };
@@ -78,7 +78,13 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
78
78
  });
79
79
  c.setRouter(router);
80
80
  const handleSelect = (key) => {
81
+ var _a;
81
82
  c.handleSelectChange(key);
83
+ const drBarItem = (_a = c.model.dedrctrlItems) == null ? void 0 : _a.find((item) => item.id === key);
84
+ c.evt.emit("onTabChange", {
85
+ name: key,
86
+ item: drBarItem || c.state.drBarItems[0]
87
+ });
82
88
  };
83
89
  const route = useRoute();
84
90
  let expViewRoutePath = "";
@@ -1,5 +1,5 @@
1
1
  import { ref, watch, watchEffect, onUnmounted } from 'vue';
2
- import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.12_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';
2
+ import { defaultNamespace } from '../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.14_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';
3
3
 
4
4
  "use strict";
5
5
  function useAppDRTab(c, controlRef, counterData) {
@@ -220,4 +220,10 @@ export declare class DRTabController extends ControlController<IDEDRTab, IDRTabS
220
220
  * @return {*} {Promise<void>}
221
221
  */
222
222
  protected onDestroyed(): Promise<void>;
223
+ /**
224
+ * @description 设置激活项
225
+ * @param {string} name
226
+ * @memberof DRTabController
227
+ */
228
+ setActive(name: string): void;
223
229
  }
@@ -505,6 +505,15 @@ class DRTabController extends ControlController {
505
505
  this.counter.destroy();
506
506
  }
507
507
  }
508
+ /**
509
+ * @description 设置激活项
510
+ * @param {string} name
511
+ * @memberof DRTabController
512
+ */
513
+ setActive(name) {
514
+ this.state.activeName = name;
515
+ this.handleTabChange();
516
+ }
508
517
  }
509
518
 
510
519
  export { DRTabController };
@@ -76,12 +76,25 @@ const DRTabControl = /* @__PURE__ */ defineComponent({
76
76
  (_a2 = c.counter) == null ? void 0 : _a2.offChange(fn);
77
77
  });
78
78
  c.setRouter(router);
79
+ const emitChange = () => {
80
+ var _a2;
81
+ const {
82
+ activeName
83
+ } = c.state;
84
+ const drBarItem = (_a2 = c.model.dedrtabPages) == null ? void 0 : _a2.find((item) => item.id === activeName);
85
+ c.evt.emit("onTabChange", {
86
+ name: activeName,
87
+ item: drBarItem || c.state.drTabPages[0]
88
+ });
89
+ };
79
90
  const handleTabChange = () => {
80
91
  c.handleTabChange();
92
+ emitChange();
81
93
  };
82
94
  const onTabChange = (key) => {
83
95
  c.state.activeName = key;
84
96
  c.handleTabChange();
97
+ emitChange();
85
98
  };
86
99
  const route = useRoute();
87
100
  let expViewRoutePath = "";
@@ -11,6 +11,7 @@ import { IBizFormRawItem } from '../form-detail/form-rawitem/index.mjs';
11
11
  import { IBizFormTabPanel } from '../form-detail/form-tab-panel/index.mjs';
12
12
  import { IBizFormTabPage } from '../form-detail/form-tab-page/index.mjs';
13
13
  import { IBizFormButtonList } from '../form-detail/form-button-list/index.mjs';
14
+ import { IBizFormIFrame } from '../form-detail/form-iframe/index.mjs';
14
15
 
15
16
  "use strict";
16
17
  const IBizFormControl = withInstall(FormControl, function(v) {
@@ -25,6 +26,7 @@ const IBizFormControl = withInstall(FormControl, function(v) {
25
26
  v.use(IBizFormTabPanel);
26
27
  v.use(IBizFormTabPage);
27
28
  v.use(IBizFormButtonList);
29
+ v.use(IBizFormIFrame);
28
30
  });
29
31
 
30
32
  export { IBizFormControl, IBizFormControl as default };
@@ -0,0 +1 @@
1
+ .ibiz-form-iframe{width:100%;height:100%}.ibiz-form-iframe__iframe{width:100%;height:100%}
@@ -0,0 +1,29 @@
1
+ import { PropType } from 'vue';
2
+ import { IDEFormIFrame } from '@ibiz/model-core';
3
+ import { FormIFrameController } from '@ibiz-template/runtime';
4
+ import './form-iframe.scss';
5
+ export declare const FormIFrame: import("vue").DefineComponent<{
6
+ modelData: {
7
+ type: PropType<IDEFormIFrame>;
8
+ required: true;
9
+ };
10
+ controller: {
11
+ type: typeof FormIFrameController;
12
+ required: true;
13
+ };
14
+ }, {
15
+ ns: import("@ibiz-template/core").Namespace;
16
+ url: import("vue").ComputedRef<string>;
17
+ loading: import("vue").Ref<boolean>;
18
+ onLoad: () => void;
19
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
20
+ modelData: {
21
+ type: PropType<IDEFormIFrame>;
22
+ required: true;
23
+ };
24
+ controller: {
25
+ type: typeof FormIFrameController;
26
+ required: true;
27
+ };
28
+ }>>, {}, {}>;
29
+ export default FormIFrame;
@@ -0,0 +1,53 @@
1
+ import { ref, computed, createVNode, resolveDirective, withDirectives, defineComponent } from 'vue';
2
+ import { useNamespace, useController } from '@ibiz-template/vue3-util';
3
+ import { FormIFrameController } from '@ibiz-template/runtime';
4
+ import './form-iframe.css';
5
+
6
+ "use strict";
7
+ const FormIFrame = /* @__PURE__ */ defineComponent({
8
+ name: "IBizFormIFrame",
9
+ props: {
10
+ modelData: {
11
+ type: Object,
12
+ required: true
13
+ },
14
+ controller: {
15
+ type: FormIFrameController,
16
+ required: true
17
+ }
18
+ },
19
+ setup(props) {
20
+ const c = props.controller;
21
+ const ns = useNamespace("form-iframe");
22
+ useController(c);
23
+ const loading = ref(true);
24
+ const url = computed(() => {
25
+ return c.calcIFrameUrl();
26
+ });
27
+ const onLoad = () => {
28
+ loading.value = false;
29
+ };
30
+ return {
31
+ ns,
32
+ url,
33
+ loading,
34
+ onLoad
35
+ };
36
+ },
37
+ render() {
38
+ if (!this.controller.state.visible || !this.url) {
39
+ return null;
40
+ }
41
+ return withDirectives(createVNode("div", {
42
+ "class": this.ns.b()
43
+ }, [createVNode("iframe", {
44
+ "class": this.ns.e("iframe"),
45
+ "src": this.url,
46
+ "frameborder": "0",
47
+ "onLoad": () => this.onLoad(),
48
+ "onError": () => this.onLoad()
49
+ }, null)]), [[resolveDirective("loading"), this.loading]]);
50
+ }
51
+ });
52
+
53
+ export { FormIFrame, FormIFrame as default };
@@ -0,0 +1,13 @@
1
+ import { FormController, FormIFrameController, IFormDetailContainerController, IFormDetailProvider } from '@ibiz-template/runtime';
2
+ import { IDEFormIFrame } from '@ibiz/model-core';
3
+ /**
4
+ * 表单直接嵌入视图
5
+ *
6
+ * @export
7
+ * @class FormIFrameProvider
8
+ * @implements {IFormDetailProvider}
9
+ */
10
+ export declare class FormIFrameProvider implements IFormDetailProvider {
11
+ component: string;
12
+ createController(detailModel: IDEFormIFrame, form: FormController, parent: IFormDetailContainerController | undefined): Promise<FormIFrameController>;
13
+ }
@@ -0,0 +1,21 @@
1
+ import { FormIFrameController } from '@ibiz-template/runtime';
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 FormIFrameProvider {
11
+ constructor() {
12
+ __publicField(this, "component", "IBizFormIFrame");
13
+ }
14
+ async createController(detailModel, form, parent) {
15
+ const c = new FormIFrameController(detailModel, form, parent);
16
+ await c.init();
17
+ return c;
18
+ }
19
+ }
20
+
21
+ export { FormIFrameProvider };
@@ -0,0 +1,25 @@
1
+ export declare const IBizFormIFrame: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IDEFormIFrame>;
4
+ required: true;
5
+ };
6
+ controller: {
7
+ type: typeof import("@ibiz-template/runtime").FormIFrameController;
8
+ required: true;
9
+ };
10
+ }, {
11
+ ns: import("@ibiz-template/core").Namespace;
12
+ url: import("vue").ComputedRef<string>;
13
+ loading: import("vue").Ref<boolean>;
14
+ onLoad: () => void;
15
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
16
+ modelData: {
17
+ type: import("vue").PropType<import("@ibiz/model-core").IDEFormIFrame>;
18
+ required: true;
19
+ };
20
+ controller: {
21
+ type: typeof import("@ibiz-template/runtime").FormIFrameController;
22
+ required: true;
23
+ };
24
+ }>>, {}, {}>>;
25
+ export default IBizFormIFrame;
@@ -0,0 +1,12 @@
1
+ import { withInstall } from '@ibiz-template/vue3-util';
2
+ import { registerFormDetailProvider } from '@ibiz-template/runtime';
3
+ import { FormIFrame } from './form-iframe.mjs';
4
+ import { FormIFrameProvider } from './form-iframe.provider.mjs';
5
+
6
+ "use strict";
7
+ const IBizFormIFrame = withInstall(FormIFrame, function(v) {
8
+ v.component(FormIFrame.name, FormIFrame);
9
+ registerFormDetailProvider("IFRAME", () => new FormIFrameProvider());
10
+ });
11
+
12
+ export { IBizFormIFrame, IBizFormIFrame as default };
@@ -1 +1 @@
1
- .ibiz-form-item{border-color:var(--ibiz-color-border);--ibiz-form-item-label-color:var(--ibiz-color-text-1);--ibiz-form-item-text-color:var(--ibiz-color-text-2);--ibiz-form-item-hover-color:var(--ibiz-color-text-0);--ibiz-form-item-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-form-item-readonly-color:var(--ibiz-color-disabled-text);--ibiz-form-item-border-color:transparent;--ibiz-form-item-font-size:var(--ibiz-font-size-regular);--ibiz-form-item-placeholder-color:var(--ibiz-color-text-3);--ibiz-form-item-disabled-color:var(--ibiz-color-disabled-text);--ibiz-form-item-disabled-bg-color:var(--ibiz-color-disabled-fill);--ibiz-form-item-disabled-border-color:var(--ibiz-color-disabled-border);--ibiz-form-item-active-bg:var(--ibiz-color-fill-2);--ibiz-form-item-active-border:var(--ibiz-active-bg);--ibiz-form-item-focus-bg:var(--ibiz-color-fill-0);--ibiz-form-item-focus-border:var(--ibiz-color-focus-border);--ibiz-form-item-line-height:var(--ibiz-editor-default-line-height);--ibiz-form-item-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-item-hover-edit-padding:var(--ibiz-spacing-none) 11px}.ibiz-form-item.is-compositeItem{--ibiz-form-item-compositeItem-gap:var(--ibiz-spacing-tight)}.ibiz-form-item.is-compositeItem .ibiz-form-item-container__editor{display:flex;gap:var(--ibiz-form-item-compositeItem-gap)}
1
+ .ibiz-form-item{border-color:var(--ibiz-color-border);--ibiz-form-item-label-color:var(--ibiz-color-text-1);--ibiz-form-item-text-color:var(--ibiz-color-text-2);--ibiz-form-item-hover-color:var(--ibiz-color-text-0);--ibiz-form-item-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-form-item-readonly-color:var(--ibiz-color-disabled-text);--ibiz-form-item-border-color:transparent;--ibiz-form-item-font-size:var(--ibiz-font-size-regular);--ibiz-form-item-placeholder-color:var(--ibiz-color-text-3);--ibiz-form-item-disabled-color:var(--ibiz-color-disabled-text);--ibiz-form-item-disabled-bg-color:var(--ibiz-color-disabled-fill);--ibiz-form-item-disabled-border-color:var(--ibiz-color-disabled-border);--ibiz-form-item-active-bg:var(--ibiz-color-fill-2);--ibiz-form-item-active-border:var(--ibiz-active-bg);--ibiz-form-item-focus-bg:var(--ibiz-color-fill-0);--ibiz-form-item-focus-border:var(--ibiz-color-focus-border);--ibiz-form-item-line-height:var(--ibiz-editor-default-line-height);--ibiz-form-item-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-item-hover-edit-padding:var(--ibiz-spacing-none) 11px}.ibiz-form-item.is-compositeItem{--ibiz-form-item-compositeItem-gap:var(--ibiz-spacing-tight)}.ibiz-form-item.is-compositeItem .ibiz-form-item__composite-separator{line-height:var(--ibiz-form-item-container-line-height)}.ibiz-form-item.is-compositeItem .ibiz-form-item-container__editor{display:flex;gap:var(--ibiz-form-item-compositeItem-gap)}
@@ -1,4 +1,4 @@
1
- import { isVNode, ref, createVNode, resolveComponent, h, defineComponent } from 'vue';
1
+ import { isVNode, ref, createVNode, createTextVNode, resolveComponent, h, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { CompositeFormItem } from './composite-form-item/composite-form-item.mjs';
4
4
  import './form-item.css';
@@ -64,13 +64,15 @@ const FormItem = /* @__PURE__ */ defineComponent({
64
64
  const {
65
65
  editorItems = []
66
66
  } = this.c.model.editor || {};
67
- editor = editorItems.map((item) => {
67
+ editor = editorItems.map((item, index) => {
68
68
  const controller = this.c.form.details[item.id];
69
- return createVNode(CompositeFormItem, {
69
+ return [createVNode(CompositeFormItem, {
70
70
  "modelData": controller.model,
71
71
  "controller": controller,
72
72
  "attrs": this.attrs
73
- }, null);
73
+ }, null), editorItems.length - 1 > index && createVNode("span", {
74
+ "class": this.ns.e("composite-separator")
75
+ }, [createTextVNode("-")])];
74
76
  });
75
77
  } else {
76
78
  const editMode = (_d = (_c = (_b = this.c.editor) == null ? void 0 : _b.model) == null ? void 0 : _c.editorParams) == null ? void 0 : _d.editMode;
@@ -8,3 +8,4 @@ export * from './form-rawitem/index';
8
8
  export * from './form-tab-panel/index';
9
9
  export * from './form-tab-page/index';
10
10
  export * from './form-button-list/index';
11
+ export * from './form-iframe';
@@ -8,6 +8,7 @@ export { IBizFormRawItem } from './form-rawitem/index.mjs';
8
8
  export { IBizFormTabPanel } from './form-tab-panel/index.mjs';
9
9
  export { IBizFormTabPage } from './form-tab-page/index.mjs';
10
10
  export { IBizFormButtonList } from './form-button-list/index.mjs';
11
+ export { IBizFormIFrame } from './form-iframe/index.mjs';
11
12
  export { IBizFormItemContainer } from './form-item/form-item-container/form-item-container.mjs';
12
13
  export { IBizFormPageItem } from './form-page/form-page-item/form-page.item.mjs';
13
14
 
@@ -14,5 +14,6 @@ export { IBizFormRawItem } from './form-detail/form-rawitem/index.mjs';
14
14
  export { IBizFormTabPanel } from './form-detail/form-tab-panel/index.mjs';
15
15
  export { IBizFormTabPage } from './form-detail/form-tab-page/index.mjs';
16
16
  export { IBizFormButtonList } from './form-detail/form-button-list/index.mjs';
17
+ export { IBizFormIFrame } from './form-detail/form-iframe/index.mjs';
17
18
 
18
19
  "use strict";
@@ -132,7 +132,7 @@ export declare const GanttControl: import("vue").DefineComponent<{
132
132
  };
133
133
  }>>, {
134
134
  params: import("@ibiz-template/core").IApiParams;
135
- mdctrlActiveMode: number;
136
135
  singleSelect: boolean;
136
+ mdctrlActiveMode: number;
137
137
  loadDefault: boolean;
138
138
  }, {}>;
@@ -329,7 +329,10 @@ const GanttControl = /* @__PURE__ */ defineComponent({
329
329
  if (!contextMenuC.model.detoolbarItems) {
330
330
  return;
331
331
  }
332
- await contextMenuC.calcButtonState(nodeData._deData || (nodeData.srfkey ? nodeData : void 0), nodeModel.appDataEntityId);
332
+ await contextMenuC.calcButtonState(nodeData._deData || (nodeData.srfkey ? nodeData : void 0), nodeModel.appDataEntityId, {
333
+ view: c.view,
334
+ ctrl: c
335
+ });
333
336
  const menuState = contextMenuC.state.buttonsState;
334
337
  const menus = calcContextMenuItems(contextMenuC.model.detoolbarItems, nodeData, evt, menuState);
335
338
  if (!menus.length) {
@@ -83,8 +83,8 @@ export declare const IBizGanttControl: import("@ibiz-template/vue3-util").TypeWi
83
83
  };
84
84
  }>>, {
85
85
  params: import("@ibiz-template/core").IApiParams;
86
- mdctrlActiveMode: number;
87
86
  singleSelect: boolean;
87
+ mdctrlActiveMode: number;
88
88
  loadDefault: boolean;
89
89
  }, {}>>;
90
90
  export default IBizGanttControl;
@@ -226,8 +226,8 @@ export declare const GridControl: import("vue").DefineComponent<{
226
226
  };
227
227
  }>>, {
228
228
  params: import("@ibiz-template/core").IApiParams;
229
- mdctrlActiveMode: number;
230
229
  singleSelect: boolean;
230
+ mdctrlActiveMode: number;
231
231
  rowEditOpen: boolean;
232
232
  isSimple: boolean;
233
233
  loadDefault: boolean;
@@ -162,8 +162,8 @@ export declare const IBizGridControl: import("@ibiz-template/vue3-util").TypeWit
162
162
  };
163
163
  }>>, {
164
164
  params: import("@ibiz-template/core").IApiParams;
165
- mdctrlActiveMode: number;
166
165
  singleSelect: boolean;
166
+ mdctrlActiveMode: number;
167
167
  rowEditOpen: boolean;
168
168
  isSimple: boolean;
169
169
  loadDefault: boolean;
@@ -2,6 +2,7 @@ import { ControlType, registerControlProvider } from '@ibiz-template/runtime';
2
2
  import { withInstall } from '@ibiz-template/vue3-util';
3
3
  import '../grid-column/index.mjs';
4
4
  import { IBizRowEditPopover } from '../row-edit-popover/row-edit-popover.mjs';
5
+ import { IBizVirtualizedTableControl } from '../virtualized-table/index.mjs';
5
6
  import { GridControl } from './grid.mjs';
6
7
  import { GridProvider } from './grid.provider.mjs';
7
8
  export { useAppGridBase, useAppGridPagination, useGridDraggable, useGridHeaderStyle, useITableEvent } from './grid-control.util.mjs';
@@ -22,6 +23,7 @@ const IBizGridControl = withInstall(GridControl, (v) => {
22
23
  v.use(IBizGridFieldEditColumn);
23
24
  v.use(IBizGridGroupColumn);
24
25
  v.use(IBizDynamicGridFieldEditColumn);
26
+ v.use(IBizVirtualizedTableControl);
25
27
  registerControlProvider(ControlType.GRID, () => new GridProvider());
26
28
  });
27
29
 
@@ -1,6 +1,6 @@
1
1
  import { ILayoutPanel, IPanel, IUIActionGroupDetail } from '@ibiz/model-core';
2
- import { Ref, VNode } from 'vue';
3
- import { GridFieldColumnController, GridRowState } from '@ibiz-template/runtime';
2
+ import { VNode } from 'vue';
3
+ import { GridRowState, GridFieldColumnController } from '@ibiz-template/runtime';
4
4
  import './grid-field-column.scss';
5
5
  export declare const GridFieldColumn: import("vue").DefineComponent<{
6
6
  controller: {
@@ -17,7 +17,7 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
17
17
  onTextClick: (event: MouseEvent) => void;
18
18
  onInfoTextChange: (text: string) => void;
19
19
  onActionClick: (detail: IUIActionGroupDetail, event: MouseEvent) => Promise<void>;
20
- CustomHtml: Ref<string | undefined>;
20
+ CustomHtml: import("vue").Ref<string | undefined>;
21
21
  fieldValue: import("vue").ComputedRef<any>;
22
22
  formatValue: import("vue").ComputedRef<string>;
23
23
  percent: import("vue").ComputedRef<string>;
@@ -25,7 +25,7 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
25
25
  tooltip: import("vue").ComputedRef<string | undefined>;
26
26
  zIndex: number | undefined;
27
27
  columnType: string | undefined;
28
- codeListItems: Ref<readonly import("@ibiz-template/core").IApiData[]>;
28
+ codeListItems: import("vue").Ref<readonly import("@ibiz-template/core").IApiData[]>;
29
29
  hiddenEmpty: import("vue").ComputedRef<boolean>;
30
30
  findLayoutPanel: () => IPanel | undefined;
31
31
  renderPanelItemLayout: (item: IData, modelData: ILayoutPanel) => VNode;
@@ -1,5 +1,5 @@
1
- import { ref, watch, computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
- import { useNamespace, useCodeListListen } from '@ibiz-template/vue3-util';
1
+ import { computed, ref, resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace, computedAsync, useCodeListListen } from '@ibiz-template/vue3-util';
3
3
  import { GridFieldColumnController, GridRowState, ValueExUtil } from '@ibiz-template/runtime';
4
4
  import { isNotNil } from 'ramda';
5
5
  import { showTitle } from '@ibiz-template/core';
@@ -35,12 +35,9 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
35
35
  props.controller.openLinkView(props.row, event);
36
36
  }
37
37
  };
38
- const CustomHtml = ref("");
39
- watch(() => props.row, async () => {
40
- CustomHtml.value = await props.controller.getCustomHtml(props.row);
41
- }, {
42
- deep: true,
43
- immediate: true
38
+ const CustomHtml = computedAsync(async () => {
39
+ const html = await props.controller.getCustomHtml(props.row);
40
+ return html;
44
41
  });
45
42
  const fieldValue = computed(() => props.row.data[props.controller.fieldName]);
46
43
  const formatValue = computed(() => props.controller.formatValue(fieldValue.value));