@ibiz-template/vue3-components 0.7.41-alpha.17 → 0.7.41-alpha.18

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 (182) hide show
  1. package/dist/chart-q7pMKjYo.js +1 -0
  2. package/dist/ibiz-markdown-editor-e33m6ees.js +1 -0
  3. package/dist/index-dXwgWAM8.js +11 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/map-chart-user-NYROZ-6g.js +1 -0
  7. package/dist/wang-editor-4OlaBV3P.js +1 -0
  8. package/dist/{xlsx-util-jYyM8alm.js → xlsx-util-Rg-AbK_G.js} +1 -1
  9. package/es/common/control-navigation/provider/calendar-navigation.provider.mjs +3 -1
  10. package/es/common/control-navigation/provider/index.mjs +1 -1
  11. package/es/common/control-navigation/provider/map-navigation.provider.d.ts +8 -2
  12. package/es/common/control-navigation/provider/map-navigation.provider.mjs +20 -1
  13. package/es/common/map-chart-user/map-chart-user.css +1 -1
  14. package/es/common/map-chart-user/map-chart-user.d.ts +11 -1
  15. package/es/common/map-chart-user/map-chart-user.mjs +82 -6
  16. package/es/common/map-chart-user/map-chart-user.util.d.ts +2 -0
  17. package/es/common/map-chart-user/map-chart-user.util.mjs +54 -3
  18. package/es/common/map-chart-user/map-user-manager.d.ts +2 -0
  19. package/es/common/map-chart-user/map-user-manager.mjs +46 -10
  20. package/es/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  21. package/es/control/calendar/components/calendar-daily/calendar-daily.mjs +30 -43
  22. package/es/control/calendar/components/calendar-daily/use-calendar-daily.d.ts +6 -2
  23. package/es/control/calendar/components/calendar-daily/use-calendar-daily.mjs +37 -4
  24. package/es/control/calendar/components/calendar-user/calendar-user.css +1 -1
  25. package/es/control/calendar/components/calendar-user/calendar-user.mjs +1 -0
  26. package/es/control/calendar/components/calendar-week/calendar-week.css +1 -1
  27. package/es/control/calendar/components/calendar-week/calendar-week.mjs +30 -45
  28. package/es/control/calendar/components/calendar-week/use-calendar-week.d.ts +6 -2
  29. package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +37 -4
  30. package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  31. package/es/control/calendar/components/util/index.mjs +1 -1
  32. package/es/control/calendar/components/util/util.d.ts +30 -2
  33. package/es/control/calendar/components/util/util.mjs +32 -2
  34. package/es/control/chart/chart.mjs +1 -0
  35. package/es/control/data-view/data-view.d.ts +1 -1
  36. package/es/control/data-view/index.d.ts +1 -1
  37. package/es/control/drtab/drtab-control.util.mjs +1 -1
  38. package/es/control/drtab/drtab.controller.d.ts +5 -0
  39. package/es/control/drtab/drtab.controller.mjs +19 -0
  40. package/es/control/drtab/flow-drtab.css +1 -1
  41. package/es/control/drtab/flow-drtab.mjs +6 -1
  42. package/es/control/exp-bar/render-util.mjs +1 -12
  43. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +8 -4
  44. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  45. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.mjs +2 -1
  46. package/es/control/gantt/gantt.css +1 -1
  47. package/es/control/gantt/gantt.d.ts +4 -2
  48. package/es/control/gantt/gantt.mjs +130 -5
  49. package/es/control/gantt/index.d.ts +4 -2
  50. package/es/control/grid/grid/grid.d.ts +1 -1
  51. package/es/control/grid/grid/index.d.ts +1 -1
  52. package/es/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.mjs +11 -2
  53. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.d.ts +1 -1
  54. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.mjs +39 -24
  55. package/es/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  56. package/es/control/grid/virtualized-table/index.d.ts +1 -1
  57. package/es/control/grid/virtualized-table/virtualized-table.d.ts +1 -1
  58. package/es/control/kanban/index.d.ts +1 -1
  59. package/es/control/kanban/kanban.d.ts +1 -1
  60. package/es/control/list/index.d.ts +1 -1
  61. package/es/control/list/list.d.ts +1 -1
  62. package/es/control/list/list.mjs +1 -1
  63. package/es/control/map/map.mjs +1 -1
  64. package/es/control/tree/index.d.ts +1 -1
  65. package/es/control/tree/tree.d.ts +5 -5
  66. package/es/control/tree/tree.mjs +5 -13
  67. package/es/control/tree-grid/index.d.ts +7 -1
  68. package/es/control/tree-grid/tree-grid.d.ts +7 -1
  69. package/es/control/tree-grid/tree-grid.mjs +62 -55
  70. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.mjs +3 -1
  71. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.css +1 -1
  72. package/es/control/tree-grid-ex/tree-grid-ex.css +1 -1
  73. package/es/control/tree-grid-ex/tree-grid-ex.mjs +32 -28
  74. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.d.ts +2 -75
  75. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.mjs +24 -12
  76. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +17 -1
  77. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.mjs +4 -2
  78. package/es/editor/html/wang-editor/wang-editor.mjs +29 -7
  79. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +36 -5
  80. package/es/editor/upload/use/use-iview-upload.d.ts +0 -1
  81. package/es/editor/upload/use/use-iview-upload.mjs +50 -25
  82. package/es/locale/en/index.d.ts +5 -0
  83. package/es/locale/zh-CN/index.d.ts +5 -0
  84. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.d.ts +1 -1
  85. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.d.ts +1 -1
  86. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.d.ts +1 -1
  87. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.d.ts +1 -1
  88. package/es/panel-component/nav-breadcrumb/index.d.ts +1 -0
  89. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.controller.d.ts +8 -1
  90. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.controller.mjs +64 -18
  91. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.css +1 -1
  92. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.d.ts +3 -1
  93. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.mjs +14 -3
  94. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.service.d.ts +1 -1
  95. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.service.mjs +5 -6
  96. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.state.d.ts +8 -0
  97. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.state.mjs +6 -0
  98. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.util.d.ts +26 -1
  99. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.util.mjs +50 -6
  100. package/es/panel-component/user-message/async-action/async-data-export/async-data-export.d.ts +1 -0
  101. package/es/panel-component/user-message/async-action/async-data-export/async-data-export.mjs +3 -1
  102. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  103. package/es/view-engine/calendar-exp-view.engine.d.ts +6 -7
  104. package/es/view-engine/calendar-exp-view.engine.mjs +6 -24
  105. package/es/view-engine/edit-view.engine.d.ts +11 -0
  106. package/es/view-engine/edit-view.engine.mjs +12 -0
  107. package/es/view-engine/login-view.engine.d.ts +11 -1
  108. package/es/view-engine/login-view.engine.mjs +9 -5
  109. package/es/view-engine/mpickup-view-engine.d.ts +8 -1
  110. package/es/view-engine/mpickup-view-engine.mjs +14 -8
  111. package/es/view-engine/pickup-view.engine.d.ts +8 -1
  112. package/es/view-engine/pickup-view.engine.mjs +15 -0
  113. package/lib/common/control-navigation/provider/calendar-navigation.provider.cjs +3 -1
  114. package/lib/common/control-navigation/provider/index.cjs +1 -1
  115. package/lib/common/control-navigation/provider/map-navigation.provider.cjs +20 -1
  116. package/lib/common/map-chart-user/map-chart-user.cjs +81 -5
  117. package/lib/common/map-chart-user/map-chart-user.css +1 -1
  118. package/lib/common/map-chart-user/map-chart-user.util.cjs +54 -3
  119. package/lib/common/map-chart-user/map-user-manager.cjs +46 -10
  120. package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +29 -42
  121. package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  122. package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +35 -2
  123. package/lib/control/calendar/components/calendar-user/calendar-user.cjs +1 -0
  124. package/lib/control/calendar/components/calendar-user/calendar-user.css +1 -1
  125. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +29 -44
  126. package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -1
  127. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +35 -2
  128. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  129. package/lib/control/calendar/components/util/index.cjs +4 -0
  130. package/lib/control/calendar/components/util/util.cjs +34 -0
  131. package/lib/control/chart/chart.cjs +1 -0
  132. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  133. package/lib/control/drtab/drtab.controller.cjs +19 -0
  134. package/lib/control/drtab/flow-drtab.cjs +5 -0
  135. package/lib/control/drtab/flow-drtab.css +1 -1
  136. package/lib/control/exp-bar/render-util.cjs +1 -12
  137. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +7 -3
  138. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.cjs +2 -1
  139. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  140. package/lib/control/gantt/gantt.cjs +129 -4
  141. package/lib/control/gantt/gantt.css +1 -1
  142. package/lib/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.cjs +11 -2
  143. package/lib/control/grid/grid-column/grid-field-column/attachment-column/file-util.cjs +39 -24
  144. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  145. package/lib/control/list/list.cjs +1 -1
  146. package/lib/control/map/map.cjs +1 -1
  147. package/lib/control/tree/tree.cjs +5 -13
  148. package/lib/control/tree-grid/tree-grid.cjs +62 -55
  149. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.cjs +3 -1
  150. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.css +1 -1
  151. package/lib/control/tree-grid-ex/tree-grid-ex.cjs +32 -28
  152. package/lib/control/tree-grid-ex/tree-grid-ex.css +1 -1
  153. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.cjs +24 -12
  154. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +17 -1
  155. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.cjs +4 -2
  156. package/lib/editor/html/wang-editor/wang-editor.cjs +29 -7
  157. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +36 -5
  158. package/lib/editor/upload/use/use-iview-upload.cjs +50 -25
  159. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.cjs +14 -3
  160. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.controller.cjs +63 -17
  161. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.css +1 -1
  162. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.service.cjs +4 -5
  163. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.state.cjs +6 -0
  164. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.util.cjs +52 -5
  165. package/lib/panel-component/user-message/async-action/async-data-export/async-data-export.cjs +3 -1
  166. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  167. package/lib/view-engine/calendar-exp-view.engine.cjs +6 -24
  168. package/lib/view-engine/edit-view.engine.cjs +12 -0
  169. package/lib/view-engine/login-view.engine.cjs +9 -5
  170. package/lib/view-engine/mpickup-view-engine.cjs +14 -8
  171. package/lib/view-engine/pickup-view.engine.cjs +15 -0
  172. package/package.json +6 -6
  173. package/dist/chart-8QfxarWf.js +0 -1
  174. package/dist/ibiz-markdown-editor-0VHzFa2l.js +0 -1
  175. package/dist/index-t1aZ8OJE.js +0 -11
  176. package/dist/map-chart-user-xOSZGbF2.js +0 -1
  177. package/dist/wang-editor-Y8puaTx2.js +0 -1
  178. package/es/editor/upload/use/use-ibiz-upload.d.ts +0 -95
  179. package/es/editor/upload/use/use-ibiz-upload.mjs +0 -170
  180. package/lib/editor/upload/use/use-ibiz-upload.cjs +0 -175
  181. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.17_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.18_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
  182. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.17_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.18_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
