@veltra/desktop 1.1.25 → 1.1.27
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/action/action-group.vue.d.ts +2 -2
- package/dist/components/action/action.js.map +1 -1
- package/dist/components/action/action.vue.d.ts +1 -1
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
- package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
- 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/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button-group.js.map +1 -1
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/calendar/calendar.js.map +1 -1
- package/dist/components/card/card-action.js.map +1 -1
- package/dist/components/card/card-content.js.map +1 -1
- package/dist/components/card/card-cover.js.map +1 -1
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/cascade/cascade-panel-item.js.map +1 -1
- package/dist/components/cascade/cascade.js.map +1 -1
- package/dist/components/cascade/cascade.vue.d.ts +3 -3
- package/dist/components/check-tag/check-tag.js.map +1 -1
- package/dist/components/checkbox/checkbox-button.js.map +1 -1
- package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
- package/dist/components/checkbox/checkbox.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/code-editor/code-editor.js.map +1 -1
- package/dist/components/collapse/collapse-item.js.map +1 -1
- package/dist/components/collapse/collapse.js.map +1 -1
- package/dist/components/condition-editor/components/condition-row.js.map +1 -1
- package/dist/components/condition-editor/condition-editor.js.map +1 -1
- package/dist/components/context-menu/context-menu-item.js.map +1 -1
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/date-panel/date-panel.js.map +1 -1
- package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
- package/dist/components/date-panel/headers/day.js.map +1 -1
- package/dist/components/date-panel/headers/month.js.map +1 -1
- package/dist/components/date-panel/headers/year.js.map +1 -1
- package/dist/components/date-panel/panels/day.js.map +1 -1
- package/dist/components/date-panel/panels/month.js.map +1 -1
- package/dist/components/date-panel/panels/year.js.map +1 -1
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/empty/empty.js.map +1 -1
- package/dist/components/expression-editor/components/path-preview.js.map +1 -1
- package/dist/components/expression-editor/components/variable-picker.js.map +1 -1
- package/dist/components/expression-editor/expression-editor.js.map +1 -1
- package/dist/components/file-picker/file-picker.js.map +1 -1
- package/dist/components/file-picker/file-picker.vue.d.ts +1 -1
- package/dist/components/file-viewer/file-viewer.js.map +1 -1
- package/dist/components/file-viewer/previewers/pdf-previewer.js.map +1 -1
- package/dist/components/file-viewer/previewers/pdf-viewport-scroll.js.map +1 -1
- package/dist/components/file-viewer/previewers/pdf-zoom-bridge.js.map +1 -1
- package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
- package/dist/components/float-button/float-button.js.map +1 -1
- package/dist/components/form/form-model.d.ts +2 -2
- package/dist/components/form/form-model.js.map +1 -1
- package/dist/components/form/form.js.map +1 -1
- package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/gantt-chart/gantt-chart.js.map +1 -1
- package/dist/components/grid/grid-item.js.map +1 -1
- package/dist/components/grid/grid.js.map +1 -1
- package/dist/components/grid-input/grid-input.js.map +1 -1
- package/dist/components/group-input/group-input.js.map +1 -1
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/input/input.vue.d.ts +2 -2
- package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/layout/layout-resizer.js.map +1 -1
- package/dist/components/layout/layout.js.map +1 -1
- package/dist/components/list/list-item.js.map +1 -1
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/loading/loading.js.map +1 -1
- package/dist/components/menu/menu-icon.js.map +1 -1
- package/dist/components/menu/menu-sub-collapsed.js.map +1 -1
- package/dist/components/menu/menu.js.map +1 -1
- package/dist/components/message/message-box.js.map +1 -1
- package/dist/components/message/message.js.map +1 -1
- package/dist/components/message-confirm/message-confirm.js.map +1 -1
- package/dist/components/multi-select/multi-select-option.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 +3 -3
- package/dist/components/notification/notification.js.map +1 -1
- package/dist/components/notification/notification.vue.d.ts +1 -1
- package/dist/components/number/number.js.map +1 -1
- package/dist/components/number/number.vue.d.ts +1 -1
- package/dist/components/number-input/number-input.js.map +1 -1
- package/dist/components/number-range-input/number-range-input.js.map +1 -1
- package/dist/components/paginator/paginator.js.map +1 -1
- package/dist/components/palette/palette-alpha.js.map +1 -1
- package/dist/components/palette/palette-color-switch.js.map +1 -1
- package/dist/components/palette/palette-hue.js.map +1 -1
- package/dist/components/palette/palette-sv.js.map +1 -1
- package/dist/components/palette/palette.js.map +1 -1
- package/dist/components/pop-confirm/pop-confirm.js.map +1 -1
- package/dist/components/pop-confirm/pop-confirm.vue.d.ts +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/radio/radio.js.map +1 -1
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
- package/dist/components/scroll/scroll-bar.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/slider/slider.js.map +1 -1
- package/dist/components/steps/steps.js.map +1 -1
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-body.js.map +1 -1
- package/dist/components/table/table-cell.js.map +1 -1
- package/dist/components/table/table-foot.js.map +1 -1
- package/dist/components/table/table.vue.d.ts +2 -2
- package/dist/components/table-editor/table-editor.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +3 -3
- package/dist/components/tabs/tabs-vertical.js.map +1 -1
- package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/tabs/tabs.vue.d.ts +3 -3
- package/dist/components/tag/tag.js.map +1 -1
- 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.js.map +1 -1
- package/dist/components/tip/tip.vue.d.ts +1 -1
- package/dist/components/tree/tree-node.js.map +1 -1
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree-select/tree-select.vue.d.ts +3 -3
- package/dist/components/watermark/watermark.js.map +1 -1
- package/package.json +6 -6
- package/src/components/action/action.vue +1 -4
- package/src/components/badge/badge.vue +3 -9
- package/src/components/batch-edit/batch-edit-form.vue +1 -5
- package/src/components/batch-edit/batch-edit-list.vue +2 -6
- package/src/components/batch-edit/batch-edit.vue +2 -12
- package/src/components/breadcrumb/breadcrumb.vue +4 -13
- package/src/components/button/button-group.vue +2 -6
- package/src/components/button/button.vue +3 -9
- package/src/components/calendar/calendar.vue +1 -3
- package/src/components/card/card-action.vue +1 -3
- package/src/components/card/card-content.vue +1 -6
- package/src/components/card/card-cover.vue +1 -3
- package/src/components/card/card.vue +2 -6
- package/src/components/cascade/cascade-panel-item.vue +2 -8
- package/src/components/cascade/cascade.vue +5 -37
- package/src/components/check-tag/check-tag.vue +1 -3
- package/src/components/checkbox/checkbox-button.vue +2 -6
- package/src/components/checkbox/checkbox.vue +1 -3
- package/src/components/checkbox-group/checkbox-group.vue +1 -3
- package/src/components/code-editor/code-editor.vue +4 -12
- package/src/components/collapse/collapse-item.vue +1 -3
- package/src/components/collapse/collapse.vue +2 -8
- package/src/components/condition-editor/components/condition-row.vue +2 -8
- package/src/components/condition-editor/condition-editor.vue +2 -6
- package/src/components/context-menu/context-menu-item.vue +3 -10
- package/src/components/context-menu/context-menu.vue +5 -17
- package/src/components/date-panel/date-panel.vue +3 -11
- package/src/components/date-panel/headers/day.vue +1 -3
- package/src/components/date-panel/headers/month.vue +1 -3
- package/src/components/date-panel/headers/year.vue +1 -3
- package/src/components/date-panel/panels/day.vue +1 -4
- package/src/components/date-panel/panels/month.vue +1 -3
- package/src/components/date-panel/panels/year.vue +1 -3
- package/src/components/date-picker/date-picker.vue +1 -3
- package/src/components/date-range-picker/date-range-picker.vue +1 -3
- package/src/components/dialog/dialog.vue +7 -24
- package/src/components/drawer/drawer.vue +3 -11
- package/src/components/empty/empty.vue +2 -7
- package/src/components/expression-editor/components/path-preview.vue +2 -6
- package/src/components/expression-editor/components/variable-picker.vue +1 -3
- package/src/components/expression-editor/expression-editor.vue +2 -6
- package/src/components/expression-editor/style.scss +1 -1
- package/src/components/file-picker/file-picker.vue +2 -7
- package/src/components/file-viewer/file-viewer.vue +4 -22
- package/src/components/file-viewer/previewers/pdf-previewer.vue +1 -5
- package/src/components/file-viewer/previewers/pdf-viewport-scroll.vue +1 -7
- package/src/components/file-viewer/previewers/pdf-zoom-bridge.vue +2 -7
- package/src/components/file-viewer/previewers/sheet-previewer.vue +4 -10
- package/src/components/float-button/float-button.vue +1 -3
- package/src/components/form/form-model.ts +9 -2
- package/src/components/form/form.vue +3 -13
- package/src/components/gantt-chart/gantt-chart.vue +1 -3
- package/src/components/grid/grid-item.vue +3 -9
- package/src/components/grid/grid.vue +5 -18
- package/src/components/grid-input/grid-input.vue +2 -6
- package/src/components/group-input/group-input.vue +2 -7
- package/src/components/icon/icon.vue +2 -6
- package/src/components/input/input.vue +2 -6
- package/src/components/layout/layout-resizer.vue +1 -3
- package/src/components/layout/layout.vue +3 -9
- package/src/components/list/list-item.vue +1 -3
- package/src/components/list/list.vue +2 -6
- package/src/components/loading/loading.vue +3 -9
- package/src/components/menu/menu-icon.vue +2 -6
- package/src/components/menu/menu-sub-collapsed.vue +2 -8
- package/src/components/menu/menu.vue +3 -9
- package/src/components/menu/style.scss +1 -1
- package/src/components/message/message-box.vue +3 -10
- package/src/components/message/message.vue +3 -9
- package/src/components/message-confirm/message-confirm.vue +2 -6
- package/src/components/multi-select/multi-select-option.vue +3 -9
- package/src/components/notification/notification.vue +3 -11
- package/src/components/number/number.vue +4 -14
- package/src/components/number-input/number-input.vue +7 -36
- package/src/components/number-range-input/number-range-input.vue +4 -17
- package/src/components/paginator/paginator.vue +7 -22
- package/src/components/palette/palette-alpha.vue +2 -6
- package/src/components/palette/palette-color-switch.vue +1 -3
- package/src/components/palette/palette-hue.vue +2 -6
- package/src/components/palette/palette-sv.vue +5 -17
- package/src/components/palette/palette.vue +2 -12
- package/src/components/pop-confirm/pop-confirm.vue +2 -6
- package/src/components/progress/progress.vue +2 -7
- package/src/components/progress-nodes/progress-nodes.vue +2 -7
- package/src/components/radio/radio.vue +2 -6
- package/src/components/radio-group/radio-group.vue +1 -3
- package/src/components/scroll/scroll-bar.vue +5 -17
- package/src/components/scroll/scroll.vue +5 -16
- package/src/components/slider/slider-thumb.vue +4 -12
- package/src/components/slider/slider.vue +3 -14
- package/src/components/steps/steps.vue +3 -10
- package/src/components/switch/switch.vue +2 -7
- package/src/components/table/table-body.vue +2 -8
- package/src/components/table/table-cell.vue +2 -7
- package/src/components/table/table-foot.vue +2 -9
- package/src/components/table-editor/table-editor.vue +1 -3
- package/src/components/tabs/tabs-horizontal.vue +2 -6
- package/src/components/tabs/tabs-vertical.vue +1 -3
- package/src/components/tabs/tabs.vue +1 -3
- package/src/components/tag/tag.vue +2 -6
- package/src/components/text/text.vue +3 -9
- package/src/components/textarea/textarea.vue +1 -3
- package/src/components/theme/group-item.vue +1 -3
- package/src/components/theme/group.vue +1 -3
- package/src/components/theme/theme.vue +6 -26
- package/src/components/tip/tip.vue +1 -3
- package/src/components/tree/tree-node.vue +1 -3
- package/src/components/tree/tree.vue +7 -30
- package/src/components/watermark/watermark.vue +4 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tip.js","names":[],"sources":["../../../src/components/tip/tip.vue"],"sourcesContent":["<template>\n <!-- 触发 -->\n <UNodeRender v-bind=\"eventsHandlers\" :content=\"renderDefaultSlotTrigger()\" ref=\"triggerRef\" />\n\n <!-- 弹出内容 -->\n <teleport :to=\"`#${popperContainerId}`\">\n <transition name=\"tip\">\n <component\n v-if=\"tipVisible\"\n :is=\"contentTag\"\n :class=\"contentClass\"\n :style=\"[style, { zIndex: zIndex() }]\"\n ref=\"contentRef\"\n @mouseenter=\"eventsHandlers.onMouseenter\"\n @mouseleave=\"eventsHandlers.onMouseleave\"\n @click.stop\n v-click-outside=\"handleClickOutside\"\n >\n <UNodeRender v-if=\"externalNode\" :content=\"externalNode\" />\n\n <slot name=\"content\">{{ content }}</slot>\n\n <div :class=\"cls.e('arrow')\" v-if=\"!hideArrow\" ref=\"arrowRef\"></div>\n </component>\n </transition>\n </teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps, usePop } from '@veltra/compositions'\nimport { vClickOutside } from '@veltra/directives'\nimport { bem, extractNormalVNodes, zIndex } from '@veltra/utils'\nimport { shallowRef, computed, useSlots, onBeforeUnmount, toRef, watch, nextTick } from 'vue'\n\nimport type { TipProps, ComponentSize, TipEmits } from '../../types'\nimport { UNodeRender } from '../node-render'\nimport { useNest } from './use-nest'\n\ndefineOptions({ name: 'Tip' })\n\nconst props = withDefaults(defineProps<TipProps>(), {\n content: '',\n trigger: 'hover',\n direction: 'top',\n alignment: 'center',\n contentTag: 'div',\n visible: undefined\n})\n\nconst emit = defineEmits<TipEmits>()\n\nconst cls = bem('tip')\nconst slots = useSlots()\nconst { size } = useFallbackProps([props], {
|
|
1
|
+
{"version":3,"file":"tip.js","names":[],"sources":["../../../src/components/tip/tip.vue"],"sourcesContent":["<template>\n <!-- 触发 -->\n <UNodeRender v-bind=\"eventsHandlers\" :content=\"renderDefaultSlotTrigger()\" ref=\"triggerRef\" />\n\n <!-- 弹出内容 -->\n <teleport :to=\"`#${popperContainerId}`\">\n <transition name=\"tip\">\n <component\n v-if=\"tipVisible\"\n :is=\"contentTag\"\n :class=\"contentClass\"\n :style=\"[style, { zIndex: zIndex() }]\"\n ref=\"contentRef\"\n @mouseenter=\"eventsHandlers.onMouseenter\"\n @mouseleave=\"eventsHandlers.onMouseleave\"\n @click.stop\n v-click-outside=\"handleClickOutside\"\n >\n <UNodeRender v-if=\"externalNode\" :content=\"externalNode\" />\n\n <slot name=\"content\">{{ content }}</slot>\n\n <div :class=\"cls.e('arrow')\" v-if=\"!hideArrow\" ref=\"arrowRef\"></div>\n </component>\n </transition>\n </teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps, usePop } from '@veltra/compositions'\nimport { vClickOutside } from '@veltra/directives'\nimport { bem, extractNormalVNodes, zIndex } from '@veltra/utils'\nimport { shallowRef, computed, useSlots, onBeforeUnmount, toRef, watch, nextTick } from 'vue'\n\nimport type { TipProps, ComponentSize, TipEmits } from '../../types'\nimport { UNodeRender } from '../node-render'\nimport { useNest } from './use-nest'\n\ndefineOptions({ name: 'Tip' })\n\nconst props = withDefaults(defineProps<TipProps>(), {\n content: '',\n trigger: 'hover',\n direction: 'top',\n alignment: 'center',\n contentTag: 'div',\n visible: undefined\n})\n\nconst emit = defineEmits<TipEmits>()\n\nconst cls = bem('tip')\nconst slots = useSlots()\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst contentClass = computed(() => {\n const fixed = [cls.e('content'), cls.m(size.value)]\n const className = props.class\n if (!Array.isArray(className)) {\n return [...fixed, className]\n }\n return [...fixed, ...className]\n})\n\nconst triggerRef = shallowRef<InstanceType<typeof UNodeRender>>()\nconst contentRef = shallowRef<HTMLElement>()\nconst arrowRef = shallowRef<HTMLElement>()\n\nconst _visible = shallowRef(false)\n\nconst visible = computed(() => {\n return props.visible !== undefined ? props.visible : _visible.value\n})\n\nfunction updateVisible(v: boolean) {\n if (props.visible === undefined) {\n _visible.value = v\n } else {\n emit('update:visible', v)\n }\n}\n\nconst tipVisible = useNest(visible)\n\nfunction renderDefaultSlotTrigger() {\n const nodes = slots.default?.()\n if (!nodes?.length) return null\n return extractNormalVNodes(nodes)[0]\n}\n\nconst eventsHandlers = computed(() => {\n const { trigger, disabled } = props\n\n const handlers: Record<string, Function> = {}\n\n if (disabled) return handlers\n\n if (trigger === 'click') {\n handlers.onClick = open\n } else if (trigger === 'hover') {\n handlers.onMouseenter = open\n handlers.onMouseleave = close\n }\n\n return handlers\n})\n\nconst handleClickOutside = (e: MouseEvent) => {\n if (props.trigger === 'hover') return\n\n // 点击的元素在触发元素中则啥也\n if (props.trigger === 'click' && triggerDom.value.contains(e.target as Node)) {\n return\n }\n close()\n}\n\nlet closeTimer: number | undefined = undefined\n\n/** 弹出 */\nconst open = (e?: PointerEvent) => {\n e?.stopPropagation()\n closeTimer !== undefined && clearTimeout(closeTimer)\n\n updateVisible(true)\n}\n/** 关闭 */\nconst close = () => {\n if (props.trigger === 'hover') {\n closeTimer = setTimeout(() => {\n updateVisible(false)\n }, 250)\n } else {\n updateVisible(false)\n }\n}\n\nconst triggerDom = computed(() => {\n return props.triggerDom || triggerRef.value?.$el\n})\n\nconst { update, popperContainerId } = usePop({\n triggerRef: triggerDom,\n contentRef,\n arrowRef,\n direction: toRef(() => props.direction),\n alignment: toRef(() => props.alignment),\n onTriggerPositionChange() {\n close()\n }\n})\n\nwatch(triggerDom, (dom) => {\n // TODO: 看起来不是很优雅\n if (dom?.nodeType === Node.ELEMENT_NODE && visible.value) {\n nextTick(() => {\n void update()\n })\n }\n})\n\n/** 外部节点 */\nconst externalNode = shallowRef<any>()\n\nonBeforeUnmount(() => {\n clearTimeout(closeTimer)\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ declare const __VLS_base: _$vue.DefineComponent<TipProps, {}, {}, {}, {}, _$vue.
|
|
|
14
14
|
trigger: "hover" | "click";
|
|
15
15
|
contentTag: string;
|
|
16
16
|
visible: boolean;
|
|
17
|
-
direction: TipDirection;
|
|
18
17
|
content: string;
|
|
18
|
+
direction: TipDirection;
|
|
19
19
|
alignment: TipAlign;
|
|
20
20
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
21
21
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-node.js","names":[],"sources":["../../../src/components/tree/tree-node.vue"],"sourcesContent":["<template>\n <div\n :class=\"[cls.e('node'), bem.is('expanded', node.expanded), bem.is('disabled', node.disabled)]\"\n :ref=\"measureRef\"\n >\n <span v-for=\"i in node.depth\" :key=\"i\" :class=\"cls.e('indent')\" aria-hidden=\"true\"></span>\n\n <u-icon v-if=\"!node.isLeaf\" :class=\"cls.e('expand-icon')\" @click.stop=\"toggleExpand\">\n <ArrowRight />\n </u-icon>\n <u-icon v-else :class=\"cls.e('leaf-icon')\" aria-hidden=\"true\">\n <Dot />\n </u-icon>\n\n <div\n :class=\"cls.e('node-content')\"\n @click=\"handleClick\"\n @contextmenu=\"treeEmit('node-contextmenu', $event, node)\"\n v-ripple=\"\n (treeProps.checkable || treeProps.selectable) && !node.disabled ? cls.e('ripple') : false\n \"\n >\n <u-checkbox\n v-if=\"treeProps.checkable\"\n :class=\"cls.e('checkbox')\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"node.disabled\"\n @change=\"handleChange\"\n @click.stop\n />\n\n <u-node-render :content=\"getTreeSlotsNode({ node, data: node.data })\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { vRipple } from '@veltra/directives'\nimport { ArrowRight, Dot } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { inject } from 'vue'\n\nimport type { TreeNodeProps } from '../../types'\nimport UCheckbox from '../checkbox/checkbox.vue'\nimport { UIcon } from '../icon'\nimport { UNodeRender } from '../node-render'\nimport { TreeDIKey } from './di'\n\ndefineOptions({
|
|
1
|
+
{"version":3,"file":"tree-node.js","names":[],"sources":["../../../src/components/tree/tree-node.vue"],"sourcesContent":["<template>\n <div\n :class=\"[cls.e('node'), bem.is('expanded', node.expanded), bem.is('disabled', node.disabled)]\"\n :ref=\"measureRef\"\n >\n <span v-for=\"i in node.depth\" :key=\"i\" :class=\"cls.e('indent')\" aria-hidden=\"true\"></span>\n\n <u-icon v-if=\"!node.isLeaf\" :class=\"cls.e('expand-icon')\" @click.stop=\"toggleExpand\">\n <ArrowRight />\n </u-icon>\n <u-icon v-else :class=\"cls.e('leaf-icon')\" aria-hidden=\"true\">\n <Dot />\n </u-icon>\n\n <div\n :class=\"cls.e('node-content')\"\n @click=\"handleClick\"\n @contextmenu=\"treeEmit('node-contextmenu', $event, node)\"\n v-ripple=\"\n (treeProps.checkable || treeProps.selectable) && !node.disabled ? cls.e('ripple') : false\n \"\n >\n <u-checkbox\n v-if=\"treeProps.checkable\"\n :class=\"cls.e('checkbox')\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"node.disabled\"\n @change=\"handleChange\"\n @click.stop\n />\n\n <u-node-render :content=\"getTreeSlotsNode({ node, data: node.data })\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { vRipple } from '@veltra/directives'\nimport { ArrowRight, Dot } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { inject } from 'vue'\n\nimport type { TreeNodeProps } from '../../types'\nimport UCheckbox from '../checkbox/checkbox.vue'\nimport { UIcon } from '../icon'\nimport { UNodeRender } from '../node-render'\nimport { TreeDIKey } from './di'\n\ndefineOptions({ name: 'TreeNode' })\n\nconst props = defineProps<TreeNodeProps>()\n\nconst { treeProps, treeEmit, cls, getTreeSlotsNode, getFlattedNodes, toggleCheck, handleSelect } =\n inject(TreeDIKey)!\n\nfunction measureRef(el: unknown) {\n if (typeof props.index !== 'number' || !props.measureElement) return\n props.measureElement(props.index, el as Element | null)\n}\n\nfunction toggleExpand() {\n const { node } = props\n node.expanded = !node.expanded\n getFlattedNodes()\n\n treeEmit('expand', node)\n}\n\nfunction handleChange(checked: boolean, e: MouseEvent) {\n toggleCheck(props.node, checked, e.ctrlKey)\n}\n\nfunction handleClick(e: MouseEvent) {\n const { node } = props\n treeEmit('node-click', node)\n\n treeProps.selectable && handleSelect(node)\n treeProps.expandOnClickNode && toggleExpand()\n treeProps.checkable &&\n !node.disabled &&\n !treeProps.expandOnClickNode &&\n toggleCheck(node, !node.checked, e.ctrlKey)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAmDA,MAAM,QAAQ;EAEd,MAAM,EAAE,WAAW,UAAU,KAAK,kBAAkB,iBAAiB,aAAa,iBAChF,OAAO,UAAS;EAElB,SAAS,WAAW,IAAa;GAC/B,IAAI,OAAO,MAAM,UAAU,YAAY,CAAC,MAAM,gBAAgB;GAC9D,MAAM,eAAe,MAAM,OAAO,GAAoB;;EAGxD,SAAS,eAAe;GACtB,MAAM,EAAE,SAAS;GACjB,KAAK,WAAW,CAAC,KAAK;GACtB,iBAAgB;GAEhB,SAAS,UAAU,KAAI;;EAGzB,SAAS,aAAa,SAAkB,GAAe;GACrD,YAAY,MAAM,MAAM,SAAS,EAAE,QAAO;;EAG5C,SAAS,YAAY,GAAe;GAClC,MAAM,EAAE,SAAS;GACjB,SAAS,cAAc,KAAI;GAE3B,UAAU,cAAc,aAAa,KAAI;GACzC,UAAU,qBAAqB,cAAa;GAC5C,UAAU,aACR,CAAC,KAAK,YACN,CAAC,UAAU,qBACX,YAAY,MAAM,CAAC,KAAK,SAAS,EAAE,QAAO;;;uBAjF5C,mBAiCM,OAAA;IAhCH,OAAK,eAAA;KAAG,MAAA,IAAA,CAAI,EAAC,OAAA;KAAU,MAAA,IAAA,CAAI,GAAE,YAAa,QAAA,KAAK,SAAQ;KAAG,MAAA,IAAA,CAAI,GAAE,YAAa,QAAA,KAAK,SAAQ;KAAA,CAAA;IAC1F,KAAK;;sBAEN,mBAA0F,UAAA,MAAA,WAAxE,QAAA,KAAK,QAAV,MAAC;yBAAd,mBAA0F,QAAA;MAA3D,KAAK;MAAI,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,SAAA,CAAA;MAAY,eAAY;;;KAE7D,QAAA,KAAK,UAAA,WAAA,EAApB,YAES,MAAA,YAAA,EAAA;;KAFoB,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,cAAA,CAAA;KAAkB,SAAK,cAAO,cAAY,CAAA,OAAA,CAAA;;4BACnE,CAAd,YAAc,MAAA,WAAA,CAAA,CAAA,CAAA;;sCAEhB,YAES,MAAA,YAAA,EAAA;;KAFO,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,YAAA,CAAA;KAAe,eAAY;;4BAC9C,CAAP,YAAO,MAAA,IAAA,CAAA,CAAA,CAAA;;;iCAGT,mBAmBM,OAAA;KAlBH,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,eAAA,CAAA;KACZ,SAAO;KACP,eAAW,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,SAAA,CAAQ,oBAAqB,QAAQ,QAAA,KAAI;QAM/C,MAAA,UAAA,CAAU,aAAA,WAAA,EADlB,YAQE,aAAA;;KANC,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,WAAA,CAAA;KACZ,eAAa,QAAA,KAAK;KAClB,eAAe,QAAA,KAAK;KACpB,UAAU,QAAA,KAAK;KACf,UAAQ;KACR,SAAK,OAAA,OAAA,OAAA,KAAA,oBAAN,IAAW,CAAA,OAAA,CAAA;;;;;;4CAGb,YAAwE,MAAA,WAAA,EAAA,EAAxD,SAAS,MAAA,iBAAA,CAAgB;KAAA,MAAG,QAAA;KAAI,MAAQ,QAAA,KAAK;KAAI,CAAA,EAAA,EAAA,MAAA,GAAA,CAAA,UAAA,CAAA,CAAA,EAAA,GAAA,GAAA,CAAA,CAAA,MAAA,QAAA,GAd7C,MAAA,UAAA,CAAU,aAAa,MAAA,UAAA,CAAU,eAAU,CAAM,QAAA,KAAK,WAAW,MAAA,IAAA,CAAI,EAAC,SAAA,GAAA,MAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","names":[],"sources":["../../../src/components/tree/tree.vue"],"sourcesContent":["<template>\n <u-scroll\n :class=\"className\"\n ref=\"scrollRef\"\n :content-class=\"[cls.e('wrap'), bem.is('virtual', virtualEnabled)]\"\n >\n <template v-if=\"virtualEnabled\">\n <UTreeNode\n v-for=\"{ node, key, offset, index } of virtualNodes\"\n :node=\"node\"\n :key=\"key\"\n :class=\"bem.is('selected', node.data === selectedData)\"\n :index=\"index\"\n :measure-element=\"measureElement\"\n :style=\"{ transform: `translateY(${offset}px)` }\"\n />\n </template>\n <template v-else>\n <UTreeNode\n v-for=\"node of nodes\"\n :node=\"node\"\n :key=\"node.key\"\n :class=\"bem.is('selected', node.data === selectedData)\"\n />\n </template>\n\n <div :class=\"cls.e('empty')\" v-if=\"!nodes.length\">\n <UEmpty />\n </div>\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps, useVirtualizer } from '@veltra/compositions'\nimport { bem, nextFrame, scrollIntoContainerView } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed, provide, shallowRef, useSlots, watch, watchEffect, type VNode } from 'vue'\n\nimport type { TreeProps, TreeEmit, _TreeExposed } from '../../types'\nimport type { ScrollExposed } from '../../types'\nimport { UEmpty } from '../empty'\nimport { UScroll } from '../scroll'\nimport { TreeDIKey, type TreeConText, type TreeSlotsScope } from './di'\nimport UTreeNode from './tree-node.vue'\nimport { useCheck } from './use-check'\nimport { useFilter } from './use-filter'\nimport { useSelect } from './use-select'\nimport { useTreeNodes } from './use-tree-nodes'\n\ndefineOptions({
|
|
1
|
+
{"version":3,"file":"tree.js","names":[],"sources":["../../../src/components/tree/tree.vue"],"sourcesContent":["<template>\n <u-scroll\n :class=\"className\"\n ref=\"scrollRef\"\n :content-class=\"[cls.e('wrap'), bem.is('virtual', virtualEnabled)]\"\n >\n <template v-if=\"virtualEnabled\">\n <UTreeNode\n v-for=\"{ node, key, offset, index } of virtualNodes\"\n :node=\"node\"\n :key=\"key\"\n :class=\"bem.is('selected', node.data === selectedData)\"\n :index=\"index\"\n :measure-element=\"measureElement\"\n :style=\"{ transform: `translateY(${offset}px)` }\"\n />\n </template>\n <template v-else>\n <UTreeNode\n v-for=\"node of nodes\"\n :node=\"node\"\n :key=\"node.key\"\n :class=\"bem.is('selected', node.data === selectedData)\"\n />\n </template>\n\n <div :class=\"cls.e('empty')\" v-if=\"!nodes.length\">\n <UEmpty />\n </div>\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps, useVirtualizer } from '@veltra/compositions'\nimport { bem, nextFrame, scrollIntoContainerView } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed, provide, shallowRef, useSlots, watch, watchEffect, type VNode } from 'vue'\n\nimport type { TreeProps, TreeEmit, _TreeExposed } from '../../types'\nimport type { ScrollExposed } from '../../types'\nimport { UEmpty } from '../empty'\nimport { UScroll } from '../scroll'\nimport { TreeDIKey, type TreeConText, type TreeSlotsScope } from './di'\nimport UTreeNode from './tree-node.vue'\nimport { useCheck } from './use-check'\nimport { useFilter } from './use-filter'\nimport { useSelect } from './use-select'\nimport { useTreeNodes } from './use-tree-nodes'\n\ndefineOptions({ name: 'Tree' })\n\nconst props = withDefaults(defineProps<TreeProps>(), {\n labelKey: 'label',\n valueKey: 'value',\n childrenKey: 'children',\n expandOnClickNode: false,\n checkStrictly: false,\n data: () => []\n})\n\nconst emit = defineEmits<TreeEmit>()\n\nconst cls = bem('tree')\n\nconst { formProps } = injectFormContext()\n\nconst { size } = useFormFallbackProps([formProps ?? {}, props], { size: 'default' })\n\nconst scrollRef = shallowRef<ScrollExposed>()\n\nconst className = computed(() => {\n return [\n cls.b,\n cls.m(size.value),\n bem.is('selectable', props.selectable),\n bem.is('checkable', props.checkable)\n ]\n})\n\ndefineSlots<{ default: (props: TreeSlotsScope) => any }>()\n\nconst slots = useSlots()\n\nfunction getTreeSlotsNode(ctx: TreeSlotsScope): VNode[] | string | undefined {\n return (props.slots?.default ?? slots.default)?.(ctx) ?? ctx.node.label\n}\n\nconst { nodes, forest, getFlattedNodes, nodeDict } = useTreeNodes({ props })\n\nwatch(\n [() => props.selectable, () => props.checkable, forest],\n ([s, c]) => {\n // 如果选择或勾选,则不更新节点\n if (s || c) return\n getFlattedNodes()\n },\n { immediate: true }\n)\n\nconst { filter } = useFilter({ forest, getFlattedNodes })\n\nconst { handleSelect, selectedData } = useSelect({ props, emit, nodeDict, getFlattedNodes })\n\nconst { checkedData, toggleCheck } = useCheck({ props, emit, nodeDict, getFlattedNodes })\n\nconst estimateSize = (): number => {\n // 基于 style.scss 中节点稳态高度推算的默认值;\n // 实际高度仍由 `measureElement` 通过 ResizeObserver 回填覆盖。\n switch (size.value) {\n case 'small':\n return 32\n case 'large':\n return 44\n default:\n return 36\n }\n}\n\n// 80 阈值内化为消费者侧语义;低于此值时不启用虚拟化。\nconst virtualEnabled = computed(() => nodes.value.length > 80)\n\nconst { virtualizer, items } = useVirtualizer({\n count: computed(() => nodes.value.length),\n scrollEl: () => scrollRef.value?.containerRef ?? null,\n // 仅在虚拟化启用时把内容容器的 height 撑开到 totalSize;\n // 关闭时传 null,hook 会清除此前写入的内联 height,回到 CSS 默认。\n contentEl: () => (virtualEnabled.value ? (scrollRef.value?.contentRef ?? null) : null),\n estimateSize,\n gap: 2,\n // 以节点稳定 key 作为虚拟项身份,展开 / 收起 / 过滤引起的 nodes 数组变更\n // 保留未移动节点的真实测量值,避免再次滚动首屏抖动。\n getItemKey: (i) => nodes.value[i]?.key ?? i\n})\n\n// 身份稳定性已由底层 `getItemKey` 保证;直接以 `node.key` 作为 Vue 层 key。\n// `item.index` 仅作为 nodes / snapshot 竞态边缘的 fallback。\nconst virtualNodes = computed(() => {\n const _nodes = nodes.value\n return items.value.map((item) => {\n const node = _nodes[item.index]!\n return { node, key: node?.key ?? item.index, offset: item.start, index: item.index }\n })\n})\n\nconst measureElement: (index: number, el: Element | null) => void = (index, el) =>\n virtualizer.measureElement(index, el)\n\nfunction scrollTo(index: number): void {\n virtualizer.scrollToIndex(index, { align: 'center' })\n}\n\nfunction scrollIntoView() {\n const { selectable, checkable, scrollToView } = props\n if (!scrollToView || (!selectable && !checkable) || !nodes.value) return\n let index = -1\n\n if (selectable) {\n if (!selectedData.value) return\n index = nodes.value.findIndex((node) => node.data === selectedData.value)\n } else if (checkable) {\n if (!checkedData.size) return\n index = nodes.value.findIndex((node) => checkedData.has(node.data))\n }\n\n if (virtualEnabled.value) {\n scrollTo(index)\n } else {\n const { contentRef, containerRef } = scrollRef.value ?? {}\n const el = contentRef?.children[index]\n el && scrollIntoContainerView(el as HTMLElement, containerRef ?? null)\n }\n}\n\nwatchEffect(() => {\n nextFrame(() => {\n scrollIntoView()\n })\n})\n\nprovide(TreeDIKey, {\n cls,\n selectedData,\n checkedData,\n getFlattedNodes,\n getTreeSlotsNode,\n treeEmit: emit as TreeEmit,\n treeProps: props as TreeProps,\n toggleCheck: toggleCheck as TreeConText['toggleCheck'],\n handleSelect: handleSelect as TreeConText['handleSelect']\n})\n\ndefineExpose<_TreeExposed>({\n filter,\n forest,\n nodes,\n checkNode: toggleCheck,\n selectNode: handleSelect,\n checkAll(check: boolean) {\n forest.value.roots.forEach((node) => {\n toggleCheck(node, check)\n })\n },\n getSelected() {\n return selectedData\n },\n getChecked() {\n return Array.from(checkedData)\n },\n scrollTo,\n\n expandAll() {\n forest.value.dfs((node) => {\n node.expanded = true\n })\n getFlattedNodes()\n },\n collapseAll() {\n forest.value.dfs((node) => {\n node.expanded = false\n })\n getFlattedNodes()\n }\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -24,15 +24,15 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
24
24
|
onClear?: (() => any) | undefined;
|
|
25
25
|
"onUpdate:text"?: ((text?: string | undefined) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
readonly: boolean;
|
|
27
29
|
expandAll: boolean;
|
|
28
30
|
labelKey: string;
|
|
29
31
|
valueKey: string;
|
|
30
|
-
|
|
31
|
-
readonly: boolean;
|
|
32
|
+
minWidth: string;
|
|
32
33
|
placeholder: string;
|
|
33
34
|
clearable: boolean;
|
|
34
35
|
filterable: boolean;
|
|
35
|
-
minWidth: string;
|
|
36
36
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
37
37
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
38
38
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watermark.js","names":[],"sources":["../../../src/components/watermark/watermark.vue"],"sourcesContent":["<template>\n <Teleport v-if=\"appendToBody\" to=\"body\">\n <div :class=\"cls.b\" ref=\"watermark\" :style=\"{ zIndex: zIndex() }\"></div>\n </Teleport>\n\n <div v-else :class=\"cls.b\" ref=\"watermark\" :style=\"{ zIndex: zIndex() }\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { debounce } from '@cat-kit/core'\nimport { bem, setStyles, zIndex } from '@veltra/utils'\nimport { onBeforeUnmount, onMounted, reactive, useTemplateRef } from 'vue'\n\nimport type { WatermarkProps, WatermarkEmits } from '../../types'\n\ndefineOptions({
|
|
1
|
+
{"version":3,"file":"watermark.js","names":[],"sources":["../../../src/components/watermark/watermark.vue"],"sourcesContent":["<template>\n <Teleport v-if=\"appendToBody\" to=\"body\">\n <div :class=\"cls.b\" ref=\"watermark\" :style=\"{ zIndex: zIndex() }\"></div>\n </Teleport>\n\n <div v-else :class=\"cls.b\" ref=\"watermark\" :style=\"{ zIndex: zIndex() }\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { debounce } from '@cat-kit/core'\nimport { bem, setStyles, zIndex } from '@veltra/utils'\nimport { onBeforeUnmount, onMounted, reactive, useTemplateRef } from 'vue'\n\nimport type { WatermarkProps, WatermarkEmits } from '../../types'\n\ndefineOptions({ name: 'Watermark' })\nconst cls = bem('watermark')\nconst props = withDefaults(defineProps<WatermarkProps>(), { route: -30, fontSize: 60 })\ndefineEmits<WatermarkEmits>()\n\nconst watermarkRef = useTemplateRef('watermark')\n\nconst styles = reactive({ fontColor: 'rgba(0,0,0,.1)', fontFamily: 'Arial', image: props.image })\n\nconst setWatermark = debounce(async () => {\n const str = props.text\n const container = watermarkRef.value\n\n if (!container || !str) return\n\n // 创建canvas\n let canvas: HTMLCanvasElement | null = document.createElement('canvas')\n\n // 创建canvs画布\n let ctx = canvas.getContext('2d')!\n // 字体\n ctx.font = `${props.fontSize}px ${styles.fontFamily}`\n\n const textWidth = ctx.measureText(str).width\n canvas = document.createElement('canvas')\n canvas.width = textWidth\n canvas.height = textWidth\n ctx = canvas.getContext('2d')!\n // 字体\n ctx.font = `${props.fontSize}px ${styles.fontFamily}`\n ctx = canvas.getContext('2d')!\n // 字体颜色\n ctx.fillStyle = styles.fontColor\n // 对齐方式\n ctx.textAlign = 'left'\n // 文本基线\n ctx.textBaseline = 'top'\n\n // 逆时旋转\n ctx.translate(textWidth / 2, textWidth / 2)\n ctx.rotate((props.route * Math.PI) / 180)\n ctx.translate(-textWidth / 2, -textWidth / 2)\n // 编制文字\n ctx.fillText(str, 0, (textWidth - props.fontSize) / 2)\n\n setStyles(container, { background: `url(${canvas.toDataURL('image/png')}) repeat` })\n\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n canvas = null\n}, 150)\n\nwindow.addEventListener('resize', setWatermark)\n\nonBeforeUnmount(() => {\n window.removeEventListener('resize', setWatermark)\n})\n\nonMounted(() => {\n setWatermark()\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;EAkBA,MAAM,MAAM,IAAI,YAAW;EAC3B,MAAM,QAAQ;EAGd,MAAM,eAAe,eAAe,YAAW;EAE/C,MAAM,SAAS,SAAS;GAAE,WAAW;GAAkB,YAAY;GAAS,OAAO,MAAM;GAAO,CAAA;EAEhG,MAAM,eAAe,SAAS,YAAY;GACxC,MAAM,MAAM,MAAM;GAClB,MAAM,YAAY,aAAa;GAE/B,IAAI,CAAC,aAAa,CAAC,KAAK;GAGxB,IAAI,SAAmC,SAAS,cAAc,SAAQ;GAGtE,IAAI,MAAM,OAAO,WAAW,KAAI;GAEhC,IAAI,OAAO,GAAG,MAAM,SAAS,KAAK,OAAO;GAEzC,MAAM,YAAY,IAAI,YAAY,IAAG,CAAE;GACvC,SAAS,SAAS,cAAc,SAAQ;GACxC,OAAO,QAAQ;GACf,OAAO,SAAS;GAChB,MAAM,OAAO,WAAW,KAAI;GAE5B,IAAI,OAAO,GAAG,MAAM,SAAS,KAAK,OAAO;GACzC,MAAM,OAAO,WAAW,KAAI;GAE5B,IAAI,YAAY,OAAO;GAEvB,IAAI,YAAY;GAEhB,IAAI,eAAe;GAGnB,IAAI,UAAU,YAAY,GAAG,YAAY,EAAC;GAC1C,IAAI,OAAQ,MAAM,QAAQ,KAAK,KAAM,IAAG;GACxC,IAAI,UAAU,CAAC,YAAY,GAAG,CAAC,YAAY,EAAC;GAE5C,IAAI,SAAS,KAAK,IAAI,YAAY,MAAM,YAAY,EAAC;GAErD,UAAU,WAAW,EAAE,YAAY,OAAO,OAAO,UAAU,YAAW,CAAE,WAAW,CAAA;GAEnF,IAAI,UAAU,GAAG,GAAG,OAAO,OAAO,OAAO,OAAM;GAC/C,SAAS;KACR,IAAG;EAEN,OAAO,iBAAiB,UAAU,aAAY;EAE9C,sBAAsB;GACpB,OAAO,oBAAoB,UAAU,aAAY;IAClD;EAED,gBAAgB;GACd,cAAa;IACd;;UA3EiB,QAAA,gBAAA,WAAA,EAAhB,YAEW,UAAA;;IAFmB,IAAG;OAC/B,mBAAwE,OAAA;IAAlE,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC;IAAE,KAAI;IAAa,OAAK,eAAA,EAAA,QAAY,MAAA,OAAA,EAAM,EAAA,CAAA;kCAG9D,mBAEM,OAAA;;IAFO,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC;IAAE,KAAI;IAAa,OAAK,eAAA,EAAA,QAAY,MAAA,OAAA,EAAM,EAAA,CAAA;OACjE,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,EAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veltra/desktop",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.27",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"src"
|
|
@@ -68,11 +68,11 @@
|
|
|
68
68
|
"@cat-kit/core": ">=1.1.5",
|
|
69
69
|
"@cat-kit/excel": ">=1.0.0",
|
|
70
70
|
"@cat-kit/fe": "^1.1.5",
|
|
71
|
-
"@veltra/compositions": "1.1.
|
|
72
|
-
"@veltra/directives": "1.1.
|
|
73
|
-
"@veltra/icons": "1.1.
|
|
74
|
-
"@veltra/styles": "1.1.
|
|
75
|
-
"@veltra/utils": "1.1.
|
|
71
|
+
"@veltra/compositions": "1.1.27",
|
|
72
|
+
"@veltra/directives": "1.1.27",
|
|
73
|
+
"@veltra/icons": "1.1.27",
|
|
74
|
+
"@veltra/styles": "1.1.27",
|
|
75
|
+
"@veltra/utils": "1.1.27",
|
|
76
76
|
"vue": ">=3.5.0"
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -42,10 +42,7 @@ import { UButton } from '../button'
|
|
|
42
42
|
import { UPopConfirm } from '../pop-confirm'
|
|
43
43
|
import { ActionDIKey } from './di'
|
|
44
44
|
|
|
45
|
-
defineOptions({
|
|
46
|
-
name: 'Action',
|
|
47
|
-
inheritAttrs: false
|
|
48
|
-
})
|
|
45
|
+
defineOptions({ name: 'Action', inheritAttrs: false })
|
|
49
46
|
|
|
50
47
|
// 这里所有可继承自 `<u-action-group>` 的默认值都强制为 `undefined`,
|
|
51
48
|
// 否则 Vue 对 Boolean 类型 prop 的默认值(false)会让 `??` 兜底始终失效
|
|
@@ -12,19 +12,13 @@ import { computed, nextTick, onMounted, shallowRef, watch } from 'vue'
|
|
|
12
12
|
|
|
13
13
|
import type { BadgeProps, ComponentSize } from '../../types'
|
|
14
14
|
|
|
15
|
-
defineOptions({
|
|
16
|
-
name: 'Badge'
|
|
17
|
-
})
|
|
15
|
+
defineOptions({ name: 'Badge' })
|
|
18
16
|
|
|
19
17
|
const cls = bem('badge')
|
|
20
18
|
|
|
21
|
-
const props = withDefaults(defineProps<BadgeProps>(), {
|
|
22
|
-
max: 99
|
|
23
|
-
})
|
|
19
|
+
const props = withDefaults(defineProps<BadgeProps>(), { max: 99 })
|
|
24
20
|
|
|
25
|
-
const { size } = useFallbackProps([props], {
|
|
26
|
-
size: 'default' as ComponentSize
|
|
27
|
-
})
|
|
21
|
+
const { size } = useFallbackProps([props], { size: 'default' as ComponentSize })
|
|
28
22
|
|
|
29
23
|
const badgeValue = computed(() => {
|
|
30
24
|
if (props.dot) return ''
|
|
@@ -136,11 +136,7 @@ const headerInfo = computed<HeaderInfo>(() => {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
if (state.type === 'create') {
|
|
139
|
-
return {
|
|
140
|
-
icon: Plus,
|
|
141
|
-
title: '新增',
|
|
142
|
-
tone: 'create'
|
|
143
|
-
}
|
|
139
|
+
return { icon: Plus, title: '新增', tone: 'create' }
|
|
144
140
|
}
|
|
145
141
|
return {
|
|
146
142
|
icon: EditPen,
|
|
@@ -87,13 +87,9 @@ import { UButton } from '../button'
|
|
|
87
87
|
import { UTable } from '../table'
|
|
88
88
|
import { BatchEditDIKey } from './di'
|
|
89
89
|
|
|
90
|
-
defineOptions({
|
|
91
|
-
name: 'BatchEditList'
|
|
92
|
-
})
|
|
90
|
+
defineOptions({ name: 'BatchEditList' })
|
|
93
91
|
|
|
94
|
-
defineProps<{
|
|
95
|
-
slots: Slots
|
|
96
|
-
}>()
|
|
92
|
+
defineProps<{ slots: Slots }>()
|
|
97
93
|
|
|
98
94
|
const {
|
|
99
95
|
cls,
|
|
@@ -113,9 +113,7 @@ const slots = defineSlots<
|
|
|
113
113
|
}) => any
|
|
114
114
|
|
|
115
115
|
header?: () => any
|
|
116
|
-
} & Partial<{
|
|
117
|
-
[key: `column:${string}`]: (props: TableColumnSlotsScope) => any
|
|
118
|
-
}>
|
|
116
|
+
} & Partial<{ [key: `column:${string}`]: (props: TableColumnSlotsScope) => any }>
|
|
119
117
|
>()
|
|
120
118
|
|
|
121
119
|
const cls = bem('batch-edit')
|
|
@@ -126,15 +124,7 @@ const editCtx = useEdit({ props, emit, tableRef })
|
|
|
126
124
|
|
|
127
125
|
const { state, handleClose, handleSave, handleDelete, handleCreate } = editCtx
|
|
128
126
|
|
|
129
|
-
provide(BatchEditDIKey, {
|
|
130
|
-
cls,
|
|
131
|
-
props,
|
|
132
|
-
emit,
|
|
133
|
-
tableRef,
|
|
134
|
-
staticFeatures,
|
|
135
|
-
dynamicFeatures,
|
|
136
|
-
...editCtx
|
|
137
|
-
})
|
|
127
|
+
provide(BatchEditDIKey, { cls, props, emit, tableRef, staticFeatures, dynamicFeatures, ...editCtx })
|
|
138
128
|
|
|
139
129
|
const dialogCtx = inject(DialogDIKey, undefined)
|
|
140
130
|
|
|
@@ -47,26 +47,17 @@ import type {
|
|
|
47
47
|
ComponentSize
|
|
48
48
|
} from '../../types'
|
|
49
49
|
|
|
50
|
-
defineOptions({
|
|
51
|
-
name: 'Breadcrumb'
|
|
52
|
-
})
|
|
50
|
+
defineOptions({ name: 'Breadcrumb' })
|
|
53
51
|
|
|
54
|
-
const props = withDefaults(defineProps<BreadcrumbProps>(), {
|
|
55
|
-
lastLinked: false
|
|
56
|
-
})
|
|
52
|
+
const props = withDefaults(defineProps<BreadcrumbProps>(), { lastLinked: false })
|
|
57
53
|
|
|
58
54
|
const emit = defineEmits<BreadcrumbEmits>()
|
|
59
55
|
|
|
60
|
-
defineSlots<{
|
|
61
|
-
item?: (scope: BreadcrumbSlotScope) => unknown
|
|
62
|
-
separator?: () => unknown
|
|
63
|
-
}>()
|
|
56
|
+
defineSlots<{ item?: (scope: BreadcrumbSlotScope) => unknown; separator?: () => unknown }>()
|
|
64
57
|
|
|
65
58
|
const cls = bem('breadcrumb')
|
|
66
59
|
|
|
67
|
-
const { size } = useFallbackProps([props], {
|
|
68
|
-
size: 'default' as ComponentSize
|
|
69
|
-
})
|
|
60
|
+
const { size } = useFallbackProps([props], { size: 'default' as ComponentSize })
|
|
70
61
|
|
|
71
62
|
const isLast = (index: number) => index === props.items.length - 1
|
|
72
63
|
|
|
@@ -9,15 +9,11 @@ import { bem } from '@veltra/utils'
|
|
|
9
9
|
|
|
10
10
|
import type { ButtonProps } from '../../types'
|
|
11
11
|
|
|
12
|
-
defineOptions({
|
|
13
|
-
name: 'ButtonGroup'
|
|
14
|
-
})
|
|
12
|
+
defineOptions({ name: 'ButtonGroup' })
|
|
15
13
|
|
|
16
14
|
const props = defineProps<ButtonProps>()
|
|
17
15
|
|
|
18
16
|
const cls = bem('button-group')
|
|
19
17
|
|
|
20
|
-
defineSlots<{
|
|
21
|
-
default: (props: { props: ButtonProps }) => any
|
|
22
|
-
}>()
|
|
18
|
+
defineSlots<{ default: (props: { props: ButtonProps }) => any }>()
|
|
23
19
|
</script>
|
|
@@ -36,9 +36,7 @@ import { computed, shallowRef } from 'vue'
|
|
|
36
36
|
import type { ButtonEmits, ButtonProps, _ButtonExposed, ComponentSize } from '../../types'
|
|
37
37
|
import { UIcon } from '../icon'
|
|
38
38
|
|
|
39
|
-
defineOptions({
|
|
40
|
-
name: 'Button'
|
|
41
|
-
})
|
|
39
|
+
defineOptions({ name: 'Button' })
|
|
42
40
|
|
|
43
41
|
const props = withDefaults(defineProps<ButtonProps>(), {
|
|
44
42
|
iconPosition: 'left',
|
|
@@ -47,9 +45,7 @@ const props = withDefaults(defineProps<ButtonProps>(), {
|
|
|
47
45
|
propagate: true
|
|
48
46
|
})
|
|
49
47
|
|
|
50
|
-
const { size } = useFallbackProps([props], {
|
|
51
|
-
size: 'default' as ComponentSize
|
|
52
|
-
})
|
|
48
|
+
const { size } = useFallbackProps([props], { size: 'default' as ComponentSize })
|
|
53
49
|
|
|
54
50
|
const emit = defineEmits<ButtonEmits>()
|
|
55
51
|
|
|
@@ -89,9 +85,7 @@ const handleClick = (e: MouseEvent) => {
|
|
|
89
85
|
|
|
90
86
|
const buttonRef = shallowRef<HTMLButtonElement>()
|
|
91
87
|
|
|
92
|
-
const exposed: _ButtonExposed = {
|
|
93
|
-
el: buttonRef
|
|
94
|
-
}
|
|
88
|
+
const exposed: _ButtonExposed = { el: buttonRef }
|
|
95
89
|
|
|
96
90
|
defineExpose(exposed)
|
|
97
91
|
</script>
|
|
@@ -15,9 +15,7 @@ defineOptions({ name: 'CardAction' })
|
|
|
15
15
|
const props = defineProps<CardActionProps>()
|
|
16
16
|
|
|
17
17
|
const style = computed<CSSProperties>(() => {
|
|
18
|
-
return {
|
|
19
|
-
textAlign: props.alignRight ? 'right' : undefined
|
|
20
|
-
}
|
|
18
|
+
return { textAlign: props.alignRight ? 'right' : undefined }
|
|
21
19
|
})
|
|
22
20
|
|
|
23
21
|
const injected = inject(CardDIKey)
|
|
@@ -15,12 +15,7 @@ defineOptions({ name: 'CardContent' })
|
|
|
15
15
|
const props = defineProps<CardContentProps>()
|
|
16
16
|
|
|
17
17
|
const style = computed<CSSProperties | undefined>(() => {
|
|
18
|
-
return props.cover
|
|
19
|
-
? {
|
|
20
|
-
padding: 0,
|
|
21
|
-
fontSize: 0
|
|
22
|
-
}
|
|
23
|
-
: undefined
|
|
18
|
+
return props.cover ? { padding: 0, fontSize: 0 } : undefined
|
|
24
19
|
})
|
|
25
20
|
|
|
26
21
|
const injected = inject(CardDIKey)
|
|
@@ -12,9 +12,7 @@ import { computed, provide } from 'vue'
|
|
|
12
12
|
import type { CardProps } from '../../types'
|
|
13
13
|
import { CardDIKey } from './di'
|
|
14
14
|
|
|
15
|
-
defineOptions({
|
|
16
|
-
name: 'Card'
|
|
17
|
-
})
|
|
15
|
+
defineOptions({ name: 'Card' })
|
|
18
16
|
|
|
19
17
|
const props = defineProps<CardProps>()
|
|
20
18
|
|
|
@@ -27,9 +25,7 @@ const classList = computed(() => {
|
|
|
27
25
|
})
|
|
28
26
|
|
|
29
27
|
const styles = computed(() => {
|
|
30
|
-
return {
|
|
31
|
-
width: withUnit(props.width, 'px')
|
|
32
|
-
}
|
|
28
|
+
return { width: withUnit(props.width, 'px') }
|
|
33
29
|
})
|
|
34
30
|
|
|
35
31
|
provide(CardDIKey, { cls, cardProps: props })
|
|
@@ -41,15 +41,9 @@ import { UIcon } from '../icon'
|
|
|
41
41
|
import { UScroll } from '../scroll'
|
|
42
42
|
import { CascadeDIKey } from './di'
|
|
43
43
|
|
|
44
|
-
defineOptions({
|
|
45
|
-
name: 'UCascadePanelItem'
|
|
46
|
-
})
|
|
44
|
+
defineOptions({ name: 'UCascadePanelItem' })
|
|
47
45
|
|
|
48
|
-
const props = defineProps<{
|
|
49
|
-
data: CascadeNode[]
|
|
50
|
-
value?: string
|
|
51
|
-
panelIndex: number
|
|
52
|
-
}>()
|
|
46
|
+
const props = defineProps<{ data: CascadeNode[]; value?: string; panelIndex: number }>()
|
|
53
47
|
|
|
54
48
|
const emit = defineEmits<{
|
|
55
49
|
(e: 'click', panelIndex: number, item: CascadeNode): void
|
|
@@ -124,9 +124,7 @@ import { useCheck } from './use-check'
|
|
|
124
124
|
import { useDataMap } from './use-data-map'
|
|
125
125
|
import { useSelect } from './use-select'
|
|
126
126
|
|
|
127
|
-
defineOptions({
|
|
128
|
-
name: 'Cascade'
|
|
129
|
-
})
|
|
127
|
+
defineOptions({ name: 'Cascade' })
|
|
130
128
|
|
|
131
129
|
const props = withDefaults(defineProps<CascadeProps>(), {
|
|
132
130
|
labelKey: 'label',
|
|
@@ -162,14 +160,7 @@ const forest = computed(() => {
|
|
|
162
160
|
childrenKey: props.childrenKey,
|
|
163
161
|
createNode: (data, index, depth, _forest, parent) => {
|
|
164
162
|
if (!data) {
|
|
165
|
-
return new CascadeNode({
|
|
166
|
-
data,
|
|
167
|
-
index,
|
|
168
|
-
depth,
|
|
169
|
-
value: '',
|
|
170
|
-
label: '',
|
|
171
|
-
parent
|
|
172
|
-
})
|
|
163
|
+
return new CascadeNode({ data, index, depth, value: '', label: '', parent })
|
|
173
164
|
}
|
|
174
165
|
|
|
175
166
|
return new CascadeNode({
|
|
@@ -196,26 +187,10 @@ const {
|
|
|
196
187
|
getPanelItemList,
|
|
197
188
|
createPanelItem,
|
|
198
189
|
selectedNodeKeys
|
|
199
|
-
} = useSelect({
|
|
200
|
-
props,
|
|
201
|
-
emit,
|
|
202
|
-
dataMap,
|
|
203
|
-
forest,
|
|
204
|
-
isUserActive,
|
|
205
|
-
dropdownRef
|
|
206
|
-
})
|
|
190
|
+
} = useSelect({ props, emit, dataMap, forest, isUserActive, dropdownRef })
|
|
207
191
|
|
|
208
192
|
const { hovered, tags, restTag, updateMultipleValue, handleCloseTag, checkItem, checkedSet } =
|
|
209
|
-
useCheck({
|
|
210
|
-
props,
|
|
211
|
-
forest,
|
|
212
|
-
getPanelItemList,
|
|
213
|
-
emit,
|
|
214
|
-
dataMap,
|
|
215
|
-
isUserActive,
|
|
216
|
-
disabled,
|
|
217
|
-
readonly
|
|
218
|
-
})
|
|
193
|
+
useCheck({ props, forest, getPanelItemList, emit, dataMap, isUserActive, disabled, readonly })
|
|
219
194
|
|
|
220
195
|
const commitSingleSelect = userAction((item: CascadeNode) => {
|
|
221
196
|
if (!props.strict) {
|
|
@@ -282,12 +257,5 @@ watch([qs, forest], ([qs, forest]) => {
|
|
|
282
257
|
panelItemList.value = [createPanelItem(forest.roots)]
|
|
283
258
|
})
|
|
284
259
|
|
|
285
|
-
provide(CascadeDIKey, {
|
|
286
|
-
cls,
|
|
287
|
-
size,
|
|
288
|
-
disabled,
|
|
289
|
-
readonly,
|
|
290
|
-
cascadeProps: props,
|
|
291
|
-
checkedSet
|
|
292
|
-
})
|
|
260
|
+
provide(CascadeDIKey, { cls, size, disabled, readonly, cascadeProps: props, checkedSet })
|
|
293
261
|
</script>
|
|
@@ -21,9 +21,7 @@ import { computed } from 'vue'
|
|
|
21
21
|
import type { CheckboxButtonProps, CheckboxButtonEmits } from '../../types'
|
|
22
22
|
import { UTag } from '../tag'
|
|
23
23
|
|
|
24
|
-
defineOptions({
|
|
25
|
-
name: 'CheckboxButton'
|
|
26
|
-
})
|
|
24
|
+
defineOptions({ name: 'CheckboxButton' })
|
|
27
25
|
|
|
28
26
|
const props = withDefaults(defineProps<CheckboxButtonProps>(), {
|
|
29
27
|
disabled: undefined,
|
|
@@ -34,9 +32,7 @@ const props = withDefaults(defineProps<CheckboxButtonProps>(), {
|
|
|
34
32
|
|
|
35
33
|
const emit = defineEmits<CheckboxButtonEmits>()
|
|
36
34
|
|
|
37
|
-
const slot = defineSlots<{
|
|
38
|
-
default(): any
|
|
39
|
-
}>()
|
|
35
|
+
const slot = defineSlots<{ default(): any }>()
|
|
40
36
|
|
|
41
37
|
const cls = bem('checkbox-button')
|
|
42
38
|
|
|
@@ -25,9 +25,7 @@ import { computed } from 'vue'
|
|
|
25
25
|
|
|
26
26
|
import type { CheckboxProps, CheckboxEmits } from '../../types'
|
|
27
27
|
|
|
28
|
-
defineOptions({
|
|
29
|
-
name: 'Checkbox'
|
|
30
|
-
})
|
|
28
|
+
defineOptions({ name: 'Checkbox' })
|
|
31
29
|
const props = withDefaults(defineProps<CheckboxProps>(), {
|
|
32
30
|
disabled: undefined,
|
|
33
31
|
readonly: undefined
|
|
@@ -34,9 +34,7 @@ import type { CheckboxGroupProps, CheckboxGroupEmits } from '../../types'
|
|
|
34
34
|
import { UCheckbox } from '../checkbox'
|
|
35
35
|
import { UTag } from '../tag'
|
|
36
36
|
|
|
37
|
-
defineOptions({
|
|
38
|
-
name: 'CheckboxGroup'
|
|
39
|
-
})
|
|
37
|
+
defineOptions({ name: 'CheckboxGroup' })
|
|
40
38
|
|
|
41
39
|
const props = withDefaults(defineProps<CheckboxGroupProps>(), {
|
|
42
40
|
labelKey: 'label',
|
|
@@ -144,9 +144,7 @@ function buildExtensions(): Extension[] {
|
|
|
144
144
|
return [
|
|
145
145
|
basicSetup,
|
|
146
146
|
tooltips({ parent: document.body }),
|
|
147
|
-
EditorView.theme({
|
|
148
|
-
'.cm-tooltip': { zIndex: zIndex() }
|
|
149
|
-
}),
|
|
147
|
+
EditorView.theme({ '.cm-tooltip': { zIndex: zIndex() } }),
|
|
150
148
|
themeCompartment.of(props.dark ? oneDark : []),
|
|
151
149
|
editableCompartment.of(EditorView.editable.of(!disabled.value)),
|
|
152
150
|
readOnlyCompartment.of(EditorState.readOnly.of(readonly.value)),
|
|
@@ -218,22 +216,16 @@ watch(() => props.language, applyLanguage)
|
|
|
218
216
|
watch(
|
|
219
217
|
() => props.dark,
|
|
220
218
|
(dark) => {
|
|
221
|
-
editor.value?.dispatch({
|
|
222
|
-
effects: themeCompartment.reconfigure(dark ? oneDark : [])
|
|
223
|
-
})
|
|
219
|
+
editor.value?.dispatch({ effects: themeCompartment.reconfigure(dark ? oneDark : []) })
|
|
224
220
|
}
|
|
225
221
|
)
|
|
226
222
|
|
|
227
223
|
watch(disabled, (v) => {
|
|
228
|
-
editor.value?.dispatch({
|
|
229
|
-
effects: editableCompartment.reconfigure(EditorView.editable.of(!v))
|
|
230
|
-
})
|
|
224
|
+
editor.value?.dispatch({ effects: editableCompartment.reconfigure(EditorView.editable.of(!v)) })
|
|
231
225
|
})
|
|
232
226
|
|
|
233
227
|
watch(readonly, (v) => {
|
|
234
|
-
editor.value?.dispatch({
|
|
235
|
-
effects: readOnlyCompartment.reconfigure(EditorState.readOnly.of(v))
|
|
236
|
-
})
|
|
228
|
+
editor.value?.dispatch({ effects: readOnlyCompartment.reconfigure(EditorState.readOnly.of(v)) })
|
|
237
229
|
})
|
|
238
230
|
|
|
239
231
|
watch(() => props.defaultLines, syncPhantomLineNumbers)
|