@veltra/desktop 1.0.9 → 1.0.10

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 (84) hide show
  1. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  2. package/dist/components/batch-edit/batch-edit.vue.d.ts +2 -2
  3. package/dist/components/batch-edit/style.js +2 -2
  4. package/dist/components/batch-edit/use-edit.js.map +1 -1
  5. package/dist/components/button/button.js.map +1 -1
  6. package/dist/components/cascade/cascade.vue.d.ts +5 -5
  7. package/dist/components/cascade/use-select.js.map +1 -1
  8. package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
  9. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
  10. package/dist/components/date-panel/date-panel.js.map +1 -1
  11. package/dist/components/drawer/drawer.js.map +1 -1
  12. package/dist/components/expression-editor/expression-editor.js.map +1 -1
  13. package/dist/components/expression-editor/internal/editor-runtime/create-runtime.js.map +1 -1
  14. package/dist/components/expression-editor/internal/features/commands/register-command-packs.js.map +1 -1
  15. package/dist/components/expression-editor/internal/features/insertion/insertion-service.js.map +1 -1
  16. package/dist/components/expression-editor/use-decorators.js.map +1 -1
  17. package/dist/components/expression-editor/use-expression-drag-drop.js.map +1 -1
  18. package/dist/components/file-picker/file-picker.js.map +1 -1
  19. package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
  20. package/dist/components/form/form-model.js +2 -1
  21. package/dist/components/form/form-model.js.map +1 -1
  22. package/dist/components/grid/grid.js.map +1 -1
  23. package/dist/components/grid/use-responsive.js.map +1 -1
  24. package/dist/components/input/input.vue.d.ts +2 -2
  25. package/dist/components/list/list.js.map +1 -1
  26. package/dist/components/loading/directive.js.map +1 -1
  27. package/dist/components/menu/menu-item.js.map +1 -1
  28. package/dist/components/message/message2.js.map +1 -1
  29. package/dist/components/multi-select/multi-select.js.map +1 -1
  30. package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
  31. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +5 -5
  32. package/dist/components/notification/index.js.map +1 -1
  33. package/dist/components/number-input/number-input.js.map +1 -1
  34. package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
  35. package/dist/components/palette/color-transform.js.map +1 -1
  36. package/dist/components/palette/palette-sv.js.map +1 -1
  37. package/dist/components/pop-confirm/pop-confirm.vue.d.ts +1 -1
  38. package/dist/components/progress/progress.js +1 -1
  39. package/dist/components/progress/progress.js.map +1 -1
  40. package/dist/components/progress-nodes/progress-nodes.js.map +1 -1
  41. package/dist/components/progress-nodes/progress-nodes.vue.d.ts +3 -3
  42. package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
  43. package/dist/components/rich-text-editor/rich-text-editor.js.map +1 -1
  44. package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +1 -1
  45. package/dist/components/rich-text-editor/toolbar.js.map +1 -1
  46. package/dist/components/scroll/scroll.js.map +1 -1
  47. package/dist/components/select/select.vue.d.ts +2 -2
  48. package/dist/components/slider/slider-thumb.js.map +1 -1
  49. package/dist/components/table/di.js.map +1 -1
  50. package/dist/components/table/style.js +1 -1
  51. package/dist/components/table/table-row.js +1 -2
  52. package/dist/components/table/table-row.js.map +1 -1
  53. package/dist/components/table/table.js +1 -2
  54. package/dist/components/table/table.js.map +1 -1
  55. package/dist/components/table/table.vue.d.ts +2 -2
  56. package/dist/components/table/use-columns.js +4 -0
  57. package/dist/components/table/use-columns.js.map +1 -1
  58. package/dist/components/table/use-table.js +25 -0
  59. package/dist/components/table/use-table.js.map +1 -1
  60. package/dist/components/tabs/style2.css +3 -2
  61. package/dist/components/tabs/tabs-horizontal.js +2 -2
  62. package/dist/components/tabs/tabs-horizontal.js.map +1 -1
  63. package/dist/components/tabs/tabs-horizontal.vue.d.ts +14 -3
  64. package/dist/components/tabs/tabs-vertical.js +2 -2
  65. package/dist/components/tabs/tabs-vertical.js.map +1 -1
  66. package/dist/components/tabs/tabs-vertical.vue.d.ts +13 -3
  67. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  68. package/dist/components/text/text.js.map +1 -1
  69. package/dist/components/textarea/textarea.js.map +1 -1
  70. package/dist/components/textarea/textarea.vue.d.ts +3 -3
  71. package/dist/components/theme/theme.js.map +1 -1
  72. package/dist/components/tip/tip.vue.d.ts +1 -1
  73. package/dist/components/tree/tree-node2.js.map +1 -1
  74. package/dist/components/tree/tree.vue.d.ts +4 -4
  75. package/dist/components/tree/use-tree-nodes.js.map +1 -1
  76. package/dist/components/tree-select/tree-select.vue.d.ts +5 -5
  77. package/dist/components/watermark/watermark.vue.d.ts +1 -1
  78. package/package.json +11 -11
  79. package/src/components/progress/progress.vue +1 -1
  80. package/src/components/table/di.ts +51 -53
  81. package/src/components/table/table.vue +0 -1
  82. package/src/components/tabs/style.scss +7 -4
  83. package/src/components/tabs/tabs-horizontal.vue +10 -7
  84. package/src/components/tabs/tabs-vertical.vue +3 -1