@@ -1,4 +1,4 @@
1
- import { isVNode, ref, reactive, watch, nextTick, onMounted, resolveComponent, createVNode, toRaw, h, defineComponent } from 'vue';
1
+ import { isVNode, ref, reactive, watch, onUnmounted, resolveComponent, createVNode, toRaw, h, defineComponent } from 'vue';
2
2
  import Sortable from '../../../../../../node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.mjs';
3
3
  import { FormMDCtrlRepeaterController, EditFormController, ControlVO } from '@ibiz-template/runtime';
4
4
  import { createUUID } from 'qx-util';
@@ -89,12 +89,13 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
89
89
  immediate: true,
90
90
  deep: true
91
91
  });
92
+ let sortable;
92
93
  const rowDrop = () => {
93
94
  var _a, _b;
94
95
  const wrapper = (_b = (_a = tableRef.value) == null ? void 0 : _a.$el) == null ? void 0 : _b.querySelector(".el-table__body-wrapper tbody");
95
96
  if (!wrapper || !props.controller.enableSort)
96
97
  return;
97
- Sortable.create(wrapper, {
98
+ sortable = Sortable.create(wrapper, {
98
99
  animation: 150,
99
100
  handle: ".".concat(ns.e("drag-icon")),
100
101
  ghostClass: "".concat(ns.e("sortable-ghost")),
@@ -107,9 +108,12 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
107
108
  }
108
109
  });
109
110
  };
110
- onMounted(() => {
111
- nextTick(() => rowDrop());
111
+ watch(() => tableRef.value, () => {
112
+ if (!props.controller.enableSort)
113
+ return;
114
+ tableRef.value ? rowDrop() : sortable == null ? void 0 : sortable.destroy();
112
115
  });
116
+ onUnmounted(() => sortable == null ? void 0 : sortable.destroy());
113
117
  const renderRemoveBtn = (index) => {
114
118
  let _slot2;
115
119
  if (!props.controller.enableDelete) {
@@ -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)}
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}
@@ -101,7 +101,8 @@ const FormTabPanel = /* @__PURE__ */ defineComponent({
101
101
  return c.model.counterId ? createVNode(resolveComponent("el-badge"), {
102
102
  "class": [this.ns.e("badge"), this.ns.is("no-counter", !value && value !== 0 || c.model.counterMode === 1 && value <= 0)],
103
103
  "value": value,
104
- "hidden": !value && value !== 0 || c.model.counterMode === 1 && value <= 0
104
+ "hidden": !value && value !== 0 || c.model.counterMode === 1 && value <= 0,
105
+ "max": 99
105
106
  }, _isSlot(_slot = renderItemText(c)) ? _slot : {
106
107
  default: () => [_slot]
107
108
  }) : renderItemText(c);
@@ -1 +1 @@
1
- .ibiz-control-gantt{width:100%;height:100%}.ibiz-control-gantt .xg-root{--gantt-bg:var(--ibiz-color-bg-1);--gantt-bg-hover:var(--ibiz-color-disabled-border);--gantt-bg-active:var(--ibiz-color-disabled-border);--gantt-bg-checkmark:transparent;--gantt-bg-toolbar-item-hover:var(--ibiz-color-primary-light-default);--gantt-shadow:var(--ibiz-color-shadow);--gantt-shadow-toolbar-item:var(--ibiz-color-shadow);--gantt-border:var(--ibiz-color-tertiary-light-active);--gantt-border-hover:var(--ibiz-color-tertiary-light-active);--gantt-border-dashed:var(--ibiz-color-disabled-border);--gantt-border-toolbar-item:var(--ibiz-color-border);--gantt-border-separate-line:var(--ibiz-color-border);--gantt-text-0:var(--ibiz-color-text-0);--gantt-text-3:var(--ibiz-color-text-3);--gantt-white:var(--ibiz-color-white);--gantt-black:var(--ibiz-color-black);--gantt-color-primary:var(--ibiz-color-primary);--gantt-warning:var(--ibiz-color-warning)}.ibiz-control-gantt .xg-root .xg-table-body .xg-table-row{cursor:pointer}.ibiz-control-gantt .xg-root .xg-table-body .xg-table-row .xg-table-cell:not(:first-child)>div{padding:var(--ibiz-spacing-none)}.ibiz-control-gantt .xg-root .xg-table-cell>div{width:100%}.ibiz-control-gantt .xg-root .xg-table-cell>div .cell{height:100%}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row{overflow:visible}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row .xg-slider.xg-slider-drag.xg-slider-level0{overflow:visible}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row .xg-slider .xg-slider-block{overflow:visible}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row .xg-slider.is-no-width{display:none}.ibiz-control-gantt .xg-root .ibiz-control-gantt__slider--caption{position:sticky;left:8px}.ibiz-control-gantt .xg-root .is-exceeds-range .ibiz-control-gantt__slider::after{position:absolute;right:0;z-index:99;display:block;width:16px;height:100%;content:"";background-color:var(--ibiz-color-primary)}.ibiz-control-gantt--empty .xg-table-body{height:calc(100% - 86px)!important}.ibiz-control-gantt__slider{display:flex;align-items:center;height:100%;padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base-tight);cursor:pointer;background-color:var(--ibiz-color-primary);border-radius:var(--ibiz-border-radius-small)}.ibiz-control-gantt__slider--container-title .icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-control-gantt__slider--container-title .number{display:flex;align-items:center}.ibiz-control-gantt__slider--container-title .caption{margin:var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-header-6);font-weight:var(--ibiz-font-weight-regular)}.ibiz-control-gantt__slider--container-content{display:flex;justify-content:space-between}.ibiz-control-gantt__slider--container-content .caption{margin:var(--ibiz-spacing-extra-tight);color:var(--ibiz-color-disabled-text)}.ibiz-control-gantt__slider--container-content .detail{display:flex;flex-direction:column;flex-grow:1;align-items:center}.ibiz-control-gantt__slider--caption{overflow:hidden;color:var(--ibiz-color-primary-text);text-overflow:ellipsis;white-space:nowrap}.ibiz-control-gantt__setting{display:flex;align-items:center}.ibiz-control-gantt__setting--icon{cursor:pointer;fill:var(--ibiz-color-primary)}.ibiz-control-gantt__slider-popover{z-index:300!important;width:auto;min-width:300px;padding:12px;border:none;box-shadow:var(--ibiz-shadow-elevated)}.ibiz-control-gantt .ibiz-tree-grid-ex-field-column--ellipsis .ibiz-tree-grid-ex-field-column-text-container{min-width:0}.ibiz-control-gantt .ibiz-tree-grid-ex-field-column-toolbar-container{flex-shrink:0}.ibiz-control-gantt .ibiz-tree-grid-ex-edit-column__editor{min-height:32px}.xg-view-toolbar-switch-action{--gantt-text-switch-item:var(--ibiz-color-text-3);--gantt-bg-hover-switch-item:var(--ibiz-color-bg-0)}
1
+ .ibiz-control-gantt{width:100%;height:100%}.ibiz-control-gantt .xg-root{--gantt-bg:var(--ibiz-color-bg-1);--gantt-bg-hover:var(--ibiz-color-disabled-border);--gantt-bg-active:var(--ibiz-color-disabled-border);--gantt-bg-checkmark:transparent;--gantt-bg-toolbar-item-hover:var(--ibiz-color-primary-light-default);--gantt-shadow:var(--ibiz-color-shadow);--gantt-shadow-toolbar-item:var(--ibiz-color-shadow);--gantt-border:var(--ibiz-color-tertiary-light-active);--gantt-border-hover:var(--ibiz-color-tertiary-light-active);--gantt-border-dashed:var(--ibiz-color-disabled-border);--gantt-border-toolbar-item:var(--ibiz-color-border);--gantt-border-separate-line:var(--ibiz-color-border);--gantt-text-0:var(--ibiz-color-text-0);--gantt-text-3:var(--ibiz-color-text-3);--gantt-white:var(--ibiz-color-white);--gantt-black:var(--ibiz-color-black);--gantt-color-primary:var(--ibiz-color-primary);--gantt-warning:var(--ibiz-color-warning);--gantt-color-linking:var(--ibiz-color-primary);--gantt-link-path-hover:var(--ibiz-color-primary)}.ibiz-control-gantt .xg-root .xg-table-body .xg-table-row{cursor:pointer}.ibiz-control-gantt .xg-root .xg-table-body .xg-table-row .xg-table-cell:not(:first-child)>div{padding:var(--ibiz-spacing-none)}.ibiz-control-gantt .xg-root .xg-table-cell>div{width:100%}.ibiz-control-gantt .xg-root .xg-table-cell>div .cell{height:100%}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row{overflow:visible}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row .xg-slider.xg-slider-drag.xg-slider-level0{overflow:visible}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row .xg-slider .xg-slider-block{overflow:visible}.ibiz-control-gantt .xg-root .xg-row.xg-gantt-row .xg-slider.is-no-width{display:none}.ibiz-control-gantt .xg-root .ibiz-control-gantt__slider--caption{position:sticky;left:8px}.ibiz-control-gantt .xg-root .is-exceeds-range .ibiz-control-gantt__slider::after{position:absolute;right:0;z-index:99;display:block;width:16px;height:100%;content:"";background-color:var(--ibiz-color-primary)}.ibiz-control-gantt--empty .xg-table-body{height:calc(100% - 86px)!important}.ibiz-control-gantt__slider{display:flex;align-items:center;height:100%;padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base-tight);cursor:pointer;background-color:var(--ibiz-color-primary);border-radius:var(--ibiz-border-radius-small)}.ibiz-control-gantt__slider--container-title .icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-control-gantt__slider--container-title .number{display:flex;align-items:center}.ibiz-control-gantt__slider--container-title .caption{margin:var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-header-6);font-weight:var(--ibiz-font-weight-regular)}.ibiz-control-gantt__slider--container-content{display:flex;justify-content:space-between}.ibiz-control-gantt__slider--container-content .caption{margin:var(--ibiz-spacing-extra-tight);color:var(--ibiz-color-disabled-text)}.ibiz-control-gantt__slider--container-content .detail{display:flex;flex-direction:column;flex-grow:1;align-items:center}.ibiz-control-gantt__slider--caption{overflow:hidden;color:var(--ibiz-color-primary-text);text-overflow:ellipsis;white-space:nowrap}.ibiz-control-gantt__setting{display:flex;align-items:center}.ibiz-control-gantt__setting--icon{cursor:pointer;fill:var(--ibiz-color-primary)}.ibiz-control-gantt__slider-popover{z-index:300!important;width:auto;min-width:300px;padding:12px;border:none;box-shadow:var(--ibiz-shadow-elevated)}.ibiz-control-gantt__link-path-popover{z-index:300!important;width:auto;min-width:300px;padding:12px;border:none;box-shadow:var(--ibiz-shadow-elevated)}.ibiz-control-gantt .ibiz-tree-grid-ex-field-column--ellipsis .ibiz-tree-grid-ex-field-column-text-container{min-width:0}.ibiz-control-gantt .ibiz-tree-grid-ex-field-column-toolbar-container{flex-shrink:0}.ibiz-control-gantt .ibiz-tree-grid-ex-edit-column__editor{min-height:32px}.xg-view-toolbar-switch-action{--gantt-text-switch-item:var(--ibiz-color-text-3);--gantt-bg-hover-switch-item:var(--ibiz-color-bg-0)}
@@ -59,7 +59,7 @@ export declare const GanttControl: import("vue").DefineComponent<{
59
59
  ns: import("@ibiz-template/core").Namespace;
60
60
  ganttRef: Ref<import("@ibiz-template/core").IApiData | undefined>;
61
61
  isInited: Ref<boolean>;
62
- data: import("vue").ComputedRef<import("@ibiz-template/runtime").ITreeNodeData[]>;
62
+ data: import("vue").ComputedRef<IGanttNodeData[]>;
63
63
  locale: import("vue").ComputedRef<string>;
64
64
  columns: import("vue").ComputedRef<IDETreeColumn[]>;
65
65
  onCheck: (state: boolean, item: IGanttNodeData) => void;
@@ -79,6 +79,8 @@ export declare const GanttControl: import("vue").DefineComponent<{
79
79
  allowDrag: (draggingNode: IGanttNodeData) => boolean;
80
80
  handleDrop: (draggingNode: IGanttNodeData, dropNode: IGanttNodeData, dropType: NodeDropType) => void;
81
81
  onHeaderDragend: (index: number, width: number) => void;
82
+ handleClickLink: (_link?: IData, _event?: MouseEvent) => void;
83
+ handleFullscreenChange: (_state: boolean) => void;
82
84
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
83
85
  /**
84
86
  * @description 甘特模型数据
@@ -132,7 +134,7 @@ export declare const GanttControl: import("vue").DefineComponent<{
132
134
  };
133
135
  }>>, {
134
136
  params: import("@ibiz-template/core").IApiParams;
135
- singleSelect: boolean;
136
137
  mdctrlActiveMode: number;
138
+ singleSelect: boolean;
137
139
  loadDefault: boolean;
138
140
  }, {}>;
@@ -1,4 +1,4 @@
1
- import { isVNode, ref, resolveComponent, getCurrentInstance, onMounted, watch, computed, h, createVNode, resolveDirective, withDirectives, defineComponent } from 'vue';
1
+ import { isVNode, ref, resolveComponent, getCurrentInstance, onMounted, watch, computed, nextTick, h, createVNode, resolveDirective, withDirectives, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace, useUIStore, hasEmptyPanelRenderer, IBizCustomRender, IBizControlShell } from '@ibiz-template/vue3-util';
3
3
  import { GanttController } from '@ibiz-template/runtime';
4
4
  import { showTitle } from '@ibiz-template/core';
@@ -71,10 +71,12 @@ const GanttControl = /* @__PURE__ */ defineComponent({
71
71
  const isInited = ref(false);
72
72
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
73
73
  let overlay = null;
74
+ let linkOverlay = null;
74
75
  const sliderMove = ref(false);
75
76
  const iBizRawItem = resolveComponent("IBizRawItem");
76
77
  const iBizIcon = resolveComponent("IBizIcon");
77
78
  let forbidClick = false;
79
+ let forbidOperation = false;
78
80
  const selection = [];
79
81
  const app = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app;
80
82
  onMounted(() => {
@@ -154,18 +156,90 @@ const GanttControl = /* @__PURE__ */ defineComponent({
154
156
  const locale = computed(() => {
155
157
  return ibiz.i18n.getLang().toLowerCase();
156
158
  });
159
+ watch([() => ganttRef.value, () => c.state.selectedData], ([table, newVal]) => {
160
+ if (forbidOperation || !table)
161
+ return;
162
+ nextTick(() => {
163
+ var _a2, _b;
164
+ if (c.state.singleSelect) {
165
+ if (newVal[0]) {
166
+ (_a2 = ganttRef.value) == null ? void 0 : _a2.setSelected(newVal[0]);
167
+ } else {
168
+ (_b = ganttRef.value) == null ? void 0 : _b.setSelected();
169
+ }
170
+ } else {
171
+ selection.length = 0;
172
+ selection.push(...newVal);
173
+ newVal.forEach((item) => {
174
+ var _a3;
175
+ return (_a3 = ganttRef.value) == null ? void 0 : _a3.setChecked(item, true);
176
+ });
177
+ }
178
+ });
179
+ });
157
180
  const findNodeLayoutPanel = (id) => {
158
181
  var _a2;
159
182
  let layoutPanel;
160
183
  const nodeModel = c.getNodeModel(id);
161
184
  (_a2 = nodeModel == null ? void 0 : nodeModel.controlRenders) == null ? void 0 : _a2.forEach((renderItem) => {
162
- if (renderItem.renderType === "LAYOUTPANEL") {
185
+ if (renderItem.renderType === "LAYOUTPANEL" && (renderItem.id || "").split("_")[0] !== "nodelinkrender") {
163
186
  layoutPanel = renderItem.layoutPanel;
164
187
  }
165
188
  });
166
189
  return layoutPanel;
167
190
  };
191
+ const findNodeLinkLayoutPanel = (id) => {
192
+ var _a2;
193
+ let layoutPanel;
194
+ const nodeModel = c.getNodeModel(id);
195
+ (_a2 = nodeModel == null ? void 0 : nodeModel.controlRenders) == null ? void 0 : _a2.find((renderItem) => {
196
+ if (renderItem.renderType === "LAYOUTPANEL" && (renderItem.id || "").split("_")[0] === "nodelinkrender") {
197
+ layoutPanel = renderItem.layoutPanel;
198
+ return true;
199
+ }
200
+ return false;
201
+ });
202
+ return layoutPanel;
203
+ };
204
+ let fullscreen = false;
205
+ const oldAllPopover = [];
206
+ const getAllPopover = () => {
207
+ var _a2;
208
+ const allPopover = {};
209
+ const elPopover = (_a2 = document.querySelector(".el-popover")) == null ? void 0 : _a2.parentElement;
210
+ if (elPopover)
211
+ Object.assign(allPopover, {
212
+ elPopover
213
+ });
214
+ return allPopover;
215
+ };
216
+ const popoverAppendTarget = (_popover, _target) => {
217
+ _popover.forEach((_element) => _element.parentElement !== _target && (_target == null ? void 0 : _target.append(_element)));
218
+ };
219
+ const popoverAppendGantt = () => {
220
+ var _a2;
221
+ const targetContainer = (_a2 = ganttRef.value) == null ? void 0 : _a2.getElementRefs().rootRef.value;
222
+ const allPopoverNode = Object.values(getAllPopover()).filter((_element) => {
223
+ return _element && _element.parentElement === document.body;
224
+ });
225
+ oldAllPopover.push(...allPopoverNode);
226
+ popoverAppendTarget(allPopoverNode, targetContainer);
227
+ };
228
+ const popoverAppendBody = () => {
229
+ const allPopoverNode = oldAllPopover.filter((_element) => !!_element);
230
+ oldAllPopover.length = 0;
231
+ popoverAppendTarget(allPopoverNode, document.body);
232
+ };
233
+ const handleFullscreenChange = (_state) => {
234
+ fullscreen = _state;
235
+ if (_state) {
236
+ popoverAppendGantt();
237
+ } else {
238
+ popoverAppendBody();
239
+ }
240
+ };
168
241
  const onCheck = (state, item) => {
242
+ forbidOperation = true;
169
243
  if (state) {
170
244
  selection.push(item);
171
245
  } else {
@@ -175,16 +249,21 @@ const GanttControl = /* @__PURE__ */ defineComponent({
175
249
  }
176
250
  }
177
251
  c.setSelection(selection);
252
+ setTimeout(() => {
253
+ forbidOperation = false;
254
+ }, 200);
178
255
  };
179
256
  const onNodeClick = (nodeData, evt) => {
180
257
  if (forbidClick || sliderMove.value) {
181
258
  sliderMove.value = false;
182
259
  return;
183
260
  }
261
+ forbidOperation = true;
184
262
  c.onTreeNodeClick(nodeData, evt);
185
263
  forbidClick = true;
186
264
  setTimeout(() => {
187
265
  forbidClick = false;
266
+ forbidOperation = false;
188
267
  }, 200);
189
268
  };
190
269
  const onNodeDbClick = (nodeData) => {
@@ -432,9 +511,11 @@ const GanttControl = /* @__PURE__ */ defineComponent({
432
511
  }, [item._text])])]);
433
512
  };
434
513
  const openPopover = (row, evt) => {
514
+ var _a2;
435
515
  if (overlay) {
436
516
  return;
437
517
  }
518
+ const appendTo = fullscreen && ((_a2 = ganttRef.value) == null ? void 0 : _a2.getElementRefs().rootRef.value);
438
519
  const panel = findNodeLayoutPanel(row._nodeId);
439
520
  const component = panel ? renderNodePanel(panel, row._deData) : renderNodeInfo(row);
440
521
  overlay = ibiz.overlay.createPopover((modal) => {
@@ -446,7 +527,8 @@ const GanttControl = /* @__PURE__ */ defineComponent({
446
527
  height: "auto",
447
528
  noArrow: true,
448
529
  placement: "bottom",
449
- modalClass: ns.e("slider-popover")
530
+ modalClass: ns.e("slider-popover"),
531
+ appendTo
450
532
  });
451
533
  overlay == null ? void 0 : overlay.present(evt.target.children[0]);
452
534
  };
@@ -530,6 +612,38 @@ const GanttControl = /* @__PURE__ */ defineComponent({
530
612
  c.saveColumnState();
531
613
  }
532
614
  };
615
+ const openLinkPathPopover = async (row, panelData, evt) => {
616
+ var _a2;
617
+ const panel = findNodeLinkLayoutPanel(row._nodeId);
618
+ if (linkOverlay || !panel) {
619
+ return;
620
+ }
621
+ const appendTo = fullscreen && ((_a2 = ganttRef.value) == null ? void 0 : _a2.getElementRefs().rootRef.value);
622
+ const component = renderNodePanel(panel, panelData);
623
+ linkOverlay = ibiz.overlay.createPopover((modal) => {
624
+ return h(component, {
625
+ modal
626
+ });
627
+ }, void 0, {
628
+ width: "auto",
629
+ height: "auto",
630
+ noArrow: true,
631
+ autoClose: true,
632
+ modalClass: ns.e("link-path-popover"),
633
+ appendTo
634
+ });
635
+ linkOverlay == null ? void 0 : linkOverlay.present(evt.currentTarget);
636
+ await linkOverlay.onWillDismiss();
637
+ linkOverlay = null;
638
+ };
639
+ const handleClickLink = (_link, _event) => {
640
+ if (_link && _event) {
641
+ const curLink = c.state.links.find((_item) => _item._uuid === _link.id);
642
+ if (curLink) {
643
+ openLinkPathPopover(curLink._fromData, curLink._deData, _event);
644
+ }
645
+ }
646
+ };
533
647
  return {
534
648
  c,
535
649
  ns,
@@ -552,7 +666,9 @@ const GanttControl = /* @__PURE__ */ defineComponent({
552
666
  allowDrop,
553
667
  allowDrag,
554
668
  handleDrop,
555
- onHeaderDragend
669
+ onHeaderDragend,
670
+ handleClickLink,
671
+ handleFullscreenChange
556
672
  };
557
673
  },
558
674
  render() {
@@ -568,6 +684,7 @@ const GanttControl = /* @__PURE__ */ defineComponent({
568
684
  "ref": "ganttRef",
569
685
  "data-id": "_id",
570
686
  "data": this.data,
687
+ "links": this.c.state.links,
571
688
  "row-height": 46,
572
689
  "expand-all": false,
573
690
  "headerDrag": true,
@@ -576,11 +693,17 @@ const GanttControl = /* @__PURE__ */ defineComponent({
576
693
  "children": "_children",
577
694
  "leaf": "_leaf",
578
695
  "expand-key": "_defaultExpand",
696
+ "link-props": {
697
+ fromKey: "_from",
698
+ toKey: "_to",
699
+ linkKey: "_uuid"
700
+ },
579
701
  "locale": this.locale,
580
702
  "unit": this.c.state.unit,
581
703
  "draggable": {
582
704
  level: "all",
583
- draggable: true
705
+ draggable: false,
706
+ draggableStateKey: "_draggable"
584
707
  },
585
708
  "allow-drop": this.allowDrop,
586
709
  "allow-drag": this.allowDrag,
@@ -593,6 +716,8 @@ const GanttControl = /* @__PURE__ */ defineComponent({
593
716
  "onRowChecked": this.onCheck,
594
717
  "onHeaderDragend": this.onHeaderDragend,
595
718
  "onMoveSlider": this.onSliderMove,
719
+ "onClickLink": this.handleClickLink,
720
+ "onFullscreenChange": this.handleFullscreenChange,
596
721
  "primaryColor": this.ganttStyle.primaryColor,
597
722
  "headerStyle": {
598
723
  textColor: this.ganttStyle.textColor,
@@ -31,7 +31,7 @@ export declare const IBizGanttControl: import("@ibiz-template/vue3-util").TypeWi
31
31
  ns: import("@ibiz-template/core").Namespace;
32
32
  ganttRef: import("vue").Ref<import("@ibiz-template/core").IApiData | undefined>;
33
33
  isInited: import("vue").Ref<boolean>;
34
- data: import("vue").ComputedRef<import("@ibiz-template/runtime").ITreeNodeData[]>;
34
+ data: import("vue").ComputedRef<import("@ibiz-template/runtime").IGanttNodeData[]>;
35
35
  locale: import("vue").ComputedRef<string>;
36
36
  columns: import("vue").ComputedRef<import("@ibiz/model-core").IDETreeColumn[]>;
37
37
  onCheck: (state: boolean, item: import("@ibiz-template/runtime").IGanttNodeData) => void;
@@ -53,6 +53,8 @@ export declare const IBizGanttControl: import("@ibiz-template/vue3-util").TypeWi
53
53
  allowDrag: (draggingNode: import("@ibiz-template/runtime").IGanttNodeData) => boolean;
54
54
  handleDrop: (draggingNode: import("@ibiz-template/runtime").IGanttNodeData, dropNode: import("@ibiz-template/runtime").IGanttNodeData, dropType: import("element-plus/es/components/tree/src/tree.type").NodeDropType) => void;
55
55
  onHeaderDragend: (index: number, width: number) => void;
56
+ handleClickLink: (_link?: import("@ibiz-template/core").IApiData | undefined, _event?: MouseEvent | undefined) => void;
57
+ handleFullscreenChange: (_state: boolean) => void;
56
58
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
57
59
  modelData: {
58
60
  type: import("vue").PropType<import("@ibiz/model-core").IDEGantt>;
@@ -83,8 +85,8 @@ export declare const IBizGanttControl: import("@ibiz-template/vue3-util").TypeWi
83
85
  };
84
86
  }>>, {
85
87
  params: import("@ibiz-template/core").IApiParams;
86
- singleSelect: boolean;
87
88
  mdctrlActiveMode: number;
89
+ singleSelect: boolean;
88
90
  loadDefault: boolean;
89
91
  }, {}>>;
90
92
  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
- singleSelect: boolean;
230
229
  mdctrlActiveMode: number;
230
+ singleSelect: boolean;
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
- singleSelect: boolean;
166
165
  mdctrlActiveMode: number;
166
+ singleSelect: boolean;
167
167
  rowEditOpen: boolean;
168
168
  isSimple: boolean;
169
169
  loadDefault: boolean;
@@ -23,7 +23,7 @@ const AttachmentColumn = /* @__PURE__ */ defineComponent({
23
23
  setup(props) {
24
24
  const ns = useNamespace("attachment-column");
25
25
  const {
26
- downloadUrl,
26
+ getDownloadUrl,
27
27
  files,
28
28
  onDownload
29
29
  } = useFilesParse(props, props.controller);
@@ -52,7 +52,16 @@ const AttachmentColumn = /* @__PURE__ */ defineComponent({
52
52
  await overlay.onWillDismiss();
53
53
  };
54
54
  const handlePDFPreview = async (file) => {
55
- const url = file.url || downloadUrl.value.replace("%fileId%", file.id);
55
+ const downloadUrl = getDownloadUrl(props.data, file);
56
+ let url = file.url || downloadUrl.replace("%fileId%", file.id);
57
+ if (ibiz.config.common.enableDownloadTicket) {
58
+ const downloadTicket = await ibiz.util.file.getDownloadTicket(props.controller.context, {
59
+ fileId: file.id
60
+ });
61
+ if (downloadTicket && downloadTicket.ticket) {
62
+ url = downloadUrl.replace("%fileId%", downloadTicket.ticket);
63
+ }
64
+ }
56
65
  const response = await ibiz.net.request(url, {
57
66
  method: "get",
58
67
  responseType: "blob",
@@ -16,7 +16,6 @@ export declare const getFileType: (extension: string) => FileType;
16
16
  */
17
17
  export declare function useFilesParse(props: IParams, c: GridFieldColumnController): {
18
18
  uploadUrl: Ref<string>;
19
- downloadUrl: Ref<string>;
20
19
  files: Ref<{
21
20
  id: string;
22
21
  name: string;
@@ -24,5 +23,6 @@ export declare function useFilesParse(props: IParams, c: GridFieldColumnControll
24
23
  base64?: string | undefined;
25
24
  }[]>;
26
25
  onDownload: (file: IData) => void;
26
+ getDownloadUrl: (data: IData, file: IData) => string;
27
27
  };
28
28
  export {};
@@ -22,7 +22,6 @@ const getFileType = (extension) => {
22
22
  function useFilesParse(props, c) {
23
23
  const files = ref([]);
24
24
  const uploadUrl = ref("");
25
- const downloadUrl = ref("");
26
25
  const svgBlob = /* @__PURE__ */ new Map();
27
26
  const fetchSVGAsBase64 = async (url) => {
28
27
  try {
@@ -61,9 +60,29 @@ function useFilesParse(props, c) {
61
60
  });
62
61
  }
63
62
  };
63
+ const getDownloadUrl = (data, file) => {
64
+ const editorParams = {};
65
+ if (file && file.folder) {
66
+ editorParams.osscat = file.folder;
67
+ }
68
+ const urls = ibiz.util.file.calcFileUpDownUrl(
69
+ c.context,
70
+ c.params,
71
+ data,
72
+ editorParams
73
+ );
74
+ return urls.downloadUrl;
75
+ };
64
76
  const onDownload = (file) => {
65
- const url = file.url || downloadUrl.value.replace("%fileId%", file.id);
66
- ibiz.util.file.fileDownload(url, file.name);
77
+ const downloadUrl = getDownloadUrl(props.data, file);
78
+ const url = file.url || downloadUrl.replace("%fileId%", file.id);
79
+ ibiz.util.file.fileDownload(url, file.name, {
80
+ context: c.context,
81
+ params: c.params,
82
+ data: props.data,
83
+ file: { fileId: file.id, ...file },
84
+ extraParams: {}
85
+ });
67
86
  };
68
87
  watch(
69
88
  () => props.value,
@@ -83,7 +102,6 @@ function useFilesParse(props, c) {
83
102
  {}
84
103
  );
85
104
  uploadUrl.value = urls.uploadUrl;
86
- downloadUrl.value = urls.downloadUrl;
87
105
  }
88
106
  },
89
107
  { immediate: true, deep: true }
@@ -91,28 +109,25 @@ function useFilesParse(props, c) {
91
109
  watch(
92
110
  files,
93
111
  (newVal) => {
94
- if ((newVal == null ? void 0 : newVal.length) && downloadUrl.value) {
112
+ if (newVal == null ? void 0 : newVal.length) {
95
113
  newVal.forEach((file) => {
114
+ const downloadUrl = getDownloadUrl(props.data, file);
96
115
  Object.assign(file, {
97
- url: file.url || downloadUrl.value.replace("%fileId%", file.id)
98
- });
99
- if (file.name.split(".").pop() === "svg") {
100
- calcSvgPreview(file);
101
- }
102
- });
103
- }
104
- },
105
- { immediate: true }
106
- );
107
- watch(
108
- downloadUrl,
109
- (newVal) => {
110
- if (newVal && files.value.length) {
111
- files.value.forEach((file) => {
112
- Object.assign(file, {
113
- url: downloadUrl.value.replace("%fileId%", file.id)
116
+ url: file.url || downloadUrl.replace("%fileId%", file.id)
114
117
  });
115
- if (file.name.split(".").pop() === "svg") {
118
+ if (ibiz.config.common.enableDownloadTicket) {
119
+ ibiz.util.file.getDownloadTicket(c.context, { fileId: file.id }).then((downloadTicket) => {
120
+ if (downloadTicket && downloadTicket.ticket) {
121
+ file.url = downloadUrl.replace(
122
+ "%fileId%",
123
+ downloadTicket.ticket
124
+ );
125
+ if (file.name.split(".").pop() === "svg") {
126
+ calcSvgPreview(file);
127
+ }
128
+ }
129
+ });
130
+ } else if (file.name.split(".").pop() === "svg") {
116
131
  calcSvgPreview(file);
117
132
  }
118
133
  });
@@ -124,7 +139,7 @@ function useFilesParse(props, c) {
124
139
  files,
125
140
  uploadUrl,
126
141
  onDownload,
127
- downloadUrl
142
+ getDownloadUrl
128
143
  };
129
144
  }
130
145
 
@@ -1 +1 @@
1
- .ibiz-grid-field-column{--ibiz-grid-field-column-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-grid-field-column-clickable-text-color:var(--ibiz-color-link);--ibiz-grid-field-column-clickable-hover-text-color:var(--ibiz-color-link-hover);--ibiz-grid-field-column-color:var(--ibiz-color-text-2);display:inline-flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);width:100%;height:100%;padding:var(--ibiz-grid-field-column-cell-padding)}.ibiz-grid-field-column__text{font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);color:var(--ibiz-grid-field-column-color)}.ibiz-grid-field-column--clickable{cursor:pointer}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text{color:var(--ibiz-grid-field-column-clickable-text-color)}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text:hover{color:var(--ibiz-grid-field-column-clickable-hover-text-color)}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-text-container{min-width:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-toolbar-container{flex-shrink:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script{max-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding));line-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding))}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script *{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--ellipsis span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--wrap{word-break:break-word;white-space:pre-wrap}.ibiz-grid-field-column.is-has-action{justify-content:space-between}.ibiz-grid-field-column-text-container{display:inline-flex;flex-grow:1;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);height:100%}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item:not(.ibiz-action-toolbar__item--level-250){display:none}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__separator{display:none}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item.is-group{display:inline-flex;opacity:0}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__item{display:inline-flex;opacity:1}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__separator{display:inline-flex;opacity:1}.el-table .el-table__body-wrapper tr .ibiz-action-toolbar__item.is-expand{display:inline-flex;opacity:1}
1
+ .ibiz-grid-field-column{--ibiz-grid-field-column-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-grid-field-column-clickable-text-color:var(--ibiz-color-link);--ibiz-grid-field-column-clickable-hover-text-color:var(--ibiz-color-link-hover);--ibiz-grid-field-column-color:var(--ibiz-color-text-2);display:inline-flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);width:100%;height:100%;padding:var(--ibiz-grid-field-column-cell-padding)}.ibiz-grid-field-column__text{font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);color:var(--ibiz-grid-field-column-color)}.ibiz-grid-field-column--clickable{cursor:pointer}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text{color:var(--ibiz-grid-field-column-clickable-text-color)}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text:hover{color:var(--ibiz-grid-field-column-clickable-hover-text-color)}.ibiz-grid-field-column--ellipsis{overflow:hidden}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-text-container{min-width:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-toolbar-container{flex-shrink:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script{max-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding));line-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding))}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script *{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--ellipsis span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--wrap{word-break:break-word;white-space:pre-wrap}.ibiz-grid-field-column.is-has-action{justify-content:space-between}.ibiz-grid-field-column-text-container{display:inline-flex;flex-grow:1;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);height:100%}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item:not(.ibiz-action-toolbar__item--level-250){display:none}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__separator{display:none}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item.is-group{display:inline-flex;opacity:0}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__item{display:inline-flex;opacity:1}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__separator{display:inline-flex;opacity:1}.el-table .el-table__body-wrapper tr .ibiz-action-toolbar__item.is-expand{display:inline-flex;opacity:1}
@@ -127,8 +127,8 @@ export declare const IBizVirtualizedTableControl: import("@ibiz-template/vue3-ut
127
127
  };
128
128
  }>>, {
129
129
  params: import("@ibiz-template/core").IApiParams;
130
- singleSelect: boolean;
131
130
  mdctrlActiveMode: number;
131
+ singleSelect: boolean;
132
132
  rowEditOpen: boolean;
133
133
  isSimple: boolean;
134
134
  loadDefault: boolean;
@@ -192,8 +192,8 @@ export declare const VirtualizedTableControl: import("vue").DefineComponent<{
192
192
  };
193
193
  }>>, {
194
194
  params: import("@ibiz-template/core").IApiParams;
195
- singleSelect: boolean;
196
195
  mdctrlActiveMode: number;
196
+ singleSelect: boolean;
197
197
  rowEditOpen: boolean;
198
198
  isSimple: boolean;
199
199
  loadDefault: boolean;
@@ -108,8 +108,8 @@ export declare const IBizKanbanControl: import("@ibiz-template/vue3-util").TypeW
108
108
  };
109
109
  }>>, {
110
110
  params: import("@ibiz-template/core").IApiParams;
111
- singleSelect: boolean;
112
111
  mdctrlActiveMode: number;
112
+ singleSelect: boolean;
113
113
  isSimple: boolean;
114
114
  loadDefault: boolean;
115
115
  }, {}>>;
@@ -170,8 +170,8 @@ export declare const KanbanControl: import("vue").DefineComponent<{
170
170
  };
171
171
  }>>, {
172
172
  params: import("@ibiz-template/core").IApiParams;
173
- singleSelect: boolean;
174
173
  mdctrlActiveMode: number;
174
+ singleSelect: boolean;
175
175
  isSimple: boolean;
176
176
  loadDefault: boolean;
177
177
  }, {}>;
@@ -115,8 +115,8 @@ export declare const IBizListControl: import("@ibiz-template/vue3-util").TypeWit
115
115
  };
116
116
  }>>, {
117
117
  params: import("@ibiz-template/core").IApiParams;
118
- singleSelect: boolean;
119
118
  mdctrlActiveMode: number;
119
+ singleSelect: boolean;
120
120
  isSimple: boolean;
121
121
  loadDefault: boolean;
122
122
  }, {}>>;
@@ -171,8 +171,8 @@ export declare const ListControl: import("vue").DefineComponent<{
171
171
  };
172
172
  }>>, {
173
173
  params: import("@ibiz-template/core").IApiParams;
174
- singleSelect: boolean;
175
174
  mdctrlActiveMode: number;
175
+ singleSelect: boolean;
176
176
  isSimple: boolean;
177
177
  loadDefault: boolean;
178
178
  }, {}>;
@@ -345,7 +345,7 @@ const ListControl = /* @__PURE__ */ defineComponent({
345
345
  const renderGroup = (group) => {
346
346
  return createVNode(resolveComponent("el-collapse-item"), {
347
347
  "class": ns.be("group-content", "item"),
348
- "name": group.key
348
+ "name": group.key.toString()
349
349
  }, {
350
350
  title: () => {
351
351
  return createVNode("div", {
@@ -108,7 +108,7 @@ const MapControl = /* @__PURE__ */ defineComponent({
108
108
  this.c.onPointClick(e);
109
109
  },
110
110
  "onAreaClick": (e) => {
111
- this.c.onAreaClick(e);
111
+ this.c.onAreaClick(e, "", "");
112
112
  }
113
113
  }, null), this.c.state.enableNavView && this.c.state.showNavIcon ? !this.c.state.showNavView ? createVNode("ion-icon", {
114
114
  "class": this.ns.e("nav-icon"),
@@ -1044,8 +1044,8 @@ export declare const IBizTreeControl: import("@ibiz-template/vue3-util").TypeWit
1044
1044
  };
1045
1045
  }>>, {
1046
1046
  params: import("@ibiz-template/core").IApiParams;
1047
- singleSelect: boolean;
1048
1047
  mdctrlActiveMode: number;
1048
+ singleSelect: boolean;
1049
1049
  isSimple: boolean;
1050
1050
  loadDefault: boolean;
1051
1051
  checkStrictly: boolean;