@veltra/desktop 1.1.4 → 1.1.6

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 (169) hide show
  1. package/dist/components/action/action-group.js +3 -110
  2. package/dist/components/action/action-group.js.map +1 -1
  3. package/dist/components/action/action-group.vue.d.ts +4 -13
  4. package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js +105 -0
  5. package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js.map +1 -0
  6. package/dist/components/action/action.js +5 -1
  7. package/dist/components/action/action.js.map +1 -1
  8. package/dist/components/action/action.vue.d.ts +2 -2
  9. package/dist/components/action/di.js.map +1 -1
  10. package/dist/components/action/style2.css +17 -14
  11. package/dist/components/auto-complete/auto-complete.js +1 -1
  12. package/dist/components/badge/badge.js +1 -1
  13. package/dist/components/batch-edit/batch-edit-form.js +105 -100
  14. package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
  15. package/dist/components/batch-edit/batch-edit-list.js +52 -68
  16. package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
  17. package/dist/components/batch-edit/batch-edit.js +0 -1
  18. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  19. package/dist/components/batch-edit/style.js +1 -0
  20. package/dist/components/batch-edit/style2.css +13 -89
  21. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  22. package/dist/components/button/button.js +1 -1
  23. package/dist/components/card/card.js +1 -1
  24. package/dist/components/cascade/cascade-panel-item.js +4 -4
  25. package/dist/components/cascade/cascade.js +2 -2
  26. package/dist/components/cascade/cascade.vue.d.ts +2 -2
  27. package/dist/components/checkbox/checkbox-button.js +1 -1
  28. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  29. package/dist/components/checkbox/checkbox.js +1 -1
  30. package/dist/components/checkbox-group/checkbox-group.js +1 -1
  31. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
  32. package/dist/components/code-editor/code-editor.js +1 -1
  33. package/dist/components/collapse/collapse.js +1 -1
  34. package/dist/components/condition-editor/components/condition-group.js +152 -0
  35. package/dist/components/condition-editor/components/condition-group.js.map +1 -0
  36. package/dist/components/condition-editor/components/condition-row.js +217 -0
  37. package/dist/components/condition-editor/components/condition-row.js.map +1 -0
  38. package/dist/components/condition-editor/condition-editor.js +134 -5
  39. package/dist/components/condition-editor/condition-editor.js.map +1 -1
  40. package/dist/components/condition-editor/condition-editor.vue.d.ts +10 -2
  41. package/dist/components/condition-editor/core/evaluator.js +75 -0
  42. package/dist/components/condition-editor/core/evaluator.js.map +1 -0
  43. package/dist/components/condition-editor/core/operators.js +123 -0
  44. package/dist/components/condition-editor/core/operators.js.map +1 -0
  45. package/dist/components/condition-editor/style.js +7 -0
  46. package/dist/components/condition-editor/style2.css +186 -0
  47. package/dist/components/context-menu/context-menu.js +1 -1
  48. package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
  49. package/dist/components/date-picker/date-picker.js +2 -2
  50. package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
  51. package/dist/components/date-range-picker/date-range-picker.js +2 -2
  52. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
  53. package/dist/components/dialog/dialog.js +7 -7
  54. package/dist/components/dialog/style2.css +8 -0
  55. package/dist/components/dialog/use-maximum.js +1 -1
  56. package/dist/components/drawer/style2.css +8 -0
  57. package/dist/components/dropdown/dropdown.js +1 -1
  58. package/dist/components/expression-editor/components/variable-picker.js +8 -8
  59. package/dist/components/expression-editor/expression-editor.js +1 -1
  60. package/dist/components/file-viewer/file-viewer.js +13 -13
  61. package/dist/components/form-item/form-item.js.map +1 -1
  62. package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js +6 -6
  63. package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/grid-input/grid-input.js +1 -1
  65. package/dist/components/group-input/group-input.js +1 -1
  66. package/dist/components/index.d.ts +9 -8
  67. package/dist/components/index.js +130 -128
  68. package/dist/components/index.js.map +1 -1
  69. package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js +1 -1
  70. package/dist/components/kbd/index.d.ts +1 -0
  71. package/dist/components/kbd/kbd.js +17 -0
  72. package/dist/components/kbd/kbd.js.map +1 -0
  73. package/dist/components/kbd/kbd.vue.d.ts +18 -0
  74. package/dist/components/kbd/style.d.ts +1 -0
  75. package/dist/components/kbd/style.js +1 -0
  76. package/dist/components/kbd/style2.css +43 -0
  77. package/dist/components/layout/layout-resizer.js +1 -1
  78. package/dist/components/layout/layout.js +1 -1
  79. package/dist/components/list/list.js +1 -1
  80. package/dist/components/loading/loading.js +1 -1
  81. package/dist/components/menu/menu-sub-collapsed.js +4 -4
  82. package/dist/components/menu/menu.js +1 -1
  83. package/dist/components/message/message.js +1 -1
  84. package/dist/components/message-confirm/message-confirm.js +1 -1
  85. package/dist/components/multi-select/multi-select.js +15 -15
  86. package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
  87. package/dist/components/multi-tree-select/multi-tree-select.js +8 -8
  88. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +3 -3
  89. package/dist/components/notification/notification.js +1 -1
  90. package/dist/components/number/number.vue.d.ts +1 -1
  91. package/dist/components/number-input/number-input.js +2 -2
  92. package/dist/components/number-range-input/number-range-input.js +1 -1
  93. package/dist/components/paginator/paginator.js +6 -6
  94. package/dist/components/paginator/style.js +1 -1
  95. package/dist/components/palette/palette.js +1 -1
  96. package/dist/components/password-input/password-input.js +2 -2
  97. package/dist/components/pop-confirm/pop-confirm.js +1 -1
  98. package/dist/components/progress-nodes/progress-nodes.js +1 -1
  99. package/dist/components/radio/radio.js +1 -1
  100. package/dist/components/radio-group/radio-group.js +1 -1
  101. package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
  102. package/dist/components/rich-text-editor/rich-text-editor.js +1 -1
  103. package/dist/components/scroll/scroll-bar.js +1 -1
  104. package/dist/components/scroll/scroll.js +1 -1
  105. package/dist/components/select/select.js +10 -10
  106. package/dist/components/select/select.vue.d.ts +2 -2
  107. package/dist/components/slider/slider.js +1 -1
  108. package/dist/components/steps/steps.js +2 -2
  109. package/dist/components/switch/switch.js +1 -1
  110. package/dist/components/table/style2.css +4 -1
  111. package/dist/components/table/table.js +2 -3
  112. package/dist/components/table/table.js.map +1 -1
  113. package/dist/components/table/use-columns.js +1 -1
  114. package/dist/components/table/use-fixed-columns.js +8 -31
  115. package/dist/components/table/use-fixed-columns.js.map +1 -1
  116. package/dist/components/table-editor/table-editor.js +1 -2
  117. package/dist/components/table-editor/table-editor.js.map +1 -1
  118. package/dist/components/tabs/tabs-horizontal.js +1 -1
  119. package/dist/components/tabs/tabs-horizontal.vue.d.ts +1 -1
  120. package/dist/components/tabs/tabs-vertical.js +1 -1
  121. package/dist/components/tabs/tabs.js +1 -1
  122. package/dist/components/tabs/tabs.vue.d.ts +1 -1
  123. package/dist/components/tag/tag.js +1 -1
  124. package/dist/components/textarea/textarea.js +1 -1
  125. package/dist/components/theme/style.js +1 -1
  126. package/dist/components/theme/theme.js +11 -11
  127. package/dist/components/tip/tip.js +1 -1
  128. package/dist/components/tree/tree-node.js +1 -1
  129. package/dist/components/tree/tree.js +5 -5
  130. package/dist/components/tree-select/tree-select.js +6 -6
  131. package/dist/components/tree-select/tree-select.vue.d.ts +3 -3
  132. package/dist/index.d.ts +48 -47
  133. package/dist/index.js +46 -45
  134. package/dist/style.js +3 -2
  135. package/dist/types/action.d.ts +5 -11
  136. package/dist/types/condition-editor.d.ts +41 -8
  137. package/dist/types/index.d.ts +4 -4
  138. package/dist/types/table.d.ts +0 -2
  139. package/package.json +11 -11
  140. package/src/components/action/action-group.vue +68 -82
  141. package/src/components/action/action.vue +9 -1
  142. package/src/components/action/di.ts +2 -1
  143. package/src/components/action/style.scss +22 -27
  144. package/src/components/batch-edit/batch-edit-form.vue +73 -70
  145. package/src/components/batch-edit/batch-edit-list.vue +35 -41
  146. package/src/components/batch-edit/style.scss +19 -118
  147. package/src/components/batch-edit/style.ts +1 -0
  148. package/src/components/condition-editor/components/condition-group.vue +131 -0
  149. package/src/components/condition-editor/components/condition-row.vue +208 -0
  150. package/src/components/condition-editor/condition-editor.vue +145 -6
  151. package/src/components/condition-editor/core/evaluator.ts +93 -0
  152. package/src/components/condition-editor/core/operators.ts +57 -0
  153. package/src/components/condition-editor/style.scss +239 -1
  154. package/src/components/condition-editor/style.ts +7 -0
  155. package/src/components/dialog/style.scss +13 -0
  156. package/src/components/drawer/style.scss +13 -0
  157. package/src/components/form-item/form-item.vue +1 -1
  158. package/src/components/index.ts +2 -0
  159. package/src/components/kbd/index.ts +1 -0
  160. package/src/components/kbd/kbd.vue +13 -0
  161. package/src/components/kbd/style.scss +37 -0
  162. package/src/components/kbd/style.ts +1 -0
  163. package/src/components/table/style.scss +9 -1
  164. package/src/components/table/table.vue +1 -3
  165. package/src/components/table/use-fixed-columns.ts +5 -49
  166. package/src/style.ts +1 -0
  167. package/src/types/action.ts +6 -11
  168. package/src/types/condition-editor.ts +39 -7
  169. package/src/types/table.ts +0 -2