@@ -7,17 +7,17 @@ type __VLS_Slots = {
7
7
  default: (props: TreeSlotsScope) => any;
8
8
  };
9
9
  declare const __VLS_base: _$vue.DefineComponent<TreeProps, _TreeExposed, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {} & {
10
- "update:checked": (checked: any[], checkedData: Record<string, any>[]) => any;
11
- "update:selected": (selected?: any, selectedData?: Record<string, any> | undefined, node?: TreeNode<Record<string, any>> | undefined) => any;
12
10
  expand: (node: TreeNode<Record<string, any>>) => any;
13
11
  "node-click": (node: TreeNode<Record<string, any>>) => any;
12
+ "update:selected": (selected?: any, selectedData?: Record<string, any> | undefined, node?: TreeNode<Record<string, any>> | undefined) => any;
13
+ "update:checked": (checked: any[], checkedData: Record<string, any>[]) => any;
14
14
  "node-contextmenu": (event: MouseEvent, node: TreeNode<Record<string, any>>) => any;
15
15
  "selected-synced": (selected?: Record<string, any> | undefined) => any;
16
16
  }, string, _$vue.PublicProps, Readonly<TreeProps> & Readonly<{
17
- "onUpdate:checked"?: ((checked: any[], checkedData: Record<string, any>[]) => any) | undefined;
18
- "onUpdate:selected"?: ((selected?: any, selectedData?: Record<string, any> | undefined, node?: TreeNode<Record<string, any>> | undefined) => any) | undefined;
19
17
  onExpand?: ((node: TreeNode<Record<string, any>>) => any) | undefined;
20
18
  "onNode-click"?: ((node: TreeNode<Record<string, any>>) => any) | undefined;
19
+ "onUpdate:selected"?: ((selected?: any, selectedData?: Record<string, any> | undefined, node?: TreeNode<Record<string, any>> | undefined) => any) | undefined;
20
+ "onUpdate:checked"?: ((checked: any[], checkedData: Record<string, any>[]) => any) | undefined;
21
21
  "onNode-contextmenu"?: ((event: MouseEvent, node: TreeNode<Record<string, any>>) => any) | undefined;
22
22
  "onSelected-synced"?: ((selected?: Record<string, any> | undefined) => any) | undefined;
23
23
  }>, {
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree-nodes.js","names":["TreeNode"],"sources":["../../../src/components/tree/use-tree-nodes.ts"],"sourcesContent":["import { Forest } from '@cat-kit/core'\nimport { computed, shallowRef, triggerRef, watch, type ShallowRef, type ComputedRef } from 'vue'\n\nimport type { TreeProps } from '../../types'\nimport { TreeNode } from './tree-node'\n\ninterface Options {\n props: TreeProps\n}\n\ninterface UseTreeNodesReturned {\n nodes: ShallowRef<TreeNode[]>\n forest: ComputedRef<Forest<Record<string, unknown>, any>>\n getFlattedNodes: () => void\n nodeDict: ComputedRef<Map<string | number, TreeNode>>\n /** 强制刷新 `nodes` 的订阅者(供字段级别变化但列表引用不变时手动触发)。 */\n triggerNodes: () => void\n}\n\nexport function useTreeNodes(options: Options): UseTreeNodesReturned {\n const { props } = options\n\n // forest / nodeDict 保持为 shallowRef 而非 computed:\n // - computed 会因为任一 prop 变化(尤其是内联 disabledNode 函数)而整棵重建,\n // 丢失 expanded/checked/visible 等运行时状态;\n // - 显式 watch 仅在真正影响结构的输入变化时才重建,行为可控、可测量。\n const forestRef = shallowRef<Forest<Record<string, unknown>, any>>(\n new Forest<Record<string, unknown>, any>({\n data: [],\n childrenKey: props.childrenKey ?? 'children'\n })\n )\n\n const nodeDictRef = shallowRef<Map<string | number, TreeNode>>(new Map())\n\n const nodes = shallowRef<TreeNode[]>([])\n\n function buildForest(): Forest<Record<string, unknown>, any> {\n const { disabledNode, expandAll = false, valueKey, labelKey } = props\n const childrenKey = props.childrenKey ?? 'children'\n\n function createNode(\n data: Record<string, any>,\n index: number,\n depth: number,\n parent?: TreeNode\n ): TreeNode {\n const node = new TreeNode({\n data,\n index,\n depth,\n parent,\n valueKey: valueKey!,\n labelKey: labelKey!\n })\n node.expanded = expandAll\n return node\n }\n\n return new Forest<Record<string, unknown>, any>({\n data: (props.data ?? []) as Record<string, unknown>[],\n childrenKey,\n createNode: disabledNode\n ? (data, index, depth, _f, parent) => {\n const node = createNode(data as Record<string, any>, index, depth, parent as TreeNode)\n if (data) {\n node.disabled = disabledNode(data as Record<string, any>, node) ?? false\n }\n return node\n }\n : (data, index, depth, _f, parent) =>\n createNode(data as Record<string, any>, index, depth, parent as TreeNode)\n })\n }\n\n function rebuildForest(): void {\n const nextForest = buildForest()\n const nextDict = new Map<string | number, TreeNode>()\n\n // 构建森林的同时一次 DFS 同步填充字典,\n // 避免旧版 “forest computed → nodeDict computed” 两次完整遍历。\n nextForest.dfs((node) => {\n nextDict.set(node.key, node)\n })\n\n forestRef.value = nextForest\n nodeDictRef.value = nextDict\n\n getFlattedNodes()\n }\n\n /** 按展开与可见性扁平化:仅一次 DFS。 */\n function getFlattedNodes(): void {\n const result: TreeNode[] = []\n const roots = forestRef.value.roots as TreeNode[]\n\n const stack: TreeNode[] = []\n for (let i = roots.length - 1; i >= 0; i--) {\n stack.push(roots[i]!)\n }\n\n while (stack.length) {\n const node = stack.pop()!\n if (!node.visible) continue\n result.push(node)\n if (node.expanded && node.children && node.children.length) {\n for (let i = node.children.length - 1; i >= 0; i--) {\n stack.push(node.children[i]!)\n }\n }\n }\n\n nodes.value = result\n }\n\n function triggerNodes(): void {\n triggerRef(nodes)\n }\n\n watch(\n [\n () => props.data,\n () => props.disabledNode,\n () => props.childrenKey,\n () => props.valueKey,\n () => props.labelKey,\n () => props.expandAll\n ],\n () => {\n rebuildForest()\n },\n { immediate: true }\n )\n\n const forest = computed(() => forestRef.value)\n const nodeDict = computed(() => nodeDictRef.value)\n\n return { nodes, forest, getFlattedNodes, nodeDict, triggerNodes }\n}\n"],"mappings":";;;;AAmBA,SAAgB,aAAa,SAAwC;CACnE,MAAM,EAAE,UAAU;CAMlB,MAAM,YAAY,WAChB,IAAI,OAAqC;EACvC,MAAM,EAAE;EACR,aAAa,MAAM,eAAe;EACnC,CAAC,CACH;CAED,MAAM,cAAc,2BAA2C,IAAI,KAAK,CAAC;CAEzE,MAAM,QAAQ,WAAuB,EAAE,CAAC;CAExC,SAAS,cAAoD;EAC3D,MAAM,EAAE,cAAc,YAAY,OAAO,UAAU,aAAa;EAChE,MAAM,cAAc,MAAM,eAAe;EAEzC,SAAS,WACP,MACA,OACA,OACA,QACU;GACV,MAAM,OAAO,IAAIA,WAAS;IACxB;IACA;IACA;IACA;IACU;IACA;IACX,CAAC;AACF,QAAK,WAAW;AAChB,UAAO;;AAGT,SAAO,IAAI,OAAqC;GAC9C,MAAO,MAAM,QAAQ,EAAE;GACvB;GACA,YAAY,gBACP,MAAM,OAAO,OAAO,IAAI,WAAW;IAClC,MAAM,OAAO,WAAW,MAA6B,OAAO,OAAO,OAAmB;AACtF,QAAI,KACF,MAAK,WAAW,aAAa,MAA6B,KAAK,IAAI;AAErE,WAAO;QAER,MAAM,OAAO,OAAO,IAAI,WACvB,WAAW,MAA6B,OAAO,OAAO,OAAmB;GAChF,CAAC;;CAGJ,SAAS,gBAAsB;EAC7B,MAAM,aAAa,aAAa;EAChC,MAAM,2BAAW,IAAI,KAAgC;AAIrD,aAAW,KAAK,SAAS;AACvB,YAAS,IAAI,KAAK,KAAK,KAAK;IAC5B;AAEF,YAAU,QAAQ;AAClB,cAAY,QAAQ;AAEpB,mBAAiB;;;CAInB,SAAS,kBAAwB;EAC/B,MAAM,SAAqB,EAAE;EAC7B,MAAM,QAAQ,UAAU,MAAM;EAE9B,MAAM,QAAoB,EAAE;AAC5B,OAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,IACrC,OAAM,KAAK,MAAM,GAAI;AAGvB,SAAO,MAAM,QAAQ;GACnB,MAAM,OAAO,MAAM,KAAK;AACxB,OAAI,CAAC,KAAK,QAAS;AACnB,UAAO,KAAK,KAAK;AACjB,OAAI,KAAK,YAAY,KAAK,YAAY,KAAK,SAAS,OAClD,MAAK,IAAI,IAAI,KAAK,SAAS,SAAS,GAAG,KAAK,GAAG,IAC7C,OAAM,KAAK,KAAK,SAAS,GAAI;;AAKnC,QAAM,QAAQ;;CAGhB,SAAS,eAAqB;AAC5B,aAAW,MAAM;;AAGnB,OACE;QACQ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;EACb,QACK;AACJ,iBAAe;IAEjB,EAAE,WAAW,MAAM,CACpB;AAKD,QAAO;EAAE;EAAO,QAHD,eAAe,UAAU,MAAM;EAGtB;EAAiB,UAFxB,eAAe,YAAY,MAAM;EAEC;EAAc"}
1
+ {"version":3,"file":"use-tree-nodes.js","names":["TreeNode"],"sources":["../../../src/components/tree/use-tree-nodes.ts"],"sourcesContent":["import { Forest } from '@cat-kit/core'\nimport { computed, shallowRef, triggerRef, watch, type ShallowRef, type ComputedRef } from 'vue'\n\nimport type { TreeProps } from '../../types'\nimport { TreeNode } from './tree-node'\n\ninterface Options {\n props: TreeProps\n}\n\ninterface UseTreeNodesReturned {\n nodes: ShallowRef<TreeNode[]>\n forest: ComputedRef<Forest<Record<string, unknown>, any>>\n getFlattedNodes: () => void\n nodeDict: ComputedRef<Map<string | number, TreeNode>>\n /** 强制刷新 `nodes` 的订阅者(供字段级别变化但列表引用不变时手动触发)。 */\n triggerNodes: () => void\n}\n\nexport function useTreeNodes(options: Options): UseTreeNodesReturned {\n const { props } = options\n\n // forest / nodeDict 保持为 shallowRef 而非 computed:\n // - computed 会因为任一 prop 变化(尤其是内联 disabledNode 函数)而整棵重建,\n // 丢失 expanded/checked/visible 等运行时状态;\n // - 显式 watch 仅在真正影响结构的输入变化时才重建,行为可控、可测量。\n const forestRef = shallowRef<Forest<Record<string, unknown>, any>>(\n new Forest<Record<string, unknown>, any>({\n data: [],\n childrenKey: props.childrenKey ?? 'children'\n })\n )\n\n const nodeDictRef = shallowRef<Map<string | number, TreeNode>>(new Map())\n\n const nodes = shallowRef<TreeNode[]>([])\n\n function buildForest(): Forest<Record<string, unknown>, any> {\n const { disabledNode, expandAll = false, valueKey, labelKey } = props\n const childrenKey = props.childrenKey ?? 'children'\n\n function createNode(\n data: Record<string, any>,\n index: number,\n depth: number,\n parent?: TreeNode\n ): TreeNode {\n const node = new TreeNode({\n data,\n index,\n depth,\n parent,\n valueKey: valueKey!,\n labelKey: labelKey!\n })\n node.expanded = expandAll\n return node\n }\n\n return new Forest<Record<string, unknown>, any>({\n data: (props.data ?? []) as Record<string, unknown>[],\n childrenKey,\n createNode: disabledNode\n ? (data, index, depth, _f, parent) => {\n const node = createNode(data as Record<string, any>, index, depth, parent as TreeNode)\n if (data) {\n node.disabled = disabledNode(data as Record<string, any>, node) ?? false\n }\n return node\n }\n : (data, index, depth, _f, parent) =>\n createNode(data as Record<string, any>, index, depth, parent as TreeNode)\n })\n }\n\n function rebuildForest(): void {\n const nextForest = buildForest()\n const nextDict = new Map<string | number, TreeNode>()\n\n // 构建森林的同时一次 DFS 同步填充字典,\n // 避免旧版 “forest computed → nodeDict computed” 两次完整遍历。\n nextForest.dfs((node) => {\n nextDict.set(node.key, node)\n })\n\n forestRef.value = nextForest\n nodeDictRef.value = nextDict\n\n getFlattedNodes()\n }\n\n /** 按展开与可见性扁平化:仅一次 DFS。 */\n function getFlattedNodes(): void {\n const result: TreeNode[] = []\n const roots = forestRef.value.roots as TreeNode[]\n\n const stack: TreeNode[] = []\n for (let i = roots.length - 1; i >= 0; i--) {\n stack.push(roots[i]!)\n }\n\n while (stack.length) {\n const node = stack.pop()!\n if (!node.visible) continue\n result.push(node)\n if (node.expanded && node.children && node.children.length) {\n for (let i = node.children.length - 1; i >= 0; i--) {\n stack.push(node.children[i]!)\n }\n }\n }\n\n nodes.value = result\n }\n\n function triggerNodes(): void {\n triggerRef(nodes)\n }\n\n watch(\n [\n () => props.data,\n () => props.disabledNode,\n () => props.childrenKey,\n () => props.valueKey,\n () => props.labelKey,\n () => props.expandAll\n ],\n () => {\n rebuildForest()\n },\n { immediate: true }\n )\n\n const forest = computed(() => forestRef.value)\n const nodeDict = computed(() => nodeDictRef.value)\n\n return { nodes, forest, getFlattedNodes, nodeDict, triggerNodes }\n}\n"],"mappings":";;;;AAmBA,SAAgB,aAAa,SAAwC;CACnE,MAAM,EAAE,UAAU;CAMlB,MAAM,YAAY,WAChB,IAAI,OAAqC;EACvC,MAAM,EAAE;EACR,aAAa,MAAM,eAAe;EACnC,CAAC,CACH;CAED,MAAM,cAAc,2BAA2C,IAAI,KAAK,CAAC;CAEzE,MAAM,QAAQ,WAAuB,EAAE,CAAC;CAExC,SAAS,cAAoD;EAC3D,MAAM,EAAE,cAAc,YAAY,OAAO,UAAU,aAAa;EAChE,MAAM,cAAc,MAAM,eAAe;EAEzC,SAAS,WACP,MACA,OACA,OACA,QACU;GACV,MAAM,OAAO,IAAIA,WAAS;IACxB;IACA;IACA;IACA;IACU;IACA;IACX,CAAC;AACF,QAAK,WAAW;AAChB,UAAO;;AAGT,SAAO,IAAI,OAAqC;GAC9C,MAAO,MAAM,QAAQ,EAAE;GACvB;GACA,YAAY,gBACP,MAAM,OAAO,OAAO,IAAI,WAAW;IAClC,MAAM,OAAO,WAAW,MAA6B,OAAO,OAAO,OAAmB;AACtF,QAAI,KACF,MAAK,WAAW,aAAa,MAA6B,KAAK,IAAI;AAErE,WAAO;QAER,MAAM,OAAO,OAAO,IAAI,WACvB,WAAW,MAA6B,OAAO,OAAO,OAAmB;GAChF,CAAC;;CAGJ,SAAS,gBAAsB;EAC7B,MAAM,aAAa,aAAa;EAChC,MAAM,2BAAW,IAAI,KAAgC;AAIrD,aAAW,KAAK,SAAS;AACvB,YAAS,IAAI,KAAK,KAAK,KAAK;IAC5B;AAEF,YAAU,QAAQ;AAClB,cAAY,QAAQ;AAEpB,mBAAiB;;;CAInB,SAAS,kBAAwB;EAC/B,MAAM,SAAqB,EAAE;EAC7B,MAAM,QAAQ,UAAU,MAAM;EAE9B,MAAM,QAAoB,EAAE;AAC5B,OAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,IACrC,OAAM,KAAK,MAAM,GAAI;AAGvB,SAAO,MAAM,QAAQ;GACnB,MAAM,OAAO,MAAM,KAAK;AACxB,OAAI,CAAC,KAAK,QAAS;AACnB,UAAO,KAAK,KAAK;AACjB,OAAI,KAAK,YAAY,KAAK,YAAY,KAAK,SAAS,OAClD,MAAK,IAAI,IAAI,KAAK,SAAS,SAAS,GAAG,KAAK,GAAG,IAC7C,OAAM,KAAK,KAAK,SAAS,GAAI;;AAKnC,QAAM,QAAQ;;CAGhB,SAAS,eAAqB;AAC5B,aAAW,MAAM;;AAGnB,OACE;QACQ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;EACb,QACK;AACJ,iBAAe;IAEjB,EAAE,WAAW,MAAM,CACpB;AAKD,QAAO;EAAE;EAAO,QAHD,eAAe,UAAU,MAGlB;EAAE;EAAiB,UAFxB,eAAe,YAAY,MAEK;EAAE;EAAc"}
@@ -15,22 +15,22 @@ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
15
15
  declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
16
16
  "update:modelValue": (value: string | number | undefined) => any;
17
17
  } & {
18
- clear: () => any;
19
18
  change: (value?: string | number | undefined, selectedData?: Record<string, any> | undefined) => any;
19
+ clear: () => any;
20
20
  "update:text": (text?: string | undefined) => any;
21
21
  }, string, _$vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
22
22
  "onUpdate:modelValue"?: ((value: string | number | undefined) => any) | undefined;
23
- onClear?: (() => any) | undefined;
24
23
  onChange?: ((value?: string | number | undefined, selectedData?: Record<string, any> | undefined) => any) | undefined;
24
+ onClear?: (() => any) | undefined;
25
25
  "onUpdate:text"?: ((text?: string | undefined) => any) | undefined;
26
26
  }>, {
27
- disabled: boolean;
28
- readonly: boolean;
29
27
  labelKey: string;
30
28
  valueKey: string;
29
+ disabled: boolean;
30
+ readonly: boolean;
31
+ minWidth: string;
31
32
  placeholder: string;
32
33
  clearable: boolean;
33
- minWidth: string;
34
34
  expandAll: boolean;
35
35
  filterable: boolean;
36
36
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
@@ -7,8 +7,8 @@ type __VLS_Slots = {} & {
7
7
  default?: (props: typeof __VLS_7) => any;
8
8
  };
9
9
  declare const __VLS_base: _$vue.DefineComponent<WatermarkProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<WatermarkProps> & Readonly<{}>, {
10
- route: number;
11
10
  fontSize: number;
11
+ route: number;
12
12
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
13
13
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
14
  declare const _default: typeof __VLS_export;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veltra/desktop",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "files": [
5
5
  "dist",
6
6
  "src"
@@ -47,22 +47,22 @@
47
47
  "@lexical/rich-text": "^0.43.0",
48
48
  "@lexical/selection": "^0.43.0",
49
49
  "@lexical/utils": "^0.43.0",
50
- "@veltra/compositions": "1.0.9",
51
- "@veltra/directives": "1.0.9",
52
- "@veltra/icons": "1.0.9",
53
- "@veltra/styles": "1.0.9",
54
- "@veltra/utils": "1.0.9",
50
+ "@veltra/compositions": "1.0.10",
51
+ "@veltra/directives": "1.0.10",
52
+ "@veltra/icons": "1.0.10",
53
+ "@veltra/styles": "1.0.10",
54
+ "@veltra/utils": "1.0.10",
55
55
  "@visactor/vtable": "^1.26.0",
56
56
  "codemirror": "^6.0.2",
57
57
  "docx-preview": "^0.3.7",
58
58
  "lexical": "^0.43.0"
59
59
  },
60
60
  "peerDependencies": {
61
- "@veltra/compositions": "1.0.9",
62
- "@veltra/directives": "1.0.9",
63
- "@veltra/icons": "1.0.9",
64
- "@veltra/styles": "1.0.9",
65
- "@veltra/utils": "1.0.9",
61
+ "@veltra/compositions": "1.0.10",
62
+ "@veltra/directives": "1.0.10",
63
+ "@veltra/icons": "1.0.10",
64
+ "@veltra/styles": "1.0.10",
65
+ "@veltra/utils": "1.0.10",
66
66
  "vue": "^3.5.33"
67
67
  }
68
68
  }
