@ibiz-template/vue3-components 0.7.26-alpha.2 → 0.7.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 (177) hide show
  1. package/dist/index-28jZm-aB.js +4 -0
  2. package/dist/{index-8tGeBxpc.js → index-RwYoggQd.js} +1 -1
  3. package/dist/{index-CDgQJyai.js → index-s7g1-ymW.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{xlsx-util-Ux1_tuw5.js → xlsx-util-Rf5FMxyR.js} +1 -1
  7. package/es/common/emoji-select/components/categories/categories.css +1 -0
  8. package/es/common/emoji-select/components/categories/categories.d.ts +30 -0
  9. package/es/common/emoji-select/components/categories/categories.mjs +48 -0
  10. package/es/common/emoji-select/components/categories/index.d.ts +1 -0
  11. package/es/common/emoji-select/components/categories/index.mjs +3 -0
  12. package/es/common/emoji-select/components/category-label/category-label.css +1 -0
  13. package/es/common/emoji-select/components/category-label/category-label.d.ts +18 -0
  14. package/es/common/emoji-select/components/category-label/category-label.mjs +28 -0
  15. package/es/common/emoji-select/components/category-label/index.d.ts +1 -0
  16. package/es/common/emoji-select/components/category-label/index.mjs +3 -0
  17. package/es/common/emoji-select/components/emoji-item/emoji-item.css +1 -0
  18. package/es/common/emoji-select/components/emoji-item/emoji-item.d.ts +44 -0
  19. package/es/common/emoji-select/components/emoji-item/emoji-item.mjs +56 -0
  20. package/es/common/emoji-select/components/emoji-item/index.d.ts +1 -0
  21. package/es/common/emoji-select/components/emoji-item/index.mjs +3 -0
  22. package/es/common/emoji-select/components/emoji-list/emoji-list.css +1 -0
  23. package/es/common/emoji-select/components/emoji-list/emoji-list.d.ts +92 -0
  24. package/es/common/emoji-select/components/emoji-list/emoji-list.mjs +165 -0
  25. package/es/common/emoji-select/components/emoji-list/index.d.ts +1 -0
  26. package/es/common/emoji-select/components/emoji-list/index.mjs +3 -0
  27. package/es/common/emoji-select/components/index.d.ts +5 -0
  28. package/es/common/emoji-select/components/index.mjs +12 -0
  29. package/es/common/emoji-select/components/input-search/index.d.ts +1 -0
  30. package/es/common/emoji-select/components/input-search/index.mjs +3 -0
  31. package/es/common/emoji-select/components/input-search/input-search.css +1 -0
  32. package/es/common/emoji-select/components/input-search/input-search.d.ts +9 -0
  33. package/es/common/emoji-select/components/input-search/input-search.mjs +49 -0
  34. package/es/common/emoji-select/emoji-select.css +1 -0
  35. package/es/common/emoji-select/emoji-select.d.ts +142 -0
  36. package/es/common/emoji-select/emoji-select.mjs +234 -0
  37. package/es/common/emoji-select/icons/categories.d.ts +2 -0
  38. package/es/common/emoji-select/icons/categories.mjs +64 -0
  39. package/es/common/emoji-select/icons/emoji.d.ts +2 -0
  40. package/es/common/emoji-select/icons/emoji.mjs +1444 -0
  41. package/es/common/emoji-select/icons/index.d.ts +3 -0
  42. package/es/common/emoji-select/icons/index.mjs +5 -0
  43. package/es/common/emoji-select/icons/search.d.ts +1 -0
  44. package/es/common/emoji-select/icons/search.mjs +16 -0
  45. package/es/common/emoji-select/interface/category.d.ts +44 -0
  46. package/es/common/emoji-select/interface/category.mjs +22 -0
  47. package/es/common/emoji-select/interface/emoji.d.ts +37 -0
  48. package/es/common/emoji-select/interface/emoji.mjs +19 -0
  49. package/es/common/emoji-select/interface/index.d.ts +3 -0
  50. package/es/common/emoji-select/interface/index.mjs +5 -0
  51. package/es/common/emoji-select/interface/map-emojis.d.ts +17 -0
  52. package/es/common/emoji-select/interface/map-emojis.mjs +1 -0
  53. package/es/common/index.mjs +2 -0
  54. package/es/common/view-message/view-message.d.ts +1 -0
  55. package/es/control/calendar/calendar.css +1 -1
  56. package/es/control/calendar/calendar.d.ts +3 -2
  57. package/es/control/calendar/calendar.mjs +203 -86
  58. package/es/control/calendar/components/calendar-daily/calendar-daily.d.ts +1 -1
  59. package/es/control/calendar/components/calendar-daily/index.d.ts +1 -1
  60. package/es/control/calendar/components/calendar-week/calendar-week.d.ts +1 -1
  61. package/es/control/calendar/components/calendar-week/calendar-week.mjs +15 -12
  62. package/es/control/calendar/components/calendar-week/index.d.ts +1 -1
  63. package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +1 -0
  64. package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +4 -114
  65. package/es/control/calendar/components/interface/calendar-daily.mjs +0 -3
  66. package/es/control/calendar/components/interface/calendar-week.mjs +3 -2
  67. package/es/control/calendar/components/interface/custom-calendar.mjs +8 -3
  68. package/es/control/calendar/components/interface/index.d.ts +0 -1
  69. package/es/control/calendar/components/interface/index.mjs +0 -1
  70. package/es/control/calendar/index.d.ts +2 -1
  71. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +36 -2
  72. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.mjs +17 -7
  73. package/es/control/dashboard/dashboard-design/dashboard-design.d.ts +10 -32
  74. package/es/control/dashboard/dashboard-design/dashboard-design.mjs +93 -56
  75. package/es/control/drtab/drtab-control.util.mjs +1 -1
  76. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +25 -0
  77. package/es/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.mjs +1 -0
  78. package/es/control/grid/grid/grid-control.util.d.ts +8 -0
  79. package/es/control/grid/grid/grid-control.util.mjs +151 -1
  80. package/es/control/grid/grid/grid.css +1 -1
  81. package/es/control/grid/grid/grid.d.ts +8 -0
  82. package/es/control/grid/grid/grid.mjs +12 -2
  83. package/es/control/grid/grid/index.d.ts +8 -0
  84. package/es/control/grid/grid-column/grid-field-column/grid-field-column.d.ts +1 -0
  85. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +21 -1
  86. package/es/control/grid/grid-column/grid-field-column/index.d.ts +1 -0
  87. package/es/control/tree/tree.css +1 -1
  88. package/es/editor/dropdown-list/dropdown-list-editor.provider.d.ts +1 -0
  89. package/es/editor/dropdown-list/dropdown-list-editor.provider.mjs +10 -1
  90. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.css +1 -0
  91. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +72 -0
  92. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.mjs +123 -0
  93. package/es/editor/dropdown-list/index.d.ts +1 -0
  94. package/es/editor/dropdown-list/index.mjs +1 -0
  95. package/es/editor/index.mjs +6 -0
  96. package/es/editor/text-box/input/input.d.ts +1 -1
  97. package/es/locale/en/index.d.ts +14 -0
  98. package/es/locale/en/index.mjs +14 -0
  99. package/es/locale/zh-CN/index.d.ts +14 -0
  100. package/es/locale/zh-CN/index.mjs +14 -0
  101. package/es/panel-component/nav-tabs/nav-tabs.controller.d.ts +7 -0
  102. package/es/panel-component/nav-tabs/nav-tabs.controller.mjs +19 -0
  103. package/lib/common/emoji-select/components/categories/categories.cjs +50 -0
  104. package/lib/common/emoji-select/components/categories/categories.css +1 -0
  105. package/lib/common/emoji-select/components/categories/index.cjs +7 -0
  106. package/lib/common/emoji-select/components/category-label/category-label.cjs +30 -0
  107. package/lib/common/emoji-select/components/category-label/category-label.css +1 -0
  108. package/lib/common/emoji-select/components/category-label/index.cjs +7 -0
  109. package/lib/common/emoji-select/components/emoji-item/emoji-item.cjs +58 -0
  110. package/lib/common/emoji-select/components/emoji-item/emoji-item.css +1 -0
  111. package/lib/common/emoji-select/components/emoji-item/index.cjs +7 -0
  112. package/lib/common/emoji-select/components/emoji-list/emoji-list.cjs +167 -0
  113. package/lib/common/emoji-select/components/emoji-list/emoji-list.css +1 -0
  114. package/lib/common/emoji-select/components/emoji-list/index.cjs +7 -0
  115. package/lib/common/emoji-select/components/index.cjs +20 -0
  116. package/lib/common/emoji-select/components/input-search/index.cjs +7 -0
  117. package/lib/common/emoji-select/components/input-search/input-search.cjs +51 -0
  118. package/lib/common/emoji-select/components/input-search/input-search.css +1 -0
  119. package/lib/common/emoji-select/emoji-select.cjs +236 -0
  120. package/lib/common/emoji-select/emoji-select.css +1 -0
  121. package/lib/common/emoji-select/icons/categories.cjs +66 -0
  122. package/lib/common/emoji-select/icons/emoji.cjs +1446 -0
  123. package/lib/common/emoji-select/icons/index.cjs +11 -0
  124. package/lib/common/emoji-select/icons/search.cjs +18 -0
  125. package/lib/common/emoji-select/interface/category.cjs +24 -0
  126. package/lib/common/emoji-select/interface/emoji.cjs +21 -0
  127. package/lib/common/emoji-select/interface/index.cjs +10 -0
  128. package/lib/common/emoji-select/interface/map-emojis.cjs +3 -0
  129. package/lib/common/index.cjs +2 -0
  130. package/lib/control/calendar/calendar.cjs +203 -86
  131. package/lib/control/calendar/calendar.css +1 -1
  132. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +15 -12
  133. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +1 -0
  134. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +7 -117
  135. package/lib/control/calendar/components/interface/calendar-daily.cjs +0 -3
  136. package/lib/control/calendar/components/interface/calendar-week.cjs +3 -2
  137. package/lib/control/calendar/components/interface/custom-calendar.cjs +8 -3
  138. package/lib/control/calendar/components/interface/index.cjs +0 -3
  139. package/lib/control/dashboard/custom-dashboard-container/custom-dashboard-container.cjs +17 -7
  140. package/lib/control/dashboard/dashboard-design/dashboard-design.cjs +93 -56
  141. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  142. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.cjs +1 -0
  143. package/lib/control/grid/grid/grid-control.util.cjs +151 -1
  144. package/lib/control/grid/grid/grid.cjs +12 -2
  145. package/lib/control/grid/grid/grid.css +1 -1
  146. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +21 -1
  147. package/lib/control/tree/tree.css +1 -1
  148. package/lib/editor/dropdown-list/dropdown-list-editor.provider.cjs +10 -1
  149. package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.cjs +125 -0
  150. package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.css +1 -0
  151. package/lib/editor/dropdown-list/index.cjs +2 -0
  152. package/lib/editor/index.cjs +6 -0
  153. package/lib/locale/en/index.cjs +14 -0
  154. package/lib/locale/zh-CN/index.cjs +14 -0
  155. package/lib/panel-component/nav-tabs/nav-tabs.controller.cjs +19 -0
  156. package/package.json +8 -8
  157. package/dist/index-o58Mv9D4.js +0 -4
  158. package/es/_virtual/localeData.mjs +0 -3
  159. package/es/control/calendar/components/calendar-month/calendar-month.css +0 -1
  160. package/es/control/calendar/components/calendar-month/calendar-month.d.ts +0 -18
  161. package/es/control/calendar/components/calendar-month/calendar-month.mjs +0 -242
  162. package/es/control/calendar/components/calendar-month/index.d.ts +0 -18
  163. package/es/control/calendar/components/calendar-month/index.mjs +0 -9
  164. package/es/control/calendar/components/calendar-month/use-calendar-month.d.ts +0 -3
  165. package/es/control/calendar/components/calendar-month/use-calendar-month.mjs +0 -384
  166. package/es/control/calendar/components/interface/calendar-month.d.ts +0 -20
  167. package/es/control/calendar/components/interface/calendar-month.mjs +0 -43
  168. package/es/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.mjs +0 -13
  169. package/lib/_virtual/localeData.cjs +0 -5
  170. package/lib/control/calendar/components/calendar-month/calendar-month.cjs +0 -244
  171. package/lib/control/calendar/components/calendar-month/calendar-month.css +0 -1
  172. package/lib/control/calendar/components/calendar-month/index.cjs +0 -14
  173. package/lib/control/calendar/components/calendar-month/use-calendar-month.cjs +0 -386
  174. package/lib/control/calendar/components/interface/calendar-month.cjs +0 -46
  175. package/lib/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.cjs +0 -17
  176. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.25_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.26_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
  177. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.25_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.26_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
@@ -3,6 +3,26 @@ import { Srfuf, ControlVO, GridRowState } from '@ibiz-template/runtime';
3
3
  import { ref, watch, nextTick, computed, watchEffect, onUnmounted } from 'vue';
4
4
 
5
5
  "use strict";
6
+ function sortMergeData(rowSpanKeys, items) {
7
+ const otherItems = [];
8
+ const sortedItems = items.filter((item) => {
9
+ const index = rowSpanKeys.findIndex((key) => !item[key]);
10
+ if (index !== -1) {
11
+ otherItems.push(item);
12
+ }
13
+ return index === -1;
14
+ });
15
+ sortedItems.sort((a, b) => {
16
+ for (const key of rowSpanKeys) {
17
+ if (a[key] !== b[key]) {
18
+ return a[key] > b[key] ? 1 : -1;
19
+ }
20
+ }
21
+ return 0;
22
+ });
23
+ sortedItems.push(...otherItems);
24
+ return sortedItems;
25
+ }
6
26
  function useITableEvent(c) {
7
27
  const tableRef = ref();
8
28
  let forbidChange = false;
@@ -178,6 +198,8 @@ function useAppGridBase(c, props) {
178
198
  const row = new GridRowState(new ControlVO(item), c);
179
199
  return row;
180
200
  });
201
+ c.calcAggResult(c.state.items);
202
+ c.calcTotalData();
181
203
  };
