@veltra/desktop 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/action/action-group.js +3 -110
- package/dist/components/action/action-group.js.map +1 -1
- package/dist/components/action/action-group.vue.d.ts +4 -13
- package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js +105 -0
- package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/action/action.js +5 -1
- package/dist/components/action/action.js.map +1 -1
- package/dist/components/action/action.vue.d.ts +2 -2
- package/dist/components/action/di.js.map +1 -1
- package/dist/components/action/style2.css +17 -14
- package/dist/components/auto-complete/auto-complete.js +1 -1
- package/dist/components/badge/badge.js +1 -1
- package/dist/components/batch-edit/batch-edit-form.js +105 -100
- package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
- package/dist/components/batch-edit/batch-edit-list.js +52 -68
- package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
- package/dist/components/batch-edit/batch-edit.js +0 -1
- package/dist/components/batch-edit/batch-edit.js.map +1 -1
- package/dist/components/batch-edit/style.js +1 -0
- package/dist/components/batch-edit/style2.css +13 -89
- package/dist/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/components/button/button.js +1 -1
- package/dist/components/card/card.js +1 -1
- package/dist/components/cascade/cascade-panel-item.js +4 -4
- package/dist/components/cascade/cascade.js +2 -2
- package/dist/components/cascade/cascade.vue.d.ts +2 -2
- package/dist/components/checkbox/checkbox-button.js +1 -1
- package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
- package/dist/components/checkbox/checkbox.js +1 -1
- package/dist/components/checkbox-group/checkbox-group.js +1 -1
- package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
- package/dist/components/code-editor/code-editor.js +1 -1
- package/dist/components/collapse/collapse.js +1 -1
- package/dist/components/condition-editor/components/condition-group.js +152 -0
- package/dist/components/condition-editor/components/condition-group.js.map +1 -0
- package/dist/components/condition-editor/components/condition-row.js +217 -0
- package/dist/components/condition-editor/components/condition-row.js.map +1 -0
- package/dist/components/condition-editor/condition-editor.js +134 -5
- package/dist/components/condition-editor/condition-editor.js.map +1 -1
- package/dist/components/condition-editor/condition-editor.vue.d.ts +10 -2
- package/dist/components/condition-editor/core/evaluator.js +75 -0
- package/dist/components/condition-editor/core/evaluator.js.map +1 -0
- package/dist/components/condition-editor/core/operators.js +123 -0
- package/dist/components/condition-editor/core/operators.js.map +1 -0
- package/dist/components/condition-editor/style.js +7 -0
- package/dist/components/condition-editor/style2.css +186 -0
- package/dist/components/context-menu/context-menu.js +1 -1
- package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
- package/dist/components/date-picker/date-picker.js +2 -2
- package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +2 -2
- package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
- package/dist/components/dialog/dialog.js +7 -7
- package/dist/components/dialog/style2.css +8 -0
- package/dist/components/dialog/use-maximum.js +1 -1
- package/dist/components/drawer/style2.css +8 -0
- package/dist/components/dropdown/dropdown.js +1 -1
- package/dist/components/expression-editor/components/variable-picker.js +8 -8
- package/dist/components/expression-editor/expression-editor.js +1 -1
- package/dist/components/file-viewer/file-viewer.js +13 -13
- package/dist/components/form-item/form-item.js.map +1 -1
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/grid-input/grid-input.js +1 -1
- package/dist/components/group-input/group-input.js +1 -1
- package/dist/components/index.d.ts +9 -8
- package/dist/components/index.js +130 -128
- package/dist/components/index.js.map +1 -1
- package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/kbd/index.d.ts +1 -0
- package/dist/components/kbd/kbd.js +17 -0
- package/dist/components/kbd/kbd.js.map +1 -0
- package/dist/components/kbd/kbd.vue.d.ts +18 -0
- package/dist/components/kbd/style.d.ts +1 -0
- package/dist/components/kbd/style.js +1 -0
- package/dist/components/kbd/style2.css +43 -0
- package/dist/components/layout/layout-resizer.js +1 -1
- package/dist/components/layout/layout.js +1 -1
- package/dist/components/list/list.js +1 -1
- package/dist/components/loading/loading.js +1 -1
- package/dist/components/menu/menu-sub-collapsed.js +4 -4
- package/dist/components/menu/menu.js +1 -1
- package/dist/components/message/message.js +1 -1
- package/dist/components/message-confirm/message-confirm.js +1 -1
- package/dist/components/multi-select/multi-select.js +15 -15
- package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
- package/dist/components/multi-tree-select/multi-tree-select.js +8 -8
- package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +3 -3
- package/dist/components/notification/notification.js +1 -1
- package/dist/components/number/number.vue.d.ts +1 -1
- package/dist/components/number-input/number-input.js +2 -2
- package/dist/components/number-range-input/number-range-input.js +1 -1
- package/dist/components/paginator/paginator.js +6 -6
- package/dist/components/paginator/style.js +1 -1
- package/dist/components/palette/palette.js +1 -1
- package/dist/components/password-input/password-input.js +2 -2
- package/dist/components/pop-confirm/pop-confirm.js +1 -1
- package/dist/components/progress-nodes/progress-nodes.js +1 -1
- package/dist/components/radio/radio.js +1 -1
- package/dist/components/radio-group/radio-group.js +1 -1
- package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
- package/dist/components/rich-text-editor/rich-text-editor.js +1 -1
- package/dist/components/scroll/scroll-bar.js +1 -1
- package/dist/components/scroll/scroll.js +1 -1
- package/dist/components/select/select.js +10 -10
- package/dist/components/select/select.vue.d.ts +2 -2
- package/dist/components/slider/slider.js +1 -1
- package/dist/components/steps/steps.js +2 -2
- package/dist/components/switch/switch.js +1 -1
- package/dist/components/table/style2.css +4 -1
- package/dist/components/table/table.js +2 -3
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/use-columns.js +1 -1
- package/dist/components/table/use-fixed-columns.js +8 -31
- package/dist/components/table/use-fixed-columns.js.map +1 -1
- package/dist/components/table-editor/table-editor.js +1 -2
- package/dist/components/table-editor/table-editor.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.js +1 -1
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +1 -1
- package/dist/components/tabs/tabs-vertical.js +1 -1
- package/dist/components/tabs/tabs.js +1 -1
- package/dist/components/tabs/tabs.vue.d.ts +1 -1
- package/dist/components/tag/tag.js +1 -1
- package/dist/components/textarea/textarea.js +1 -1
- package/dist/components/theme/style.js +1 -1
- package/dist/components/theme/theme.js +11 -11
- package/dist/components/tip/tip.js +1 -1
- package/dist/components/tree/tree-node.js +1 -1
- package/dist/components/tree/tree.js +5 -5
- package/dist/components/tree-select/tree-select.js +6 -6
- package/dist/components/tree-select/tree-select.vue.d.ts +3 -3
- package/dist/index.d.ts +48 -47
- package/dist/index.js +46 -45
- package/dist/style.js +3 -2
- package/dist/types/action.d.ts +5 -11
- package/dist/types/condition-editor.d.ts +41 -8
- package/dist/types/index.d.ts +4 -4
- package/dist/types/table.d.ts +0 -2
- package/package.json +11 -11
- package/src/components/action/action-group.vue +68 -82
- package/src/components/action/action.vue +9 -1
- package/src/components/action/di.ts +2 -1
- package/src/components/action/style.scss +22 -27
- package/src/components/batch-edit/batch-edit-form.vue +73 -70
- package/src/components/batch-edit/batch-edit-list.vue +35 -41
- package/src/components/batch-edit/style.scss +19 -118
- package/src/components/batch-edit/style.ts +1 -0
- package/src/components/condition-editor/components/condition-group.vue +131 -0
- package/src/components/condition-editor/components/condition-row.vue +208 -0
- package/src/components/condition-editor/condition-editor.vue +145 -6
- package/src/components/condition-editor/core/evaluator.ts +93 -0
- package/src/components/condition-editor/core/operators.ts +57 -0
- package/src/components/condition-editor/style.scss +239 -1
- package/src/components/condition-editor/style.ts +7 -0
- package/src/components/dialog/style.scss +13 -0
- package/src/components/drawer/style.scss +13 -0
- package/src/components/form-item/form-item.vue +1 -1
- package/src/components/index.ts +2 -0
- package/src/components/kbd/index.ts +1 -0
- package/src/components/kbd/kbd.vue +13 -0
- package/src/components/kbd/style.scss +37 -0
- package/src/components/kbd/style.ts +1 -0
- package/src/components/table/style.scss +9 -1
- package/src/components/table/table.vue +1 -3
- package/src/components/table/use-fixed-columns.ts +5 -49
- package/src/style.ts +1 -0
- package/src/types/action.ts +6 -11
- package/src/types/condition-editor.ts +39 -7
- package/src/types/table.ts +0 -2
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import _sfc_main$1 from "../
|
|
2
|
-
import _sfc_main$2 from "../
|
|
3
|
-
import _sfc_main$3 from "../
|
|
4
|
-
import _sfc_main$4 from "../
|
|
5
|
-
import _sfc_main$5 from "../dropdown/dropdown.js";
|
|
1
|
+
import _sfc_main$1 from "../icon/icon.js";
|
|
2
|
+
import _sfc_main$2 from "../empty/empty.js";
|
|
3
|
+
import _sfc_main$3 from "../scroll/scroll.js";
|
|
4
|
+
import _sfc_main$4 from "../dropdown/dropdown.js";
|
|
6
5
|
import input_default from "../input/input.js";
|
|
7
|
-
import _sfc_main$6 from "../tag/tag.js";
|
|
8
6
|
import { useOptions } from "../select/use-options.js";
|
|
7
|
+
import _sfc_main$5 from "../checkbox/checkbox.js";
|
|
8
|
+
import _sfc_main$6 from "../tag/tag.js";
|
|
9
9
|
import { MultiSelectDIKey } from "./di.js";
|
|
10
10
|
import _sfc_main$7 from "./multi-select-option.js";
|
|
11
11
|
import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, isRef, mergeModels, mergeProps, normalizeClass, normalizeStyle, openBlock, provide, renderList, renderSlot, shallowReactive, shallowRef, toDisplayString, unref, useModel, vShow, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
|
|
12
|
-
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
13
12
|
import { useFormFallbackProps, useVirtualizer } from "@veltra/compositions";
|
|
14
|
-
import {
|
|
13
|
+
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
15
14
|
import { ArrowDown, Close, Search } from "@veltra/icons/normal";
|
|
15
|
+
import { o } from "@cat-kit/core";
|
|
16
16
|
//#region src/components/multi-select/multi-select.vue
|
|
17
17
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
18
18
|
name: "MultiSelect",
|
|
@@ -271,7 +271,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
271
271
|
checkboxClass: cls.e("checkbox")
|
|
272
272
|
});
|
|
273
273
|
return (_ctx, _cache) => {
|
|
274
|
-
return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$
|
|
274
|
+
return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$4), {
|
|
275
275
|
key: 0,
|
|
276
276
|
trigger: "click",
|
|
277
277
|
ref_key: "dropdownRef",
|
|
@@ -316,14 +316,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
316
316
|
name: "zoom-in",
|
|
317
317
|
mode: "out-in"
|
|
318
318
|
}, {
|
|
319
|
-
default: withCtx(() => [__props.clearable && model.value?.length && hovered.value && !unref(disabled) ? (openBlock(), createBlock(unref(_sfc_main$
|
|
319
|
+
default: withCtx(() => [__props.clearable && model.value?.length && hovered.value && !unref(disabled) ? (openBlock(), createBlock(unref(_sfc_main$1), {
|
|
320
320
|
key: 0,
|
|
321
321
|
class: normalizeClass(unref(cls).e("clear")),
|
|
322
322
|
onClick: withModifiers(handleClear, ["stop"])
|
|
323
323
|
}, {
|
|
324
324
|
default: withCtx(() => [createVNode(unref(Close))]),
|
|
325
325
|
_: 1
|
|
326
|
-
}, 8, ["class"])) : (openBlock(), createBlock(unref(_sfc_main$
|
|
326
|
+
}, 8, ["class"])) : (openBlock(), createBlock(unref(_sfc_main$1), {
|
|
327
327
|
key: 1,
|
|
328
328
|
class: normalizeClass(unref(cls).e("arrow"))
|
|
329
329
|
}, {
|
|
@@ -335,7 +335,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
335
335
|
]),
|
|
336
336
|
content: withCtx(() => [
|
|
337
337
|
createCommentVNode(" 多选栏 "),
|
|
338
|
-
createElementVNode("div", { class: normalizeClass(unref(cls).e("content-header")) }, [createVNode(unref(_sfc_main$
|
|
338
|
+
createElementVNode("div", { class: normalizeClass(unref(cls).e("content-header")) }, [createVNode(unref(_sfc_main$5), {
|
|
339
339
|
"model-value": allChecked.value,
|
|
340
340
|
indeterminate: indeterminate.value,
|
|
341
341
|
"onUpdate:modelValue": handleCheckAll,
|
|
@@ -358,7 +358,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
358
358
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(queryString) ? queryString.value = $event : null),
|
|
359
359
|
onKeydown: withKeys(withModifiers(handleCreateByEnter, ["prevent"]), ["enter"])
|
|
360
360
|
}, {
|
|
361
|
-
suffix: withCtx(() => [createVNode(unref(_sfc_main$
|
|
361
|
+
suffix: withCtx(() => [createVNode(unref(_sfc_main$1), null, {
|
|
362
362
|
default: withCtx(() => [createVNode(unref(Search))]),
|
|
363
363
|
_: 1
|
|
364
364
|
})]),
|
|
@@ -366,7 +366,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
366
366
|
}, 8, ["modelValue", "onKeydown"])], 2)) : createCommentVNode("v-if", true),
|
|
367
367
|
createCommentVNode(" 多选列表 "),
|
|
368
368
|
createCommentVNode("\n 虚拟化启用时内容容器 height 由 useVirtualizer 命令式写入;\n 模板不再绑定 totalSize,避免尺寸变化引起重渲染。\n "),
|
|
369
|
-
options.value.length ? (openBlock(), createBlock(unref(_sfc_main$
|
|
369
|
+
options.value.length ? (openBlock(), createBlock(unref(_sfc_main$3), {
|
|
370
370
|
key: 1,
|
|
371
371
|
tag: "ul",
|
|
372
372
|
class: normalizeClass([unref(cls).e("options")]),
|
|
@@ -422,7 +422,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
422
422
|
}, 8, ["class", "content-class"])) : (openBlock(), createElementBlock("div", {
|
|
423
423
|
key: 2,
|
|
424
424
|
class: normalizeClass(unref(cls).e("empty"))
|
|
425
|
-
}, [createVNode(unref(_sfc_main$
|
|
425
|
+
}, [createVNode(unref(_sfc_main$2))], 2))
|
|
426
426
|
]),
|
|
427
427
|
_: 3
|
|
428
428
|
}, 8, [
|
|
@@ -28,13 +28,13 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
28
28
|
"onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
|
|
29
29
|
onChange?: ((options: Record<string, any>[]) => any) | undefined;
|
|
30
30
|
}>, {
|
|
31
|
-
disabled: boolean;
|
|
32
|
-
readonly: boolean;
|
|
33
31
|
labelKey: string;
|
|
34
32
|
valueKey: string;
|
|
35
|
-
|
|
33
|
+
disabled: boolean;
|
|
34
|
+
readonly: boolean;
|
|
36
35
|
placeholder: string;
|
|
37
36
|
clearable: boolean;
|
|
37
|
+
minWidth: string;
|
|
38
38
|
visibilityLimit: number;
|
|
39
39
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
40
40
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import _sfc_main$1 from "../icon/icon.js";
|
|
2
|
-
import _sfc_main$2 from "../
|
|
3
|
-
import _sfc_main$3 from "../tree/tree.js";
|
|
4
|
-
import _sfc_main$4 from "../dropdown/dropdown.js";
|
|
2
|
+
import _sfc_main$2 from "../dropdown/dropdown.js";
|
|
5
3
|
import input_default from "../input/input.js";
|
|
4
|
+
import _sfc_main$3 from "../checkbox/checkbox.js";
|
|
5
|
+
import _sfc_main$4 from "../tree/tree.js";
|
|
6
6
|
import _sfc_main$5 from "../button/button.js";
|
|
7
7
|
import _sfc_main$6 from "../tag/tag.js";
|
|
8
8
|
import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, openBlock, renderList, shallowRef, toDisplayString, unref, useModel, useSlots, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
|
|
9
|
-
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
10
9
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
11
|
-
import {
|
|
10
|
+
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
12
11
|
import { ArrowDown, Close, Search } from "@veltra/icons/normal";
|
|
12
|
+
import { dfs, o } from "@cat-kit/core";
|
|
13
13
|
//#region src/components/multi-tree-select/multi-tree-select.vue
|
|
14
14
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
15
15
|
name: "MultiTreeSelect",
|
|
@@ -188,7 +188,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
188
188
|
if (!visible) qs.value = "";
|
|
189
189
|
};
|
|
190
190
|
return (_ctx, _cache) => {
|
|
191
|
-
return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$
|
|
191
|
+
return !unref(readonly) ? (openBlock(), createBlock(unref(_sfc_main$2), {
|
|
192
192
|
key: 0,
|
|
193
193
|
class: normalizeClass([
|
|
194
194
|
unref(cls).b,
|
|
@@ -256,7 +256,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
256
256
|
content: withCtx(() => [
|
|
257
257
|
createElementVNode("div", { class: normalizeClass([unref(cls).e("content-header"), unref(cls).m(unref(size))]) }, [
|
|
258
258
|
createCommentVNode(" 全选 "),
|
|
259
|
-
createVNode(unref(_sfc_main$
|
|
259
|
+
createVNode(unref(_sfc_main$3), {
|
|
260
260
|
"model-value": allChecked.value,
|
|
261
261
|
indeterminate: indeterminate.value,
|
|
262
262
|
"onUpdate:modelValue": handleCheckAll
|
|
@@ -290,7 +290,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
290
290
|
_: 1
|
|
291
291
|
}, 8, ["modelValue"])], 2)) : createCommentVNode("v-if", true),
|
|
292
292
|
createCommentVNode(" 菜单列表 "),
|
|
293
|
-
createVNode(unref(_sfc_main$
|
|
293
|
+
createVNode(unref(_sfc_main$4), mergeProps(treeProps.value, {
|
|
294
294
|
checked: model.value,
|
|
295
295
|
"onUpdate:checked": [_cache[1] || (_cache[1] = ($event) => model.value = $event), handleCheck],
|
|
296
296
|
ref_key: "treeRef",
|
|
@@ -22,15 +22,15 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
22
22
|
onClear?: (() => any) | undefined;
|
|
23
23
|
onChange?: ((checked: Record<string, any>[]) => any) | undefined;
|
|
24
24
|
}>, {
|
|
25
|
-
disabled: boolean;
|
|
26
|
-
readonly: boolean;
|
|
27
25
|
expandAll: boolean;
|
|
28
26
|
labelKey: string;
|
|
29
27
|
valueKey: string;
|
|
30
|
-
|
|
28
|
+
disabled: boolean;
|
|
29
|
+
readonly: boolean;
|
|
31
30
|
placeholder: string;
|
|
32
31
|
clearable: boolean;
|
|
33
32
|
filterable: boolean;
|
|
33
|
+
minWidth: string;
|
|
34
34
|
visibilityLimit: number;
|
|
35
35
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
36
36
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import _sfc_main$1 from "../icon/icon.js";
|
|
2
2
|
import _sfc_main$2 from "../button/button.js";
|
|
3
3
|
import { Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, onMounted, openBlock, ref, resolveDynamicComponent, toDisplayString, unref, vShow, withCtx, withDirectives, withModifiers } from "vue";
|
|
4
|
-
import { bem } from "@veltra/utils";
|
|
5
4
|
import { useFallbackProps } from "@veltra/compositions";
|
|
5
|
+
import { bem } from "@veltra/utils";
|
|
6
6
|
import { CircleCheckFilled, CircleClose, Close, InfoFilled, QuestionFilled, WarningFilled } from "@veltra/icons/normal";
|
|
7
7
|
//#region src/components/notification/notification.vue
|
|
8
8
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -3,8 +3,8 @@ import * as _$vue from "vue";
|
|
|
3
3
|
|
|
4
4
|
//#region src/components/number/number.vue.d.ts
|
|
5
5
|
declare const __VLS_export: _$vue.DefineComponent<NumberProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<NumberProps> & Readonly<{}>, {
|
|
6
|
-
duration: number;
|
|
7
6
|
format: "currency" | "percent" | "decimal";
|
|
7
|
+
duration: number;
|
|
8
8
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
9
9
|
declare const _default: typeof __VLS_export;
|
|
10
10
|
//#endregion
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _sfc_main$1 from "../icon/icon.js";
|
|
2
2
|
import input_default from "../input/input.js";
|
|
3
3
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, openBlock, renderSlot, shallowRef, toDisplayString, unref, useModel, useSlots, watch, withCtx, withDirectives, withModifiers } from "vue";
|
|
4
|
-
import { FORM_EMPTY_CONTENT, Tween, bem, injectFormContext } from "@veltra/utils";
|
|
5
4
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
6
|
-
import {
|
|
5
|
+
import { FORM_EMPTY_CONTENT, Tween, bem, injectFormContext } from "@veltra/utils";
|
|
7
6
|
import { ArrowDown, ArrowUp, Close } from "@veltra/icons/normal";
|
|
7
|
+
import { $n, isUndef, n, o } from "@cat-kit/core";
|
|
8
8
|
import { vRipple } from "@veltra/directives";
|
|
9
9
|
//#region src/components/number-input/number-input.vue
|
|
10
10
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main$1 from "../number-input/number-input.js";
|
|
2
2
|
import { Fragment, computed, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, mergeModels, mergeProps, nextTick, normalizeClass, onMounted, openBlock, toDisplayString, unref, useModel, watch } from "vue";
|
|
3
|
-
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
4
3
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
4
|
+
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
5
5
|
import { $n, n, o } from "@cat-kit/core";
|
|
6
6
|
//#region src/components/number-range-input/number-range-input.vue
|
|
7
7
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import _sfc_main$1 from "../icon/icon.js";
|
|
2
|
-
import _sfc_main$2 from "../
|
|
3
|
-
import _sfc_main$3 from "../
|
|
2
|
+
import _sfc_main$2 from "../select/select.js";
|
|
3
|
+
import _sfc_main$3 from "../number-input/number-input.js";
|
|
4
4
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, reactive, renderList, shallowRef, toDisplayString, unref, useModel, withCtx, withDirectives, withKeys } from "vue";
|
|
5
|
-
import { bem } from "@veltra/utils";
|
|
6
5
|
import { useConfig, useFallbackProps } from "@veltra/compositions";
|
|
7
|
-
import {
|
|
6
|
+
import { bem } from "@veltra/utils";
|
|
8
7
|
import { ArrowLeft, ArrowRight, DArrowLeft, DArrowRight } from "@veltra/icons/normal";
|
|
8
|
+
import { n } from "@cat-kit/core";
|
|
9
9
|
import { vRipple } from "@veltra/directives";
|
|
10
10
|
//#region src/components/paginator/paginator.vue
|
|
11
11
|
const _hoisted_1 = { key: 0 };
|
|
@@ -123,7 +123,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
123
123
|
ref: paginatorRef
|
|
124
124
|
}, [
|
|
125
125
|
createElementVNode("div", null, "共 " + toDisplayString(__props.total) + " 条", 1),
|
|
126
|
-
createVNode(unref(_sfc_main$
|
|
126
|
+
createVNode(unref(_sfc_main$2), {
|
|
127
127
|
class: normalizeClass(unref(cls).e("size-select")),
|
|
128
128
|
modelValue: pageSize.value,
|
|
129
129
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => pageSize.value = $event),
|
|
@@ -182,7 +182,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
182
182
|
], 2)) : createCommentVNode("v-if", true),
|
|
183
183
|
createElementVNode("div", { class: normalizeClass(unref(cls).e("jumper")) }, [
|
|
184
184
|
_cache[6] || (_cache[6] = createElementVNode("span", null, "前往", -1)),
|
|
185
|
-
createVNode(unref(_sfc_main$
|
|
185
|
+
createVNode(unref(_sfc_main$3), {
|
|
186
186
|
class: normalizeClass(unref(cls).e("page-input")),
|
|
187
187
|
size: "small",
|
|
188
188
|
min: 1,
|
|
@@ -7,8 +7,8 @@ import _sfc_main$4 from "./palette-hue.js";
|
|
|
7
7
|
import _sfc_main$5 from "./palette-sv.js";
|
|
8
8
|
import { useHSV } from "./use-hsv.js";
|
|
9
9
|
import { computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, openBlock, provide, shallowRef, unref, useModel, useTemplateRef, watch, withCtx } from "vue";
|
|
10
|
-
import { bem, injectFormContext } from "@veltra/utils";
|
|
11
10
|
import { useFormFallbackProps, useUserAction } from "@veltra/compositions";
|
|
11
|
+
import { bem, injectFormContext } from "@veltra/utils";
|
|
12
12
|
//#region src/components/palette/palette.vue
|
|
13
13
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
14
|
name: "Palette",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _sfc_main$1 from "../icon/icon.js";
|
|
2
2
|
import input_default from "../input/input.js";
|
|
3
3
|
import { Transition, computed, createBlock, createSlots, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, openBlock, renderSlot, shallowRef, unref, useModel, useSlots, withCtx } from "vue";
|
|
4
|
-
import { bem, injectFormContext } from "@veltra/utils";
|
|
5
4
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
6
|
-
import {
|
|
5
|
+
import { bem, injectFormContext } from "@veltra/utils";
|
|
7
6
|
import { Hide, View } from "@veltra/icons/normal";
|
|
7
|
+
import { o } from "@cat-kit/core";
|
|
8
8
|
//#region src/components/password-input/password-input.vue
|
|
9
9
|
const passwordChar = "●";
|
|
10
10
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -2,8 +2,8 @@ import _sfc_main$1 from "../icon/icon.js";
|
|
|
2
2
|
import _sfc_main$2 from "../tip/tip.js";
|
|
3
3
|
import _sfc_main$3 from "../button/button.js";
|
|
4
4
|
import { createBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
|
|
5
|
-
import { bem, injectFormContext } from "@veltra/utils";
|
|
6
5
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
6
|
+
import { bem, injectFormContext } from "@veltra/utils";
|
|
7
7
|
import { QuestionFilled } from "@veltra/icons/normal";
|
|
8
8
|
//#region src/components/pop-confirm/pop-confirm.vue
|
|
9
9
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, shallowRef, toDisplayString, toRefs, unref, useTemplateRef, watch } from "vue";
|
|
2
|
-
import { bem } from "@veltra/utils";
|
|
3
2
|
import { useDrag, useResizeObserver } from "@veltra/compositions";
|
|
3
|
+
import { bem } from "@veltra/utils";
|
|
4
4
|
import { o } from "@cat-kit/core";
|
|
5
5
|
//#region src/components/progress-nodes/progress-nodes.vue
|
|
6
6
|
const _hoisted_1 = ["onClick"];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Transition, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderSlot, toDisplayString, unref, useModel, vModelRadio, withCtx, withDirectives } from "vue";
|
|
2
|
-
import { bem, injectFormContext } from "@veltra/utils";
|
|
3
2
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
3
|
+
import { bem, injectFormContext } from "@veltra/utils";
|
|
4
4
|
//#region src/components/radio/radio.vue
|
|
5
5
|
const _hoisted_1 = ["value", "disabled"];
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main$1 from "../radio/radio.js";
|
|
2
2
|
import { Fragment, createBlock, createElementBlock, createTextVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderList, toDisplayString, unref, useModel, withCtx } from "vue";
|
|
3
|
-
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
4
3
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
4
|
+
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
5
5
|
//#region src/components/radio-group/radio-group.vue
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
7
|
name: "RadioGroup",
|
|
@@ -16,10 +16,10 @@ declare const __VLS_export: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {},
|
|
|
16
16
|
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
17
17
|
onChange?: ((item: Record<string, any>) => any) | undefined;
|
|
18
18
|
}>, {
|
|
19
|
-
disabled: boolean;
|
|
20
|
-
readonly: boolean;
|
|
21
19
|
labelKey: string;
|
|
22
20
|
valueKey: string;
|
|
21
|
+
disabled: boolean;
|
|
22
|
+
readonly: boolean;
|
|
23
23
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
24
24
|
declare const _default: typeof __VLS_export;
|
|
25
25
|
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main$1 from "./toolbar.js";
|
|
2
2
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeModels, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, shallowRef, toDisplayString, unref, useModel, useTemplateRef, watch } from "vue";
|
|
3
|
-
import { bem, injectFormContext } from "@veltra/utils";
|
|
4
3
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
4
|
+
import { bem, injectFormContext } from "@veltra/utils";
|
|
5
5
|
import { createEmptyHistoryState, registerHistory } from "@lexical/history";
|
|
6
6
|
import { $generateHtmlFromNodes, $generateNodesFromDOM } from "@lexical/html";
|
|
7
7
|
import { AutoLinkNode, LinkNode } from "@lexical/link";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ScrollDIKey } from "./di.js";
|
|
2
2
|
import { computed, createElementBlock, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, shallowRef, unref, vShow, withDirectives } from "vue";
|
|
3
|
-
import { bem } from "@veltra/utils";
|
|
4
3
|
import { useDrag } from "@veltra/compositions";
|
|
4
|
+
import { bem } from "@veltra/utils";
|
|
5
5
|
//#region src/components/scroll/scroll-bar.vue
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
7
|
name: "ScrollBar",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ScrollDIKey } from "./di.js";
|
|
2
2
|
import _sfc_main$1 from "./scroll-bar.js";
|
|
3
3
|
import { computed, createBlock, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, provide, renderSlot, resolveDynamicComponent, shallowRef, unref, withCtx } from "vue";
|
|
4
|
-
import { bem, withUnit } from "@veltra/utils";
|
|
5
4
|
import { useResizeObserver } from "@veltra/compositions";
|
|
5
|
+
import { bem, withUnit } from "@veltra/utils";
|
|
6
6
|
import { debounce } from "@cat-kit/core";
|
|
7
7
|
//#region src/components/scroll/scroll.vue
|
|
8
8
|
const minSize = 20;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import _sfc_main$1 from "../
|
|
2
|
-
import _sfc_main$2 from "../
|
|
3
|
-
import _sfc_main$3 from "../
|
|
1
|
+
import _sfc_main$1 from "../icon/icon.js";
|
|
2
|
+
import _sfc_main$2 from "../empty/empty.js";
|
|
3
|
+
import _sfc_main$3 from "../scroll/scroll.js";
|
|
4
4
|
import _sfc_main$4 from "../dropdown/dropdown.js";
|
|
5
5
|
import input_default from "../input/input.js";
|
|
6
|
-
import { useOptions } from "./use-options.js";
|
|
7
6
|
import { useKeyboard } from "./use-keyboard.js";
|
|
7
|
+
import { useOptions } from "./use-options.js";
|
|
8
8
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createSlots, createTextVNode, createVNode, defineComponent, isRef, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, shallowRef, toDisplayString, unref, useModel, watch, withCtx, withDirectives } from "vue";
|
|
9
|
-
import { FORM_EMPTY_CONTENT, bem, injectFormContext, scrollIntoContainerView, withUnit } from "@veltra/utils";
|
|
10
9
|
import { useFormFallbackProps, useVirtualizer } from "@veltra/compositions";
|
|
11
|
-
import {
|
|
10
|
+
import { FORM_EMPTY_CONTENT, bem, injectFormContext, scrollIntoContainerView, withUnit } from "@veltra/utils";
|
|
12
11
|
import { ArrowDown, Search } from "@veltra/icons/normal";
|
|
12
|
+
import { o } from "@cat-kit/core";
|
|
13
13
|
import { vFocus } from "@veltra/directives";
|
|
14
14
|
//#region src/components/select/select.vue
|
|
15
15
|
const _hoisted_1 = ["onClick", "data-index"];
|
|
@@ -211,7 +211,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
211
211
|
onKeydown: unref(handleKeydown),
|
|
212
212
|
"native-readonly": ""
|
|
213
213
|
}, createSlots({
|
|
214
|
-
suffix: withCtx(() => [createVNode(unref(_sfc_main$
|
|
214
|
+
suffix: withCtx(() => [createVNode(unref(_sfc_main$1), { class: normalizeClass(unref(cls).e("arrow")) }, {
|
|
215
215
|
default: withCtx(() => [createVNode(unref(ArrowDown))]),
|
|
216
216
|
_: 1
|
|
217
217
|
}, 8, ["class"])]),
|
|
@@ -239,14 +239,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
239
239
|
modelValue: unref(queryString),
|
|
240
240
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(queryString) ? queryString.value = $event : null)
|
|
241
241
|
}, {
|
|
242
|
-
suffix: withCtx(() => [createVNode(unref(_sfc_main$
|
|
242
|
+
suffix: withCtx(() => [createVNode(unref(_sfc_main$1), null, {
|
|
243
243
|
default: withCtx(() => [createVNode(unref(Search))]),
|
|
244
244
|
_: 1
|
|
245
245
|
})]),
|
|
246
246
|
_: 1
|
|
247
247
|
}, 8, ["modelValue"])), [[unref(vFocus)]])], 2)) : createCommentVNode("v-if", true),
|
|
248
248
|
createCommentVNode("\n 单选列表。虚拟化启用时,内容容器 height 由 useVirtualizer 命令式写入;\n 此处 content-style 仅承担 grid 相关样式,避免 height 变化触发模板重渲染。\n "),
|
|
249
|
-
unref(options).length ? (openBlock(), createBlock(unref(_sfc_main$
|
|
249
|
+
unref(options).length ? (openBlock(), createBlock(unref(_sfc_main$3), {
|
|
250
250
|
key: 1,
|
|
251
251
|
tag: "ul",
|
|
252
252
|
class: normalizeClass(unref(cls).e("options")),
|
|
@@ -295,7 +295,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
295
295
|
])) : (openBlock(), createElementBlock("div", {
|
|
296
296
|
key: 2,
|
|
297
297
|
class: normalizeClass(unref(cls).e("empty"))
|
|
298
|
-
}, [createVNode(unref(_sfc_main$
|
|
298
|
+
}, [createVNode(unref(_sfc_main$2))], 2))
|
|
299
299
|
]),
|
|
300
300
|
_: 3
|
|
301
301
|
}, 8, [
|
|
@@ -26,10 +26,10 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
26
26
|
"onUpdate:text"?: ((value: any) => any) | undefined;
|
|
27
27
|
"onUpdate:label"?: ((label?: string | undefined) => any) | undefined;
|
|
28
28
|
}>, {
|
|
29
|
-
disabled: boolean;
|
|
30
|
-
readonly: boolean;
|
|
31
29
|
labelKey: string;
|
|
32
30
|
valueKey: string;
|
|
31
|
+
disabled: boolean;
|
|
32
|
+
readonly: boolean;
|
|
33
33
|
placeholder: string;
|
|
34
34
|
clearable: boolean;
|
|
35
35
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
@@ -2,8 +2,8 @@ import { sliderContextKey } from "./di.js";
|
|
|
2
2
|
import _sfc_main$1 from "./slider-thumb.js";
|
|
3
3
|
import { useSlider } from "./use-slider.js";
|
|
4
4
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, isRef, normalizeClass, normalizeStyle, openBlock, provide, renderList, toDisplayString, unref, watch, withModifiers } from "vue";
|
|
5
|
-
import { bem, injectFormContext } from "@veltra/utils";
|
|
6
5
|
import { useFormFallbackProps, useUserAction } from "@veltra/compositions";
|
|
6
|
+
import { bem, injectFormContext } from "@veltra/utils";
|
|
7
7
|
//#region src/components/slider/slider.vue
|
|
8
8
|
const _hoisted_1 = { key: 1 };
|
|
9
9
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -2,10 +2,10 @@ import _sfc_main$1 from "../icon/icon.js";
|
|
|
2
2
|
import NodeRender from "../node-render/node-render.js";
|
|
3
3
|
import _sfc_main$2 from "../tip/tip.js";
|
|
4
4
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderList, renderSlot, shallowRef, toDisplayString, unref, useSlots, useTemplateRef, watch, withCtx } from "vue";
|
|
5
|
-
import { bem } from "@veltra/utils";
|
|
6
5
|
import { useFallbackProps } from "@veltra/compositions";
|
|
7
|
-
import {
|
|
6
|
+
import { bem } from "@veltra/utils";
|
|
8
7
|
import { Check } from "@veltra/icons/normal";
|
|
8
|
+
import { n, o } from "@cat-kit/core";
|
|
9
9
|
//#region src/components/steps/steps.vue
|
|
10
10
|
const _hoisted_1 = ["onClick"];
|
|
11
11
|
const _hoisted_2 = ["onMouseenter"];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeModels, normalizeClass, openBlock, toDisplayString, unref, useModel, withModifiers } from "vue";
|
|
2
|
-
import { bem, injectFormContext } from "@veltra/utils";
|
|
3
2
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
3
|
+
import { bem, injectFormContext } from "@veltra/utils";
|
|
4
4
|
//#region src/components/switch/switch.vue
|
|
5
5
|
const _hoisted_1 = ["checked", "disabled"];
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
width: 100%;
|
|
20
20
|
position: relative;
|
|
21
21
|
border: 1px solid var(--u-table-border-color);
|
|
22
|
-
border-bottom: none;
|
|
23
22
|
overflow: hidden;
|
|
23
|
+
background-color: var(--u-bg-color-top);
|
|
24
24
|
}
|
|
25
25
|
.u-table--small {
|
|
26
26
|
border-radius: var(--u-radius-small);
|
|
@@ -147,6 +147,9 @@
|
|
|
147
147
|
.u-table__body {
|
|
148
148
|
will-change: transform;
|
|
149
149
|
}
|
|
150
|
+
.u-table__body .u-table__row:last-child .u-table__cell {
|
|
151
|
+
border-bottom: none;
|
|
152
|
+
}
|
|
150
153
|
.u-table__empty {
|
|
151
154
|
position: sticky;
|
|
152
155
|
left: 50%;
|
|
@@ -10,8 +10,8 @@ import { useFixedColumns } from "./use-fixed-columns.js";
|
|
|
10
10
|
import { useRows } from "./use-rows.js";
|
|
11
11
|
import { useTable } from "./use-table.js";
|
|
12
12
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, provide, renderList, renderSlot, shallowRef, toRef, unref, useSlots, useTemplateRef, watch, withCtx } from "vue";
|
|
13
|
-
import { bem, withUnit } from "@veltra/utils";
|
|
14
13
|
import { useFallbackProps, useVirtualizer } from "@veltra/compositions";
|
|
14
|
+
import { bem, withUnit } from "@veltra/utils";
|
|
15
15
|
//#region src/components/table/table.vue
|
|
16
16
|
const _hoisted_1 = {
|
|
17
17
|
key: 0,
|
|
@@ -52,7 +52,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
52
52
|
border: { type: Boolean },
|
|
53
53
|
virtualThreshold: { default: 80 },
|
|
54
54
|
expandable: { type: Boolean },
|
|
55
|
-
virtual: { type: Boolean },
|
|
56
55
|
defaultExpandAll: { type: Boolean },
|
|
57
56
|
textEllipsis: { type: Boolean }
|
|
58
57
|
},
|
|
@@ -96,7 +95,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
96
95
|
cls
|
|
97
96
|
});
|
|
98
97
|
const { leafColumns } = columnConfig;
|
|
99
|
-
const { handleScroll, leftFixed, rightFixed } = useFixedColumns(
|
|
98
|
+
const { handleScroll, leftFixed, rightFixed } = useFixedColumns();
|
|
100
99
|
const { getColumnSlotsNode, getExpandRowSlotsNode, getHeaderSlotsNode, getCellClass, getCellCtx, getHeaderCellClass } = useTable({
|
|
101
100
|
props,
|
|
102
101
|
cls,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","names":[],"sources":["../../../src/components/table/table.vue"],"sourcesContent":["<template>\n <u-scroll\n :class=\"[\n cls.b,\n cls.m(size),\n bem.is('border', border),\n bem.is('all-expanded', allExpanded),\n bem.is('text-ellipsis', textEllipsis)\n ]\"\n ref=\"scrollRef\"\n :content-class=\"cls.e('content')\"\n @scroll=\"handleScroll\"\n >\n <table :class=\"cls.e('wrap')\">\n <colgroup ref=\"colgroupRef\">\n <col\n v-for=\"column of leafColumns\"\n :key=\"column.key\"\n :class=\"column.fixed\"\n :style=\"{\n width: withUnit(column.width, 'px'),\n minWidth: withUnit(column.minWidth, 'px')\n }\"\n />\n </colgroup>\n <UTableHead />\n\n <!--\n 虚拟滚动上占位:替代 tbody transform,避免 table-layout: fixed 下列宽抖动。\n 高度由 useVirtualizer 命令式写入 `style.height`,不经过模板响应式绑定,\n 因此滚动窗口变化不会引起表格模板重渲染。\n -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"beforeSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-body>\n <slot name=\"body\" :columns=\"leafColumns\" :rows=\"rows\" />\n\n <template #empty v-if=\"slots.empty\">\n <slot name=\"empty\" />\n </template>\n </u-table-body>\n\n <!-- 虚拟滚动下占位(高度由 useVirtualizer 命令式写入) -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"afterSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-foot ref=\"tableFoot\">\n <slot name=\"foot\" :columns=\"leafColumns\" :rows=\"rows\" />\n </u-table-foot>\n </table>\n\n <slot name=\"append\" />\n\n <div v-if=\"showResizeLine\" :class=\"cls.e('resize-line')\" ref=\"resizeLineRef\"></div>\n\n <!-- <u-tip v-if=\"textEllipsis\" ref=\"tip\"> </u-tip> -->\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps, useVirtualizer } from '@veltra/compositions'\nimport { bem, withUnit } from '@veltra/utils'\nimport { computed, provide, shallowRef, toRef, useTemplateRef, watch } from 'vue'\n\nimport type {\n TableProps,\n TableEmits,\n _TableExposed,\n TableColumnSlotsScope,\n ComponentSize,\n ScrollExposed,\n TableRowSlotsScope\n} from '../../types'\nimport { UScroll } from '../scroll'\nimport { TableDIKey } from './di'\nimport type { ColumnNode } from './node/col'\nimport type { TableRowNode } from './node/row'\nimport UTableBody from './table-body.vue'\nimport UTableFoot from './table-foot.vue'\n// import { UTip } from '../tip'\nimport UTableHead from './table-head'\nimport { useCheck } from './use-check'\nimport { useColResize } from './use-col-resize'\nimport { useColumns } from './use-columns'\nimport { useFixedColumns } from './use-fixed-columns'\nimport { useRows } from './use-rows'\nimport { useTable } from './use-table'\n\ndefineOptions({ name: 'Table' })\n\nconst props = withDefaults(defineProps<TableProps>(), {\n tree: false,\n stripe: true,\n textOverflow: 'line-break',\n virtualThreshold: 80\n})\nconst emit = defineEmits<TableEmits>()\n\nconst slots = defineSlots<{\n [key: `column:${string}`]: (props: TableColumnSlotsScope) => any\n [key: `header:${string}`]: (props: { column: ColumnNode }) => any\n 'row:expand'?: (props: TableRowSlotsScope) => any\n foot?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n body?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n empty?: () => any\n append?: () => any\n}>()\n\nconst cls = bem('table')\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst scrollRef = shallowRef<ScrollExposed>()\n\n// 占位 tr 的 DOM 句柄;交给 useVirtualizer 直接命令式写 style.height。\nconst beforeSpacerRef = useTemplateRef<HTMLElement>('beforeSpacerRef')\nconst afterSpacerRef = useTemplateRef<HTMLElement>('afterSpacerRef')\n\n// 行(useRows / useFixedColumns 需要 isScrolling,而虚拟化 hook 又依赖 rows.length;\n// 先用中继占位,下方 isScrolling 到位后 watch 回灌)。\nconst isScrollingRelay = shallowRef(false)\n\nconst {\n rows,\n toggleTreeRowExpand,\n allExpanded,\n toggleAllTreeRowExpand,\n rowForest,\n handleRowClick,\n handleCellClick,\n getRowByData\n} = useRows({ props, emit, isScrolling: isScrollingRelay })\n\nconst { createCheckColumn, createSelectColumn, clearChecked, clearSelected, checkedRows } =\n useCheck({ size, props, rows, rowForest, emit, cls })\n\nconst columnConfig = useColumns({\n props,\n createCheckColumn,\n createSelectColumn,\n toggleAllTreeRowExpand,\n cls\n})\n\nconst { leafColumns } = columnConfig\n\nconst { handleScroll, leftFixed, rightFixed } = useFixedColumns({\n isScrolling: isScrollingRelay\n})\n\nconst {\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass\n} = useTable({ props, cls, leftFixed, rightFixed })\n\nconst { showResizeLine, resizeLineRef, colgroupRef } = useColResize({ scrollRef, leafColumns })\n\nconst { virtualizer, items, isScrolling } = useVirtualizer({\n count: computed(() => rows.value.length),\n scrollEl: () => scrollRef.value?.containerRef ?? null,\n beforeEl: beforeSpacerRef,\n afterEl: afterSpacerRef,\n estimateSize: () => 41,\n // 注意:getItemKey 在构造期一次性写入底层 Virtualizer;闭包每次读的是当前 rows.value,\n // rows 引用整体替换后 key 仍有效(无需再 setOptions)。\n getItemKey: (i) => rows.value[i]?.uid ?? i\n})\n\nconst virtualEnabled = computed(() => {\n const t = props.virtualThreshold\n return t ? rows.value.length > t : true\n})\n\n// 把虚拟化 isScrolling 回灌到中继,供 useRows / useFixedColumns 读取。\nwatch(isScrolling, (v) => {\n isScrollingRelay.value = v\n})\n\n/**\n * E1:数据替换时的条件置顶。\n *\n * 旧实现无差别地 `scrollTo({ y: 0 })`,在「行内增删 / 排序 / 单行更新」等\n * 场景会把用户当前阅读位置跳走;仅在「翻页 / 显著数据集替换」时才需要复位。\n *\n * 判定阈值:|Δlen| / max(newLen, oldLen) ≥ 0.5,即行数变化量超过更大侧的一半时视为显著变化。\n * 选择 0.5 是因为典型的分页/搜索场景会带来 50% 以上的行数差(通常完全替换数据集),\n * 而行内追加 / 删除个位数通常只带来 <5% 的变化;两者区分度足够宽。\n */\nconst LENGTH_DELTA_RATIO_TO_RESET_SCROLL = 0.5\n\nwatch(\n () => props.data,\n (next, prev) => {\n const nextLen = next?.length ?? 0\n const prevLen = prev?.length ?? 0\n const denom = Math.max(nextLen, prevLen, 1)\n const ratio = Math.abs(nextLen - prevLen) / denom\n if (ratio >= LENGTH_DELTA_RATIO_TO_RESET_SCROLL) {\n scrollRef.value?.scrollTo({ y: 0 })\n }\n }\n)\n\n// const tipRef = useTemplateRef('tip')\n\nprovide(TableDIKey, {\n tableProps: props,\n tableSlots: slots,\n cls,\n rows,\n checkedRows,\n columnConfig,\n handleRowClick,\n handleCellClick,\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass,\n // tipRef,\n toggleTreeRowExpand,\n virtualList: items,\n virtualEnabled,\n measureElement: (index, el) => virtualizer.measureElement(index, el)\n})\n\nconst tableFootRef = useTemplateRef('tableFoot')\n\ndefineExpose<_TableExposed>({\n el: toRef(() => scrollRef.value?.el),\n clearChecked,\n clearSelected,\n getRowByData,\n getSummaryRow: () => tableFootRef.value!.getSummaryRow()\n})\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","names":[],"sources":["../../../src/components/table/table.vue"],"sourcesContent":["<template>\n <u-scroll\n :class=\"[\n cls.b,\n cls.m(size),\n bem.is('border', border),\n bem.is('all-expanded', allExpanded),\n bem.is('text-ellipsis', textEllipsis)\n ]\"\n ref=\"scrollRef\"\n :content-class=\"cls.e('content')\"\n @scroll=\"handleScroll\"\n >\n <table :class=\"cls.e('wrap')\">\n <colgroup ref=\"colgroupRef\">\n <col\n v-for=\"column of leafColumns\"\n :key=\"column.key\"\n :class=\"column.fixed\"\n :style=\"{\n width: withUnit(column.width, 'px'),\n minWidth: withUnit(column.minWidth, 'px')\n }\"\n />\n </colgroup>\n <UTableHead />\n\n <!--\n 虚拟滚动上占位:替代 tbody transform,避免 table-layout: fixed 下列宽抖动。\n 高度由 useVirtualizer 命令式写入 `style.height`,不经过模板响应式绑定,\n 因此滚动窗口变化不会引起表格模板重渲染。\n -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"beforeSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-body>\n <slot name=\"body\" :columns=\"leafColumns\" :rows=\"rows\" />\n\n <template #empty v-if=\"slots.empty\">\n <slot name=\"empty\" />\n </template>\n </u-table-body>\n\n <!-- 虚拟滚动下占位(高度由 useVirtualizer 命令式写入) -->\n <tbody v-if=\"virtualEnabled\" aria-hidden=\"true\">\n <tr ref=\"afterSpacerRef\">\n <td :colspan=\"leafColumns.length\" style=\"padding: 0; border: none\"></td>\n </tr>\n </tbody>\n\n <u-table-foot ref=\"tableFoot\">\n <slot name=\"foot\" :columns=\"leafColumns\" :rows=\"rows\" />\n </u-table-foot>\n </table>\n\n <slot name=\"append\" />\n\n <div v-if=\"showResizeLine\" :class=\"cls.e('resize-line')\" ref=\"resizeLineRef\"></div>\n\n <!-- <u-tip v-if=\"textEllipsis\" ref=\"tip\"> </u-tip> -->\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps, useVirtualizer } from '@veltra/compositions'\nimport { bem, withUnit } from '@veltra/utils'\nimport { computed, provide, shallowRef, toRef, useTemplateRef, watch } from 'vue'\n\nimport type {\n TableProps,\n TableEmits,\n _TableExposed,\n TableColumnSlotsScope,\n ComponentSize,\n ScrollExposed,\n TableRowSlotsScope\n} from '../../types'\nimport { UScroll } from '../scroll'\nimport { TableDIKey } from './di'\nimport type { ColumnNode } from './node/col'\nimport type { TableRowNode } from './node/row'\nimport UTableBody from './table-body.vue'\nimport UTableFoot from './table-foot.vue'\n// import { UTip } from '../tip'\nimport UTableHead from './table-head'\nimport { useCheck } from './use-check'\nimport { useColResize } from './use-col-resize'\nimport { useColumns } from './use-columns'\nimport { useFixedColumns } from './use-fixed-columns'\nimport { useRows } from './use-rows'\nimport { useTable } from './use-table'\n\ndefineOptions({ name: 'Table' })\n\nconst props = withDefaults(defineProps<TableProps>(), {\n tree: false,\n stripe: true,\n textOverflow: 'line-break',\n virtualThreshold: 80\n})\nconst emit = defineEmits<TableEmits>()\n\nconst slots = defineSlots<{\n [key: `column:${string}`]: (props: TableColumnSlotsScope) => any\n [key: `header:${string}`]: (props: { column: ColumnNode }) => any\n 'row:expand'?: (props: TableRowSlotsScope) => any\n foot?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n body?: (props: { columns: ColumnNode[]; rows: TableRowNode[] }) => any\n empty?: () => any\n append?: () => any\n}>()\n\nconst cls = bem('table')\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst scrollRef = shallowRef<ScrollExposed>()\n\n// 占位 tr 的 DOM 句柄;交给 useVirtualizer 直接命令式写 style.height。\nconst beforeSpacerRef = useTemplateRef<HTMLElement>('beforeSpacerRef')\nconst afterSpacerRef = useTemplateRef<HTMLElement>('afterSpacerRef')\n\n// 行(useRows / useFixedColumns 需要 isScrolling,而虚拟化 hook 又依赖 rows.length;\n// 先用中继占位,下方 isScrolling 到位后 watch 回灌)。\nconst isScrollingRelay = shallowRef(false)\n\nconst {\n rows,\n toggleTreeRowExpand,\n allExpanded,\n toggleAllTreeRowExpand,\n rowForest,\n handleRowClick,\n handleCellClick,\n getRowByData\n} = useRows({ props, emit, isScrolling: isScrollingRelay })\n\nconst { createCheckColumn, createSelectColumn, clearChecked, clearSelected, checkedRows } =\n useCheck({ size, props, rows, rowForest, emit, cls })\n\nconst columnConfig = useColumns({\n props,\n createCheckColumn,\n createSelectColumn,\n toggleAllTreeRowExpand,\n cls\n})\n\nconst { leafColumns } = columnConfig\n\nconst { handleScroll, leftFixed, rightFixed } = useFixedColumns()\n\nconst {\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass\n} = useTable({ props, cls, leftFixed, rightFixed })\n\nconst { showResizeLine, resizeLineRef, colgroupRef } = useColResize({ scrollRef, leafColumns })\n\nconst { virtualizer, items, isScrolling } = useVirtualizer({\n count: computed(() => rows.value.length),\n scrollEl: () => scrollRef.value?.containerRef ?? null,\n beforeEl: beforeSpacerRef,\n afterEl: afterSpacerRef,\n estimateSize: () => 41,\n // 注意:getItemKey 在构造期一次性写入底层 Virtualizer;闭包每次读的是当前 rows.value,\n // rows 引用整体替换后 key 仍有效(无需再 setOptions)。\n getItemKey: (i) => rows.value[i]?.uid ?? i\n})\n\nconst virtualEnabled = computed(() => {\n const t = props.virtualThreshold\n return t ? rows.value.length > t : true\n})\n\n// 把虚拟化 isScrolling 回灌到中继,供 useRows / useFixedColumns 读取。\nwatch(isScrolling, (v) => {\n isScrollingRelay.value = v\n})\n\n/**\n * E1:数据替换时的条件置顶。\n *\n * 旧实现无差别地 `scrollTo({ y: 0 })`,在「行内增删 / 排序 / 单行更新」等\n * 场景会把用户当前阅读位置跳走;仅在「翻页 / 显著数据集替换」时才需要复位。\n *\n * 判定阈值:|Δlen| / max(newLen, oldLen) ≥ 0.5,即行数变化量超过更大侧的一半时视为显著变化。\n * 选择 0.5 是因为典型的分页/搜索场景会带来 50% 以上的行数差(通常完全替换数据集),\n * 而行内追加 / 删除个位数通常只带来 <5% 的变化;两者区分度足够宽。\n */\nconst LENGTH_DELTA_RATIO_TO_RESET_SCROLL = 0.5\n\nwatch(\n () => props.data,\n (next, prev) => {\n const nextLen = next?.length ?? 0\n const prevLen = prev?.length ?? 0\n const denom = Math.max(nextLen, prevLen, 1)\n const ratio = Math.abs(nextLen - prevLen) / denom\n if (ratio >= LENGTH_DELTA_RATIO_TO_RESET_SCROLL) {\n scrollRef.value?.scrollTo({ y: 0 })\n }\n }\n)\n\n// const tipRef = useTemplateRef('tip')\n\nprovide(TableDIKey, {\n tableProps: props,\n tableSlots: slots,\n cls,\n rows,\n checkedRows,\n columnConfig,\n handleRowClick,\n handleCellClick,\n getColumnSlotsNode,\n getExpandRowSlotsNode,\n getHeaderSlotsNode,\n getCellClass,\n getCellCtx,\n getHeaderCellClass,\n // tipRef,\n toggleTreeRowExpand,\n virtualList: items,\n virtualEnabled,\n measureElement: (index, el) => virtualizer.measureElement(index, el)\n})\n\nconst tableFootRef = useTemplateRef('tableFoot')\n\ndefineExpose<_TableExposed>({\n el: toRef(() => scrollRef.value?.el),\n clearChecked,\n clearSelected,\n getRowByData,\n getSummaryRow: () => tableFootRef.value!.getSummaryRow()\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import _sfc_main$1 from "../button/button.js";
|
|
|
3
3
|
import { ColumnNode } from "./node/col.js";
|
|
4
4
|
import { computed, createVNode, shallowRef, watch } from "vue";
|
|
5
5
|
import "@veltra/utils";
|
|
6
|
-
import { Forest, dfs, last } from "@cat-kit/core";
|
|
7
6
|
import { ArrowRight } from "@veltra/icons/normal";
|
|
7
|
+
import { Forest, dfs, last } from "@cat-kit/core";
|
|
8
8
|
//#region src/components/table/use-columns.ts
|
|
9
9
|
/**
|
|
10
10
|
* 定义表格列
|