@@ -1,18 +1,18 @@
1
- import _sfc_main$1 from "../scroll/scroll.js";
2
- import _sfc_main$2 from "../icon/icon.js";
3
- import _sfc_main$3 from "../empty/empty.js";
4
- import _sfc_main$4 from "../checkbox/checkbox.js";
5
- import _sfc_main$5 from "../dropdown/dropdown.js";
1
+ import _sfc_main$1 from "../icon/icon.js";
2
+ import _sfc_main$2 from "../empty/empty.js";
3
+ import _sfc_main$3 from "../scroll/scroll.js";
4
+ import _sfc_main$4 from "../dropdown/dropdown.js";
6
5
  import input_default from "../input/input.js";
7
- import _sfc_main$6 from "../tag/tag.js";
8
6
  import { useOptions } from "../select/use-options.js";
7
+ import _sfc_main$5 from "../checkbox/checkbox.js";
8
+ import _sfc_main$6 from "../tag/tag.js";
9
9
  import { MultiSelectDIKey } from "./di.js";
10
10
  import _sfc_main$7 from "./multi-select-option.js";
11
11
  import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, isRef, mergeModels, mergeProps, normalizeClass, normalizeStyle, openBlock, provide, renderList, renderSlot, shallowReactive, shallowRef, toDisplayString, unref, useModel, vShow, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
12
- import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
13
12
  import { useFormFallbackProps, useVirtualizer } from "@veltra/compositions";
14
- import { o } from "@cat-kit/core";
13
+ import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
15
14
  import { ArrowDown, Close, Search } from "@veltra/icons/normal";
15
+ import { o } from "@cat-kit/core";
16
16
  //#region src/components/multi-select/multi-select.vue
17
17
  const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  name: "MultiSelect",
@@ -271,7 +271,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
271
271
  checkboxClass: cls.e("checkbox")
272
272
  });