182
204
  const defaultSort = computed(() => {
183
205
  var _a;
@@ -227,6 +249,13 @@ function useAppGridBase(c, props) {
227
249
  });
228
250
  return result;
229
251
  }
252
+ const { rowspankeys = [] } = c.controlParams;
253
+ if (rowspankeys.length > 0) {
254
+ return sortMergeData(
255
+ rowspankeys,
256
+ state.rows.map((row) => row.data)
257
+ );
258
+ }
230
259
  return state.rows.map((row) => row.data);
231
260
  });
232
261
  const renderColumns = computed(() => {
@@ -256,7 +285,128 @@ function useAppGridBase(c, props) {
256
285
  return c.state.aggResult[item.property];
257
286
  });
258
287
  };
259
- return { tableData, renderColumns, defaultSort, summaryMethod };
288
+ const spanMethod = ({
289
+ row,
290
+ column,
291
+ rowIndex,
292
+ columnIndex
293
+ }) => {
294
+ const { property } = column;
295
+ const { rowspankeys = [], colspankeys = [] } = c.controlParams;
296
+ if (rowspankeys.length > 0 && rowspankeys.includes(property)) {
297
+ if (rowIndex > 0 && row[property] && row[property] === tableData.value[rowIndex - 1][property]) {
298
+ return {
299
+ rowspan: 0,
300
+ colspan: 0
301
+ };
302
+ }
303
+ let rowspan = 1;
304
+ for (let i = rowIndex + 1; i < tableData.value.length; i++) {
305
+ if (row[property] && tableData.value[i][property] === row[property]) {
306
+ rowspan += 1;
307
+ } else {
308
+ break;
309
+ }
310
+ }
311
+ return {
312
+ rowspan,
313
+ colspan: 1
314
+ };
315
+ }
316
+ if (colspankeys.length > 0 && colspankeys.includes(property)) {
317
+ const preProperty = renderColumns.value[columnIndex - 1].codeName;
318
+ if (columnIndex > 0 && row[property] && colspankeys.includes(preProperty) && row[property] === row[preProperty]) {
319
+ return {
320
+ rowspan: 0,
321
+ colspan: 0
322
+ };
323
+ }
324
+ let colspan = 1;
325
+ for (let i = columnIndex + 1; i < renderColumns.value.length; i++) {
326
+ const nextProperty = renderColumns.value[i].codeName;
327
+ if (row[property] && colspankeys.includes(nextProperty) && row[nextProperty] === row[property]) {
328
+ colspan += 1;
329
+ } else {
330
+ break;
331
+ }
332
+ }
333
+ return {
334
+ rowspan: 1,
335
+ colspan
336
+ };
337
+ }
338
+ };
339
+ const cellMouseEnter = (row, column, cell) => {
340
+ const { rowspankeys = [] } = c.controlParams;
341
+ if (rowspankeys.length === 0) {
342
+ return;
343
+ }
344
+ let { rowSpan } = cell;
345
+ if (rowSpan && rowSpan > 1) {
346
+ let tableRow = cell.parentNode;
347
+ while (rowSpan > 1) {
348
+ if (tableRow && tableRow.nextSibling) {
349
+ tableRow.nextSibling.classList.add(
350
+ "hover-row"
351
+ );
352
+ tableRow = tableRow.nextSibling;
353
+ }
354
+ rowSpan -= 1;
355
+ }
356
+ } else {
357
+ const columnLenth = renderColumns.value.length;
358
+ let tableRow = cell.parentNode;
359
+ while (tableRow.children.length !== columnLenth) {
360
+ tableRow = tableRow.previousSibling;
361
+ }
362
+ for (let index = 0; index < tableRow.children.length; index++) {
363
+ const newCell = tableRow.children.item(index);
364
+ if (newCell.rowSpan > 1) {
365
+ newCell.classList.add("hover-cell");
366
+ }
367
+ }
368
+ }
369
+ };
370
+ const cellMouseLeave = (row, column, cell) => {
371
+ const { rowspankeys = [] } = c.controlParams;
372
+ if (rowspankeys.length === 0) {
373
+ return;
374
+ }
375
+ let { rowSpan } = cell;
376
+ if (rowSpan && rowSpan > 1) {
377
+ let tableRow = cell.parentNode;
378
+ while (rowSpan > 1) {
379
+ if (tableRow && tableRow.nextSibling) {
380
+ tableRow.nextSibling.classList.remove(
381
+ "hover-row"
382
+ );
383
+ tableRow = tableRow.nextSibling;
384
+ }
385
+ rowSpan -= 1;
386
+ }
387
+ } else {
388
+ const columnLenth = renderColumns.value.length;
389
+ let tableRow = cell.parentNode;
390
+ while (tableRow.children.length !== columnLenth) {
391
+ tableRow = tableRow.previousSibling;
392
+ }
393
+ for (let index = 0; index < tableRow.children.length; index++) {
394
+ const newCell = tableRow.children.item(index);
395
+ if (newCell.rowSpan > 1) {
396
+ newCell.classList.remove("hover-cell");
397
+ }
398
+ }
399
+ }
400
+ };
401
+ return {
402
+ tableData,
403
+ renderColumns,
404
+ defaultSort,
405
+ summaryMethod,
406
+ spanMethod,
407
+ cellMouseEnter,
408
+ cellMouseLeave
409
+ };
260
410
  }
