@ibiz-template/vue3-components 0.7.41-alpha.24 → 0.7.41-alpha.26

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 (181) hide show
  1. package/dist/{chart-q7pMKjYo.js → chart-WWURfMT4.js} +1 -1
  2. package/dist/{index-pz3nYBld.js → index-8Yjd-joJ.js} +1 -1
  3. package/dist/{index-mjpFeLkH.js → index-EN5i9Gyq.js} +1 -1
  4. package/dist/index-i-UdTGjq.js +11 -0
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/{wang-editor-I3j_b1zm.js → wang-editor-3ZSVyG8N.js} +1 -1
  8. package/dist/{xlsx-util-K2jHv3GW.js → xlsx-util-Ia8Tdyju.js} +1 -1
  9. package/es/common/action-toolbar/action-toolbar.css +1 -1
  10. package/es/common/action-toolbar/action-toolbar.d.ts +10 -1
  11. package/es/common/action-toolbar/action-toolbar.mjs +21 -13
  12. package/es/common/button-list/button-list.css +1 -1
  13. package/es/common/button-list/button-list.mjs +82 -39
  14. package/es/common/control-navigation/control-navigation.d.ts +1 -1
  15. package/es/common/control-navigation/provider/chart-navigation.provider.d.ts +59 -0
  16. package/es/common/control-navigation/provider/chart-navigation.provider.mjs +148 -0
  17. package/es/common/control-navigation/provider/index.mjs +3 -0
  18. package/es/common/custom-theme/custom-theme.mjs +3 -3
  19. package/es/common/data-import2/data-import2.mjs +10 -5
  20. package/es/common/data-import2-select/data-import2-select.d.ts +8 -0
  21. package/es/common/data-import2-select/data-import2-select.mjs +7 -2
  22. package/es/control/app-menu/app-menu.d.ts +1 -1
  23. package/es/control/app-menu/app-menu.mjs +2 -5
  24. package/es/control/app-menu/index.d.ts +1 -1
  25. package/es/control/chart/chart.mjs +43 -39
  26. package/es/control/dashboard/dashboard.css +1 -1
  27. package/es/control/data-view/data-view.css +1 -1
  28. package/es/control/data-view/data-view.mjs +1 -1
  29. package/es/control/form/form-detail/form-item/form-item.d.ts +0 -1
  30. package/es/control/form/form-detail/form-item/form-item.mjs +3 -21
  31. package/es/control/form/form-detail/form-item/index.d.ts +0 -1
  32. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.d.ts +1 -1
  33. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs +44 -14
  34. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  35. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.d.ts +2 -0
  36. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.mjs +54 -6
  37. package/es/control/form/form-detail/form-tab-panel/index.d.ts +2 -0
  38. package/es/control/gantt/gantt.mjs +3 -1
  39. package/es/control/grid/grid/grid.mjs +1 -1
  40. package/es/control/kanban/kanban.css +1 -1
  41. package/es/control/kanban/kanban.mjs +1 -0
  42. package/es/control/list/index.d.ts +7 -6
  43. package/es/control/list/list.css +1 -1
  44. package/es/control/list/list.d.ts +3 -2
  45. package/es/control/list/list.mjs +77 -64
  46. package/es/control/tree/tree.d.ts +6 -6
  47. package/es/control/tree/tree.mjs +13 -0
  48. package/es/control/tree-grid/tree-grid.mjs +17 -3
  49. package/es/control/tree-grid-ex/tree-grid-ex.mjs +26 -5
  50. package/es/editor/array/ibiz-array/ibiz-array.d.ts +1 -1
  51. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.d.ts +1 -1
  52. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +1 -1
  53. package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.d.ts +1 -1
  54. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -1
  55. package/es/editor/code/monaco-editor/monaco-editor.d.ts +1 -1
  56. package/es/editor/code/monaco-editor/monaco-editor.mjs +3 -3
  57. package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.d.ts +1 -1
  58. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +1 -1
  59. package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +1 -1
  60. package/es/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.d.ts +1 -1
  61. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.d.ts +1 -1
  62. package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.d.ts +1 -1
  63. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +1 -1
  64. package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.d.ts +1 -1
  65. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.d.ts +1 -1
  66. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +1 -1
  67. package/es/editor/date-range-select/date-range-select-picker/date-range-select.d.ts +1 -1
  68. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +1 -1
  69. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +1 -1
  70. package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.d.ts +1 -1
  71. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.d.ts +1 -1
  72. package/es/editor/html/wang-editor/wang-editor.d.ts +1 -1
  73. package/es/editor/list-box/ibiz-list-box/ibiz-list-box.d.ts +1 -1
  74. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.d.ts +1 -1
  75. package/es/editor/preset/preset-rawitem/ibiz-preset-rawitem/ibiz-preset-rawitem.d.ts +1 -1
  76. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.d.ts +1 -1
  77. package/es/editor/rate/ibiz-rate/ibiz-rate.d.ts +1 -1
  78. package/es/editor/raw/ibiz-raw/ibiz-raw.d.ts +1 -1
  79. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +1 -1
  80. package/es/editor/span/span/span.d.ts +1 -0
  81. package/es/editor/span/span-link/span-link.d.ts +1 -1
  82. package/es/editor/stepper/ibiz-stepper/ibiz-stepper.d.ts +1 -1
  83. package/es/editor/switch/ibiz-switch/ibiz-switch.d.ts +1 -1
  84. package/es/editor/switch/ibiz-switch-tristate/ibiz-switch-tristate.d.ts +1 -1
  85. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.d.ts +1 -1
  86. package/es/editor/text-box/input/input.d.ts +2 -1
  87. package/es/editor/text-box/signature/signature.d.ts +1 -1
  88. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +1 -1
  89. package/es/editor/upload/ibiz-image-cropping/ibiz-image-cropping.d.ts +1 -1
  90. package/es/editor/upload/ibiz-image-preview/ibiz-image-preview.d.ts +1 -1
  91. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -1
  92. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.d.ts +1 -1
  93. package/es/locale/en/index.d.ts +3 -0
  94. package/es/locale/en/index.mjs +3 -0
  95. package/es/locale/zh-CN/index.d.ts +3 -0
  96. package/es/locale/zh-CN/index.mjs +3 -0
  97. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.d.ts +1 -1
  98. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.d.ts +1 -1
  99. package/es/panel-component/app-switch/app-switch.controller.mjs +3 -0
  100. package/es/panel-component/index-actions/index-actions.mjs +1 -3
  101. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.mjs +1 -3
  102. package/es/panel-component/nav-tabs/index.d.ts +1 -1
  103. package/es/panel-component/nav-tabs/nav-tabs.mjs +2 -0
  104. package/es/panel-component/panel-app-login-view/panel-app-login-view.mjs +1 -3
  105. package/es/panel-component/panel-app-title/index.d.ts +1 -1
  106. package/es/panel-component/panel-app-title/panel-app-title.d.ts +1 -1
  107. package/es/panel-component/panel-app-title/panel-app-title.mjs +2 -2
  108. package/es/panel-component/panel-button/panel-button.controller.mjs +1 -2
  109. package/es/panel-component/panel-button/panel-button.css +1 -1
  110. package/es/panel-component/panel-button-list/panel-button-list.controller.d.ts +1 -1
  111. package/es/panel-component/panel-button-list/panel-button-list.controller.mjs +19 -18
  112. package/es/panel-component/panel-button-list/panel-button-list.mjs +1 -2
  113. package/es/view-engine/mpickup-view-engine.d.ts +6 -0
  114. package/es/view-engine/mpickup-view-engine.mjs +32 -4
  115. package/es/view-engine/portal-view-engine.mjs +5 -1
  116. package/es/view-engine/tree-view.engine.mjs +2 -0
  117. package/lib/common/action-toolbar/action-toolbar.cjs +21 -13
  118. package/lib/common/action-toolbar/action-toolbar.css +1 -1
  119. package/lib/common/button-list/button-list.cjs +80 -37
  120. package/lib/common/button-list/button-list.css +1 -1
  121. package/lib/common/control-navigation/provider/chart-navigation.provider.cjs +150 -0
  122. package/lib/common/control-navigation/provider/index.cjs +3 -0
  123. package/lib/common/custom-theme/custom-theme.cjs +3 -3
  124. package/lib/common/data-import2/data-import2.cjs +10 -5
  125. package/lib/common/data-import2-select/data-import2-select.cjs +7 -2
  126. package/lib/control/app-menu/app-menu.cjs +2 -5
  127. package/lib/control/chart/chart.cjs +43 -39
  128. package/lib/control/dashboard/dashboard.css +1 -1
  129. package/lib/control/data-view/data-view.cjs +1 -1
  130. package/lib/control/data-view/data-view.css +1 -1
  131. package/lib/control/form/form-detail/form-item/form-item.cjs +2 -20
  132. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.cjs +43 -13
  133. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.cjs +53 -5
  134. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  135. package/lib/control/gantt/gantt.cjs +3 -1
  136. package/lib/control/grid/grid/grid.cjs +1 -1
  137. package/lib/control/kanban/kanban.cjs +1 -0
  138. package/lib/control/kanban/kanban.css +1 -1
  139. package/lib/control/list/list.cjs +75 -62
  140. package/lib/control/list/list.css +1 -1
  141. package/lib/control/tree/tree.cjs +13 -0
  142. package/lib/control/tree-grid/tree-grid.cjs +16 -2
  143. package/lib/control/tree-grid-ex/tree-grid-ex.cjs +25 -4
  144. package/lib/editor/code/monaco-editor/monaco-editor.cjs +3 -3
  145. package/lib/locale/en/index.cjs +3 -0
  146. package/lib/locale/zh-CN/index.cjs +3 -0
  147. package/lib/panel-component/app-switch/app-switch.controller.cjs +3 -0
  148. package/lib/panel-component/index-actions/index-actions.cjs +1 -3
  149. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.cjs +1 -3
  150. package/lib/panel-component/nav-tabs/nav-tabs.cjs +2 -0
  151. package/lib/panel-component/panel-app-login-view/panel-app-login-view.cjs +1 -3
  152. package/lib/panel-component/panel-app-title/panel-app-title.cjs +2 -2
  153. package/lib/panel-component/panel-button/panel-button.controller.cjs +1 -2
  154. package/lib/panel-component/panel-button/panel-button.css +1 -1
  155. package/lib/panel-component/panel-button-list/panel-button-list.cjs +1 -2
  156. package/lib/panel-component/panel-button-list/panel-button-list.controller.cjs +18 -17
  157. package/lib/view-engine/mpickup-view-engine.cjs +32 -4
  158. package/lib/view-engine/portal-view-engine.cjs +4 -0
  159. package/lib/view-engine/tree-view.engine.cjs +2 -0
  160. package/package.json +9 -9
  161. package/dist/index-YM3srtwD.js +0 -11
  162. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  163. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/config/index.mjs +0 -0
  164. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/index.mjs +0 -0
  165. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/loader/index.mjs +0 -0
  166. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/compose.mjs +0 -0
  167. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/curry.mjs +0 -0
  168. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.mjs +0 -0
  169. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/isObject.mjs +0 -0
  170. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.mjs +0 -0
  171. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/validators/index.mjs +0 -0
  172. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.cjs +0 -0
  173. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/config/index.cjs +0 -0
  174. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/index.cjs +0 -0
  175. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/loader/index.cjs +0 -0
  176. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/compose.cjs +0 -0
  177. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/curry.cjs +0 -0
  178. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.cjs +0 -0
  179. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/isObject.cjs +0 -0
  180. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.cjs +0 -0
  181. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.45.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.52.2}/node_modules/@monaco-editor/loader/lib/es/validators/index.cjs +0 -0