273
273
  return (_ctx, _cache) => {
274
- return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$5), {
274
+ return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$4), {
275
275
  key: 0,
276
276
  trigger: "click",
277
277
  ref_key: "dropdownRef",
@@ -316,14 +316,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
316
316
  name: "zoom-in",
317
317
  mode: "out-in"
318
318
  }, {
319
- default: withCtx(() => [__props.clearable && model.value?.length && hovered.value && !unref(disabled) ? (openBlock(), createBlock(unref(_sfc_main$2), {
319
+ default: withCtx(() => [__props.clearable && model.value?.length && hovered.value && !unref(disabled) ? (openBlock(), createBlock(unref(_sfc_main$1), {
320
320
  key: 0,
321
321
  class: normalizeClass(unref(cls).e("clear")),
322
322
  onClick: withModifiers(handleClear, ["stop"])
323
323
  }, {
324
324
  default: withCtx(() => [createVNode(unref(Close))]),
325
325
  _: 1
326
- }, 8, ["class"])) : (openBlock(), createBlock(unref(_sfc_main$2), {
326
+ }, 8, ["class"])) : (openBlock(), createBlock(unref(_sfc_main$1), {
327
327
  key: 1,
328
328
  class: normalizeClass(unref(cls).e("arrow"))
329
329
  }, {
@@ -335,7 +335,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
335
335
  ]),
336
336
  content: withCtx(() => [
337
337
  createCommentVNode(" 多选栏 "),
338
- createElementVNode("div", { class: normalizeClass(unref(cls).e("content-header")) }, [createVNode(unref(_sfc_main$4), {
338
+ createElementVNode("div", { class: normalizeClass(unref(cls).e("content-header")) }, [createVNode(unref(_sfc_main$5), {
339
339
  "model-value": allChecked.value,
340
340
  indeterminate: indeterminate.value,
341
341
  "onUpdate:modelValue": handleCheckAll,
@@ -358,7 +358,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
358
358
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(queryString) ? queryString.value = $event : null),
359
359
  onKeydown: withKeys(withModifiers(handleCreateByEnter, ["prevent"]), ["enter"])
360
360
  }, {
361
- suffix: withCtx(() => [createVNode(unref(_sfc_main$2), null, {
361
+ suffix: withCtx(() => [createVNode(unref(_sfc_main$1), null, {
362
362
  default: withCtx(() => [createVNode(unref(Search))]),
363
363
  _: 1
364
364
  })]),
@@ -366,7 +366,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
366
366
  }, 8, ["modelValue", "onKeydown"])], 2)) : createCommentVNode("v-if", true),
367
367
  createCommentVNode(" 多选列表 "),
368
368
  createCommentVNode("\n 虚拟化启用时内容容器 height 由 useVirtualizer 命令式写入;\n 模板不再绑定 totalSize,避免尺寸变化引起重渲染。\n "),
369
- options.value.length ? (openBlock(), createBlock(unref(_sfc_main$1), {
369
+ options.value.length ? (openBlock(), createBlock(unref(_sfc_main$3), {
370
370
  key: 1,
371
371
  tag: "ul",
372
372
  class: normalizeClass([unref(cls).e("options")]),
@@ -422,7 +422,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
422
422
  }, 8, ["class", "content-class"])) : (openBlock(), createElementBlock("div", {
423
423
  key: 2,
424
424
  class: normalizeClass(unref(cls).e("empty"))
425
- }, [createVNode(unref(_sfc_main$3))], 2))
425
+ }, [createVNode(unref(_sfc_main$2))], 2))
426
426
  ]),
427
427
  _: 3
428
428
  }, 8, [
@@ -28,13 +28,13 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
28
28
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
29
29
  onChange?: ((options: Record<string, any>[]) => any) | undefined;
30
30
  }>, {
31
- disabled: boolean;
32
- readonly: boolean;
33
31
  labelKey: string;
34
32
  valueKey: string;
35
- minWidth: string;
33
+ disabled: boolean;
34
+ readonly: boolean;
36
35
  placeholder: string;
37
36
  clearable: boolean;
37
+ minWidth: string;
38
38
  visibilityLimit: number;
39
39
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
40
40
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,15 +1,15 @@
1
1
  import _sfc_main$1 from "../icon/icon.js";
2
- import _sfc_main$2 from "../checkbox/checkbox.js";
3
- import _sfc_main$3 from "../tree/tree.js";
4
- import _sfc_main$4 from "../dropdown/dropdown.js";
2
+ import _sfc_main$2 from "../dropdown/dropdown.js";
5
3
  import input_default from "../input/input.js";
4
+ import _sfc_main$3 from "../checkbox/checkbox.js";
5
+ import _sfc_main$4 from "../tree/tree.js";
6
6
  import _sfc_main$5 from "../button/button.js";
7
7
  import _sfc_main$6 from "../tag/tag.js";
8
8
  import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, openBlock, renderList, shallowRef, toDisplayString, unref, useModel, useSlots, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
9
- import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
10
9
  import { useFormFallbackProps } from "@veltra/compositions";
11
- import { dfs, o } from "@cat-kit/core";
10
+ import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
12
11
  import { ArrowDown, Close, Search } from "@veltra/icons/normal";
12
+ import { dfs, o } from "@cat-kit/core";
13
13
  //#region src/components/multi-tree-select/multi-tree-select.vue
14
14
  const _sfc_main = /* @__PURE__ */ defineComponent({
15
15
  name: "MultiTreeSelect",
@@ -188,7 +188,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
188
188
  if (!visible) qs.value = "";
189
189
  };
190
190
  return (_ctx, _cache) => {
191
- return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$4), {
191
+ return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$2), {
192
192
  key: 0,
193
193
  class: normalizeClass([
194
194
  unref(cls).b,
@@ -256,7 +256,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
256
256
  content: withCtx(() => [
257
257
  createElementVNode("div", { class: normalizeClass([unref(cls).e("content-header"), unref(cls).m(unref(size))]) }, [
258
258
  createCommentVNode(" 全选 "),
259
- createVNode(unref(_sfc_main$2), {
259
+ createVNode(unref(_sfc_main$3), {
260
260
  "model-value": allChecked.value,
261
261
  indeterminate: indeterminate.value,
262
262
  "onUpdate:modelValue": handleCheckAll
@@ -290,7 +290,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
290
290
  _: 1
291
291
  }, 8, ["modelValue"])], 2)) : createCommentVNode("v-if", true),
292
292
  createCommentVNode(" 菜单列表 "),
293
- createVNode(unref(_sfc_main$3), mergeProps(treeProps.value, {
293
+ createVNode(unref(_sfc_main$4), mergeProps(treeProps.value, {
294
294
  checked: model.value,
295
295
  "onUpdate:checked": [_cache[1] || (_cache[1] = ($event) => model.value = $event), handleCheck],
296
296
  ref_key: "treeRef",
@@ -22,15 +22,15 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
22
22
  onClear?: (() => any) | undefined;
23
23
  onChange?: ((checked: Record<string, any>[]) => any) | undefined;
24
24
  }>, {
25
- disabled: boolean;
26
- readonly: boolean;
27
25
  expandAll: boolean;
28
26
  labelKey: string;
29
27
  valueKey: string;
30
- minWidth: string;
28
+ disabled: boolean;
29
+ readonly: boolean;
31
30
  placeholder: string;
32
31
  clearable: boolean;
33
32
  filterable: boolean;
33
+ minWidth: string;
34
34
  visibilityLimit: number;
35
35
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
36
36
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,8 +1,8 @@
1
1
  import _sfc_main$1 from "../icon/icon.js";
2
2
  import _sfc_main$2 from "../button/button.js";
3
3
  import { Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, onMounted, openBlock, ref, resolveDynamicComponent, toDisplayString, unref, vShow, withCtx, withDirectives, withModifiers } from "vue";
4
- import { bem } from "@veltra/utils";
5
4
  import { useFallbackProps } from "@veltra/compositions";
5
+ import { bem } from "@veltra/utils";
6
6
  import { CircleCheckFilled, CircleClose, Close, InfoFilled, QuestionFilled, WarningFilled } from "@veltra/icons/normal";
7
7
  //#region src/components/notification/notification.vue
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -3,8 +3,8 @@ import * as _$vue from "vue";
3
3
 
4
4
  //#region src/components/number/number.vue.d.ts
5
5
  declare const __VLS_export: _$vue.DefineComponent<NumberProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<NumberProps> & Readonly<{}>, {
6
- duration: number;
7
6
  format: "currency" | "percent" | "decimal";
7
+ duration: number;
8
8
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
9
9
  declare const _default: typeof __VLS_export;
10
10
  //#endregion
@@ -1,10 +1,10 @@
1
1
  import _sfc_main$1 from "../icon/icon.js";
2
2
  import input_default from "../input/input.js";
3
3
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, openBlock, renderSlot, shallowRef, toDisplayString, unref, useModel, useSlots, watch, withCtx, withDirectives, withModifiers } from "vue";
4
- import { FORM_EMPTY_CONTENT, Tween, bem, injectFormContext } from "@veltra/utils";
5
4
  import { useFormFallbackProps } from "@veltra/compositions";
6
- import { $n, isUndef, n, o } from "@cat-kit/core";
5
+ import { FORM_EMPTY_CONTENT, Tween, bem, injectFormContext } from "@veltra/utils";
7
6
  import { ArrowDown, ArrowUp, Close } from "@veltra/icons/normal";
7
+ import { $n, isUndef, n, o } from "@cat-kit/core";
8
8
  import { vRipple } from "@veltra/directives";
9
9
  //#region src/components/number-input/number-input.vue
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,7 +1,7 @@
1
1
  import _sfc_main$1 from "../number-input/number-input.js";
2
2
  import { Fragment, computed, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, mergeModels, mergeProps, nextTick, normalizeClass, onMounted, openBlock, toDisplayString, unref, useModel, watch } from "vue";
3
- import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
4
3
  import { useFormFallbackProps } from "@veltra/compositions";
4
+ import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
5
5
  import { $n, n, o } from "@cat-kit/core";
6
6
  //#region src/components/number-range-input/number-range-input.vue
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,11 +1,11 @@
1
1
  import _sfc_main$1 from "../icon/icon.js";
2
- import _sfc_main$2 from "../number-input/number-input.js";
3
- import _sfc_main$3 from "../select/select.js";
2
+ import _sfc_main$2 from "../select/select.js";
3
+ import _sfc_main$3 from "../number-input/number-input.js";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, reactive, renderList, shallowRef, toDisplayString, unref, useModel, withCtx, withDirectives, withKeys } from "vue";
5
- import { bem } from "@veltra/utils";
6
5
  import { useConfig, useFallbackProps } from "@veltra/compositions";
7
- import { n } from "@cat-kit/core";
6
+ import { bem } from "@veltra/utils";
8
7
  import { ArrowLeft, ArrowRight, DArrowLeft, DArrowRight } from "@veltra/icons/normal";
8
+ import { n } from "@cat-kit/core";
9
9
  import { vRipple } from "@veltra/directives";
10
10
  //#region src/components/paginator/paginator.vue
11
11
  const _hoisted_1 = { key: 0 };
@@ -123,7 +123,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
123
123
  ref: paginatorRef
124
124
  }, [
125
125
  createElementVNode("div", null, "共 " + toDisplayString(__props.total) + " 条", 1),
126
- createVNode(unref(_sfc_main$3), {
126
+ createVNode(unref(_sfc_main$2), {
127
127
  class: normalizeClass(unref(cls).e("size-select")),
128
128
  modelValue: pageSize.value,
129
129
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => pageSize.value = $event),
@@ -182,7 +182,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
182
182
  ], 2)) : createCommentVNode("v-if", true),
183
183
  createElementVNode("div", { class: normalizeClass(unref(cls).e("jumper")) }, [
184
184
  _cache[6] || (_cache[6] = createElementVNode("span", null, "前往", -1)),
185
- createVNode(unref(_sfc_main$2), {
185
+ createVNode(unref(_sfc_main$3), {
186
186
  class: normalizeClass(unref(cls).e("page-input")),
187
187
  size: "small",
188
188
  min: 1,
@@ -1,4 +1,4 @@
1
1
  import "../icon/style.js";
2
- import "../number-input/style.js";
3
2
  import "../select/style.js";
3
+ import "../number-input/style.js";
4
4
  import "./style2.css";
@@ -7,8 +7,8 @@ import _sfc_main$4 from "./palette-hue.js";
7
7
  import _sfc_main$5 from "./palette-sv.js";
8
8
  import { useHSV } from "./use-hsv.js";
9
9
  import { computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, openBlock, provide, shallowRef, unref, useModel, useTemplateRef, watch, withCtx } from "vue";
10
- import { bem, injectFormContext } from "@veltra/utils";
11
10
  import { useFormFallbackProps, useUserAction } from "@veltra/compositions";
11
+ import { bem, injectFormContext } from "@veltra/utils";
12
12
  //#region src/components/palette/palette.vue
13
13
  const _sfc_main = /* @__PURE__ */ defineComponent({
14
14
  name: "Palette",
@@ -1,10 +1,10 @@
1
1
  import _sfc_main$1 from "../icon/icon.js";
2
2
  import input_default from "../input/input.js";
3
3
  import { Transition, computed, createBlock, createSlots, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, openBlock, renderSlot, shallowRef, unref, useModel, useSlots, withCtx } from "vue";
4
- import { bem, injectFormContext } from "@veltra/utils";
5
4
  import { useFormFallbackProps } from "@veltra/compositions";
6
- import { o } from "@cat-kit/core";
5
+ import { bem, injectFormContext } from "@veltra/utils";
7
6
  import { Hide, View } from "@veltra/icons/normal";
7
+ import { o } from "@cat-kit/core";
8
8
  //#region src/components/password-input/password-input.vue
9
9
  const passwordChar = "●";
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -2,8 +2,8 @@ import _sfc_main$1 from "../icon/icon.js";
2
2
  import _sfc_main$2 from "../tip/tip.js";
3
3
  import _sfc_main$3 from "../button/button.js";
4
4
  import { createBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
5
- import { bem, injectFormContext } from "@veltra/utils";
6
5
  import { useFormFallbackProps } from "@veltra/compositions";
6
+ import { bem, injectFormContext } from "@veltra/utils";
7
7
  import { QuestionFilled } from "@veltra/icons/normal";
8
8
  //#region src/components/pop-confirm/pop-confirm.vue
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,6 +1,6 @@
1
1
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, shallowRef, toDisplayString, toRefs, unref, useTemplateRef, watch } from "vue";
2
- import { bem } from "@veltra/utils";
3
2
  import { useDrag, useResizeObserver } from "@veltra/compositions";
3
+ import { bem } from "@veltra/utils";
4
4
  import { o } from "@cat-kit/core";
5
5
  //#region src/components/progress-nodes/progress-nodes.vue
6
6
  const _hoisted_1 = ["onClick"];
@@ -1,6 +1,6 @@
1
1
  import { Transition, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderSlot, toDisplayString, unref, useModel, vModelRadio, withCtx, withDirectives } from "vue";
2
- import { bem, injectFormContext } from "@veltra/utils";
3
2
  import { useFormFallbackProps } from "@veltra/compositions";
3
+ import { bem, injectFormContext } from "@veltra/utils";
4
4
  //#region src/components/radio/radio.vue
5
5
  const _hoisted_1 = ["value", "disabled"];
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,7 +1,7 @@
1
1
  import _sfc_main$1 from "../radio/radio.js";
2
2
  import { Fragment, createBlock, createElementBlock, createTextVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderList, toDisplayString, unref, useModel, withCtx } from "vue";
3
- import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
4
3
  import { useFormFallbackProps } from "@veltra/compositions";
4
+ import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
5
5
  //#region src/components/radio-group/radio-group.vue
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  name: "RadioGroup",
@@ -16,10 +16,10 @@ declare const __VLS_export: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {},
16
16
  "onUpdate:modelValue"?: ((value: any) => any) | undefined;
17
17
  onChange?: ((item: Record<string, any>) => any) | undefined;
18
18
  }>, {
19
- disabled: boolean;
20
- readonly: boolean;
21
19
  labelKey: string;
22
20
  valueKey: string;
21
+ disabled: boolean;
22
+ readonly: boolean;
23
23
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
24
24
  declare const _default: typeof __VLS_export;
25
25
  //#endregion
@@ -1,7 +1,7 @@
1
1
  import _sfc_main$1 from "./toolbar.js";
2
2
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeModels, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, shallowRef, toDisplayString, unref, useModel, useTemplateRef, watch } from "vue";
3
- import { bem, injectFormContext } from "@veltra/utils";
4
3
  import { useFormFallbackProps } from "@veltra/compositions";
4
+ import { bem, injectFormContext } from "@veltra/utils";
5
5
  import { createEmptyHistoryState, registerHistory } from "@lexical/history";
6
6
  import { $generateHtmlFromNodes, $generateNodesFromDOM } from "@lexical/html";
7
7
  import { AutoLinkNode, LinkNode } from "@lexical/link";
@@ -1,7 +1,7 @@
1
1
  import { ScrollDIKey } from "./di.js";
2
2
  import { computed, createElementBlock, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, shallowRef, unref, vShow, withDirectives } from "vue";
3
- import { bem } from "@veltra/utils";
4
3
  import { useDrag } from "@veltra/compositions";
4
+ import { bem } from "@veltra/utils";
5
5
  //#region src/components/scroll/scroll-bar.vue
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  name: "ScrollBar",
@@ -1,8 +1,8 @@
1
1
  import { ScrollDIKey } from "./di.js";
2
2
  import _sfc_main$1 from "./scroll-bar.js";
3
3
  import { computed, createBlock, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, provide, renderSlot, resolveDynamicComponent, shallowRef, unref, withCtx } from "vue";
4
- import { bem, withUnit } from "@veltra/utils";
5
4
  import { useResizeObserver } from "@veltra/compositions";
5
+ import { bem, withUnit } from "@veltra/utils";
6
6
  import { debounce } from "@cat-kit/core";
7
7
  //#region src/components/scroll/scroll.vue
8
8
  const minSize = 20;
@@ -1,15 +1,15 @@
1
- import _sfc_main$1 from "../scroll/scroll.js";
2
- import _sfc_main$2 from "../icon/icon.js";
3
- import _sfc_main$3 from "../empty/empty.js";
1
+ import _sfc_main$1 from "../icon/icon.js";
2
+ import _sfc_main$2 from "../empty/empty.js";
3
+ import _sfc_main$3 from "../scroll/scroll.js";
4
4
  import _sfc_main$4 from "../dropdown/dropdown.js";
5
5
  import input_default from "../input/input.js";
6
- import { useOptions } from "./use-options.js";
7
6
  import { useKeyboard } from "./use-keyboard.js";
7
+ import { useOptions } from "./use-options.js";
8
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createSlots, createTextVNode, createVNode, defineComponent, isRef, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, shallowRef, toDisplayString, unref, useModel, watch, withCtx, withDirectives } from "vue";
9
- import { FORM_EMPTY_CONTENT, bem, injectFormContext, scrollIntoContainerView, withUnit } from "@veltra/utils";
10
9
  import { useFormFallbackProps, useVirtualizer } from "@veltra/compositions";
11
- import { o } from "@cat-kit/core";
10
+ import { FORM_EMPTY_CONTENT, bem, injectFormContext, scrollIntoContainerView, withUnit } from "@veltra/utils";
12
11
  import { ArrowDown, Search } from "@veltra/icons/normal";
12
+ import { o } from "@cat-kit/core";
13
13
  import { vFocus } from "@veltra/directives";
14
14
  //#region src/components/select/select.vue
15
15
  const _hoisted_1 = ["onClick", "data-index"];
@@ -211,7 +211,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
211
211
  onKeydown: unref(handleKeydown),
212
212
  "native-readonly": ""
213
213
  }, createSlots({
214
- suffix: withCtx(() => [createVNode(unref(_sfc_main$2), { class: normalizeClass(unref(cls).e("arrow")) }, {
214
+ suffix: withCtx(() => [createVNode(unref(_sfc_main$1), { class: normalizeClass(unref(cls).e("arrow")) }, {
215
215
  default: withCtx(() => [createVNode(unref(ArrowDown))]),
216
216
  _: 1
217
217
  }, 8, ["class"])]),
@@ -239,14 +239,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
239
239
  modelValue: unref(queryString),
240
240
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(queryString) ? queryString.value = $event : null)
241
241
  }, {
242
- suffix: withCtx(() => [createVNode(unref(_sfc_main$2), null, {
242
+ suffix: withCtx(() => [createVNode(unref(_sfc_main$1), null, {
243
243
  default: withCtx(() => [createVNode(unref(Search))]),
244
244
  _: 1
245
245
  })]),
246
246
  _: 1
247
247
  }, 8, ["modelValue"])), [[unref(vFocus)]])], 2)) : createCommentVNode("v-if", true),
248
248
  createCommentVNode("\n 单选列表。虚拟化启用时,内容容器 height 由 useVirtualizer 命令式写入;\n 此处 content-style 仅承担 grid 相关样式,避免 height 变化触发模板重渲染。\n "),
249
- unref(options).length ? (openBlock(), createBlock(unref(_sfc_main$1), {
249
+ unref(options).length ? (openBlock(), createBlock(unref(_sfc_main$3), {
250
250
  key: 1,
251
251
  tag: "ul",
252
252
  class: normalizeClass(unref(cls).e("options")),
@@ -295,7 +295,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
295
295
  ])) : (openBlock(), createElementBlock("div", {
296
296
  key: 2,
297
297
  class: normalizeClass(unref(cls).e("empty"))
298
- }, [createVNode(unref(_sfc_main$3))], 2))
298
+ }, [createVNode(unref(_sfc_main$2))], 2))
299
299
  ]),
300
300
  _: 3
301
301
  }, 8, [
@@ -26,10 +26,10 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
26
26
  "onUpdate:text"?: ((value: any) => any) | undefined;
27
27
  "onUpdate:label"?: ((label?: string | undefined) => any) | undefined;
28
28
  }>, {
29
- disabled: boolean;
30
- readonly: boolean;
31
29
  labelKey: string;
32
30
  valueKey: string;
31
+ disabled: boolean;
32
+ readonly: boolean;
33
33
  placeholder: string;
34
34
  clearable: boolean;
35
35
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
@@ -2,8 +2,8 @@ import { sliderContextKey } from "./di.js";
2
2
  import _sfc_main$1 from "./slider-thumb.js";
3
3
  import { useSlider } from "./use-slider.js";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, isRef, normalizeClass, normalizeStyle, openBlock, provide, renderList, toDisplayString, unref, watch, withModifiers } from "vue";
5
- import { bem, injectFormContext } from "@veltra/utils";
6
5
  import { useFormFallbackProps, useUserAction } from "@veltra/compositions";
6
+ import { bem, injectFormContext } from "@veltra/utils";
7
7
  //#region src/components/slider/slider.vue
8
8
  const _hoisted_1 = { key: 1 };
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -2,10 +2,10 @@ import _sfc_main$1 from "../icon/icon.js";
2
2
  import NodeRender from "../node-render/node-render.js";
3
3
  import _sfc_main$2 from "../tip/tip.js";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderList, renderSlot, shallowRef, toDisplayString, unref, useSlots, useTemplateRef, watch, withCtx } from "vue";
5
- import { bem } from "@veltra/utils";
6
5
  import { useFallbackProps } from "@veltra/compositions";
7
- import { n, o } from "@cat-kit/core";
6
+ import { bem } from "@veltra/utils";
8
7
  import { Check } from "@veltra/icons/normal";
8
+ import { n, o } from "@cat-kit/core";
9
9
  //#region src/components/steps/steps.vue
10
10
  const _hoisted_1 = ["onClick"];
11
11
  const _hoisted_2 = ["onMouseenter"];
@@ -1,6 +1,6 @@
1
1
  import { computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeModels, normalizeClass, openBlock, toDisplayString, unref, useModel, withModifiers } from "vue";
2
- import { bem, injectFormContext } from "@veltra/utils";
3
2
  import { useFormFallbackProps } from "@veltra/compositions";
3
+ import { bem, injectFormContext } from "@veltra/utils";
4
4
  //#region src/components/switch/switch.vue
5
5
  const _hoisted_1 = ["checked", "disabled"];
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -19,8 +19,8 @@
19
19
  width: 100%;
20
20
  position: relative;
21
21
  border: 1px solid var(--u-table-border-color);
22
- border-bottom: none;
23
22
  overflow: hidden;
23
+ background-color: var(--u-bg-color-top);
24
24
  }
25
25
  .u-table--small {
26
26
  border-radius: var(--u-radius-small);
@@ -147,6 +147,9 @@
147
147
  .u-table__body {
148
148
  will-change: transform;
149
149
  }
150
+ .u-table__body .u-table__row:last-child .u-table__cell {
151
+ border-bottom: none;
152
+ }
150
153
  .u-table__empty {
151
154
  position: sticky;
152
155
  left: 50%;
@@ -10,8 +10,8 @@ import { useFixedColumns } from "./use-fixed-columns.js";
10
10
  import { useRows } from "./use-rows.js";
11
11
  import { useTable } from "./use-table.js";
12
12
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, provide, renderList, renderSlot, shallowRef, toRef, unref, useSlots, useTemplateRef, watch, withCtx } from "vue";
13
- import { bem, withUnit } from "@veltra/utils";
14
13
  import { useFallbackProps, useVirtualizer } from "@veltra/compositions";
14
+ import { bem, withUnit } from "@veltra/utils";
15
15
  //#region src/components/table/table.vue
16
16
  const _hoisted_1 = {
17
17
  key: 0,
@@ -52,7 +52,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
52
  border: { type: Boolean },
53
53
  virtualThreshold: { default: 80 },
54
54
  expandable: { type: Boolean },
55
- virtual: { type: Boolean },
56
55
  defaultExpandAll: { type: Boolean },
57
56
  textEllipsis: { type: Boolean }
58
57
  },
@@ -96,7 +95,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
96
95
  cls
97
96
  });
98
97
  const { leafColumns } = columnConfig;
99
- const { handleScroll, leftFixed, rightFixed } = useFixedColumns({ isScrolling: isScrollingRelay });
98
+ const { handleScroll, leftFixed, rightFixed } = useFixedColumns();
100
99
  const { getColumnSlotsNode, getExpandRowSlotsNode, getHeaderSlotsNode, getCellClass, getCellCtx, getHeaderCellClass } = useTable({
101
100
  props,
102
101
  cls,
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","names":[],"sources":["../../../src/components/table/table.vue"],"sourcesContent":["<template>\n <u-scroll\n :class=\"[\n cls.b,\n cls.m(size),\n bem.is('border', border),\n bem.is('all-expanded', allExpanded),\n bem.is('text-ellipsis', textEllipsis)\n ]\"\n ref=\"scrollRef\"\n :content-class=\"cls.e('content')\"\n @scroll=\"handleScroll\"\n >\n <table :class=\"cls.e('wrap')\">\n <colgroup ref=\"colgroupRef\">\n <col\n v-for=\"column of leafColumns\"\n :key=\"column.key\"\n :class=\"column.fixed\"\n :style=\"{\n width: withUnit(column.width, 'px'),\n minWidth: withUnit(column.minWidth, 'px')\n }\"\n />\n </colgroup>\n <UTableHead />\n\n <!--\n 虚拟滚动上占位:替代 tbody transform,避免 table-layout: fixed 下列宽抖动。\n 高度由 useVirtualizer 命令式写入 `style.height`,不经过模板响应式绑定,\n 因此滚动窗口变化不会引起表格模板重渲染。\n -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"beforeSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-body>\n <slot name=\"body\" :columns=\"leafColumns\" :rows=\"rows\" />\n\n <template #empty v-if=\"slots.empty\">\n <slot name=\"empty\" />\n </template>\n </u-table-body>\n\n <!-- 虚拟滚动下占位(高度由 useVirtualizer 命令式写入) -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"afterSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-foot ref=\"tableFoot\">\n <slot name=\"foot\" :columns=\"leafColumns\" :rows=\"rows\" />\n </u-table-foot>\n </table>\n\n <slot name=\"append\" />\n\n <div v-if=\"showResizeLine\" :class=\"cls.e('resize-line')\" ref=\"resizeLineRef\"></div>\n\n <!-- <u-tip v-if=\"textEllipsis\" ref=\"tip\"> </u-tip> -->\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps, useVirtualizer } from '@veltra/compositions'\nimport { bem, withUnit } from '@veltra/utils'\nimport { computed, provide, shallowRef, toRef, useTemplateRef, watch } from 'vue'\n\nimport type {\n TableProps,\n TableEmits,\n _TableExposed,\n TableColumnSlotsScope,\n ComponentSize,\n ScrollExposed,\n TableRowSlotsScope\n} from '../../types'\nimport { UScroll } from '../scroll'\nimport { TableDIKey } from './di'\nimport type { ColumnNode } from './node/col'\nimport type { TableRowNode } from './node/row'\nimport UTableBody from './table-body.vue'\nimport UTableFoot from './table-foot.vue'\n// import { UTip } from '../tip'\nimport UTableHead from './table-head'\nimport { useCheck } from './use-check'\nimport { useColResize } from './use-col-resize'\nimport { useColumns } from './use-columns'\nimport { useFixedColumns } from './use-fixed-columns'\nimport { useRows } from './use-rows'\nimport { useTable } from './use-table'\n\ndefineOptions({ name: 'Table' })\n\nconst props = withDefaults(defineProps<TableProps>(), {\n tree: false,\n stripe: true,\n textOverflow: 'line-break',\n virtualThreshold: 80\n})\nconst emit = defineEmits<TableEmits>()\n\nconst slots = defineSlots<{\n [key: `column:${string}`]: (props: TableColumnSlotsScope) => any\n [key: `header:${string}`]: (props: { column: ColumnNode }) => any\n 'row:expand'?: (props: TableRowSlotsScope) => any\n foot?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n body?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n empty?: () => any\n append?: () => any\n}>()\n\nconst cls = bem('table')\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst scrollRef = shallowRef<ScrollExposed>()\n\n// 占位 tr 的 DOM 句柄;交给 useVirtualizer 直接命令式写 style.height。\nconst beforeSpacerRef = useTemplateRef<HTMLElement>('beforeSpacerRef')\nconst afterSpacerRef = useTemplateRef<HTMLElement>('afterSpacerRef')\n\n// 行(useRows / useFixedColumns 需要 isScrolling,而虚拟化 hook 又依赖 rows.length;\n// 先用中继占位,下方 isScrolling 到位后 watch 回灌)。\nconst isScrollingRelay = shallowRef(false)\n\nconst {\n rows,\n toggleTreeRowExpand,\n allExpanded,\n toggleAllTreeRowExpand,\n rowForest,\n handleRowClick,\n handleCellClick,\n getRowByData\n} = useRows({ props, emit, isScrolling: isScrollingRelay })\n\nconst { createCheckColumn, createSelectColumn, clearChecked, clearSelected, checkedRows } =\n useCheck({ size, props, rows, rowForest, emit, cls })\n\nconst columnConfig = useColumns({\n props,\n createCheckColumn,\n createSelectColumn,\n toggleAllTreeRowExpand,\n cls\n})\n\nconst { leafColumns } = columnConfig\n\nconst { handleScroll, leftFixed, rightFixed } = useFixedColumns({\n isScrolling: isScrollingRelay\n})\n\nconst {\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass\n} = useTable({ props, cls, leftFixed, rightFixed })\n\nconst { showResizeLine, resizeLineRef, colgroupRef } = useColResize({ scrollRef, leafColumns })\n\nconst { virtualizer, items, isScrolling } = useVirtualizer({\n count: computed(() => rows.value.length),\n scrollEl: () => scrollRef.value?.containerRef ?? null,\n beforeEl: beforeSpacerRef,\n afterEl: afterSpacerRef,\n estimateSize: () => 41,\n // 注意:getItemKey 在构造期一次性写入底层 Virtualizer;闭包每次读的是当前 rows.value,\n // rows 引用整体替换后 key 仍有效(无需再 setOptions)。\n getItemKey: (i) => rows.value[i]?.uid ?? i\n})\n\nconst virtualEnabled = computed(() => {\n const t = props.virtualThreshold\n return t ? rows.value.length > t : true\n})\n\n// 把虚拟化 isScrolling 回灌到中继,供 useRows / useFixedColumns 读取。\nwatch(isScrolling, (v) => {\n isScrollingRelay.value = v\n})\n\n/**\n * E1:数据替换时的条件置顶。\n *\n * 旧实现无差别地 `scrollTo({ y: 0 })`,在「行内增删 / 排序 / 单行更新」等\n * 场景会把用户当前阅读位置跳走;仅在「翻页 / 显著数据集替换」时才需要复位。\n *\n * 判定阈值:|Δlen| / max(newLen, oldLen) ≥ 0.5,即行数变化量超过更大侧的一半时视为显著变化。\n * 选择 0.5 是因为典型的分页/搜索场景会带来 50% 以上的行数差(通常完全替换数据集),\n * 而行内追加 / 删除个位数通常只带来 <5% 的变化;两者区分度足够宽。\n */\nconst LENGTH_DELTA_RATIO_TO_RESET_SCROLL = 0.5\n\nwatch(\n () => props.data,\n (next, prev) => {\n const nextLen = next?.length ?? 0\n const prevLen = prev?.length ?? 0\n const denom = Math.max(nextLen, prevLen, 1)\n const ratio = Math.abs(nextLen - prevLen) / denom\n if (ratio >= LENGTH_DELTA_RATIO_TO_RESET_SCROLL) {\n scrollRef.value?.scrollTo({ y: 0 })\n }\n }\n)\n\n// const tipRef = useTemplateRef('tip')\n\nprovide(TableDIKey, {\n tableProps: props,\n tableSlots: slots,\n cls,\n rows,\n checkedRows,\n columnConfig,\n handleRowClick,\n handleCellClick,\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass,\n // tipRef,\n toggleTreeRowExpand,\n virtualList: items,\n virtualEnabled,\n measureElement: (index, el) => virtualizer.measureElement(index, el)\n})\n\nconst tableFootRef = useTemplateRef('tableFoot')\n\ndefineExpose<_TableExposed>({\n el: toRef(() => scrollRef.value?.el),\n clearChecked,\n clearSelected,\n getRowByData,\n getSummaryRow: () => tableFootRef.value!.getSummaryRow()\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../../src/components/table/table.vue"],"sourcesContent":["<template>\n <u-scroll\n :class=\"[\n cls.b,\n cls.m(size),\n bem.is('border', border),\n bem.is('all-expanded', allExpanded),\n bem.is('text-ellipsis', textEllipsis)\n ]\"\n ref=\"scrollRef\"\n :content-class=\"cls.e('content')\"\n @scroll=\"handleScroll\"\n >\n <table :class=\"cls.e('wrap')\">\n <colgroup ref=\"colgroupRef\">\n <col\n v-for=\"column of leafColumns\"\n :key=\"column.key\"\n :class=\"column.fixed\"\n :style=\"{\n width: withUnit(column.width, 'px'),\n minWidth: withUnit(column.minWidth, 'px')\n }\"\n />\n </colgroup>\n <UTableHead />\n\n <!--\n 虚拟滚动上占位:替代 tbody transform,避免 table-layout: fixed 下列宽抖动。\n 高度由 useVirtualizer 命令式写入 `style.height`,不经过模板响应式绑定,\n 因此滚动窗口变化不会引起表格模板重渲染。\n -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"beforeSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-body>\n <slot name=\"body\" :columns=\"leafColumns\" :rows=\"rows\" />\n\n <template #empty v-if=\"slots.empty\">\n <slot name=\"empty\" />\n </template>\n </u-table-body>\n\n <!-- 虚拟滚动下占位(高度由 useVirtualizer 命令式写入) -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"afterSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-foot ref=\"tableFoot\">\n <slot name=\"foot\" :columns=\"leafColumns\" :rows=\"rows\" />\n </u-table-foot>\n </table>\n\n <slot name=\"append\" />\n\n <div v-if=\"showResizeLine\" :class=\"cls.e('resize-line')\" ref=\"resizeLineRef\"></div>\n\n <!-- <u-tip v-if=\"textEllipsis\" ref=\"tip\"> </u-tip> -->\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps, useVirtualizer } from '@veltra/compositions'\nimport { bem, withUnit } from '@veltra/utils'\nimport { computed, provide, shallowRef, toRef, useTemplateRef, watch } from 'vue'\n\nimport type {\n TableProps,\n TableEmits,\n _TableExposed,\n TableColumnSlotsScope,\n ComponentSize,\n ScrollExposed,\n TableRowSlotsScope\n} from '../../types'\nimport { UScroll } from '../scroll'\nimport { TableDIKey } from './di'\nimport type { ColumnNode } from './node/col'\nimport type { TableRowNode } from './node/row'\nimport UTableBody from './table-body.vue'\nimport UTableFoot from './table-foot.vue'\n// import { UTip } from '../tip'\nimport UTableHead from './table-head'\nimport { useCheck } from './use-check'\nimport { useColResize } from './use-col-resize'\nimport { useColumns } from './use-columns'\nimport { useFixedColumns } from './use-fixed-columns'\nimport { useRows } from './use-rows'\nimport { useTable } from './use-table'\n\ndefineOptions({ name: 'Table' })\n\nconst props = withDefaults(defineProps<TableProps>(), {\n tree: false,\n stripe: true,\n textOverflow: 'line-break',\n virtualThreshold: 80\n})\nconst emit = defineEmits<TableEmits>()\n\nconst slots = defineSlots<{\n [key: `column:${string}`]: (props: TableColumnSlotsScope) => any\n [key: `header:${string}`]: (props: { column: ColumnNode }) => any\n 'row:expand'?: (props: TableRowSlotsScope) => any\n foot?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n body?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n empty?: () => any\n append?: () => any\n}>()\n\nconst cls = bem('table')\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst scrollRef = shallowRef<ScrollExposed>()\n\n// 占位 tr 的 DOM 句柄;交给 useVirtualizer 直接命令式写 style.height。\nconst beforeSpacerRef = useTemplateRef<HTMLElement>('beforeSpacerRef')\nconst afterSpacerRef = useTemplateRef<HTMLElement>('afterSpacerRef')\n\n// 行(useRows / useFixedColumns 需要 isScrolling,而虚拟化 hook 又依赖 rows.length;\n// 先用中继占位,下方 isScrolling 到位后 watch 回灌)。\nconst isScrollingRelay = shallowRef(false)\n\nconst {\n rows,\n toggleTreeRowExpand,\n allExpanded,\n toggleAllTreeRowExpand,\n rowForest,\n handleRowClick,\n handleCellClick,\n getRowByData\n} = useRows({ props, emit, isScrolling: isScrollingRelay })\n\nconst { createCheckColumn, createSelectColumn, clearChecked, clearSelected, checkedRows } =\n useCheck({ size, props, rows, rowForest, emit, cls })\n\nconst columnConfig = useColumns({\n props,\n createCheckColumn,\n createSelectColumn,\n toggleAllTreeRowExpand,\n cls\n})\n\nconst { leafColumns } = columnConfig\n\nconst { handleScroll, leftFixed, rightFixed } = useFixedColumns()\n\nconst {\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass\n} = useTable({ props, cls, leftFixed, rightFixed })\n\nconst { showResizeLine, resizeLineRef, colgroupRef } = useColResize({ scrollRef, leafColumns })\n\nconst { virtualizer, items, isScrolling } = useVirtualizer({\n count: computed(() => rows.value.length),\n scrollEl: () => scrollRef.value?.containerRef ?? null,\n beforeEl: beforeSpacerRef,\n afterEl: afterSpacerRef,\n estimateSize: () => 41,\n // 注意:getItemKey 在构造期一次性写入底层 Virtualizer;闭包每次读的是当前 rows.value,\n // rows 引用整体替换后 key 仍有效(无需再 setOptions)。\n getItemKey: (i) => rows.value[i]?.uid ?? i\n})\n\nconst virtualEnabled = computed(() => {\n const t = props.virtualThreshold\n return t ? rows.value.length > t : true\n})\n\n// 把虚拟化 isScrolling 回灌到中继,供 useRows / useFixedColumns 读取。\nwatch(isScrolling, (v) => {\n isScrollingRelay.value = v\n})\n\n/**\n * E1:数据替换时的条件置顶。\n *\n * 旧实现无差别地 `scrollTo({ y: 0 })`,在「行内增删 / 排序 / 单行更新」等\n * 场景会把用户当前阅读位置跳走;仅在「翻页 / 显著数据集替换」时才需要复位。\n *\n * 判定阈值:|Δlen| / max(newLen, oldLen) ≥ 0.5,即行数变化量超过更大侧的一半时视为显著变化。\n * 选择 0.5 是因为典型的分页/搜索场景会带来 50% 以上的行数差(通常完全替换数据集),\n * 而行内追加 / 删除个位数通常只带来 <5% 的变化;两者区分度足够宽。\n */\nconst LENGTH_DELTA_RATIO_TO_RESET_SCROLL = 0.5\n\nwatch(\n () => props.data,\n (next, prev) => {\n const nextLen = next?.length ?? 0\n const prevLen = prev?.length ?? 0\n const denom = Math.max(nextLen, prevLen, 1)\n const ratio = Math.abs(nextLen - prevLen) / denom\n if (ratio >= LENGTH_DELTA_RATIO_TO_RESET_SCROLL) {\n scrollRef.value?.scrollTo({ y: 0 })\n }\n }\n)\n\n// const tipRef = useTemplateRef('tip')\n\nprovide(TableDIKey, {\n tableProps: props,\n tableSlots: slots,\n cls,\n rows,\n checkedRows,\n columnConfig,\n handleRowClick,\n handleCellClick,\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass,\n // tipRef,\n toggleTreeRowExpand,\n virtualList: items,\n virtualEnabled,\n measureElement: (index, el) => virtualizer.measureElement(index, el)\n})\n\nconst tableFootRef = useTemplateRef('tableFoot')\n\ndefineExpose<_TableExposed>({\n el: toRef(() => scrollRef.value?.el),\n clearChecked,\n clearSelected,\n getRowByData,\n getSummaryRow: () => tableFootRef.value!.getSummaryRow()\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAqMA,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EApG3C,MAAM,QAAQ;EAMd,MAAM,OAAO;EAEb,MAAM,QAAQ,UAAA;EAUd,MAAM,MAAM,IAAI,QAAO;EAEvB,MAAM,EAAE,SAAS,iBAAiB,CAAC,MAAM,EAAE,EAAE,MAAM,WAA4B,CAAA;EAE/E,MAAM,YAAY,YAA0B;EAG5C,MAAM,kBAAkB,eAA4B,kBAAiB;EACrE,MAAM,iBAAiB,eAA4B,iBAAgB;EAInE,MAAM,mBAAmB,WAAW,MAAK;EAEzC,MAAM,EACJ,MACA,qBACA,aACA,wBACA,WACA,gBACA,iBACA,iBACE,QAAQ;GAAE;GAAO;GAAM,aAAa;GAAkB,CAAA;EAE1D,MAAM,EAAE,mBAAmB,oBAAoB,cAAc,eAAe,gBAC1E,SAAS;GAAE;GAAM;GAAO;GAAM;GAAW;GAAM;GAAK,CAAA;EAEtD,MAAM,eAAe,WAAW;GAC9B;GACA;GACA;GACA;GACA;GACD,CAAA;EAED,MAAM,EAAE,gBAAgB;EAExB,MAAM,EAAE,cAAc,WAAW,eAAe,iBAAgB;EAEhE,MAAM,EACJ,oBACA,uBACA,oBACA,cACA,YACA,uBACE,SAAS;GAAE;GAAO;GAAK;GAAW;GAAY,CAAA;EAElD,MAAM,EAAE,gBAAgB,eAAe,gBAAgB,aAAa;GAAE;GAAW;GAAa,CAAA;EAE9F,MAAM,EAAE,aAAa,OAAO,gBAAgB,eAAe;GACzD,OAAO,eAAe,KAAK,MAAM,OAAO;GACxC,gBAAgB,UAAU,OAAO,gBAAgB;GACjD,UAAU;GACV,SAAS;GACT,oBAAoB;GAGpB,aAAa,MAAM,KAAK,MAAM,IAAI,OAAO;GAC1C,CAAA;EAED,MAAM,iBAAiB,eAAe;GACpC,MAAM,IAAI,MAAM;AAChB,UAAO,IAAI,KAAK,MAAM,SAAS,IAAI;IACpC;AAGD,QAAM,cAAc,MAAM;AACxB,oBAAiB,QAAQ;IAC1B;;;;;;;;;;;AAcD,cACQ,MAAM,OACX,MAAM,SAAS;GACd,MAAM,UAAU,MAAM,UAAU;GAChC,MAAM,UAAU,MAAM,UAAU;GAChC,MAAM,QAAQ,KAAK,IAAI,SAAS,SAAS,EAAC;AAE1C,OADc,KAAK,IAAI,UAAU,QAAQ,GAAG,SAC/B,mCACX,WAAU,OAAO,SAAS,EAAE,GAAG,GAAG,CAAA;IAGxC;AAIA,UAAQ,YAAY;GAClB,YAAY;GACZ,YAAY;GACZ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GAEA;GACA,aAAa;GACb;GACA,iBAAiB,OAAO,OAAO,YAAY,eAAe,OAAO,GAAE;GACpE,CAAA;EAED,MAAM,eAAe,eAAe,YAAW;AAE/C,WAA4B;GAC1B,IAAI,YAAY,UAAU,OAAO,GAAG;GACpC;GACA;GACA;GACA,qBAAqB,aAAa,MAAO,eAAc;GACxD,CAAA;;uBAnPC,YA8DW,MAAA,YAAA,EAAA;IA7DR,OAAK,eAAA;KAAU,MAAA,IAAG,CAAC;KAAS,MAAA,IAAG,CAAC,EAAE,MAAA,KAAI,CAAA;KAAS,MAAA,IAAG,CAAC,GAAE,UAAW,QAAA,OAAM;KAAS,MAAA,IAAG,CAAC,GAAE,gBAAiB,MAAA,YAAW,CAAA;KAAS,MAAA,IAAG,CAAC,GAAE,iBAAkB,QAAA,aAAY;;aAO3J;IAAJ,KAAI;IACH,iBAAe,MAAA,IAAG,CAAC,EAAC,UAAA;IACpB,UAAQ,MAAA,aAAY;;2BA6Cb;KA3CR,mBA2CQ,SAAA,EA3CA,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,OAAA,CAAA,EAAA,EAAA;MAClB,mBAUW,YAAA;gBAVG;OAAJ,KAAI;4BACZ,mBAQE,UAAA,MAAA,WAPiB,MAAA,YAAW,GAArB,WAAM;2BADf,mBAQE,OAAA;QANC,KAAK,OAAO;QACZ,OAAK,eAAE,OAAO,MAAK;QACnB,OAAK,eAAA;gBAAuB,MAAA,SAAQ,CAAC,OAAO,OAAK,KAAA;mBAA+B,MAAA,SAAQ,CAAC,OAAO,UAAQ,KAAA;;;;MAM7G,YAAc,MAAA,UAAA,CAAA;MAEd,mBAAA,wKAIG;MACU,eAAA,SAAA,WAAA,EAAb,mBAIQ,SAJR,YAIQ,CAHN,mBAEK,MAAA;gBAFG;OAAJ,KAAI;UACN,mBAAwE,MAAA;OAAnE,SAAS,MAAA,YAAW,CAAC;OAAQ,OAAA;QAAA,WAAA;QAAA,UAAA;QAAgC;;MAItE,YAMe,aAAA,MAAA,YAAA;8BAL2C,CAAxD,WAAwD,KAAA,QAAA,QAAA;QAArC,SAAS,MAAA,YAAW;QAAG,MAAM,MAAA,KAAI;;;UAE7B,MAAM,QAAA;aAAlB;yBACY,CAArB,WAAqB,KAAA,QAAA,QAAA,CAAA,CAAA;;;MAIzB,mBAAA,sCAA0C;MAC7B,eAAA,SAAA,WAAA,EAAb,mBAIQ,SAJR,YAIQ,CAHN,mBAEK,MAAA;gBAFG;OAAJ,KAAI;UACN,mBAAwE,MAAA;OAAnE,SAAS,MAAA,YAAW,CAAC;OAAQ,OAAA;QAAA,WAAA;QAAA,UAAA;QAAgC;;MAItE,YAEe,aAAA,EAFD,KAAI,aAAW,EAAA;8BAC6B,CAAxD,WAAwD,KAAA,QAAA,QAAA;QAArC,SAAS,MAAA,YAAW;QAAG,MAAM,MAAA,KAAI;;;;;KAIxD,WAAsB,KAAA,QAAA,SAAA;KAEX,MAAA,eAAc,IAAA,WAAA,EAAzB,mBAAmF,OAAA;;MAAvD,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,cAAA,CAAA;eAAqB;MAAJ,KAAI;;KAE7D,mBAAA,uDAAuD"}
@@ -3,8 +3,8 @@ import _sfc_main$1 from "../button/button.js";
3
3
  import { ColumnNode } from "./node/col.js";
4
4
  import { computed, createVNode, shallowRef, watch } from "vue";
5
5
  import "@veltra/utils";
6
- import { Forest, dfs, last } from "@cat-kit/core";
7
6
  import { ArrowRight } from "@veltra/icons/normal";
7
+ import { Forest, dfs, last } from "@cat-kit/core";
8
8
  //#region src/components/table/use-columns.ts
9
9
  /**
10
10
  * 定义表格列