261
411
  function useGridHeaderStyle(tableRef, ns) {
262
412
  let resizeObserver = null;
@@ -1 +1 @@
1
- .ibiz-control-grid{--ibiz-control-grid-text-color:var(--ibiz-color-text-0);--ibiz-control-grid-bg-color:transparent;--ibiz-control-grid-padding:var(--ibiz-spacing-none);--ibiz-control-grid-cell-padding:calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight);--ibiz-control-grid-selection-padding:var(--ibiz-spacing-base-loose);--ibiz-control-grid-row-edit-bg-color:var(--ibiz-color-fill-2);--ibiz-control-grid-row-bg-color:var(--ibiz-color-bg-1);--ibiz-control-grid-row-bg-color-2:var(--ibiz-color-bg-0);--ibiz-control-grid-row-hover-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-row-select-color:var(--ibiz-color-primary-light-default);--ibiz-control-grid-row-expand-icon-margin:var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-tight);--ibiz-control-grid-now-header-height:auto;--ibiz-control-grid-header-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-header-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-control-grid-header-height:auto;--ibiz-control-grid-header-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-header-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-header-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-grid-content-text-color:var(--ibiz-control-grid-text-color);--ibiz-control-grid-content-row-height:48px;--ibiz-control-grid-page-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-page-height:50px;--ibiz-control-grid-page-padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-footer-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-footer-font-weight:var(--ibiz-font-weight-bold);position:relative;width:100%;height:100%;padding:var(--ibiz-control-grid-padding);background-color:var(--ibiz-control-grid-bg-color)}.ibiz-control-grid .el-table{--el-table-header-bg-color:var(--ibiz-control-grid-header-bg-color);--el-table-current-row-bg-color:var(--ibiz-control-grid-row-select-color);--el-table-border-color:transparent}.ibiz-control-grid.is-empty .el-scrollbar .el-scrollbar__view{height:100%}.ibiz-control-grid.is-empty .el-table__empty-text{display:inline-block;height:100%}.ibiz-control-grid .el-table--border .el-table__cell{border-right:none}.ibiz-control-grid .el-table-fixed-column--left,.ibiz-control-grid .el-table-fixed-column--right{--el-bg-color:transparent}.ibiz-control-grid .el-table thead.is-group th.el-table__cell{background:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-page .ibiz-control-grid__table{height:calc(100% - var(--ibiz-control-grid-page-height))}.ibiz-control-grid.is-enable-group .el-table__indent{display:none}.ibiz-control-grid__table{width:100%;height:100%}.ibiz-control-grid__table .caret-wrapper{justify-content:center}.ibiz-control-grid__table .caret-wrapper>*+*{margin-top:var(--ibiz-spacing-super-tight)}.ibiz-control-grid__table .sort-caret{--el-text-color-placeholder:--ibiz-control-grid-header-text-color;position:initial;opacity:.6}.ibiz-control-grid__table.el-table .el-table__cell{padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr td{background:var(--ibiz-control-grid-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:nth-child(2n) td{background-color:var(--ibiz-control-grid-row-bg-color-2)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:hover td{background-color:var(--ibiz-control-grid-row-hover-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.current-row td{background-color:var(--el-table-current-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.editing-row td{background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-control-grid__table .el-table__header-wrapper .cell{height:var(--ibiz-control-grid-header-height);padding:var(--ibiz-control-grid-header-cell-padding);font-size:var(--ibiz-control-grid-header-font-size);font-weight:var(--ibiz-control-grid-header-font-weight);color:var(--ibiz-control-grid-header-text-color);word-break:break-word;white-space:pre-wrap}.ibiz-control-grid__table .el-table__header-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__header-wrapper .is-sortable.el-table__cell .cell{display:flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content)}.ibiz-control-grid__table .el-table__body-wrapper{color:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-0:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-1:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-2:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-3:var(--ibiz-control-grid-content-text-color);border-bottom:.1px solid var(--ibiz-color-border)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row{height:var(--ibiz-control-grid-content-row-height);cursor:pointer}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:0;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row .el-table__expand-icon{margin:var(--ibiz-control-grid-row-expand-icon-margin)}@-moz-document url-prefix(){.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:100%}}.ibiz-control-grid__table .el-table__body-wrapper .cell{display:flex;align-items:center;height:100%;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__cell.is-center{--ibiz-grid-column-text-align:center;--ibiz-grid-column-justify-content:center}.ibiz-control-grid__table .el-table__cell.is-left{--ibiz-grid-column-text-align:left;--ibiz-grid-column-justify-content:flex-start}.ibiz-control-grid__table .el-table__cell.is-right{--ibiz-grid-column-text-align:right;--ibiz-grid-column-justify-content:flex-end}.ibiz-control-grid__table .el-scrollbar__wrap{position:relative}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell{font-size:var(--ibiz-control-grid-footer-font-size);font-weight:var(--ibiz-control-grid-footer-font-weight);color:var(--ibiz-control-grid-footer-text-color);background-color:var(--ibiz-control-grid-footer-bg-color)}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell:first-child>div{display:inline;vertical-align:4px}.ibiz-control-grid__table .enable-order{position:relative;padding-left:var(--ibiz-spacing-base-tight);transition:transform .25s cubic-bezier(0,0,.2,1)}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon{padding:var(--ibiz-spacing-none)!important}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon .cell{display:none}.ibiz-control-grid__table .enable-order:hover .ibiz-control-grid__drag-icon .cell{display:flex}.ibiz-control-grid__load-more-button{padding:var(--ibiz-control-grid-header-cell-padding);text-align:center}.ibiz-control-grid .el-table td.el-table__cell,.ibiz-control-grid .el-table th.el-table__cell.is-leaf{border-bottom:none}.ibiz-control-grid .ibiz-pagination{--ibiz-pagination-height:var(--ibiz-control-grid-page-height);--ibiz-pagination-text-color:var(--ibiz-control-grid-text-color);--ibiz-pagination-padding:var(--ibiz-control-grid-page-padding)}.ibiz-control-grid.is-single-select .el-table__header-wrapper .el-table__header thead>tr th:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-single-select .el-table__body-wrapper .el-table__body tbody>tr td:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-enable-customized .el-table__header-wrapper .el-table__header thead>tr th:last-child{padding-right:var(--ibiz-spacing-base-loose)}.ibiz-control-grid.is-enable-customized .ibiz-control-grid-setting-box{display:flex;align-items:center;justify-content:flex-start;position:absolute;top:0;right:0;z-index:1;height:var(--ibiz-control-grid-now-header-height);padding-right:var(--ibiz-spacing-extra-tight);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-customized .ibiz-grid-setting{cursor:pointer}.ibiz-control-grid-quick-toolbar{justify-content:center}.ibiz-control-grid-batch-toolbar{position:absolute;top:0;left:54px;z-index:99;display:none;width:calc(100% - 54px);height:var(--ibiz-control-grid-now-header-height);font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid-batch-toolbar.is-show{display:flex;align-items:center;justify-content:flex-start}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-separator{padding:0 var(--ibiz-spacing-base-tight)}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-content{height:100%;display:flex;align-items:center;justify-content:flex-start}
1
+ .ibiz-control-grid{--ibiz-control-grid-text-color:var(--ibiz-color-text-0);--ibiz-control-grid-bg-color:transparent;--ibiz-control-grid-padding:var(--ibiz-spacing-none);--ibiz-control-grid-cell-padding:calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight);--ibiz-control-grid-selection-padding:var(--ibiz-spacing-base-loose);--ibiz-control-grid-row-edit-bg-color:var(--ibiz-color-fill-2);--ibiz-control-grid-row-bg-color:var(--ibiz-color-bg-1);--ibiz-control-grid-row-bg-color-2:var(--ibiz-color-bg-0);--ibiz-control-grid-row-hover-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-row-select-color:var(--ibiz-color-primary-light-default);--ibiz-control-grid-row-expand-icon-margin:var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-none) var(--ibiz-spacing-tight);--ibiz-control-grid-now-header-height:auto;--ibiz-control-grid-scrollbar-width:4px;--ibiz-control-grid-header-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-header-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-control-grid-header-height:auto;--ibiz-control-grid-header-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-header-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-header-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-grid-content-text-color:var(--ibiz-control-grid-text-color);--ibiz-control-grid-content-row-height:48px;--ibiz-control-grid-page-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-page-height:50px;--ibiz-control-grid-page-padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:rgba(var(--ibiz-grey-1), 1);--ibiz-control-grid-footer-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-footer-font-weight:var(--ibiz-font-weight-bold);position:relative;width:100%;height:100%;padding:var(--ibiz-control-grid-padding);background-color:var(--ibiz-control-grid-bg-color)}.ibiz-control-grid .el-table{--el-table-header-bg-color:var(--ibiz-control-grid-header-bg-color);--el-table-current-row-bg-color:var(--ibiz-control-grid-row-select-color);--el-table-border-color:transparent}.ibiz-control-grid.is-empty .el-scrollbar .el-scrollbar__view{height:100%}.ibiz-control-grid.is-empty .el-table__empty-text{display:inline-block;height:100%}.ibiz-control-grid .el-table--border .el-table__cell{border-right:none}.ibiz-control-grid .el-table-fixed-column--left,.ibiz-control-grid .el-table-fixed-column--right{--el-bg-color:transparent}.ibiz-control-grid .el-table thead.is-group th.el-table__cell{background:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-page .ibiz-control-grid__table{height:calc(100% - var(--ibiz-control-grid-page-height))}.ibiz-control-grid.is-enable-group .el-table__indent{display:none}.ibiz-control-grid__table{width:100%;height:100%}.ibiz-control-grid__table .caret-wrapper{justify-content:center}.ibiz-control-grid__table .caret-wrapper>*+*{margin-top:var(--ibiz-spacing-super-tight)}.ibiz-control-grid__table .sort-caret{--el-text-color-placeholder:--ibiz-control-grid-header-text-color;position:initial;opacity:.6}.ibiz-control-grid__table.el-table .el-table__cell{padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr td{background:var(--ibiz-control-grid-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:nth-child(2n) td{background-color:var(--ibiz-control-grid-row-bg-color-2)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:hover td{background-color:var(--ibiz-control-grid-row-hover-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.current-row td{background-color:var(--el-table-current-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.editing-row td{background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-control-grid__table .el-table__header-wrapper .cell{height:var(--ibiz-control-grid-header-height);padding:var(--ibiz-control-grid-header-cell-padding);font-size:var(--ibiz-control-grid-header-font-size);font-weight:var(--ibiz-control-grid-header-font-weight);color:var(--ibiz-control-grid-header-text-color);word-break:break-word;white-space:pre-wrap}.ibiz-control-grid__table .el-table__header-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__header-wrapper .is-sortable.el-table__cell .cell{display:flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content)}.ibiz-control-grid__table .el-table__body-wrapper{color:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-0:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-1:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-2:var(--ibiz-control-grid-content-text-color);--ibiz-color-text-3:var(--ibiz-control-grid-content-text-color);border-bottom:.1px solid var(--ibiz-color-border)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row{height:var(--ibiz-control-grid-content-row-height);cursor:pointer}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:0;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row .el-table__expand-icon{margin:var(--ibiz-control-grid-row-expand-icon-margin)}@-moz-document url-prefix(){.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:100%}}.ibiz-control-grid__table .el-table__body-wrapper .cell{display:flex;align-items:center;height:100%;padding:var(--ibiz-spacing-none)}.ibiz-control-grid__table .el-table__body-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__cell.is-center{--ibiz-grid-column-text-align:center;--ibiz-grid-column-justify-content:center}.ibiz-control-grid__table .el-table__cell.is-left{--ibiz-grid-column-text-align:left;--ibiz-grid-column-justify-content:flex-start}.ibiz-control-grid__table .el-table__cell.is-right{--ibiz-grid-column-text-align:right;--ibiz-grid-column-justify-content:flex-end}.ibiz-control-grid__table .el-scrollbar__wrap{position:relative}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell{font-size:var(--ibiz-control-grid-footer-font-size);font-weight:var(--ibiz-control-grid-footer-font-weight);color:var(--ibiz-control-grid-footer-text-color);background-color:var(--ibiz-control-grid-footer-bg-color)}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell:first-child>div{display:inline;vertical-align:4px}.ibiz-control-grid__table .enable-order{position:relative;padding-left:var(--ibiz-spacing-base-tight);transition:transform .25s cubic-bezier(0,0,.2,1)}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon{padding:var(--ibiz-spacing-none)!important}.ibiz-control-grid__table .enable-order .ibiz-control-grid__drag-icon .cell{display:none}.ibiz-control-grid__table .enable-order:hover .ibiz-control-grid__drag-icon .cell{display:flex}.ibiz-control-grid__table .el-scrollbar__bar.is-horizontal{height:var(--ibiz-control-grid-scrollbar-width)}.ibiz-control-grid__table .el-scrollbar__bar.is-vertical{width:var(--ibiz-control-grid-scrollbar-width)}.ibiz-control-grid__load-more-button{padding:var(--ibiz-control-grid-header-cell-padding);text-align:center}.ibiz-control-grid .el-table td.el-table__cell,.ibiz-control-grid .el-table th.el-table__cell.is-leaf{border-bottom:none}.ibiz-control-grid .ibiz-pagination{--ibiz-pagination-height:var(--ibiz-control-grid-page-height);--ibiz-pagination-text-color:var(--ibiz-control-grid-text-color);--ibiz-pagination-padding:var(--ibiz-control-grid-page-padding)}.ibiz-control-grid.is-single-select .el-table__header-wrapper .el-table__header thead>tr th:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-single-select .el-table__body-wrapper .el-table__body tbody>tr td:nth-child(1){padding-left:var(--ibiz-spacing-tight)}.ibiz-control-grid.is-enable-customized .el-table__header-wrapper .el-table__header thead>tr th:last-child{padding-right:var(--ibiz-spacing-base-loose)}.ibiz-control-grid.is-enable-customized .ibiz-control-grid-setting-box{display:flex;align-items:center;justify-content:flex-start;position:absolute;top:0;right:0;z-index:1;height:var(--ibiz-control-grid-now-header-height);padding-right:var(--ibiz-spacing-extra-tight);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-customized .ibiz-grid-setting{cursor:pointer}.ibiz-control-grid .el-table .el-table__body tr.hover-row.current-row>td.el-table__cell,.ibiz-control-grid .el-table .el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.ibiz-control-grid .el-table .el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.ibiz-control-grid .el-table .el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.ibiz-control-grid .el-table .el-table__body tr.current-row td:not([rowspan="1"]){background-color:var(--ibiz-control-grid-row-bg-color)}.ibiz-control-grid .el-table .el-table__body-wrapper .el-table__body tr.el-table__row>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.ibiz-control-grid-quick-toolbar{justify-content:center}.ibiz-control-grid-batch-toolbar{position:absolute;top:0;left:54px;z-index:99;display:none;width:calc(100% - 54px);height:var(--ibiz-control-grid-now-header-height);font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);background-color:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid-batch-toolbar.is-show{display:flex;align-items:center;justify-content:flex-start}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-separator{padding:0 var(--ibiz-spacing-base-tight)}.ibiz-control-grid-batch-toolbar .ibiz-control-grid-batch-toolbar-content{height:100%;display:flex;align-items:center;justify-content:flex-start}
@@ -83,6 +83,8 @@ export declare const GridControl: import("vue").DefineComponent<{
83
83
  onPageChange: (page: number) => void;
84
84
  onPageSizeChange: (size: number) => void;
85
85
  onPageRefresh: () => void;
86
+ cellMouseEnter: (row: IData, column: IData, cell: HTMLTableCellElement, event: Event) => void;
87
+ cellMouseLeave: (row: IData, column: IData, cell: HTMLTableCellElement, event: Event) => void;
86
88
  handleRowClassName: ({ row }: {
87
89
  row: IData;
88
90
  }) => string;
@@ -97,6 +99,12 @@ export declare const GridControl: import("vue").DefineComponent<{
97
99
  columns: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<IData>[];
98
100
  data: IData[];
99
101
  }) => string[];
102
+ spanMethod: ({ row, column, rowIndex, columnIndex, }: {
103
+ row: IData;
104
+ column: IData;
105
+ rowIndex: number;
106
+ columnIndex: number;
107
+ }) => void | IData;
100
108
  renderPopover: () => JSX.Element[];
101
109
  defaultSort: import("vue").Ref<IData>;
102
110
  renderBatchToolBar: () => VNode | undefined;
@@ -199,7 +199,10 @@ const GridControl = /* @__PURE__ */ defineComponent({
199
199
  tableData,
200
200
  renderColumns,
201
201
  defaultSort,
202
- summaryMethod
202
+ summaryMethod,
203
+ spanMethod,
204
+ cellMouseEnter,
205
+ cellMouseLeave
203
206
  } = useAppGridBase(c, props);
204
207
  const {
205
208
  renderPopover
@@ -306,10 +309,13 @@ const GridControl = /* @__PURE__ */ defineComponent({
306
309
  onPageChange,
307
310
  onPageSizeChange,
308
311
  onPageRefresh,
312
+ cellMouseEnter,
313
+ cellMouseLeave,
309
314
  handleRowClassName,
310
315
  handleHeaderCellClassName,
311
316
  renderNoData,
312
317
  summaryMethod,
318
+ spanMethod,
313
319
  renderPopover,
314
320
  defaultSort,
315
321
  renderBatchToolBar,
@@ -343,11 +349,15 @@ const GridControl = /* @__PURE__ */ defineComponent({
343
349
  "header-cell-class-name": this.handleHeaderCellClassName,
344
350
  "row-key": "tempsrfkey",
345
351
  "data": this.tableData,
352
+ "span-method": this.spanMethod,
346
353
  "onRowClick": this.onRowClick,
354
+ "onCellMouseEnter": this.cellMouseEnter,
355
+ "onCellMouseLeave": this.cellMouseLeave,
347
356
  "onRowDblclick": this.onDbRowClick,
348
357
  "onSelectionChange": this.onSelectionChange,
349
358
  "onSortChange": this.onSortChange,
350
- "tooltip-effect": "light"
359
+ "tooltip-effect": "light",
360
+ "scrollbar-always-on": true
351
361
  }, {
352
362
  empty: this.renderNoData,
353
363
  default: () => {
@@ -72,6 +72,8 @@ export declare const IBizGridControl: import("@ibiz-template/vue3-util").TypeWit
72
72
  onPageChange: (page: number) => void;
73
73
  onPageSizeChange: (size: number) => void;
74
74
  onPageRefresh: () => void;
75
+ cellMouseEnter: (row: IData, column: IData, cell: HTMLTableCellElement, event: Event) => void;
76
+ cellMouseLeave: (row: IData, column: IData, cell: HTMLTableCellElement, event: Event) => void;
75
77
  handleRowClassName: ({ row }: {
76
78
  row: IData;
77
79
  }) => string;
@@ -88,6 +90,12 @@ export declare const IBizGridControl: import("@ibiz-template/vue3-util").TypeWit
88
90
  columns: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<IData>[];
89
91
  data: IData[];
90
92
  }) => string[];
93
+ spanMethod: ({ row, column, rowIndex, columnIndex, }: {
94
+ row: IData;
95
+ column: IData;
96
+ rowIndex: number;
97
+ columnIndex: number;
98
+ }) => void | IData;
91
99
  renderPopover: () => JSX.Element[];
92
100
  defaultSort: import("vue").Ref<IData>;
93
101
  renderBatchToolBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -19,6 +19,7 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
19
19
  CustomHtml: import("vue").ComputedRef<string | undefined>;
20
20
  fieldValue: import("vue").ComputedRef<any>;
21
21
  formatValue: import("vue").ComputedRef<string>;
22
+ percent: import("vue").ComputedRef<string>;
22
23
  codeListValue: import("vue").ComputedRef<string>;
23
24
  tooltip: import("vue").ComputedRef<string | undefined>;
24
25
  zIndex: number | undefined;
@@ -37,6 +37,25 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
37
37
  });
38
38
  const fieldValue = computed(() => props.row.data[props.controller.fieldName]);
39
39
  const formatValue = computed(() => props.controller.formatValue(fieldValue.value));
40
+ const percent = computed(() => {
41
+ const {
42
+ grid
43
+ } = props.controller;
44
+ if (!grid.showPercent) {
45
+ return "";
46
+ }
47
+ const value = Number(fieldValue.value);
48
+ if (!Number.isNaN(value)) {
49
+ const {
50
+ totalResult = {}
51
+ } = grid.state;
52
+ const total = totalResult[props.controller.fieldName];
53
+ if (total) {
54
+ return ibiz.util.text.format("".concat(value / total), "0.##%");
55
+ }
56
+ }
57
+ return "";
58
+ });
40
59
  const codeListValue = computed(() => ValueExUtil.toText(props.controller.model, fieldValue.value));
41
60
  const codeListText = ref("");
42
61
  const onInfoTextChange = (text) => {
@@ -70,6 +89,7 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
70
89
  CustomHtml,
71
90
  fieldValue,
72
91
  formatValue,
92
+ percent,
73
93
  codeListValue,
74
94
  tooltip,
75
95
  zIndex,
@@ -108,7 +128,7 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
108
128
  "class": this.ns.e("text"),
109
129
  "title": this.tooltip,
110
130
  "onClick": this.onTextClick
111
- }, [this.formatValue, this.fieldValue != null && c.model.unitName]);
131
+ }, [this.formatValue, this.fieldValue != null && c.model.unitName, this.percent && "(".concat(this.percent, ")")]);
112
132
  }
113
133
  return createVNode("div", {
114
134
  "class": [this.ns.b(), c.clickable(this.row) && this.ns.m("clickable"), this.ns.m(this.controller.grid.overflowMode), (_a = this.controller.model.cellSysCss) == null ? void 0 : _a.cssName, this.ns.is("has-action", !!c.model.deuiactionGroup)],
@@ -16,6 +16,7 @@ export declare const IBizGridFieldColumn: import("@ibiz-template/vue3-util").Typ
16
16
  CustomHtml: import("vue").ComputedRef<string | undefined>;
17
17
  fieldValue: import("vue").ComputedRef<any>;
18
18
  formatValue: import("vue").ComputedRef<string>;
19
+ percent: import("vue").ComputedRef<string>;
19
20
  codeListValue: import("vue").ComputedRef<string>;
20
21
  tooltip: import("vue").ComputedRef<string | undefined>;
21
22
  zIndex: number | undefined;
@@ -1 +1 @@
1
- .ibiz-control-treeview{--ibiz-control-treeview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-treeview-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-icon-width:var(--ibiz-spacing-base);height:100%;padding:var(--ibiz-spacing-tight) 0}.ibiz-control-treeview-node{display:flex;flex-grow:1;flex-shrink:1;align-items:center;min-width:1px;height:100%}.ibiz-control-treeview-node__icon{display:inline-block;width:var(--ibiz-control-treeview-icon-width);height:var(--ibiz-control-treeview-icon-height);margin-right:var(--ibiz-spacing-tight)}.ibiz-control-treeview-node__icon>svg{width:100%;height:100%}.ibiz-control-treeview-node__label{flex-grow:1;flex-shrink:1;min-width:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-treeview-node:hover .ibiz-control-treeview-context-menu-trigger{display:inline-block}.ibiz-control-treeview-node--disabled{color:var(--ibiz-color-disabled-text);cursor:not-allowed}.ibiz-control-treeview-context-menu-trigger{display:none;flex-shrink:0;width:30px;text-align:center;cursor:pointer}.ibiz-control-treeview-context-menu-trigger__caption-icon{vertical-align:middle}.ibiz-control-treeview-context-menu.mx-context-menu{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-treeview-context-menu.mx-context-menu .mx-context-menu-item{padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-control-treeview-quick-search{padding:0 var(--ibiz-spacing-base) var(--ibiz-spacing-tight)}.ibiz-control-treeview-tree{padding:0 var(--ibiz-spacing-base)}
1
+ .ibiz-control-treeview{--ibiz-control-treeview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-treeview-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-icon-width:var(--ibiz-spacing-base);height:100%;padding:var(--ibiz-spacing-tight) 0}.ibiz-control-treeview-node{display:flex;flex-grow:1;flex-shrink:1;align-items:center;min-width:1px;height:100%}.ibiz-control-treeview-node__icon{display:flex;align-items:center;width:var(--ibiz-control-treeview-icon-width);height:var(--ibiz-control-treeview-icon-height);margin-right:var(--ibiz-spacing-tight)}.ibiz-control-treeview-node__icon>svg{width:100%;height:100%}.ibiz-control-treeview-node__label{flex-grow:1;flex-shrink:1;min-width:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-treeview-node:hover .ibiz-control-treeview-context-menu-trigger{display:inline-block}.ibiz-control-treeview-node--disabled{color:var(--ibiz-color-disabled-text);cursor:not-allowed}.ibiz-control-treeview-context-menu-trigger{display:none;flex-shrink:0;width:30px;text-align:center;cursor:pointer}.ibiz-control-treeview-context-menu-trigger__caption-icon{vertical-align:middle}.ibiz-control-treeview-context-menu.mx-context-menu{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-treeview-context-menu.mx-context-menu .mx-context-menu-item{padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-control-treeview-quick-search{padding:0 var(--ibiz-spacing-base) var(--ibiz-spacing-tight)}.ibiz-control-treeview-tree{padding:0 var(--ibiz-spacing-base)}
@@ -13,5 +13,6 @@ import { DropDownListEditorController } from './dropdown-list-editor.controller'
13
13
  export declare class DropDownListEditorProvider implements IEditorProvider {
14
14
  formEditor: string;
15
15
  gridEditor: string;
16
+ constructor(editorType?: string);
16
17
  createController(editorModel: IDropDownList, parentController: IEditorContainerController): Promise<DropDownListEditorController>;
17
18
  }
@@ -8,9 +8,18 @@ var __publicField = (obj, key, value) => {
8
8
  return value;
9
9
  };
10
10
  class DropDownListEditorProvider {
11
- constructor() {
11
+ constructor(editorType) {
12
12
  __publicField(this, "formEditor", "IBizDropdown");
13
13
  __publicField(this, "gridEditor", "IBizDropdown");
14
+ let componentName = "IBizDropdown";
15
+ switch (editorType) {
16
+ case "EMOJI_PICKER":
17
+ componentName = "IBizEmojiPicker";
18
+ break;
19
+ default:
20
+ }
21
+ this.formEditor = componentName;
22
+ this.gridEditor = componentName;
14
23
  }
15
24
  async createController(editorModel, parentController) {
16
25
  const c = new DropDownListEditorController(editorModel, parentController);
@@ -0,0 +1 @@
1
+ .ibiz-emoji-picker{display:flex;align-items:center;width:100%;height:100%}.ibiz-emoji-picker__button-content{display:flex;align-items:center;min-height:var(--ibiz-height-control-default)}.ibiz-emoji-picker__button-content--icon{margin-right:var(--ibiz-spacing-extra-tight);fill:var(--ibiz-color-primary-text)}.ibiz-emoji-picker__button.is-clear{position:relative;padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-0);background-color:transparent}.ibiz-emoji-picker__button.is-clear:hover .ibiz-emoji-picker__button-content--icon{display:block}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon{position:absolute;top:0;right:0;display:none;margin-right:0;font-size:var(--ibiz-font-size-regular);fill:var(--ibiz-color-text-3)}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon:hover{fill:var(--ibiz-color-primary)}.ibiz-emoji-picker--readonly{display:flex;align-items:center;font-size:var(--ibiz-font-size-header-3);line-height:32px}.ibiz-emoji-picker--readonly .ibiz-emoji-picker__button{pointer-events:none}.ibiz-emoji-picker--readonly .is-clear .ibiz-emoji-picker__button-content--icon{display:none}.ibiz-emoji-picker-popper.el-popper.el-popper{width:auto;padding:0}
@@ -0,0 +1,72 @@
1
+ import { DropDownListEditorController } from '../dropdown-list-editor.controller';
2
+ import './ibiz-emoji-picker.scss';
3
+ export declare const IBizEmojiPicker: import("vue").DefineComponent<{
4
+ value: (StringConstructor | NumberConstructor)[];
5
+ controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<DropDownListEditorController>, undefined, undefined>;
6
+ data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<IData>, undefined, undefined>;
7
+ disabled: {
8
+ type: BooleanConstructor;
9
+ };
10
+ readonly: {
11
+ type: BooleanConstructor;
12
+ default: boolean;
13
+ };
14
+ autoFocus: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
18
+ overflowMode: {
19
+ type: StringConstructor;
20
+ };
21
+ controlParams: {
22
+ type: ObjectConstructor;
23
+ required: boolean;
24
+ };
25
+ }, {
26
+ ns: import("@ibiz-template/core").Namespace;
27
+ c: DropDownListEditorController;
28
+ emoji: import("vue").Ref<string>;
29
+ visible: import("vue").Ref<boolean>;
30
+ onSelect: (val: IData) => void;
31
+ onAddEmoji: (e: MouseEvent) => void;
32
+ onClearEmoji: (e: MouseEvent) => void;
33
+ renderReference: () => JSX.Element;
34
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
35
+ change: (_value: unknown, _name?: string | undefined) => boolean;
36
+ blur: (_event?: IData | undefined) => boolean;
37
+ focus: (_event?: IData | undefined) => boolean;
38
+ enter: (_event?: IData | undefined) => boolean;
39
+ infoTextChange: (_text: string) => boolean;
40
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
41
+ value: (StringConstructor | NumberConstructor)[];
42
+ controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<DropDownListEditorController>, undefined, undefined>;
43
+ data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<IData>, undefined, undefined>;
44
+ disabled: {
45
+ type: BooleanConstructor;
46
+ };
47
+ readonly: {
48
+ type: BooleanConstructor;
49
+ default: boolean;
50
+ };
51
+ autoFocus: {
52
+ type: BooleanConstructor;
53
+ default: boolean;
54
+ };
55
+ overflowMode: {
56
+ type: StringConstructor;
57
+ };
58
+ controlParams: {
59
+ type: ObjectConstructor;
60
+ required: boolean;
61
+ };
62
+ }>> & {
63
+ onFocus?: ((_event?: IData | undefined) => any) | undefined;
64
+ onBlur?: ((_event?: IData | undefined) => any) | undefined;
65
+ onChange?: ((_value: unknown, _name?: string | undefined) => any) | undefined;
66
+ onInfoTextChange?: ((_text: string) => any) | undefined;
67
+ onEnter?: ((_event?: IData | undefined) => any) | undefined;
68
+ }, {
69
+ disabled: boolean;
70
+ autoFocus: boolean;
71
+ readonly: boolean;
72
+ }, {}>;
@@ -0,0 +1,123 @@
1
+ import { isVNode, ref, watch, createVNode, resolveComponent, defineComponent } from 'vue';
2
+ import { getDropdownProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
+ import { strToBase64, base64ToStr } from '@ibiz-template/core';
4
+ import './ibiz-emoji-picker.css';
5
+
6
+ "use strict";
7
+ function _isSlot(s) {
8
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
+ }
10
+ const IBizEmojiPicker = /* @__PURE__ */ defineComponent({
11
+ name: "IBizEmojiPicker",
12
+ props: getDropdownProps(),
13
+ emits: getEditorEmits(),
14
+ setup(props, {
15
+ emit
16
+ }) {
17
+ const ns = useNamespace("emoji-picker");
18
+ const c = props.controller;
19
+ const emoji = ref("");
20
+ const visible = ref(false);
21
+ const onAddEmoji = (e) => {
22
+ e.stopPropagation();
23
+ e.preventDefault();
24
+ visible.value = true;
25
+ };
26
+ const onClearEmoji = (e) => {
27
+ e.stopPropagation();
28
+ e.preventDefault();
29
+ emoji.value = "";
30
+ visible.value = false;
31
+ emit("change", "");
32
+ };
33
+ const onSelect = (val) => {
34
+ emoji.value = val.data;
35
+ visible.value = false;
36
+ emit("change", strToBase64(val.data));
37
+ };
38
+ watch(() => props.value, (newVal) => {
39
+ emoji.value = newVal ? base64ToStr(newVal) : "";
40
+ }, {
41
+ immediate: true
42
+ });
43
+ const renderButtonContent = () => {
44
+ let content = createVNode("span", {
45
+ "class": [ns.e("button-content")],
46
+ "onClick": onAddEmoji
47
+ }, [createVNode("svg", {
48
+ "class": ns.em("button-content", "icon"),
49
+ "viewBox": "0 0 1040 1024",
50
+ "version": "1.1",
51
+ "xmlns": "http://www.w3.org/2000/svg",
52
+ "p-id": "1490",
53
+ "width": "1em",
54
+ "height": "1em"
55
+ }, [createVNode("path", {
56
+ "d": "M512.075261 1024A511.774217 511.774217 0 1 1 730.482434 48.769072a37.630457 37.630457 0 1 1-32.061149 68.035867 436.513303 436.513303 0 1 0 250.468323 395.270322 37.630457 37.630457 0 0 1 75.260914 0 512.526826 512.526826 0 0 1-512.075261 511.924739z",
57
+ "p-id": "1491"
58
+ }, null), createVNode("path", {
59
+ "d": "M333.857416 344.0929a57.348817 57.348817 0 1 0 57.348817 57.348817 57.499339 57.499339 0 0 0-57.348817-57.348817zM686.53006 344.0929a57.348817 57.348817 0 1 0 57.348817 57.348817 57.348817 57.348817 0 0 0-57.348817-57.348817zM515.236219 783.165074c-162.864619 0-262.359547-141.942084-262.359547-219.159782a30.104366 30.104366 0 0 1 60.208731 0c0 48.618551 76.314567 158.951051 202.150816 158.951051s193.571072-134.114949 193.571072-158.951051a30.104366 30.104366 0 0 1 60.208731 0c0 54.488902-90.012054 219.159782-253.779803 219.159782zM1009.549904 207.720123h-67.132735V139.985301a30.104366 30.104366 0 1 0-60.208732 0v67.734822h-67.734822a30.104366 30.104366 0 0 0-30.104366 30.104366 30.104366 30.104366 0 0 0 30.104366 30.104366h67.734822v67.734823a30.104366 30.104366 0 0 0 60.208732 0v-67.734823h67.734823a30.104366 30.104366 0 0 0 30.104365-30.104366 30.104366 30.104366 0 0 0-30.706453-30.104366z",
60
+ "p-id": "1492"
61
+ }, null)]), ibiz.i18n.t("editor.emojiPicker.addEmoji")]);
62
+ if (emoji.value) {
63
+ content = createVNode("span", {
64
+ "class": [ns.e("button-content")]
65
+ }, [createVNode("svg", {
66
+ "class": ns.em("button-content", "icon"),
67
+ "xmlns": "http://www.w3.org/2000/svg",
68
+ "viewBox": "0 0 1024 1024",
69
+ "width": "1em",
70
+ "height": "1em",
71
+ "onClick": onClearEmoji
72
+ }, [createVNode("path", {
73
+ "d": "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"
74
+ }, null)]), createVNode("span", {
75
+ "innerHTML": emoji.value
76
+ }, null)]);
77
+ }
78
+ return content;
79
+ };
80
+ const renderReference = () => {
81
+ let _slot;
82
+ return createVNode(resolveComponent("el-button"), {
83
+ "class": [ns.e("button"), ns.is("clear", !!emoji.value)]
84
+ }, _isSlot(_slot = renderButtonContent()) ? _slot : {
85
+ default: () => [_slot]
86
+ });
87
+ };
88
+ return {
89
+ ns,
90
+ c,
91
+ emoji,
92
+ visible,
93
+ onSelect,
94
+ onAddEmoji,
95
+ onClearEmoji,
96
+ renderReference
97
+ };
98
+ },
99
+ render() {
100
+ return createVNode("div", {
101
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
102
+ }, [createVNode(resolveComponent("el-popover"), {
103
+ "trigger": "click",
104
+ "placement": "bottom-start",
105
+ "width": "auto",
106
+ "visible": this.visible,
107
+ "onUpdate:visible": ($event) => this.visible = $event,
108
+ "hide-after": 0,
109
+ "popper-class": [this.ns.b("popper")]
110
+ }, {
111
+ reference: () => this.renderReference(),
112
+ default: () => {
113
+ return createVNode(resolveComponent("iBizEmojiSelect"), {
114
+ "continuousList": true,
115
+ "dark": true,
116
+ "onSelect": this.onSelect
117
+ }, null);
118
+ }
119
+ })]);
120
+ }
121
+ });
122
+
123
+ export { IBizEmojiPicker };
@@ -1,3 +1,4 @@
1
1
  export { IBizDropdown } from './ibiz-dropdown/ibiz-dropdown';
2
+ export { IBizEmojiPicker } from './ibiz-emoji-picker/ibiz-emoji-picker';
2
3
  export * from './dropdown-list-editor.controller';
3
4
  export * from './dropdown-list-editor.provider';
@@ -1,4 +1,5 @@
1
1
  export { IBizDropdown } from './ibiz-dropdown/ibiz-dropdown.mjs';
2
+ export { IBizEmojiPicker } from './ibiz-emoji-picker/ibiz-emoji-picker.mjs';
2
3
  export { DropDownListEditorController } from './dropdown-list-editor.controller.mjs';
3
4
  export { DropDownListEditorProvider } from './dropdown-list-editor.provider.mjs';
4
5
 
@@ -34,6 +34,7 @@ import { IBizInput } from './text-box/input/input.mjs';
34
34
  import { IBizInputNumber } from './text-box/ibiz-input-number/ibiz-input-number.mjs';
35
35
  import { IBizInputIP } from './text-box/ibiz-input-ip/ibiz-input-ip.mjs';
36
36
  import { IBizDropdown } from './dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs';
37
+ import { IBizEmojiPicker } from './dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.mjs';
37
38
  import { IBizCheckbox } from './check-box/ibiz-checkbox/ibiz-checkbox.mjs';
38
39
  import { IBizCheckboxList } from './check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs';
39
40
  import { IBizRadio } from './radio-button-list/ibiz-radio/ibiz-radio.mjs';
@@ -100,6 +101,7 @@ const IBizEditor = {
100
101
  v.component(IBizInputNumber.name, IBizInputNumber);
101
102
  v.component(IBizInputIP.name, IBizInputIP);
102
103
  v.component(IBizDropdown.name, IBizDropdown);
104
+ v.component(IBizEmojiPicker.name, IBizEmojiPicker);
103
105
  v.component(IBizCheckbox.name, IBizCheckbox);
104
106
  v.component(IBizCheckboxList.name, IBizCheckboxList);
105
107
  v.component(IBizRadio.name, IBizRadio);
@@ -170,6 +172,10 @@ const IBizEditor = {
170
172
  "MDROPDOWNLIST",
171
173
  () => new DropDownListEditorProvider()
172
174
  );
175
+ registerEditorProvider(
176
+ "DROPDOWNLIST_EMOJI_PICKER",
177
+ () => new DropDownListEditorProvider("EMOJI_PICKER")
178
+ );
173
179
  registerEditorProvider("CHECKBOX", () => new CheckBoxEditorProvider());
174
180
  registerEditorProvider(
175
181
  "CHECKBOXLIST",
@@ -26,7 +26,7 @@ export declare const IBizInput: import("vue").DefineComponent<{
26
26
  c: TextBoxEditorController;
27
27
  ns: import("@ibiz-template/core").Namespace;
28
28
  rows: import("vue").Ref<number>;
29
- type: import("vue").ComputedRef<"string" | "text" | "textarea" | "password">;
29
+ type: import("vue").ComputedRef<"string" | "text" | "password" | "textarea">;
30
30
  items: import("vue").Ref<readonly {
31
31
  value: string | number;
32
32
  text: string;