@@ -78,7 +78,7 @@ const className = computed(() => {
78
78
 
79
79
  /** 描边 */
80
80
  const stroke = computed(() => {
81
- return `var(--color-${type.value})`
81
+ return `var(--u-color-${type.value})`
82
82
  })
83
83
 
84
84
  const r = 44
@@ -14,64 +14,62 @@ import type {
14
14
  import type { ColumnNode } from './node/col'
15
15
  import type { ColumnConfig } from './use-columns'
16
16
 
17
- export const TableDIKey: InjectionKey<
18
- {
19
- /** 表格属性 */
20
- tableProps: TableProps
21
- /** 表格插槽 */
22
- tableSlots: Slots
23
- /** 类 */
24
- cls: BEM<'table'>
25
- /** 行 */
26
- rows: ShallowRef<TableRow[]>
27
- /** 选中行 */
28
- checkedRows: ShallowRef<Set<TableRow>>
29
- /** 结构化列 */
30
- columnConfig: ColumnConfig
31
- /** 事件处理方法 */
32
- handleRowClick: (row: TableRow, ev: MouseEvent) => void
33
- /** 单元格点击 */
34
- handleCellClick: (row: TableRow, column: TableColumn, ev: MouseEvent) => void
35
- /** 表格列插槽node */
36
- getColumnSlotsNode: (ctx: TableColumnSlotsScope | TableColumnRenderContext) => RenderReturn
37
- /** 展开行插槽node */
38
- getExpandRowSlotsNode: (ctx: TableRowSlotsScope) => RenderReturn
39
- /** 表头插槽node */
40
- getHeaderSlotsNode: (ctx: { column: ColumnNode }) => RenderReturn
17
+ export const TableDIKey: InjectionKey<{
18
+ /** 表格属性 */
19
+ tableProps: TableProps
20
+ /** 表格插槽 */
21
+ tableSlots: Slots
22
+ /** 类 */
23
+ cls: BEM<'table'>
24
+ /** 行 */
25
+ rows: ShallowRef<TableRow[]>
26
+ /** 选中行 */
27
+ checkedRows: ShallowRef<Set<TableRow>>
28
+ /** 结构化列 */
29
+ columnConfig: ColumnConfig
30
+ /** 事件处理方法 */
31
+ handleRowClick: (row: TableRow, ev: MouseEvent) => void
32
+ /** 单元格点击 */
33
+ handleCellClick: (row: TableRow, column: TableColumn, ev: MouseEvent) => void
34
+ /** 表格列插槽node */
35
+ getColumnSlotsNode: (ctx: TableColumnSlotsScope | TableColumnRenderContext) => RenderReturn
36
+ /** 展开行插槽node */
37
+ getExpandRowSlotsNode: (ctx: TableRowSlotsScope) => RenderReturn
38
+ /** 表头插槽node */
39
+ getHeaderSlotsNode: (ctx: { column: ColumnNode }) => RenderReturn
41
40
 
42
- /** 展开/隐藏子节点 */
43
- toggleTreeRowExpand: (row: TableRow) => void
41
+ /** 展开/隐藏子节点 */
42
+ toggleTreeRowExpand: (row: TableRow) => void
44
43
 
45
- /** 获取单元格的类 */
46
- getCellClass: (column: ColumnNode) => string
44
+ /** 获取单元格的类 */
45
+ getCellClass: (column: ColumnNode) => string
47
46
 
48
- /** 获取表头单元格的类 */
49
- getHeaderCellClass: (column: ColumnNode) => string
47
+ /** 获取表头单元格的类 */
48
+ getHeaderCellClass: (column: ColumnNode) => string
50
49
 
51
- /** 获取单元格上下文 */
52
- getCellCtx: (
53
- row: TableRow,
54
- column: ColumnNode
55
- ) => TableColumnSlotsScope | TableColumnRenderContext
50
+ /** 获取单元格上下文 */
51
+ getCellCtx: (
52
+ row: TableRow,
53
+ column: ColumnNode
54
+ ) => TableColumnSlotsScope | TableColumnRenderContext
56
55
 
57
- /**
58
- * 当前渲染窗口的虚拟项列表。
59
- *
60
- * 由 `useVirtualizer` 拆分出的 `items` shallowRef:仅在底层 `items`
61
- * 引用变化时才更新,`isScrolling` / 纯尺寸变化不会导致此 ref 更新。
62
- */
63
- virtualList: ShallowRef<VirtualItem[]>
64
- /** 是否启用虚拟列表 */
65
- virtualEnabled: ComputedRef<boolean>
66
- /**
67
- * 测量行元素尺寸(参数顺序与底层 `Virtualizer.measureElement` 一致)。
68
- *
69
- * 元素卸载(`el === null`)时会从底层解绑,避免被移除的 `<tr>` 继续触发
70
- * size=0 测量回调。
71
- */
72
- measureElement: (index: number, el: Element | null) => void
73
- }
74
- > = Symbol('TableDIKey')
56
+ /**
57
+ * 当前渲染窗口的虚拟项列表。
58
+ *
59
+ * 由 `useVirtualizer` 拆分出的 `items` shallowRef:仅在底层 `items`
60
+ * 引用变化时才更新,`isScrolling` / 纯尺寸变化不会导致此 ref 更新。
61
+ */
62
+ virtualList: ShallowRef<VirtualItem[]>
63
+ /** 是否启用虚拟列表 */
64
+ virtualEnabled: ComputedRef<boolean>
65
+ /**
66
+ * 测量行元素尺寸(参数顺序与底层 `Virtualizer.measureElement` 一致)。
67
+ *
68
+ * 元素卸载(`el === null`)时会从底层解绑,避免被移除的 `<tr>` 继续触发
69
+ * size=0 测量回调。
70
+ */
71
+ measureElement: (index: number, el: Element | null) => void
72
+ }> = Symbol('TableDIKey')
75
73
 
76
74
  export const TableResizeKey: InjectionKey<{
77
75
  handleResizeMousedown: (e: MouseEvent, resizeColumn: ColumnNode) => void
@@ -11,7 +11,6 @@
11
11
  :content-class="cls.e('content')"
12
12
  @scroll="handleScroll"
13
13
  >
14
- {{ console.log(1) }}
15
14
  <table :class="cls.e('wrap')">
16
15
  <colgroup ref="colgroupRef">
17
16
  <col
@@ -68,6 +68,9 @@ $active-shadow:
68
68
 
69
69
  @include m.m(vertical) {
70
70
  flex-direction: column;
71
+ // 垂直方向没有 __viewport 承载上下 padding,这里直接为容器补上垂直内边距,
72
+ // 与水平 __viewport 的 padding: $list-padding 0 对称,避免首/末 item 紧贴边沿
73
+ padding-block: $list-padding;
71
74
  }
72
75
 
73
76
  @include m.e(viewport) {
@@ -113,9 +116,9 @@ $active-shadow:
113
116
  justify-content: center;
114
117
  gap: 0;
115
118
  transition:
116
- color 0.2s ease,
117
- background-color 0.2s ease,
118
- box-shadow 0.2s ease;
119
+ color 0.22s cubic-bezier(0.4, 0, 0.2, 1),
120
+ background-color 0.22s cubic-bezier(0.4, 0, 0.2, 1),
121
+ box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
119
122
 
120
123
  &:not(.is-active):not(.is-disabled):hover {
121
124
  color: fn.use-var(text-color, title);
@@ -127,7 +130,7 @@ $active-shadow:
127
130
  }
128
131
 
129
132
  @include m.is(active) {
130
- color: fn.use-var(text-color, title);
133
+ color: fn.use-var(color, primary);
131
134
  background-color: $active-bg;
132
135
  box-shadow: $active-shadow;
133
136
  }
@@ -16,9 +16,7 @@
16
16
  :disabled="!canPrev"
17
17
  @click="scrollByStep(-1)"
18
18
  >
19
- <u-icon>
20
- <ArrowLeft />
21
- </u-icon>
19
+ <u-icon> <ArrowLeft /> </u-icon>
22
20
  </button>
23
21
 
24
22
  <div ref="viewportRef" :class="cls.e('viewport')">
@@ -35,7 +33,10 @@
35
33
  ]"
36
34
  @click.stop="handleClick(item, index)"
37
35
  >
38
- <span :class="cls.e('item-label')">{{ item.name ?? item.key }}</span>
36
+ <slot :name="`name:${item.key}`" :item="item">
37
+ <span :class="cls.e('item-label')">{{ item.name ?? item.key }}</span>
38
+ </slot>
39
+
39
40
  <span
40
41
  v-if="isItemClosable(item)"
41
42
  role="button"
@@ -59,9 +60,7 @@
59
60
  :disabled="!canNext"
60
61
  @click="scrollByStep(1)"
61
62
  >
62
- <u-icon>
63
- <ArrowRight />
64
- </u-icon>
63
+ <u-icon> <ArrowRight /> </u-icon>
65
64
  </button>
66
65
  </div>
67
66
  </template>
@@ -87,6 +86,10 @@ const props = withDefaults(defineProps<TabsHorizontalProps>(), {
87
86
 
88
87
  const emit = defineEmits<TabsHorizontalEmits>()
89
88
 
89
+ defineSlots<{
90
+ [key: `name:${string}`]: (props: { item: TabItem }) => any
91
+ }>()
92
+
90
93
  const { size } = useFallbackProps([props], {
91
94
  size: 'default' as ComponentSize
92
95
  })
@@ -14,7 +14,9 @@
14
14
  ]"
15
15
  @click.stop="handleClick(item, index)"
16
16
  >
17
- <span :class="cls.e('item-label')">{{ item.name ?? item.key }}</span>
17
+ <slot :name="`name:${item.key}`" :item="item">
18
+ <span :class="cls.e('item-label')">{{ item.name ?? item.key }}</span>
19
+ </slot>
18
20
  <span
19
21
  v-if="isItemClosable(item)"
20
22
  role="button"