@@ -74,7 +74,7 @@ const DataImport2 = /* @__PURE__ */ defineComponent({
74
74
  }
75
75
  let columnMapData = columnData.fields;
76
76
  if (!columnData.fields) {
77
- const res = await getImportSchema(columnData.id);
77
+ const res = await getImportSchema(columnData.id, props.context);
78
78
  if (res.status === 200 && res.data) {
79
79
  columnMapData = res.data.fields;
80
80
  }
@@ -143,7 +143,8 @@ const DataImport2 = /* @__PURE__ */ defineComponent({
143
143
  const resput = await updateImportSchema({
144
144
  appDataEntity: props.appDataEntity,
145
145
  dataImport,
146
- data
146
+ data,
147
+ context: props.context
147
148
  });
148
149
  if (resput.status === 200 && resput.ok) {
149
150
  columnMappingListMap.set(listValue.value, resput.data);
@@ -160,7 +161,8 @@ const DataImport2 = /* @__PURE__ */ defineComponent({
160
161
  const res = await createImportSchema({
161
162
  appDataEntity: props.appDataEntity,
162
163
  dataImport,
163
- data
164
+ data,
165
+ context: props.context
164
166
  });
165
167
  if (res.status === 200 && res.ok) {
166
168
  columnMappingListMap.set(data.name, res.data);
@@ -183,7 +185,8 @@ const DataImport2 = /* @__PURE__ */ defineComponent({
183
185
  appDataEntity: props.appDataEntity,
184
186
  dataImport,
185
187
  fileId: fileid,
186
- schemaId: id
188
+ schemaId: id,
189
+ context: props.context
187
190
  });
188
191
  onCancelButtonClick();
189
192
  } else {
@@ -207,7 +210,8 @@ const DataImport2 = /* @__PURE__ */ defineComponent({
207
210
  const columnMappingListQuery = async () => {
208
211
  const res = await fetchImportSchemas({
209
212
  appDataEntity: props.appDataEntity,
210
- dataImport
213
+ dataImport,
214
+ context: props.context
211
215
  });
212
216
  if (res.status === 200 && res.data) {
213
217
  res.data.forEach((item) => {
@@ -386,6 +390,7 @@ const DataImport2 = /* @__PURE__ */ defineComponent({
386
390
  "options": this.options,
387
391
  "columnMappingListMap": this.columnMappingListMap,
388
392
  "listValue": this.listValue,
393
+ "context": this.context,
389
394
  "onListValueChange": this.listValueChange,
390
395
  "onColumnMappingListMapChange": this.columnMappingListMapChange,
391
396
  "onOptionsChange": this.optionsChange
@@ -24,6 +24,10 @@ export declare const DataImport2Select: import("vue").DefineComponent<{
24
24
  type: StringConstructor;
25
25
  required: true;
26
26
  };
27
+ context: {
28
+ type: PropType<import("@ibiz-template/core").IApiContext>;
29
+ required: false;
30
+ };
27
31
  }, {
28
32
  ns: import("@ibiz-template/core").Namespace;
29
33
  inputClick: (e: Event) => void;
@@ -56,4 +60,8 @@ export declare const DataImport2Select: import("vue").DefineComponent<{
56
60
  type: StringConstructor;
57
61
  required: true;
58
62
  };
63
+ context: {
64
+ type: PropType<import("@ibiz-template/core").IApiContext>;
65
+ required: false;
66
+ };
59
67
  }>>, {}, {}>;
@@ -25,6 +25,10 @@ const DataImport2Select = /* @__PURE__ */ defineComponent({
25
25
  listValue: {
26
26
  type: String,
27
27
  required: true
28
+ },
29
+ context: {
30
+ type: Object,
31
+ required: false
28
32
  }
29
33
  },
30
34
  setup(props, {
@@ -55,7 +59,8 @@ const DataImport2Select = /* @__PURE__ */ defineComponent({
55
59
  if (data) {
56
60
  data.name = item.label;
57
61
  const result = await updateImportSchema({
58
- data
62
+ data,
63
+ context: props.context
59
64
  });
60
65
  if (result.status === 200 && result.ok) {
61
66
  emit("columnMappingListMapChange", item.label, result.data);
@@ -81,7 +86,7 @@ const DataImport2Select = /* @__PURE__ */ defineComponent({
81
86
  e.stopPropagation();
82
87
  const columnData = props.columnMappingListMap.get(str);
83
88
  if (columnData) {
84
- const res = await deleteImportSchema(columnData.id);
89
+ const res = await deleteImportSchema(columnData.id, props.context);
85
90
  if (res.status === 200 && res.ok) {
86
91
  emit("optionsChange", str);
87
92
  emit("columnMappingListMapChange", str);
@@ -50,7 +50,7 @@ export declare const AppMenuControl: import("vue").DefineComponent<{
50
50
  key: Ref<string>;
51
51
  menus: Ref<import("@ibiz-template/core").IApiData[]>;
52
52
  menuRef: Ref<any>;
53
- menuMode: import("vue").ComputedRef<"vertical" | "horizontal">;
53
+ menuMode: import("vue").ComputedRef<"horizontal" | "vertical">;
54
54
  hasScroll: Ref<boolean>;
55
55
  counterData: Ref<import("@ibiz-template/core").IApiData>;
56
56
  saveConfigs: Ref<import("@ibiz-template/core").IApiData[]>;
@@ -331,10 +331,7 @@ const AppMenuControl = /* @__PURE__ */ defineComponent({
331
331
  };
332
332
  c.evt.on("onCreated", async () => {
333
333
  saveConfigs.value = c.saveConfigs;
334
- const allItems = c.getAllItems();
335
- const defaultActiveMenuItem = allItems.find((item) => {
336
- return item.openDefault && !item.hidden;
337
- });
334
+ const defaultActiveMenuItem = c.getDefaultOpenMenuItem();
338
335
  if (defaultActiveMenuItem && !(route == null ? void 0 : route.params.view2) && !(route == null ? void 0 : route.fullPath.includes("404"))) {
339
336
  defaultActive.value = defaultActiveMenuItem.id;
340
337
  onClick(defaultActive.value);
@@ -342,7 +339,7 @@ const AppMenuControl = /* @__PURE__ */ defineComponent({
342
339
  const activeMenu = calcCurMenu();
343
340
  defaultActive.value = activeMenu ? activeMenu.id : "";
344
341
  }
345
- const defaultOpensArr = allItems.filter((item) => {
342
+ const defaultOpensArr = c.getAllItems().filter((item) => {
346
343
  return item.expanded && !item.hidden;
347
344
  });
348
345
  if (defaultOpensArr.length > 0) {
@@ -26,7 +26,7 @@ export declare const IBizAppMenuControl: import("@ibiz-template/vue3-util").Type
26
26
  key: import("vue").Ref<string>;
27
27
  menus: import("vue").Ref<import("@ibiz-template/core").IApiData[]>;
28
28
  menuRef: import("vue").Ref<any>;
29
- menuMode: import("vue").ComputedRef<"vertical" | "horizontal">;
29
+ menuMode: import("vue").ComputedRef<"horizontal" | "vertical">;
30
30
  hasScroll: import("vue").Ref<boolean>;
31
31
  counterData: import("vue").Ref<import("@ibiz-template/core").IApiData>;
32
32
  saveConfigs: import("vue").Ref<import("@ibiz-template/core").IApiData[]>;
@@ -270,47 +270,51 @@ const ChartControl = /* @__PURE__ */ defineComponent({
270
270
  };
271
271
  },
272
272
  render() {
273
- return createVNode(resolveComponent("iBizControlBase"), {
273
+ return createVNode(resolveComponent("iBizControlNavigation"), {
274
274
  "controller": this.c
275
275
  }, {
276
- default: () => [createVNode("div", {
277
- "id": this.uuid,
278
- "class": this.ns.b("chart-container")
279
- }, [this.renderNoData(), createVNode("div", {
280
- "class": [this.ns.e("chart-grid"), this.ns.is("no-data", this.c.state.items.length === 0), this.ns.is("show-grid", this.c.state.showGrid), {
281
- [this.ns.em("chart-grid", this.c.state.gridPosition)]: this.c.state.showGrid
282
- }]
283
- }, [createVNode("div", {
284
- "class": [this.ns.e("chart-grid-container"), this.ns.is(this.c.state.gridPosition, this.c.state.showGrid), this.ns.is("no-grid", !this.c.state.showGrid)]
285
- }, [createVNode("div", {
286
- "ref": "chartRef",
287
- "class": [this.ns.e("chart")]
288
- }, [ibiz.i18n.t("control.chart.chartPlaceholder")]), this.showCheck ? createVNode("div", {
289
- "ref": "drillDetailRef",
290
- "class": this.ns.e("drill-detail"),
291
- "style": this.drillDetailPos,
292
- "onPointerdown": this.openDrillDetail
293
- }, [createVNode("div", {
294
- "class": this.ns.em("drill-detail", "item")
295
- }, [createVNode("svg", {
296
- "viewBox": "0 0 16 16",
297
- "xmlns": "http://www.w3.org/2000/svg",
298
- "height": "1em",
299
- "width": "1em",
300
- "focusable": "false",
301
- "fill": "currentColor"
302
- }, [createVNode("g", {
303
- "id": "aspnormal/preview",
304
- "stroke-width": "1",
305
- "fill-rule": "evenodd"
306
- }, [createVNode("path", {
307
- "d": "M11.626 0c1.057 0 1.923.818 2 1.855l.005.15v3.411a.6.6 0 0 1-1.192.097l-.008-.097.001-1.348V2.005c0-.41-.31-.749-.705-.799l-.101-.006h-9.62c-.41 0-.75.308-.8.704l-.006.101v11.989c0 .41.308.75.705.8l.101.006h5.906l.017-.004.016-.003h2.074a.598.598 0 1 1 .107 1.187l-.095.01V16H2.006a2.006 2.006 0 0 1-2-1.856L0 13.994V2.005C0 .948.818.082 1.856.005L2.006 0h9.62zm-1.595 6.328a3.669 3.669 0 0 1 3.665 3.665c0 .79-.251 1.523-.678 2.123l2.412 2.412a.6.6 0 1 1-.848.85l-2.41-2.412a3.646 3.646 0 0 1-2.14.692 3.67 3.67 0 0 1-3.667-3.665 3.67 3.67 0 0 1 3.666-3.665zm-5.106 5.29a.6.6 0 0 1 .097 1.191l-.097.008H2.85a.6.6 0 0 1-.097-1.192l.097-.008h2.074zm5.106-4.09a2.468 2.468 0 0 0-2.466 2.465 2.468 2.468 0 0 0 2.466 2.466 2.47 2.47 0 0 0 2.466-2.466 2.469 2.469 0 0 0-2.466-2.465zm-4.815-.126a.6.6 0 0 1 .097 1.193l-.097.007h-2.35A.6.6 0 0 1 2.77 7.41l.098-.008h2.349zm5.58-4a.6.6 0 0 1 .097 1.192l-.097.008H2.867A.6.6 0 0 1 2.77 3.41l.097-.008h7.929z",
308
- "id": "asp\u5408\u5E76\u5F62\u72B6"
309
- }, null)])]), createVNode("div", {
310
- "class": this.ns.em("drill-detail", "item-text")
311
- }, [ibiz.i18n.t("control.chart.drillDetail")])])]) : null]), this.c.state.showGrid ? createVNode("div", {
312
- "class": this.ns.e("grid")
313
- }, [this.renderGrid()]) : null])])]
276
+ default: () => [createVNode(resolveComponent("iBizControlBase"), {
277
+ "controller": this.c
278
+ }, {
279
+ default: () => [createVNode("div", {
280
+ "id": this.uuid,
281
+ "class": this.ns.b("chart-container")
282
+ }, [this.renderNoData(), createVNode("div", {
283
+ "class": [this.ns.e("chart-grid"), this.ns.is("no-data", this.c.state.items.length === 0), this.ns.is("show-grid", this.c.state.showGrid), {
284
+ [this.ns.em("chart-grid", this.c.state.gridPosition)]: this.c.state.showGrid
285
+ }]
286
+ }, [createVNode("div", {
287
+ "class": [this.ns.e("chart-grid-container"), this.ns.is(this.c.state.gridPosition, this.c.state.showGrid), this.ns.is("no-grid", !this.c.state.showGrid)]
288
+ }, [createVNode("div", {
289
+ "ref": "chartRef",
290
+ "class": [this.ns.e("chart")]
291
+ }, [ibiz.i18n.t("control.chart.chartPlaceholder")]), this.showCheck ? createVNode("div", {
292
+ "ref": "drillDetailRef",
293
+ "class": this.ns.e("drill-detail"),
294
+ "style": this.drillDetailPos,
295
+ "onPointerdown": this.openDrillDetail
296
+ }, [createVNode("div", {
297
+ "class": this.ns.em("drill-detail", "item")
298
+ }, [createVNode("svg", {
299
+ "viewBox": "0 0 16 16",
300
+ "xmlns": "http://www.w3.org/2000/svg",
301
+ "height": "1em",
302
+ "width": "1em",
303
+ "focusable": "false",
304
+ "fill": "currentColor"
305
+ }, [createVNode("g", {
306
+ "id": "aspnormal/preview",
307
+ "stroke-width": "1",
308
+ "fill-rule": "evenodd"
309
+ }, [createVNode("path", {
310
+ "d": "M11.626 0c1.057 0 1.923.818 2 1.855l.005.15v3.411a.6.6 0 0 1-1.192.097l-.008-.097.001-1.348V2.005c0-.41-.31-.749-.705-.799l-.101-.006h-9.62c-.41 0-.75.308-.8.704l-.006.101v11.989c0 .41.308.75.705.8l.101.006h5.906l.017-.004.016-.003h2.074a.598.598 0 1 1 .107 1.187l-.095.01V16H2.006a2.006 2.006 0 0 1-2-1.856L0 13.994V2.005C0 .948.818.082 1.856.005L2.006 0h9.62zm-1.595 6.328a3.669 3.669 0 0 1 3.665 3.665c0 .79-.251 1.523-.678 2.123l2.412 2.412a.6.6 0 1 1-.848.85l-2.41-2.412a3.646 3.646 0 0 1-2.14.692 3.67 3.67 0 0 1-3.667-3.665 3.67 3.67 0 0 1 3.666-3.665zm-5.106 5.29a.6.6 0 0 1 .097 1.191l-.097.008H2.85a.6.6 0 0 1-.097-1.192l.097-.008h2.074zm5.106-4.09a2.468 2.468 0 0 0-2.466 2.465 2.468 2.468 0 0 0 2.466 2.466 2.47 2.47 0 0 0 2.466-2.466 2.469 2.469 0 0 0-2.466-2.465zm-4.815-.126a.6.6 0 0 1 .097 1.193l-.097.007h-2.35A.6.6 0 0 1 2.77 7.41l.098-.008h2.349zm5.58-4a.6.6 0 0 1 .097 1.192l-.097.008H2.867A.6.6 0 0 1 2.77 3.41l.097-.008h7.929z",
311
+ "id": "asp\u5408\u5E76\u5F62\u72B6"
312
+ }, null)])]), createVNode("div", {
313
+ "class": this.ns.em("drill-detail", "item-text")
314
+ }, [ibiz.i18n.t("control.chart.drillDetail")])])]) : null]), this.c.state.showGrid ? createVNode("div", {
315
+ "class": this.ns.e("grid")
316
+ }, [this.renderGrid()]) : null])])]
317
+ })]
314
318
  });
315
319
  }
316
320
  });
@@ -1 +1 @@
1
- .ibiz-control-dashboard{position:relative;align-content:flex-start;height:100%;overflow-y:scroll}.ibiz-control-dashboard .ibiz-control-dashboard-build-btn{position:absolute;right:0;z-index:10}
1
+ .ibiz-control-dashboard{position:relative;align-content:flex-start;height:100%;overflow-y:auto}.ibiz-control-dashboard .ibiz-control-dashboard-build-btn{position:absolute;right:0;z-index:10}
@@ -1 +1 @@
1
- .ibiz-control-dataview{--ibiz-control-dataview-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-dataview-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-dataview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base) 0;--ibiz-control-dataview-page-height:50px;--ibiz-control-dataview-item-bg-color:transparent;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;position:relative;height:100%}.ibiz-control-dataview__nav-icon{position:absolute;top:20px;right:10px;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-dataview__drag-icon{cursor:move;visibility:hidden}.ibiz-control-dataview__content{flex-grow:1;height:100%;padding:var(--ibiz-control-dataview-padding);overflow:auto}.ibiz-control-dataview__pagination{flex-shrink:0}.ibiz-control-dataview__load-more{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-dataview__load-more i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-dataview__load-more i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-dataview__collapse-expand-icon{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-dataview__collapse-expand-icon i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-dataview__collapse-expand-icon i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-dataview__layout-row{padding:var(--ibiz-spacing-tight)}.ibiz-control-dataview__layout-col{padding:0 var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base-tight) 0}.ibiz-control-dataview__layout-flex{display:flex;flex-wrap:wrap;align-content:flex-start;overflow:auto}.ibiz-control-dataview__layout-flex>*{margin:calc(var(--ibiz-spacing-base-tight)/ 2)}.ibiz-control-dataview__batchtoolbar{padding:0 var(--ibiz-spacing-base);margin:var(--ibiz-spacing-tight) var(--ibiz-spacing-super-tight)}.ibiz-control-dataview__quicktoolbar{display:flex;justify-content:center;width:100%}.ibiz-control-dataview-item{--ibiz-control-dataview-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-dataview-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-dataview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base) 0;--ibiz-control-dataview-page-height:50px;--ibiz-control-dataview-item-bg-color:transparent;color:var(--ibiz-control-dataview-text-color);cursor:pointer;background-color:var(--ibiz-control-dataview-item-bg-color)}.ibiz-control-dataview-item:hover{background-color:var(--ibiz-control-dataview-hover-bg-color)}.ibiz-control-dataview-item:hover .ibiz-control-dataview__drag-icon{visibility:visible}.ibiz-control-dataview-item__new{color:var(--ibiz-color-text-3);border:2px dashed var(--ibiz-color-border)}.ibiz-control-dataview-item__new .el-card__body{display:flex;align-items:center;justify-content:center}.ibiz-control-dataview-item__content{display:flex;align-items:center;width:100%;height:100%}.ibiz-control-dataview-item__content--checkbox{flex-shrink:0;margin-right:var(--ibiz-spacing-tight)!important}.ibiz-control-dataview-item.is-active{background-color:var(--ibiz-control-dataview-active-bg-color)}.ibiz-control-dataview-item-content{flex-grow:1;--ibiz-control-dataview-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-dataview-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-dataview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base) 0;--ibiz-control-dataview-page-height:50px;--ibiz-control-dataview-item-bg-color:transparent}.ibiz-control-dataview-item-content__top--title{text-align:center}.ibiz-control-dataview-item-content__top--description{min-width:150px;text-align:justify;text-justify:newspaper;word-break:break-all}.ibiz-control-dataview-item-content__bottom{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-spacing-tight);margin-top:var(--ibiz-spacing-tight);border-top:1px solid var(--ibiz-color-border)}.ibiz-control-dataview-item-content__bottom--actions{display:flex;justify-content:center}.ibiz-control-dataview-item-content__bottom--actions .ibiz-action-toolbar__item{margin:0}.ibiz-control-dataview-item-content__bottom--actions .ibiz-action-toolbar__item--label.is-has-caption{margin:0}.ibiz-control-dataview-group-content{--ibiz-control-dataview-group-item-header-bg-color:transparent;--ibiz-control-dataview-group-item-header-padding:var(--ibiz-spacing-base-tight);--ibiz-control-dataview-group-item-header-border-color:var(--ibiz-color-border);--ibiz-control-dataview-group-item-caption-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-group-item-caption-font-size:var(--ibiz-font-size-header-5);--ibiz-control-dataview-group-item-caption-font-weight:var(--ibiz-font-weight-bold);--ibiz-control-dataview-group-item-content-bg-color:transparent;--ibiz-control-dataview-group-item-content-padding:var(--ibiz-spacing-tight);width:100%}.ibiz-control-dataview-group-content__item .el-collapse-item__content{display:flex;flex-wrap:wrap}.ibiz-control-dataview-group-content__item--empty{width:100%;text-align:center}.ibiz-control-dataview-group-content__item.is-collapse .ibiz-control-dataview-group-content__item-content{height:0;overflow:hidden}.ibiz-control-dataview-group-content__item-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--ibiz-control-dataview-group-item-header-padding);border-bottom:1px solid var(--ibiz-control-dataview-group-item-header-border-color)}.ibiz-control-dataview-group-content__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-control-dataview-group-item-caption-font-size);font-weight:var(--ibiz-control-dataview-group-item-caption-font-weight);color:var(--ibiz-control-dataview-group-item-caption-text-color)}
1
+ .ibiz-control-dataview{--ibiz-control-dataview-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-dataview-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-dataview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base) 0;--ibiz-control-dataview-page-height:50px;--ibiz-control-dataview-item-bg-color:transparent;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;position:relative;height:100%}.ibiz-control-dataview__nav-icon{position:absolute;top:20px;right:10px;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-dataview__drag-icon{cursor:move;visibility:hidden}.ibiz-control-dataview__content{flex-grow:1;height:100%;padding:var(--ibiz-control-dataview-padding);overflow:auto}.ibiz-control-dataview__pagination{flex-shrink:0}.ibiz-control-dataview__load-more{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-dataview__load-more i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-dataview__load-more i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-dataview__collapse-expand-icon{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-dataview__collapse-expand-icon i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-dataview__collapse-expand-icon i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-dataview__layout-row{padding:var(--ibiz-spacing-tight)}.ibiz-control-dataview__layout-col{padding:0 var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base-tight) 0}.ibiz-control-dataview__layout-flex{display:flex;flex-wrap:wrap;align-content:flex-start;overflow:auto}.ibiz-control-dataview__layout-flex>*{margin:calc(var(--ibiz-spacing-base-tight)/ 2)}.ibiz-control-dataview__batchtoolbar{display:none;padding:0 var(--ibiz-spacing-base);margin:var(--ibiz-spacing-tight) var(--ibiz-spacing-super-tight)}.ibiz-control-dataview__batchtoolbar.is-show{display:block}.ibiz-control-dataview__quicktoolbar{display:flex;justify-content:center;width:100%}.ibiz-control-dataview-item{--ibiz-control-dataview-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-dataview-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-dataview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base) 0;--ibiz-control-dataview-page-height:50px;--ibiz-control-dataview-item-bg-color:transparent;color:var(--ibiz-control-dataview-text-color);cursor:pointer;background-color:var(--ibiz-control-dataview-item-bg-color)}.ibiz-control-dataview-item:hover{background-color:var(--ibiz-control-dataview-hover-bg-color)}.ibiz-control-dataview-item:hover .ibiz-control-dataview__drag-icon{visibility:visible}.ibiz-control-dataview-item__new{color:var(--ibiz-color-text-3);border:2px dashed var(--ibiz-color-border)}.ibiz-control-dataview-item__new .el-card__body{display:flex;align-items:center;justify-content:center}.ibiz-control-dataview-item__content{display:flex;align-items:center;width:100%;height:100%}.ibiz-control-dataview-item__content--checkbox{flex-shrink:0;margin-right:var(--ibiz-spacing-tight)!important}.ibiz-control-dataview-item.is-active{background-color:var(--ibiz-control-dataview-active-bg-color)}.ibiz-control-dataview-item-content{flex-grow:1;--ibiz-control-dataview-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-dataview-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-dataview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base) 0;--ibiz-control-dataview-page-height:50px;--ibiz-control-dataview-item-bg-color:transparent}.ibiz-control-dataview-item-content__top--title{text-align:center}.ibiz-control-dataview-item-content__top--description{min-width:150px;text-align:justify;text-justify:newspaper;word-break:break-all}.ibiz-control-dataview-item-content__bottom{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-spacing-tight);margin-top:var(--ibiz-spacing-tight);border-top:1px solid var(--ibiz-color-border)}.ibiz-control-dataview-item-content__bottom--actions{display:flex;justify-content:center}.ibiz-control-dataview-item-content__bottom--actions .ibiz-action-toolbar__item{margin:0}.ibiz-control-dataview-item-content__bottom--actions .ibiz-action-toolbar__item--label.is-has-caption{margin:0}.ibiz-control-dataview-group-content{--ibiz-control-dataview-group-item-header-bg-color:transparent;--ibiz-control-dataview-group-item-header-padding:var(--ibiz-spacing-base-tight);--ibiz-control-dataview-group-item-header-border-color:var(--ibiz-color-border);--ibiz-control-dataview-group-item-caption-text-color:var(--ibiz-color-text-0);--ibiz-control-dataview-group-item-caption-font-size:var(--ibiz-font-size-header-5);--ibiz-control-dataview-group-item-caption-font-weight:var(--ibiz-font-weight-bold);--ibiz-control-dataview-group-item-content-bg-color:transparent;--ibiz-control-dataview-group-item-content-padding:var(--ibiz-spacing-tight);width:100%}.ibiz-control-dataview-group-content__item .el-collapse-item__content{display:flex;flex-wrap:wrap}.ibiz-control-dataview-group-content__item--empty{width:100%;text-align:center}.ibiz-control-dataview-group-content__item.is-collapse .ibiz-control-dataview-group-content__item-content{height:0;overflow:hidden}.ibiz-control-dataview-group-content__item-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--ibiz-control-dataview-group-item-header-padding);border-bottom:1px solid var(--ibiz-control-dataview-group-item-header-border-color)}.ibiz-control-dataview-group-content__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-control-dataview-group-item-caption-font-size);font-weight:var(--ibiz-control-dataview-group-item-caption-font-weight);color:var(--ibiz-control-dataview-group-item-caption-text-color)}
@@ -459,7 +459,7 @@ const DataViewControl = /* @__PURE__ */ defineComponent({
459
459
  if (!ctrlModel)
460
460
  return;
461
461
  return createVNode("div", {
462
- "class": ns.e("batchtoolbar")
462
+ "class": [ns.e("batchtoolbar"), ns.is("show", c.showBatchToolbar)]
463
463
  }, [createVNode(resolveComponent("iBizToolbarControl"), {
464
464
  "modelData": ctrlModel,
465
465
  "context": c.context,
@@ -18,7 +18,6 @@ export declare const FormItem: import("vue").DefineComponent<{
18
18
  }, {
19
19
  ns: import("@ibiz-template/core").Namespace;
20
20
  c: FormItemController;
21
- extraParams: import("vue").Ref<{}>;
22
21
  onValueChange: (val: unknown, name?: string, ignore?: boolean) => void;
23
22
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
24
23
  modelData: {
@@ -1,4 +1,4 @@
1
- import { isVNode, ref, createVNode, createTextVNode, resolveComponent, h, defineComponent } from 'vue';
1
+ import { isVNode, 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';
@@ -24,37 +24,19 @@ const FormItem = /* @__PURE__ */ defineComponent({
24
24
  }
25
25
  },
26
26
  setup(props) {
27
- var _a, _b, _c, _d;
28
27
  const ns = useNamespace("form-item");
29
28
  const c = props.controller;
30
29
  const onValueChange = (val, name, ignore = false) => {
31
30
  props.controller.setDataValue(val, name, ignore);
32
31
  };
33
- const extraParams = ref({});
34
- let emptyHiddenUnit = ibiz.config.form.emptyHiddenUnit;
35
- const emptyhiddenunit = (_b = (_a = props.controller.form) == null ? void 0 : _a.controlParams) == null ? void 0 : _b.emptyhiddenunit;
36
- if (emptyhiddenunit) {
37
- emptyHiddenUnit = Object.is(emptyhiddenunit, "true");
38
- }
39
- const editorParams = ((_d = (_c = props.controller.editor) == null ? void 0 : _c.model) == null ? void 0 : _d.editorParams) || {};
40
- const {
41
- EMPTYHIDDENUNIT
42
- } = editorParams;
43
- if (EMPTYHIDDENUNIT) {
44
- emptyHiddenUnit = Object.is(EMPTYHIDDENUNIT, "true");
45
- }
46
- Object.assign(extraParams.value, {
47
- emptyHiddenUnit
48
- });
49
32
  return {
50
33
  ns,
51
34
  c,
52
- extraParams,
53
35
  onValueChange
54
36
  };
55
37
  },
56
38
  render() {
57
- var _a, _b, _c, _d, _e;
39
+ var _a, _b, _c, _d, _e, _f;
58
40
  if (!this.c.state.visible || ((_a = this.c.model.editor) == null ? void 0 : _a.editorType) === "HIDDEN") {
59
41
  return null;
60
42
  }
@@ -88,7 +70,7 @@ const FormItem = /* @__PURE__ */ defineComponent({
88
70
  disabled: this.c.state.disabled,
89
71
  readonly: this.c.state.readonly,
90
72
  onChange: this.onValueChange,
91
- extraParams: this.extraParams,
73
+ extraParams: ((_f = this.c.editor) == null ? void 0 : _f.extraParams) || {},
92
74
  controlParams: editMode ? {
93
75
  ...this.c.form.controlParams,
94
76
  editmode: editMode
@@ -15,7 +15,6 @@ export declare const IBizFormItem: import("@ibiz-template/vue3-util").TypeWithIn
15
15
  }, {
16
16
  ns: import("@ibiz-template/core").Namespace;
17
17
  c: import("@ibiz-template/runtime").FormItemController;
18
- extraParams: import("vue").Ref<{}>;
19
18
  onValueChange: (val: unknown, name?: string | undefined, ignore?: boolean) => void;
20
19
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
21
20
  modelData: {
@@ -8,9 +8,9 @@ export declare const FormMDCtrlMD: import("vue").DefineComponent<{
8
8
  }, {
9
9
  ns: import("@ibiz-template/core").Namespace;
10
10
  showActions: import("vue").ComputedRef<boolean>;
11
- isSelected: import("vue").Ref<boolean>;
12
11
  onCreated: (event: EventBase) => void;
13
12
  onSelectionChange: (event: EventBase) => void;
13
+ renderRemoveBtn: () => import("vue/jsx-runtime").JSX.Element | null;
14
14
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
15
15
  controller: {
16
16
  type: typeof FormMDCtrlMDController;
@@ -1,7 +1,8 @@
1
- import { isVNode, computed, ref, resolveComponent, h, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, computed, ref, resolveComponent, createVNode, h, defineComponent } from 'vue';
2
2
  import { FormMDCtrlMDController } from '@ibiz-template/runtime';
3
3
  import { useNamespace } from '@ibiz-template/vue3-util';
4
4
  import './form-mdctrl-md.css';
5
+ import { showTitle } from '@ibiz-template/core';
5
6
 
6
7
  "use strict";
7
8
  function _isSlot(s) {
@@ -27,16 +28,52 @@ const FormMDCtrlMD = /* @__PURE__ */ defineComponent({
27
28
  const onSelectionChange = (event) => {
28
29
  isSelected.value = event.data.length > 0;
29
30
  };
31
+ const handleRemove = () => {
32
+ isSelected.value = false;
33
+ props.controller.remove();
34
+ };
35
+ const renderRemoveBtn = () => {
36
+ let _slot2;
37
+ if (!props.controller.enableDelete)
38
+ return null;
39
+ if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
40
+ return createVNode(resolveComponent("el-popconfirm"), {
41
+ "title": showTitle(ibiz.i18n.t("control.form.mdCtrlContainer.promptInformation")),
42
+ "confirm-button-text": ibiz.i18n.t("app.confirm"),
43
+ "cancel-button-text": ibiz.i18n.t("app.cancel"),
44
+ "onConfirm": () => handleRemove()
45
+ }, {
46
+ reference: () => {
47
+ let _slot;
48
+ return createVNode(resolveComponent("el-button"), {
49
+ "type": "danger",
50
+ "disabled": !isSelected.value,
51
+ "class": [ns.be("actions", "remove"), ns.be("actions", "btn")]
52
+ }, _isSlot(_slot = ibiz.i18n.t("app.delete")) ? _slot : {
53
+ default: () => [_slot]
54
+ });
55
+ }
56
+ });
57
+ }
58
+ return createVNode(resolveComponent("el-button"), {
59
+ "type": "danger",
60
+ "disabled": !isSelected.value,
61
+ "class": [ns.be("actions", "remove"), ns.be("actions", "btn")],
62
+ "onClick": () => handleRemove()
63
+ }, _isSlot(_slot2 = ibiz.i18n.t("app.delete")) ? _slot2 : {
64
+ default: () => [_slot2]
65
+ });
66
+ };
30
67
  return {
31
68
  ns,
32
69
  showActions,
33
- isSelected,
34
70
  onCreated,
35
- onSelectionChange
71
+ onSelectionChange,
72
+ renderRemoveBtn
36
73
  };
37
74
  },
38
75
  render() {
39
- let _slot, _slot2;
76
+ let _slot3;
40
77
  const {
41
78
  mdProvider,
42
79
  model
@@ -62,16 +99,9 @@ const FormMDCtrlMD = /* @__PURE__ */ defineComponent({
62
99
  }, [this.controller.enableCreate && createVNode(resolveComponent("el-button"), {
63
100
  "class": [this.ns.be("actions", "create"), this.ns.be("actions", "btn")],
64
101
  "onClick": () => this.controller.create()
65
- }, _isSlot(_slot = ibiz.i18n.t("app.add")) ? _slot : {
66
- default: () => [_slot]
67
- }), this.controller.enableDelete && createVNode(resolveComponent("el-button"), {
68
- "type": "danger",
69
- "disabled": !this.isSelected,
70
- "class": [this.ns.be("actions", "remove"), this.ns.be("actions", "btn")],
71
- "onClick": () => this.controller.remove()
72
- }, _isSlot(_slot2 = ibiz.i18n.t("app.delete")) ? _slot2 : {
73
- default: () => [_slot2]
74
- })])]);
102
+ }, _isSlot(_slot3 = ibiz.i18n.t("app.add")) ? _slot3 : {
103
+ default: () => [_slot3]
104
+ }), this.renderRemoveBtn()])]);
75
105
  }
76
106
  });
77
107
 
@@ -1 +1 @@
1
- .ibiz-form-tab-panel{width:100%;height:100%;--ibiz-form-tab-panel-font-size:var(--ibiz-font-size-header-4);--ibiz-form-tab-panel-header-border-color:var(--ibiz-color-border);--ibiz-form-tab-panel-text-color:var(--ibiz-color-text-2);--ibiz-form-tab-panel-bg-color:transparent;--ibiz-form-tab-panel-hover-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-hover-bg-color:transparent;--ibiz-form-tab-panel-active-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-active-bg-color:transparent;--ibiz-form-tab-panel-active-border-color:var(--ibiz-color-primary)}.ibiz-form-tab-panel>.el-tabs__header.is-top{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-form-tab-panel>.el-tabs__header.is-top .el-tabs__item.is-top{font-size:var(--ibiz-form-tab-panel-font-size);color:var(--ibiz-form-tab-panel-text-color);background-color:var(--ibiz-form-tab-panel-bg-color)}.ibiz-form-tab-panel>.el-tabs__header.is-top .el-tabs__item.is-top:hover{color:var(--ibiz-form-tab-panel-hover-text-color);background-color:var(--ibiz-form-tab-panel-hover-bg-color)}.ibiz-form-tab-panel>.el-tabs__header.is-top .el-tabs__item.is-top.is-active{color:var(--ibiz-form-tab-panel-active-text-color);background-color:var(--ibiz-form-tab-panel-active-bg-color)}.ibiz-form-tab-panel .el-tabs__nav-wrap::after{height:1px;background-color:var(--ibiz-form-tab-panel-header-border-color)}.ibiz-form-tab-panel .el-tabs__active-bar{background-color:var(--ibiz-form-tab-panel-active-border-color)}.ibiz-form-tab-panel .el-tabs__item .ibiz-form-tab-panel__badge.is-no-counter{padding-right:var(--ibiz-spacing-none)}.ibiz-form-tab-panel__badge .el-badge__content{padding:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-small);background-color:var(--ibiz-color-danger)}.ibiz-form-tab-panel__badge .el-badge__content.is-fixed{top:var(--ibiz-spacing-super-tight);right:0}
1
+ .ibiz-form-tab-panel{width:100%;height:100%;--ibiz-form-tab-panel-font-size:var(--ibiz-font-size-header-4);--ibiz-form-tab-panel-header-border-color:var(--ibiz-color-border);--ibiz-form-tab-panel-text-color:var(--ibiz-color-text-2);--ibiz-form-tab-panel-bg-color:transparent;--ibiz-form-tab-panel-hover-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-hover-bg-color:transparent;--ibiz-form-tab-panel-active-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-active-bg-color:transparent;--ibiz-form-tab-panel-active-border-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-select-all-height:40px}.ibiz-form-tab-panel>.el-tabs__header.is-top{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-form-tab-panel>.el-tabs__header.is-top .el-tabs__item.is-top{font-size:var(--ibiz-form-tab-panel-font-size);color:var(--ibiz-form-tab-panel-text-color);background-color:var(--ibiz-form-tab-panel-bg-color)}.ibiz-form-tab-panel>.el-tabs__header.is-top .el-tabs__item.is-top:hover{color:var(--ibiz-form-tab-panel-hover-text-color);background-color:var(--ibiz-form-tab-panel-hover-bg-color)}.ibiz-form-tab-panel>.el-tabs__header.is-top .el-tabs__item.is-top.is-active{color:var(--ibiz-form-tab-panel-active-text-color);background-color:var(--ibiz-form-tab-panel-active-bg-color)}.ibiz-form-tab-panel .el-tabs__nav-wrap::after{height:1px;background-color:var(--ibiz-form-tab-panel-header-border-color)}.ibiz-form-tab-panel .el-tabs__active-bar{background-color:var(--ibiz-form-tab-panel-active-border-color)}.ibiz-form-tab-panel .el-tabs__item .ibiz-form-tab-panel__badge.is-no-counter{padding-right:var(--ibiz-spacing-none)}.ibiz-form-tab-panel__badge .el-badge__content{padding:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-small);background-color:var(--ibiz-color-danger)}.ibiz-form-tab-panel__badge .el-badge__content.is-fixed{top:var(--ibiz-spacing-super-tight);right:0}.ibiz-form-tab-panel--style2 .el-tabs__nav-next.is-disabled,.ibiz-form-tab-panel--style2 .el-tabs__nav-prev.is-disabled{display:none}.ibiz-form-tab-panel--style2 .el-tabs__nav-wrap.is-top:has(.el-tabs__nav-prev.is-disabled){padding-left:0}.ibiz-form-tab-panel--style2 .el-tabs__nav-wrap.is-top:has(.el-tabs__nav-next.is-disabled){padding-right:0}.ibiz-form-tab-panel-tab-panel-container-style2{position:relative;display:flex;width:100%;--ibiz-form-tab-panel-font-size:var(--ibiz-font-size-header-4);--ibiz-form-tab-panel-header-border-color:var(--ibiz-color-border);--ibiz-form-tab-panel-text-color:var(--ibiz-color-text-2);--ibiz-form-tab-panel-bg-color:transparent;--ibiz-form-tab-panel-hover-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-hover-bg-color:transparent;--ibiz-form-tab-panel-active-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-active-bg-color:transparent;--ibiz-form-tab-panel-active-border-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-select-all-height:40px}.ibiz-form-tab-panel-tab-panel-container-style2 .ibiz-form-tab-panel{width:100%}.ibiz-form-tab-panel-tab-panel-container-style2 .ibiz-form-tab-panel .el-tabs__header{width:calc(100% - 72px)}.ibiz-form-tab-panel-tab-panel-container-style2__popover{--ibiz-form-tab-panel-font-size:var(--ibiz-font-size-header-4);--ibiz-form-tab-panel-header-border-color:var(--ibiz-color-border);--ibiz-form-tab-panel-text-color:var(--ibiz-color-text-2);--ibiz-form-tab-panel-bg-color:transparent;--ibiz-form-tab-panel-hover-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-hover-bg-color:transparent;--ibiz-form-tab-panel-active-text-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-active-bg-color:transparent;--ibiz-form-tab-panel-active-border-color:var(--ibiz-color-primary);--ibiz-form-tab-panel-select-all-height:40px}.ibiz-form-tab-panel-tab-panel-container-style2__popover.el-popover{padding:0}.ibiz-form-tab-panel-tab-panel-container-style2__select{position:absolute;top:0;right:0;display:flex;gap:var(--ibiz-spacing-extra-tight);align-items:center;justify-content:center;width:72px;height:var(--ibiz-form-tab-panel-select-all-height);font-size:var(--ibiz-form-tab-panel-font-size);color:var(--ibiz-form-tab-panel-text-color);cursor:pointer;border-bottom:1px solid var(--ibiz-form-tab-panel-header-border-color)}.ibiz-form-tab-panel-tab-panel-container-style2__content{padding:var(--ibiz-spacing-base) 0}.ibiz-form-tab-panel-tab-panel-container-style2__tab-item-content{width:100%;padding:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-form-tab-panel-tab-panel-container-style2__tab-item-content:hover{color:var(--ibiz-form-tab-panel-hover-text-color);background-color:var(--ibiz-form-tab-panel-hover-bg-color)}.ibiz-form-tab-panel-tab-panel-container-style2__tab-item-content.is-active{color:var(--ibiz-form-tab-panel-active-text-color)}
@@ -13,7 +13,9 @@ export declare const FormTabPanel: import("vue").DefineComponent<{
13
13
  };
14
14
  }, {
15
15
  ns: import("@ibiz-template/core").Namespace;
16
+ popoverVisible: import("vue").Ref<boolean>;
16
17
  onTabClick: (tabIns: IData, event: MouseEvent) => void;
18
+ renderAllTabContent: () => import("vue/jsx-runtime").JSX.Element;
17
19
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
18
20
  modelData: {
19
21
  type: PropType<IDEFormTabPanel>;
@@ -1,4 +1,4 @@
1
- import { isVNode, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, ref, createVNode, resolveComponent, defineComponent } from 'vue';
2
2
  import { useNamespace, useController } from '@ibiz-template/vue3-util';
3
3
  import './form-tab-panel.css';
4
4
  import { FormTabPanelController } from '@ibiz-template/runtime';
@@ -22,16 +22,39 @@ const FormTabPanel = /* @__PURE__ */ defineComponent({
22
22
  setup(props) {
23
23
  const ns = useNamespace("form-tab-panel");
24
24
  useController(props.controller);
25
- const onTabClick = (tabIns, event) => {
26
- props.controller.onTabChange(tabIns.props.name);
27
- const pageC = props.controller.form.details[tabIns.props.name];
25
+ const popoverVisible = ref(false);
26
+ const triggerClick = (key, event) => {
27
+ const pageC = props.controller.form.details[key];
28
28
  if (pageC) {
29
29
  pageC.onClick(event);
30
30
  }
31
31
  };
32
+ const onTabClick = (tabIns, event) => {
33
+ props.controller.onTabChange(tabIns.props.name);
34
+ triggerClick(tabIns.props.name, event);
35
+ };
36
+ const onPopoverClick = (key, event) => {
37
+ props.controller.selectTab(key);
38
+ popoverVisible.value = false;
39
+ triggerClick(key, event);
40
+ };
41
+ const renderAllTabContent = () => {
42
+ var _a;
43
+ return createVNode("div", {
44
+ "class": ns.be("tab-panel-container-style2", "content")
45
+ }, [(_a = props.modelData.deformTabPages) == null ? void 0 : _a.map((page) => {
46
+ return createVNode("div", {
47
+ "class": [ns.be("tab-panel-container-style2", "tab-item-content"), ns.is("active", page.id === props.controller.state.activeTab)],
48
+ "onClick": (event) => onPopoverClick(page.codeName, event),
49
+ "title": page.caption
50
+ }, [page.caption]);
51
+ })]);
52
+ };
32
53
  return {
33
54
  ns,
34
- onTabClick
55
+ popoverVisible,
56
+ onTabClick,
57
+ renderAllTabContent
35
58
  };
36
59
  },
37
60
  render() {
@@ -45,7 +68,7 @@ const FormTabPanel = /* @__PURE__ */ defineComponent({
45
68
  "icon": c.model.sysImage
46
69
  }, null), c.model.showCaption && c.model.caption]);
47
70
  };
48
- return createVNode(resolveComponent("el-tabs"), {
71
+ const tabContent = createVNode(resolveComponent("el-tabs"), {
49
72
  "class": [this.ns.b(), this.ns.m(this.modelData.codeName), this.modelData.detailStyle ? this.ns.m(this.modelData.detailStyle.toLowerCase()) : "", ...this.controller.containerClass],
50
73
  "model-value": this.controller.state.activeTab,
51
74
  "onTabClick": this.onTabClick
@@ -81,6 +104,31 @@ const FormTabPanel = /* @__PURE__ */ defineComponent({
81
104
  })) ? _slot2 : {
82
105
  default: () => [_slot2]
83
106
  });
107
+ if (this.modelData.detailStyle === "STYLE2") {
108
+ return createVNode("div", {
109
+ "class": this.ns.b("tab-panel-container-style2")
110
+ }, [tabContent, createVNode(resolveComponent("el-popover"), {
111
+ "trigger": "click",
112
+ "placement": "top-end",
113
+ "visible": this.popoverVisible,
114
+ "onUpdate:visible": ($event) => this.popoverVisible = $event,
115
+ "popper-class": this.ns.be("tab-panel-container-style2", "popover")
116
+ }, {
117
+ reference: () => {
118
+ return createVNode("div", {
119
+ "class": this.ns.be("tab-panel-container-style2", "select")
120
+ }, [createVNode("div", {
121
+ "class": this.ns.bem("tab-panel-container-style2", "select", "title")
122
+ }, [ibiz.i18n.t("control.form.formTabPnel.all")]), createVNode("ion-icon", {
123
+ "name": "caret-down-outline"
124
+ }, null)]);
125
+ },
126
+ default: () => {
127
+ return this.renderAllTabContent();
128
+ }
129
+ })]);
130
+ }
131
+ return tabContent;
84
132
  }
85
133
  });
86
134
 
@@ -9,7 +9,9 @@ export declare const IBizFormTabPanel: import("@ibiz-template/vue3-util").TypeWi
9
9
  };
10
10
  }, {
11
11
  ns: import("@ibiz-template/core").Namespace;
12
+ popoverVisible: import("vue").Ref<boolean>;
12
13
  onTabClick: (tabIns: import("@ibiz-template/core").IApiData, event: MouseEvent) => void;
14
+ renderAllTabContent: () => import("vue/jsx-runtime").JSX.Element;
13
15
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
14
16
  modelData: {
15
17
  type: import("vue").PropType<import("@ibiz/model-core").IDEFormTabPanel>;
@@ -160,7 +160,9 @@ const GanttControl = /* @__PURE__ */ defineComponent({
160
160
  var _a2;
161
161
  const columnKey = (_a2 = c.controlParams.expandiconcolumn) == null ? void 0 : _a2.toLowerCase();
162
162
  const columnSatate = c.state.columnStates.find((item) => columnKey && item.key.toLowerCase() === columnKey);
163
- return columnSatate == null ? void 0 : columnSatate.key;
163
+ if (columnSatate && !columnSatate.hidden)
164
+ return columnSatate.key;
165
+ return void 0;
164
166
  });
165
167
  watch([() => ganttRef.value, () => c.state.selectedData], ([table, newVal]) => {
166
168
  if (forbidOperation || !table)
@@ -413,7 +413,7 @@ const GridControl = /* @__PURE__ */ defineComponent({
413
413
  return;
414
414
  }
415
415
  return createVNode("div", {
416
- "class": [ns.b("batch-toolbar"), ns.is("show", c.state.selectedData.length > 0)]
416
+ "class": [ns.b("batch-toolbar"), ns.is("show", c.showBatchToolbar)]
417
417
  }, [createVNode("div", {
418
418
  "class": ns.b("batch-toolbar-content")
419
419
  }, [createVNode("div", {