@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.
- package/dist/components/batch-edit/batch-edit.js.map +1 -1
- package/dist/components/batch-edit/batch-edit.vue.d.ts +2 -2
- package/dist/components/batch-edit/style.js +2 -2
- package/dist/components/batch-edit/use-edit.js.map +1 -1
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/cascade/cascade.vue.d.ts +5 -5
- package/dist/components/cascade/use-select.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
- package/dist/components/date-panel/date-panel.js.map +1 -1
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/expression-editor/expression-editor.js.map +1 -1
- package/dist/components/expression-editor/internal/editor-runtime/create-runtime.js.map +1 -1
- package/dist/components/expression-editor/internal/features/commands/register-command-packs.js.map +1 -1
- package/dist/components/expression-editor/internal/features/insertion/insertion-service.js.map +1 -1
- package/dist/components/expression-editor/use-decorators.js.map +1 -1
- package/dist/components/expression-editor/use-expression-drag-drop.js.map +1 -1
- package/dist/components/file-picker/file-picker.js.map +1 -1
- package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
- package/dist/components/form/form-model.js +2 -1
- package/dist/components/form/form-model.js.map +1 -1
- package/dist/components/grid/grid.js.map +1 -1
- package/dist/components/grid/use-responsive.js.map +1 -1
- package/dist/components/input/input.vue.d.ts +2 -2
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/loading/directive.js.map +1 -1
- package/dist/components/menu/menu-item.js.map +1 -1
- package/dist/components/message/message2.js.map +1 -1
- package/dist/components/multi-select/multi-select.js.map +1 -1
- package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
- package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +5 -5
- package/dist/components/notification/index.js.map +1 -1
- package/dist/components/number-input/number-input.js.map +1 -1
- package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
- package/dist/components/palette/color-transform.js.map +1 -1
- package/dist/components/palette/palette-sv.js.map +1 -1
- package/dist/components/pop-confirm/pop-confirm.vue.d.ts +1 -1
- package/dist/components/progress/progress.js +1 -1
- package/dist/components/progress/progress.js.map +1 -1
- package/dist/components/progress-nodes/progress-nodes.js.map +1 -1
- package/dist/components/progress-nodes/progress-nodes.vue.d.ts +3 -3
- package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
- package/dist/components/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +1 -1
- package/dist/components/rich-text-editor/toolbar.js.map +1 -1
- package/dist/components/scroll/scroll.js.map +1 -1
- package/dist/components/select/select.vue.d.ts +2 -2
- package/dist/components/slider/slider-thumb.js.map +1 -1
- package/dist/components/table/di.js.map +1 -1
- package/dist/components/table/style.js +1 -1
- package/dist/components/table/table-row.js +1 -2
- package/dist/components/table/table-row.js.map +1 -1
- package/dist/components/table/table.js +1 -2
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/table.vue.d.ts +2 -2
- package/dist/components/table/use-columns.js +4 -0
- package/dist/components/table/use-columns.js.map +1 -1
- package/dist/components/table/use-table.js +25 -0
- package/dist/components/table/use-table.js.map +1 -1
- package/dist/components/tabs/style2.css +3 -2
- package/dist/components/tabs/tabs-horizontal.js +2 -2
- package/dist/components/tabs/tabs-horizontal.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +14 -3
- package/dist/components/tabs/tabs-vertical.js +2 -2
- package/dist/components/tabs/tabs-vertical.js.map +1 -1
- package/dist/components/tabs/tabs-vertical.vue.d.ts +13 -3
- package/dist/components/tabs/tabs.vue.d.ts +2 -2
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/textarea/textarea.vue.d.ts +3 -3
- package/dist/components/theme/theme.js.map +1 -1
- package/dist/components/tip/tip.vue.d.ts +1 -1
- package/dist/components/tree/tree-node2.js.map +1 -1
- package/dist/components/tree/tree.vue.d.ts +4 -4
- package/dist/components/tree/use-tree-nodes.js.map +1 -1
- package/dist/components/tree-select/tree-select.vue.d.ts +5 -5
- package/dist/components/watermark/watermark.vue.d.ts +1 -1
- package/package.json +11 -11
- package/src/components/progress/progress.vue +1 -1
- package/src/components/table/di.ts +51 -53
- package/src/components/table/table.vue +0 -1
- package/src/components/tabs/style.scss +7 -4
- package/src/components/tabs/tabs-horizontal.vue +10 -7
- 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,
|
|
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.
|
|
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.
|
|
51
|
-
"@veltra/directives": "1.0.
|
|
52
|
-
"@veltra/icons": "1.0.
|
|
53
|
-
"@veltra/styles": "1.0.
|
|
54
|
-
"@veltra/utils": "1.0.
|
|
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.
|
|
62
|
-
"@veltra/directives": "1.0.
|
|
63
|
-
"@veltra/icons": "1.0.
|
|
64
|
-
"@veltra/styles": "1.0.
|
|
65
|
-
"@veltra/utils": "1.0.
|
|
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
|
}
|
|
@@ -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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
41
|
+
/** 展开/隐藏子节点 */
|
|
42
|
+
toggleTreeRowExpand: (row: TableRow) => void
|
|
44
43
|
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
/** 获取单元格的类 */
|
|
45
|
+
getCellClass: (column: ColumnNode) => string
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
/** 获取表头单元格的类 */
|
|
48
|
+
getHeaderCellClass: (column: ColumnNode) => string
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
/** 获取单元格上下文 */
|
|
51
|
+
getCellCtx: (
|
|
52
|
+
row: TableRow,
|
|
53
|
+
column: ColumnNode
|
|
54
|
+
) => TableColumnSlotsScope | TableColumnRenderContext
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
@@ -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.
|
|
117
|
-
background-color 0.
|
|
118
|
-
box-shadow 0.
|
|
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(
|
|
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
|
-
<
|
|
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
|
-
<
|
|
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"
|