@veltra/desktop 1.1.20 → 1.1.22
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/collapse/collapse-item.js +1 -2
- package/dist/components/collapse/collapse-item.js.map +1 -1
- package/dist/components/collapse/collapse.js +1 -11
- package/dist/components/collapse/collapse.js.map +1 -1
- package/dist/components/collapse/collapse.vue.d.ts +0 -1
- package/dist/components/collapse/di.js.map +1 -1
- package/dist/components/collapse/style2.css +29 -17
- package/dist/components/file-viewer/previewers/pdf-viewport-scroll.js +2 -6
- package/dist/components/file-viewer/previewers/pdf-viewport-scroll.js.map +1 -1
- package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
- package/dist/components/pop-confirm/pop-confirm.vue.d.ts +1 -1
- package/dist/components/table/node/col.js +2 -2
- package/dist/components/table/node/col.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
- package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
- package/dist/components/tabs/tabs.vue.d.ts +2 -2
- package/dist/components/tip/tip.vue.d.ts +1 -1
- package/dist/types/collapse.d.ts +0 -5
- package/package.json +23 -25
- package/src/components/collapse/collapse-item.vue +1 -2
- package/src/components/collapse/collapse.vue +2 -6
- package/src/components/collapse/di.ts +0 -1
- package/src/components/collapse/style.scss +57 -37
- package/src/components/file-viewer/previewers/pdf-viewport-scroll.vue +1 -6
- package/src/components/table/node/col.ts +2 -2
- package/src/types/collapse.ts +0 -6
|
@@ -28,8 +28,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
28
28
|
const classList = computed(() => [
|
|
29
29
|
cls.e("item"),
|
|
30
30
|
bem.is("active", isActive.value),
|
|
31
|
-
bem.is("disabled", props.disabled)
|
|
32
|
-
bem.is("bordered", context?.bordered.value)
|
|
31
|
+
bem.is("disabled", props.disabled)
|
|
33
32
|
]);
|
|
34
33
|
const headerClassList = computed(() => [
|
|
35
34
|
cls.e("header"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse-item.js","names":[],"sources":["../../../src/components/collapse/collapse-item.vue"],"sourcesContent":["<template>\n <div :class=\"classList\">\n <div\n :class=\"headerClassList\"\n role=\"button\"\n :aria-expanded=\"isActive\"\n :aria-disabled=\"disabled\"\n :tabindex=\"disabled ? -1 : 0\"\n @click=\"handleClick\"\n @keydown.enter.prevent=\"handleClick\"\n @keydown.space.prevent=\"handleClick\"\n >\n <span :class=\"cls.e('title')\">\n <slot name=\"title\">{{ title }}</slot>\n </span>\n\n <span :class=\"cls.e('icon')\">\n <slot name=\"icon\" :is-active=\"isActive\">\n <UIcon><component :is=\"iconComponent\" /></UIcon>\n </slot>\n </span>\n </div>\n <div ref=\"wrapperEl\" :class=\"cls.e('content-wrapper')\" :aria-hidden=\"!isActive\">\n <div :class=\"cls.e('content')\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { computed, inject, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\nimport type { CollapseItemProps } from '../../types'\nimport { UIcon } from '../icon'\nimport { CollapseDIKey } from './di'\n\ndefineOptions({\n name: 'CollapseItem'\n})\n\nconst props = defineProps<CollapseItemProps>()\n\nconst context = inject(CollapseDIKey)!\n\nconst cls = context?.cls ?? bem('collapse')\n\nconst isActive = computed(() => !!context?.activeValues.value.includes(props.value))\n\nconst iconComponent = computed(() => context?.expandIcon.value ?? ArrowRight)\n\nconst classList = computed(() => [\n cls.e('item'),\n bem.is('active', isActive.value),\n bem.is('disabled', props.disabled)
|
|
1
|
+
{"version":3,"file":"collapse-item.js","names":[],"sources":["../../../src/components/collapse/collapse-item.vue"],"sourcesContent":["<template>\n <div :class=\"classList\">\n <div\n :class=\"headerClassList\"\n role=\"button\"\n :aria-expanded=\"isActive\"\n :aria-disabled=\"disabled\"\n :tabindex=\"disabled ? -1 : 0\"\n @click=\"handleClick\"\n @keydown.enter.prevent=\"handleClick\"\n @keydown.space.prevent=\"handleClick\"\n >\n <span :class=\"cls.e('title')\">\n <slot name=\"title\">{{ title }}</slot>\n </span>\n\n <span :class=\"cls.e('icon')\">\n <slot name=\"icon\" :is-active=\"isActive\">\n <UIcon><component :is=\"iconComponent\" /></UIcon>\n </slot>\n </span>\n </div>\n <div ref=\"wrapperEl\" :class=\"cls.e('content-wrapper')\" :aria-hidden=\"!isActive\">\n <div :class=\"cls.e('content')\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { computed, inject, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\nimport type { CollapseItemProps } from '../../types'\nimport { UIcon } from '../icon'\nimport { CollapseDIKey } from './di'\n\ndefineOptions({\n name: 'CollapseItem'\n})\n\nconst props = defineProps<CollapseItemProps>()\n\nconst context = inject(CollapseDIKey)!\n\nconst cls = context?.cls ?? bem('collapse')\n\nconst isActive = computed(() => !!context?.activeValues.value.includes(props.value))\n\nconst iconComponent = computed(() => context?.expandIcon.value ?? ArrowRight)\n\nconst classList = computed(() => [\n cls.e('item'),\n bem.is('active', isActive.value),\n bem.is('disabled', props.disabled)\n])\n\nconst headerClassList = computed(() => [\n cls.e('header'),\n bem.is('disabled', props.disabled),\n bem.is('active', isActive.value)\n])\n\nconst handleClick = () => {\n if (props.disabled) return\n context?.toggle(props.value)\n}\n\nconst wrapperEl = ref<HTMLElement>()\n\nconst { expandTransition } = context\n\nonMounted(() => {\n context?.register(props.value)\n if (!wrapperEl.value) return\n expandTransition.setExpanded(wrapperEl.value, isActive.value)\n})\n\nwatch(isActive, (active) => {\n if (!wrapperEl.value) return\n active ? expandTransition.expand(wrapperEl.value) : expandTransition.collapse(wrapperEl.value)\n})\n\nonBeforeUnmount(() => {\n context?.unregister(props.value)\n if (!wrapperEl.value) return\n expandTransition.cancel(wrapperEl.value)\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EA2CA,MAAM,QAAQ;EAEd,MAAM,UAAU,OAAO,cAAa;EAEpC,MAAM,MAAM,SAAS,OAAO,IAAI,WAAU;EAE1C,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,aAAa,MAAM,SAAS,MAAM,MAAM,CAAA;EAEnF,MAAM,gBAAgB,eAAe,SAAS,WAAW,SAAS,WAAU;EAE5E,MAAM,YAAY,eAAe;GAC/B,IAAI,EAAE,OAAM;GACZ,IAAI,GAAG,UAAU,SAAS,MAAK;GAC/B,IAAI,GAAG,YAAY,MAAM,SAAQ;GAClC,CAAA;EAED,MAAM,kBAAkB,eAAe;GACrC,IAAI,EAAE,SAAQ;GACd,IAAI,GAAG,YAAY,MAAM,SAAQ;GACjC,IAAI,GAAG,UAAU,SAAS,MAAK;GAChC,CAAA;EAED,MAAM,oBAAoB;GACxB,IAAI,MAAM,UAAU;GACpB,SAAS,OAAO,MAAM,MAAK;;EAG7B,MAAM,YAAY,KAAiB;EAEnC,MAAM,EAAE,qBAAqB;EAE7B,gBAAgB;GACd,SAAS,SAAS,MAAM,MAAK;GAC7B,IAAI,CAAC,UAAU,OAAO;GACtB,iBAAiB,YAAY,UAAU,OAAO,SAAS,MAAK;IAC7D;EAED,MAAM,WAAW,WAAW;GAC1B,IAAI,CAAC,UAAU,OAAO;GACtB,SAAS,iBAAiB,OAAO,UAAU,MAAK,GAAI,iBAAiB,SAAS,UAAU,MAAK;IAC9F;EAED,sBAAsB;GACpB,SAAS,WAAW,MAAM,MAAK;GAC/B,IAAI,CAAC,UAAU,OAAO;GACtB,iBAAiB,OAAO,UAAU,MAAK;IACxC;;uBAxFC,mBA0BM,OAAA,EA1BA,OAAK,eAAE,UAAA,MAAS,EAAA,EAAA,CACpB,mBAmBM,OAAA;IAlBH,OAAK,eAAE,gBAAA,MAAe;IACvB,MAAK;IACJ,iBAAe,SAAA;IACf,iBAAe,QAAA;IACf,UAAU,QAAA,WAAQ,KAAA;IAClB,SAAO;IACP,WAAO,CAAA,SAAA,cAAgB,aAAW,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,SAAA,cACX,aAAW,CAAA,UAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA;OAEnC,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,QAAA,CAAA,EAAA,EAAA,CACjB,WAAqC,KAAA,QAAA,SAAA,EAAA,QAAA,CAAA,gBAAA,gBAAf,QAAA,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAG7B,mBAIO,QAAA,EAJA,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,OAAA,CAAA,EAAA,EAAA,CACjB,WAEO,KAAA,QAAA,QAAA,EAFY,UAAW,SAAA,OAAQ,QAE/B,CADL,YAAgD,MAAA,YAAA,EAAA,MAAA;2BAAR,EAAA,WAAA,EAAjC,YAAiC,wBAAjB,cAAA,MAAa,CAAA,EAAA,CAAA;;gCAI1C,mBAIM,OAAA;aAJG;IAAJ,KAAI;IAAa,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,kBAAA,CAAA;IAAsB,eAAW,CAAG,SAAA;OACpE,mBAEM,OAAA,EAFA,OAAK,eAAE,MAAA,IAAA,CAAI,EAAC,UAAA,CAAA,EAAA,EAAA,CAChB,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,EAAA,CAAA,EAAA,IAAA,WAAA,CAAA,EAAA,EAAA"}
|
|
@@ -16,10 +16,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16
16
|
type: Boolean,
|
|
17
17
|
default: false
|
|
18
18
|
},
|
|
19
|
-
bordered: {
|
|
20
|
-
type: Boolean,
|
|
21
|
-
default: false
|
|
22
|
-
},
|
|
23
19
|
expandIcon: {},
|
|
24
20
|
size: {}
|
|
25
21
|
},
|
|
@@ -31,12 +27,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
31
27
|
const expandTransition = new ExpandTransition({ transition: "height 0.24s cubic-bezier(0.4, 0, 0.2, 1)" });
|
|
32
28
|
const { size } = useFormFallbackProps([props], { size: "default" });
|
|
33
29
|
const expandIcon = computed(() => props.expandIcon);
|
|
34
|
-
const
|
|
35
|
-
const classList = computed(() => [
|
|
36
|
-
cls.b,
|
|
37
|
-
cls.m(size.value),
|
|
38
|
-
bem.is("bordered", bordered.value)
|
|
39
|
-
]);
|
|
30
|
+
const classList = computed(() => [cls.b, cls.m(size.value)]);
|
|
40
31
|
const modelValue = useModel$1({
|
|
41
32
|
props,
|
|
42
33
|
emit,
|
|
@@ -82,7 +73,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
82
73
|
provide(CollapseDIKey, {
|
|
83
74
|
cls,
|
|
84
75
|
size,
|
|
85
|
-
bordered,
|
|
86
76
|
expandIcon,
|
|
87
77
|
activeValues,
|
|
88
78
|
toggle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse.js","names":[],"sources":["../../../src/components/collapse/collapse.vue"],"sourcesContent":["<template>\n <div :class=\"classList\" role=\"region\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps, useModel } from '@veltra/compositions'\nimport { bem, ExpandTransition } from '@veltra/utils'\nimport { computed, provide, ref } from 'vue'\n\nimport type { CollapseEmits, CollapseModelValue, CollapseProps, CollapseValue } from '../../types'\nimport { CollapseDIKey } from './di'\n\ndefineOptions({\n name: 'Collapse'\n})\n\nconst props = withDefaults(defineProps<CollapseProps>(), {\n accordion: false,\n defaultCollapseAll: false
|
|
1
|
+
{"version":3,"file":"collapse.js","names":[],"sources":["../../../src/components/collapse/collapse.vue"],"sourcesContent":["<template>\n <div :class=\"classList\" role=\"region\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps, useModel } from '@veltra/compositions'\nimport { bem, ExpandTransition } from '@veltra/utils'\nimport { computed, provide, ref } from 'vue'\n\nimport type { CollapseEmits, CollapseModelValue, CollapseProps, CollapseValue } from '../../types'\nimport { CollapseDIKey } from './di'\n\ndefineOptions({\n name: 'Collapse'\n})\n\nconst props = withDefaults(defineProps<CollapseProps>(), {\n accordion: false,\n defaultCollapseAll: false\n})\nconst emit = defineEmits<CollapseEmits>()\n\nconst cls = bem('collapse')\n\nconst expandTransition = new ExpandTransition({\n transition: 'height 0.24s cubic-bezier(0.4, 0, 0.2, 1)'\n})\n\nconst { size } = useFormFallbackProps([props], { size: 'default' })\n\nconst expandIcon = computed(() => props.expandIcon)\n\nconst classList = computed(() => [cls.b, cls.m(size.value)])\n\nconst modelValue = useModel<CollapseProps, 'modelValue'>({\n props,\n emit,\n propName: 'modelValue'\n})\n\nconst activeValues = computed<CollapseValue[]>(() => {\n const v = modelValue.value\n if (v === undefined || v === null) return []\n return Array.isArray(v) ? v : [v]\n})\n\nconst update = (next: CollapseModelValue) => {\n modelValue.value = next\n emit('change', next)\n}\n\nconst toggle = (value: CollapseValue) => {\n if (props.accordion) {\n update(activeValues.value[0] === value ? [] : value)\n return\n }\n\n const values = activeValues.value.slice()\n const index = values.indexOf(value)\n if (index > -1) values.splice(index, 1)\n else values.push(value)\n update(values)\n}\n\n// 收集子组件已注册的 values\nconst registeredValues = ref<CollapseValue[]>([])\n\n// 初始捕获 modelValue 是否具有有效初值\nconst hasInitialValue =\n modelValue.value !== undefined &&\n modelValue.value !== null &&\n (!Array.isArray(modelValue.value) || modelValue.value.length > 0)\n\nconst register = (value: CollapseValue) => {\n if (!registeredValues.value.includes(value)) {\n registeredValues.value.push(value)\n\n // 若默认展开全部(defaultCollapseAll 为 false)且外部未指定初始值,则自动展开该子项\n if (!props.defaultCollapseAll && !hasInitialValue) {\n if (props.accordion) {\n if (registeredValues.value.length === 1) {\n update(value)\n }\n } else {\n const current = Array.isArray(modelValue.value)\n ? modelValue.value\n : modelValue.value !== undefined && modelValue.value !== null\n ? [modelValue.value]\n : []\n if (!current.includes(value)) {\n update([...current, value])\n }\n }\n }\n }\n}\n\nconst unregister = (value: CollapseValue) => {\n const idx = registeredValues.value.indexOf(value)\n if (idx > -1) {\n registeredValues.value.splice(idx, 1)\n }\n}\n\nprovide(CollapseDIKey, {\n cls,\n size,\n expandIcon,\n activeValues,\n toggle,\n expandTransition,\n register,\n unregister\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAkBA,MAAM,QAAQ;EAId,MAAM,OAAO;EAEb,MAAM,MAAM,IAAI,WAAU;EAE1B,MAAM,mBAAmB,IAAI,iBAAiB,EAC5C,YAAY,6CACb,CAAA;EAED,MAAM,EAAE,SAAS,qBAAqB,CAAC,MAAK,EAAG,EAAE,MAAM,WAAW,CAAA;EAElE,MAAM,aAAa,eAAe,MAAM,WAAU;EAElD,MAAM,YAAY,eAAe,CAAC,IAAI,GAAG,IAAI,EAAE,KAAK,MAAM,CAAC,CAAA;EAE3D,MAAM,aAAa,WAAsC;GACvD;GACA;GACA,UAAU;GACX,CAAA;EAED,MAAM,eAAe,eAAgC;GACnD,MAAM,IAAI,WAAW;GACrB,IAAI,MAAM,KAAA,KAAa,MAAM,MAAM,OAAO,EAAC;GAC3C,OAAO,MAAM,QAAQ,EAAC,GAAI,IAAI,CAAC,EAAC;IACjC;EAED,MAAM,UAAU,SAA6B;GAC3C,WAAW,QAAQ;GACnB,KAAK,UAAU,KAAI;;EAGrB,MAAM,UAAU,UAAyB;GACvC,IAAI,MAAM,WAAW;IACnB,OAAO,aAAa,MAAM,OAAO,QAAQ,EAAC,GAAI,MAAK;IACnD;;GAGF,MAAM,SAAS,aAAa,MAAM,OAAM;GACxC,MAAM,QAAQ,OAAO,QAAQ,MAAK;GAClC,IAAI,QAAQ,IAAI,OAAO,OAAO,OAAO,EAAC;QACjC,OAAO,KAAK,MAAK;GACtB,OAAO,OAAM;;EAIf,MAAM,mBAAmB,IAAqB,EAAE,CAAA;EAGhD,MAAM,kBACJ,WAAW,UAAU,KAAA,KACrB,WAAW,UAAU,SACpB,CAAC,MAAM,QAAQ,WAAW,MAAK,IAAK,WAAW,MAAM,SAAS;EAEjE,MAAM,YAAY,UAAyB;GACzC,IAAI,CAAC,iBAAiB,MAAM,SAAS,MAAK,EAAG;IAC3C,iBAAiB,MAAM,KAAK,MAAK;IAGjC,IAAI,CAAC,MAAM,sBAAsB,CAAC,iBAChC,IAAI,MAAM;SACJ,iBAAiB,MAAM,WAAW,GACpC,OAAO,MAAK;WAET;KACL,MAAM,UAAU,MAAM,QAAQ,WAAW,MAAK,GAC1C,WAAW,QACX,WAAW,UAAU,KAAA,KAAa,WAAW,UAAU,OACrD,CAAC,WAAW,MAAK,GACjB,EAAC;KACP,IAAI,CAAC,QAAQ,SAAS,MAAK,EACzB,OAAO,CAAC,GAAG,SAAS,MAAM,CAAA;;;;EAOpC,MAAM,cAAc,UAAyB;GAC3C,MAAM,MAAM,iBAAiB,MAAM,QAAQ,MAAK;GAChD,IAAI,MAAM,IACR,iBAAiB,MAAM,OAAO,KAAK,EAAC;;EAIxC,QAAQ,eAAe;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAA;;uBAlHC,mBAEM,OAAA;IAFA,OAAK,eAAE,UAAA,MAAS;IAAE,MAAK;OAC3B,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,EAAA"}
|
|
@@ -15,7 +15,6 @@ declare const __VLS_base: _$vue.DefineComponent<CollapseProps, {}, {}, {}, {}, _
|
|
|
15
15
|
}>, {
|
|
16
16
|
accordion: boolean;
|
|
17
17
|
defaultCollapseAll: boolean;
|
|
18
|
-
bordered: boolean;
|
|
19
18
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
20
19
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
21
20
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.js","names":[],"sources":["../../../src/components/collapse/di.ts"],"sourcesContent":["import { type BEM, type ComponentSize, ExpandTransition } from '@veltra/utils'\nimport type { Component, ComputedRef, InjectionKey } from 'vue'\n\nimport type { CollapseValue } from '../../types'\n\nexport interface CollapseContext {\n cls: BEM<'collapse'>\n size: ComputedRef<ComponentSize>\n
|
|
1
|
+
{"version":3,"file":"di.js","names":[],"sources":["../../../src/components/collapse/di.ts"],"sourcesContent":["import { type BEM, type ComponentSize, ExpandTransition } from '@veltra/utils'\nimport type { Component, ComputedRef, InjectionKey } from 'vue'\n\nimport type { CollapseValue } from '../../types'\n\nexport interface CollapseContext {\n cls: BEM<'collapse'>\n size: ComputedRef<ComponentSize>\n expandIcon: ComputedRef<Component | undefined>\n activeValues: ComputedRef<CollapseValue[]>\n toggle: (value: CollapseValue) => void\n expandTransition: ExpandTransition\n register: (value: CollapseValue) => void\n unregister: (value: CollapseValue) => void\n}\n\nexport const CollapseDIKey: InjectionKey<CollapseContext> = Symbol('Collapse')\n"],"mappings":";;AAgBA,MAAa,gBAA+C,OAAO,WAAW"}
|
|
@@ -22,18 +22,36 @@
|
|
|
22
22
|
background-color: transparent;
|
|
23
23
|
}
|
|
24
24
|
.u-collapse__item {
|
|
25
|
+
position: relative;
|
|
25
26
|
border-radius: calc(var(--u-radius-default) + 2px);
|
|
26
|
-
|
|
27
|
+
overflow: hidden;
|
|
28
|
+
background-color: var(--u-collapse-item-bg, color-mix(in srgb, var(--u-bg-color-hover) 72%, var(--u-bg-color-top)));
|
|
27
29
|
transition: background-color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
|
|
28
30
|
}
|
|
31
|
+
.u-collapse__item::before {
|
|
32
|
+
content: "";
|
|
33
|
+
position: absolute;
|
|
34
|
+
top: 0;
|
|
35
|
+
bottom: 0;
|
|
36
|
+
left: 0;
|
|
37
|
+
width: 3px;
|
|
38
|
+
background-color: var(--u-color-primary);
|
|
39
|
+
opacity: 0;
|
|
40
|
+
pointer-events: none;
|
|
41
|
+
transition: opacity 0.18s cubic-bezier(0.4, 0, 0.2, 1);
|
|
42
|
+
z-index: 1;
|
|
43
|
+
}
|
|
29
44
|
.u-collapse__item + .u-collapse__item {
|
|
30
45
|
margin-top: var(--u-gap-default);
|
|
31
46
|
}
|
|
32
47
|
.u-collapse__item:not(.is-disabled):hover {
|
|
33
|
-
background-color: color-mix(in srgb, var(--u-
|
|
48
|
+
background-color: var(--u-collapse-item-hover-bg, color-mix(in srgb, var(--u-color-primary) 4%, var(--u-collapse-item-bg, color-mix(in srgb, var(--u-bg-color-hover) 72%, var(--u-bg-color-top)))));
|
|
34
49
|
}
|
|
35
50
|
.u-collapse__item.is-active {
|
|
36
|
-
background-color: color-mix(in srgb, var(--u-
|
|
51
|
+
background-color: var(--u-collapse-item-active-bg, color-mix(in srgb, var(--u-color-primary) 5%, var(--u-collapse-item-bg, color-mix(in srgb, var(--u-bg-color-hover) 72%, var(--u-bg-color-top)))));
|
|
52
|
+
}
|
|
53
|
+
.u-collapse__item.is-active::before {
|
|
54
|
+
opacity: 1;
|
|
37
55
|
}
|
|
38
56
|
.u-collapse__item.is-disabled {
|
|
39
57
|
opacity: 0.55;
|
|
@@ -61,10 +79,14 @@
|
|
|
61
79
|
}
|
|
62
80
|
.u-collapse__header.is-active {
|
|
63
81
|
font-weight: 600;
|
|
82
|
+
color: var(--u-collapse-active-title-color, var(--u-color-primary));
|
|
83
|
+
background-color: var(--u-collapse-header-active-bg, color-mix(in srgb, var(--u-color-primary) 8%, var(--u-collapse-item-bg, color-mix(in srgb, var(--u-bg-color-hover) 72%, var(--u-bg-color-top)))));
|
|
84
|
+
border-bottom-right-radius: 0;
|
|
85
|
+
border-bottom-left-radius: 0;
|
|
64
86
|
}
|
|
65
87
|
.u-collapse__header.is-active .u-collapse__icon {
|
|
66
88
|
transform: rotate(90deg);
|
|
67
|
-
color: var(--u-
|
|
89
|
+
color: var(--u-collapse-active-title-color, var(--u-color-primary));
|
|
68
90
|
}
|
|
69
91
|
.u-collapse__title {
|
|
70
92
|
flex: 1 1 auto;
|
|
@@ -83,6 +105,9 @@
|
|
|
83
105
|
.u-collapse__content-wrapper {
|
|
84
106
|
overflow: hidden;
|
|
85
107
|
height: 0;
|
|
108
|
+
border-bottom-right-radius: inherit;
|
|
109
|
+
border-bottom-left-radius: inherit;
|
|
110
|
+
background-color: var(--u-collapse-content-bg, color-mix(in srgb, var(--u-collapse-item-active-bg, color-mix(in srgb, var(--u-color-primary) 5%, var(--u-collapse-item-bg, color-mix(in srgb, var(--u-bg-color-hover) 72%, var(--u-bg-color-top))))) 42%, var(--u-bg-color-top)));
|
|
86
111
|
transition: height 0.24s cubic-bezier(0.4, 0, 0.2, 1);
|
|
87
112
|
}
|
|
88
113
|
.u-collapse__content {
|
|
@@ -140,16 +165,3 @@
|
|
|
140
165
|
.u-collapse--large .u-collapse__item + .u-collapse__item {
|
|
141
166
|
margin-top: var(--u-gap-large);
|
|
142
167
|
}
|
|
143
|
-
.u-collapse.is-bordered .u-collapse__item {
|
|
144
|
-
background-color: transparent;
|
|
145
|
-
border: 1px solid var(--u-border-color);
|
|
146
|
-
}
|
|
147
|
-
.u-collapse.is-bordered .u-collapse__item:hover, .u-collapse.is-bordered .u-collapse__item.is-active {
|
|
148
|
-
background-color: transparent;
|
|
149
|
-
}
|
|
150
|
-
.u-collapse.is-bordered .u-collapse__header {
|
|
151
|
-
border-radius: 0;
|
|
152
|
-
}
|
|
153
|
-
.u-collapse.is-bordered .u-collapse__header.is-active {
|
|
154
|
-
border-bottom: 1px solid var(--u-border-color);
|
|
155
|
-
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Fragment, computed, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, onBeforeUnmount, openBlock, renderSlot, unref, watch, withCtx } from "vue";
|
|
1
|
+
import { computed, defineComponent, inject, onBeforeUnmount, renderSlot, watch } from "vue";
|
|
3
2
|
//#region src/components/file-viewer/previewers/pdf-viewport-scroll.vue
|
|
4
3
|
const VIEWPORT_ELEMENT_KEY = "viewport-element";
|
|
5
4
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -70,10 +69,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
70
69
|
detachPan = void 0;
|
|
71
70
|
});
|
|
72
71
|
return (_ctx, _cache) => {
|
|
73
|
-
return
|
|
74
|
-
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
75
|
-
_: 3
|
|
76
|
-
})], 2112);
|
|
72
|
+
return renderSlot(_ctx.$slots, "default");
|
|
77
73
|
};
|
|
78
74
|
}
|
|
79
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-viewport-scroll.js","names":[],"sources":["../../../../src/components/file-viewer/previewers/pdf-viewport-scroll.vue"],"sourcesContent":["<template>\n
|
|
1
|
+
{"version":3,"file":"pdf-viewport-scroll.js","names":[],"sources":["../../../../src/components/file-viewer/previewers/pdf-viewport-scroll.vue"],"sourcesContent":["<template>\n <slot />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, type Ref, watch } from 'vue'\n\ndefineOptions({ name: 'FileViewerPdfViewportScroll' })\n\n/** EmbedPDF Viewport 向子树注入的滚动容器 ref */\nconst VIEWPORT_ELEMENT_KEY = 'viewport-element'\n\nconst viewportRef = inject<Ref<HTMLDivElement | null>>(VIEWPORT_ELEMENT_KEY)\nconst viewportEl = computed(() => viewportRef?.value ?? null)\n\nlet panState:\n | {\n pointerId: number\n startX: number\n startY: number\n scrollLeft: number\n scrollTop: number\n }\n | undefined\n\nfunction isInteractiveTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false\n return !!target.closest(\n 'button, a, input, textarea, select, video, [contenteditable=\"true\"], .u-scroll__bar-x, .u-scroll__bar-y'\n )\n}\n\nfunction handlePointerDown(e: PointerEvent) {\n if (e.button !== 0 || isInteractiveTarget(e.target)) return\n\n const el = viewportEl.value\n if (!el) return\n\n panState = {\n pointerId: e.pointerId,\n startX: e.clientX,\n startY: e.clientY,\n scrollLeft: el.scrollLeft,\n scrollTop: el.scrollTop\n }\n el.classList.add('is-panning')\n el.setPointerCapture(e.pointerId)\n e.preventDefault()\n}\n\nfunction handlePointerMove(e: PointerEvent) {\n if (!panState || panState.pointerId !== e.pointerId) return\n\n const el = viewportEl.value\n if (!el) return\n\n el.scrollLeft = panState.scrollLeft - (e.clientX - panState.startX)\n el.scrollTop = panState.scrollTop - (e.clientY - panState.startY)\n}\n\nfunction endPan(e: PointerEvent) {\n if (!panState || panState.pointerId !== e.pointerId) return\n\n const el = viewportEl.value\n if (el?.hasPointerCapture(e.pointerId)) {\n el.releasePointerCapture(e.pointerId)\n }\n el?.classList.remove('is-panning')\n panState = undefined\n}\n\nlet detachPan: (() => void) | undefined\n\nwatch(\n viewportEl,\n (el, _, onCleanup) => {\n detachPan?.()\n detachPan = undefined\n if (!el) return\n\n el.addEventListener('pointerdown', handlePointerDown, { capture: true })\n el.addEventListener('pointermove', handlePointerMove, { capture: true })\n el.addEventListener('pointerup', endPan, { capture: true })\n el.addEventListener('pointercancel', endPan, { capture: true })\n\n detachPan = () => {\n el.removeEventListener('pointerdown', handlePointerDown, { capture: true })\n el.removeEventListener('pointermove', handlePointerMove, { capture: true })\n el.removeEventListener('pointerup', endPan, { capture: true })\n el.removeEventListener('pointercancel', endPan, { capture: true })\n el.classList.remove('is-panning')\n panState = undefined\n }\n\n onCleanup(() => {\n detachPan?.()\n detachPan = undefined\n })\n },\n { immediate: true }\n)\n\nonBeforeUnmount(() => {\n detachPan?.()\n detachPan = undefined\n})\n</script>\n"],"mappings":";;AAUA,MAAM,uBAAuB;;;;;;EAE7B,MAAM,cAAc,OAAmC,qBAAoB;EAC3E,MAAM,aAAa,eAAe,aAAa,SAAS,KAAI;EAE5D,IAAI;EAUJ,SAAS,oBAAoB,QAAqC;GAChE,IAAI,EAAE,kBAAkB,cAAc,OAAO;GAC7C,OAAO,CAAC,CAAC,OAAO,QACd,4GACF;;EAGF,SAAS,kBAAkB,GAAiB;GAC1C,IAAI,EAAE,WAAW,KAAK,oBAAoB,EAAE,OAAM,EAAG;GAErD,MAAM,KAAK,WAAW;GACtB,IAAI,CAAC,IAAI;GAET,WAAW;IACT,WAAW,EAAE;IACb,QAAQ,EAAE;IACV,QAAQ,EAAE;IACV,YAAY,GAAG;IACf,WAAW,GAAG;IAChB;GACA,GAAG,UAAU,IAAI,aAAY;GAC7B,GAAG,kBAAkB,EAAE,UAAS;GAChC,EAAE,gBAAe;;EAGnB,SAAS,kBAAkB,GAAiB;GAC1C,IAAI,CAAC,YAAY,SAAS,cAAc,EAAE,WAAW;GAErD,MAAM,KAAK,WAAW;GACtB,IAAI,CAAC,IAAI;GAET,GAAG,aAAa,SAAS,cAAc,EAAE,UAAU,SAAS;GAC5D,GAAG,YAAY,SAAS,aAAa,EAAE,UAAU,SAAS;;EAG5D,SAAS,OAAO,GAAiB;GAC/B,IAAI,CAAC,YAAY,SAAS,cAAc,EAAE,WAAW;GAErD,MAAM,KAAK,WAAW;GACtB,IAAI,IAAI,kBAAkB,EAAE,UAAS,EACnC,GAAG,sBAAsB,EAAE,UAAS;GAEtC,IAAI,UAAU,OAAO,aAAY;GACjC,WAAW,KAAA;;EAGb,IAAI;EAEJ,MACE,aACC,IAAI,GAAG,cAAc;GACpB,aAAY;GACZ,YAAY,KAAA;GACZ,IAAI,CAAC,IAAI;GAET,GAAG,iBAAiB,eAAe,mBAAmB,EAAE,SAAS,MAAM,CAAA;GACvE,GAAG,iBAAiB,eAAe,mBAAmB,EAAE,SAAS,MAAM,CAAA;GACvE,GAAG,iBAAiB,aAAa,QAAQ,EAAE,SAAS,MAAM,CAAA;GAC1D,GAAG,iBAAiB,iBAAiB,QAAQ,EAAE,SAAS,MAAM,CAAA;GAE9D,kBAAkB;IAChB,GAAG,oBAAoB,eAAe,mBAAmB,EAAE,SAAS,MAAM,CAAA;IAC1E,GAAG,oBAAoB,eAAe,mBAAmB,EAAE,SAAS,MAAM,CAAA;IAC1E,GAAG,oBAAoB,aAAa,QAAQ,EAAE,SAAS,MAAM,CAAA;IAC7D,GAAG,oBAAoB,iBAAiB,QAAQ,EAAE,SAAS,MAAM,CAAA;IACjE,GAAG,UAAU,OAAO,aAAY;IAChC,WAAW,KAAA;;GAGb,gBAAgB;IACd,aAAY;IACZ,YAAY,KAAA;KACb;KAEH,EAAE,WAAW,MACf,CAAA;EAEA,sBAAsB;GACpB,aAAY;GACZ,YAAY,KAAA;IACb;;UAxGC,WAAQ,KAAA,QAAA,UAAA"}
|
|
@@ -27,9 +27,9 @@ declare const __VLS_export: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {},
|
|
|
27
27
|
disabled: boolean;
|
|
28
28
|
readonly: boolean;
|
|
29
29
|
clearable: boolean;
|
|
30
|
+
separator: string;
|
|
30
31
|
startPlaceholder: string;
|
|
31
32
|
endPlaceholder: string;
|
|
32
|
-
separator: string;
|
|
33
33
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
34
34
|
declare const _default: typeof __VLS_export;
|
|
35
35
|
//#endregion
|
|
@@ -14,8 +14,8 @@ declare const __VLS_base: _$vue.DefineComponent<PopConfirmProps, {}, {}, {}, {},
|
|
|
14
14
|
onConfirm?: (() => any) | undefined;
|
|
15
15
|
onCancel?: (() => any) | undefined;
|
|
16
16
|
}>, {
|
|
17
|
-
trigger: "hover" | "click";
|
|
18
17
|
direction: TipDirection;
|
|
18
|
+
trigger: "hover" | "click";
|
|
19
19
|
icon: _$vue.Component;
|
|
20
20
|
iconColor: string;
|
|
21
21
|
confirmText: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { reactive, shallowReactive } from "vue";
|
|
1
|
+
import { isReactive, reactive, shallowReactive } from "vue";
|
|
2
2
|
import { TreeNode } from "@cat-kit/core";
|
|
3
3
|
//#region src/components/table/node/col.ts
|
|
4
4
|
var ColumnNode = class extends TreeNode {
|
|
@@ -76,7 +76,7 @@ var ColumnNode = class extends TreeNode {
|
|
|
76
76
|
}
|
|
77
77
|
style = reactive({});
|
|
78
78
|
constructor(val, index, depth, parent) {
|
|
79
|
-
super(val ?
|
|
79
|
+
super(isReactive(val) ? val : shallowReactive(val), index, depth, parent);
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
82
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"col.js","names":[],"sources":["../../../../src/components/table/node/col.ts"],"sourcesContent":["import { TreeNode } from '@cat-kit/core'\nimport { reactive, shallowReactive } from 'vue'\n\nimport type { TableColumn, TableColumnAlign } from '../../../types'\n\nexport class ColumnNode extends TreeNode<TableColumn, ColumnNode> {\n declare children?: ColumnNode[] | undefined\n declare parent?: ColumnNode\n /** 叶子节点数量 */\n leafs?: number\n\n nextNode: ColumnNode | null = null\n\n /** 列key */\n get key(): string {\n return this.data.key\n }\n set key(val) {\n this.data.key = val\n }\n /** 列名 */\n get name(): string {\n return this.data.name\n }\n set name(val) {\n this.data.name = val\n }\n\n /**\n * 列对齐方式\n * @default 'left'\n */\n get align(): TableColumnAlign {\n return this.data.align ?? 'left'\n }\n set align(val) {\n this.data.align = val\n }\n\n get headerAlign(): TableColumnAlign {\n return this.data.headerAlign ?? this.align\n }\n set headerAlign(val) {\n this.data.headerAlign = val\n }\n\n /** 宽度 */\n get width(): number | undefined {\n const { width } = this.data\n if (!width || (this.minWidth && width && width < this.minWidth)) {\n return this.minWidth\n }\n return width\n }\n set width(val) {\n if (this.minWidth && val && val < this.minWidth) {\n val = this.minWidth\n }\n this.data.width = val\n }\n /** 最小宽度 */\n get minWidth(): number | undefined {\n const minWidth = this.data.minWidth\n if (!minWidth && this.isLeaf) {\n return 100\n }\n return minWidth\n }\n set minWidth(val) {\n this.data.minWidth = val\n }\n\n /** 列固定方向 */\n get fixed(): 'left' | 'right' | undefined {\n if (this.depth > 0) return\n return this.data.fixed\n }\n set fixed(val) {\n this.data.fixed = val\n }\n\n /** 是否是左侧的最后一个固定列 */\n get isLastFixed(): boolean {\n return this.data.isLastFixed ?? false\n }\n\n /** 是否是右侧的第一个固定列 */\n get isFirstFixed(): boolean {\n return this.data.isFirstFixed ?? false\n }\n\n /** 是否是可调整宽度的列 */\n get resizable(): boolean {\n return this.data.resizable ?? true\n }\n\n style: Record<string, number> = reactive({})\n\n constructor(val: TableColumn, index: number, depth: number, parent?: ColumnNode) {\n super(val ?
|
|
1
|
+
{"version":3,"file":"col.js","names":[],"sources":["../../../../src/components/table/node/col.ts"],"sourcesContent":["import { TreeNode } from '@cat-kit/core'\nimport { isReactive, reactive, shallowReactive } from 'vue'\n\nimport type { TableColumn, TableColumnAlign } from '../../../types'\n\nexport class ColumnNode extends TreeNode<TableColumn, ColumnNode> {\n declare children?: ColumnNode[] | undefined\n declare parent?: ColumnNode\n /** 叶子节点数量 */\n leafs?: number\n\n nextNode: ColumnNode | null = null\n\n /** 列key */\n get key(): string {\n return this.data.key\n }\n set key(val) {\n this.data.key = val\n }\n /** 列名 */\n get name(): string {\n return this.data.name\n }\n set name(val) {\n this.data.name = val\n }\n\n /**\n * 列对齐方式\n * @default 'left'\n */\n get align(): TableColumnAlign {\n return this.data.align ?? 'left'\n }\n set align(val) {\n this.data.align = val\n }\n\n get headerAlign(): TableColumnAlign {\n return this.data.headerAlign ?? this.align\n }\n set headerAlign(val) {\n this.data.headerAlign = val\n }\n\n /** 宽度 */\n get width(): number | undefined {\n const { width } = this.data\n if (!width || (this.minWidth && width && width < this.minWidth)) {\n return this.minWidth\n }\n return width\n }\n set width(val) {\n if (this.minWidth && val && val < this.minWidth) {\n val = this.minWidth\n }\n this.data.width = val\n }\n /** 最小宽度 */\n get minWidth(): number | undefined {\n const minWidth = this.data.minWidth\n if (!minWidth && this.isLeaf) {\n return 100\n }\n return minWidth\n }\n set minWidth(val) {\n this.data.minWidth = val\n }\n\n /** 列固定方向 */\n get fixed(): 'left' | 'right' | undefined {\n if (this.depth > 0) return\n return this.data.fixed\n }\n set fixed(val) {\n this.data.fixed = val\n }\n\n /** 是否是左侧的最后一个固定列 */\n get isLastFixed(): boolean {\n return this.data.isLastFixed ?? false\n }\n\n /** 是否是右侧的第一个固定列 */\n get isFirstFixed(): boolean {\n return this.data.isFirstFixed ?? false\n }\n\n /** 是否是可调整宽度的列 */\n get resizable(): boolean {\n return this.data.resizable ?? true\n }\n\n style: Record<string, number> = reactive({})\n\n constructor(val: TableColumn, index: number, depth: number, parent?: ColumnNode) {\n super(isReactive(val) ? val : shallowReactive(val), index, depth, parent)\n }\n}\n"],"mappings":";;;AAKA,IAAa,aAAb,cAAgC,SAAkC;;CAIhE;CAEA,WAA8B;;CAG9B,IAAI,MAAc;EAChB,OAAO,KAAK,KAAK;;CAEnB,IAAI,IAAI,KAAK;EACX,KAAK,KAAK,MAAM;;;CAGlB,IAAI,OAAe;EACjB,OAAO,KAAK,KAAK;;CAEnB,IAAI,KAAK,KAAK;EACZ,KAAK,KAAK,OAAO;;;;;;CAOnB,IAAI,QAA0B;EAC5B,OAAO,KAAK,KAAK,SAAS;;CAE5B,IAAI,MAAM,KAAK;EACb,KAAK,KAAK,QAAQ;;CAGpB,IAAI,cAAgC;EAClC,OAAO,KAAK,KAAK,eAAe,KAAK;;CAEvC,IAAI,YAAY,KAAK;EACnB,KAAK,KAAK,cAAc;;;CAI1B,IAAI,QAA4B;EAC9B,MAAM,EAAE,UAAU,KAAK;EACvB,IAAI,CAAC,SAAU,KAAK,YAAY,SAAS,QAAQ,KAAK,UACpD,OAAO,KAAK;EAEd,OAAO;;CAET,IAAI,MAAM,KAAK;EACb,IAAI,KAAK,YAAY,OAAO,MAAM,KAAK,UACrC,MAAM,KAAK;EAEb,KAAK,KAAK,QAAQ;;;CAGpB,IAAI,WAA+B;EACjC,MAAM,WAAW,KAAK,KAAK;EAC3B,IAAI,CAAC,YAAY,KAAK,QACpB,OAAO;EAET,OAAO;;CAET,IAAI,SAAS,KAAK;EAChB,KAAK,KAAK,WAAW;;;CAIvB,IAAI,QAAsC;EACxC,IAAI,KAAK,QAAQ,GAAG;EACpB,OAAO,KAAK,KAAK;;CAEnB,IAAI,MAAM,KAAK;EACb,KAAK,KAAK,QAAQ;;;CAIpB,IAAI,cAAuB;EACzB,OAAO,KAAK,KAAK,eAAe;;;CAIlC,IAAI,eAAwB;EAC1B,OAAO,KAAK,KAAK,gBAAgB;;;CAInC,IAAI,YAAqB;EACvB,OAAO,KAAK,KAAK,aAAa;;CAGhC,QAAgC,SAAS,EAAE,CAAC;CAE5C,YAAY,KAAkB,OAAe,OAAe,QAAqB;EAC/E,MAAM,WAAW,IAAI,GAAG,MAAM,gBAAgB,IAAI,EAAE,OAAO,OAAO,OAAO"}
|
|
@@ -16,12 +16,12 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
16
16
|
"update:modelValue": (value: string | undefined) => any;
|
|
17
17
|
} & {
|
|
18
18
|
"update:modelValue": (value: string) => any;
|
|
19
|
-
close: (item: TabItem, index: number) => any;
|
|
20
19
|
click: (item: TabItem, index: number) => any;
|
|
20
|
+
close: (item: TabItem, index: number) => any;
|
|
21
21
|
}, string, _$vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
22
22
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
23
|
-
onClose?: ((item: TabItem, index: number) => any) | undefined;
|
|
24
23
|
onClick?: ((item: TabItem, index: number) => any) | undefined;
|
|
24
|
+
onClose?: ((item: TabItem, index: number) => any) | undefined;
|
|
25
25
|
}>, {
|
|
26
26
|
closable: boolean;
|
|
27
27
|
rounded: boolean;
|
|
@@ -15,12 +15,12 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
15
15
|
"update:modelValue": (value: string | undefined) => any;
|
|
16
16
|
} & {
|
|
17
17
|
"update:modelValue": (value: string) => any;
|
|
18
|
-
close: (item: TabItem, index: number) => any;
|
|
19
18
|
click: (item: TabItem, index: number) => any;
|
|
19
|
+
close: (item: TabItem, index: number) => any;
|
|
20
20
|
}, string, _$vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
21
21
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
22
|
-
onClose?: ((item: TabItem, index: number) => any) | undefined;
|
|
23
22
|
onClick?: ((item: TabItem, index: number) => any) | undefined;
|
|
23
|
+
onClose?: ((item: TabItem, index: number) => any) | undefined;
|
|
24
24
|
}>, {
|
|
25
25
|
closable: boolean;
|
|
26
26
|
rounded: boolean;
|
|
@@ -11,12 +11,12 @@ declare const __VLS_export: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {},
|
|
|
11
11
|
"update:modelValue": (value: string | undefined) => any;
|
|
12
12
|
} & {
|
|
13
13
|
"update:modelValue": (value: string) => any;
|
|
14
|
-
close: (item: TabItem, index: number) => any;
|
|
15
14
|
click: (item: TabItem, index: number) => any;
|
|
15
|
+
close: (item: TabItem, index: number) => any;
|
|
16
16
|
}, string, _$vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
17
17
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
18
|
-
onClose?: ((item: TabItem, index: number) => any) | undefined;
|
|
19
18
|
onClick?: ((item: TabItem, index: number) => any) | undefined;
|
|
19
|
+
onClose?: ((item: TabItem, index: number) => any) | undefined;
|
|
20
20
|
}>, {
|
|
21
21
|
closable: boolean;
|
|
22
22
|
rounded: boolean;
|
|
@@ -11,10 +11,10 @@ declare const __VLS_base: _$vue.DefineComponent<TipProps, {}, {}, {}, {}, _$vue.
|
|
|
11
11
|
}, string, _$vue.PublicProps, Readonly<TipProps> & Readonly<{
|
|
12
12
|
"onUpdate:visible"?: ((value: boolean) => any) | undefined;
|
|
13
13
|
}>, {
|
|
14
|
+
direction: TipDirection;
|
|
14
15
|
trigger: "hover" | "click";
|
|
15
16
|
contentTag: string;
|
|
16
17
|
visible: boolean;
|
|
17
|
-
direction: TipDirection;
|
|
18
18
|
content: string;
|
|
19
19
|
alignment: TipAlign;
|
|
20
20
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
package/dist/types/collapse.d.ts
CHANGED
|
@@ -20,11 +20,6 @@ interface CollapseProps extends ComponentProps {
|
|
|
20
20
|
* @default false
|
|
21
21
|
*/
|
|
22
22
|
defaultCollapseAll?: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* 是否使用边框模式
|
|
25
|
-
* @default false
|
|
26
|
-
*/
|
|
27
|
-
bordered?: boolean;
|
|
28
23
|
/**
|
|
29
24
|
* 自定义展开图标组件,活动态会自动旋转 90°。
|
|
30
25
|
* 接受任意 Vue 组件(SFC、Functional Component 等)。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veltra/desktop",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.22",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"src"
|
|
@@ -37,9 +37,6 @@
|
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "vp pack"
|
|
39
39
|
},
|
|
40
|
-
"devDependencies": {
|
|
41
|
-
"@cat-kit/fe": "^1.1.3"
|
|
42
|
-
},
|
|
43
40
|
"dependencies": {
|
|
44
41
|
"@codemirror/lang-java": "^6.0.2",
|
|
45
42
|
"@codemirror/lang-javascript": "^6.2.5",
|
|
@@ -48,33 +45,34 @@
|
|
|
48
45
|
"@codemirror/state": "^6.6.0",
|
|
49
46
|
"@codemirror/theme-one-dark": "^6.1.3",
|
|
50
47
|
"@codemirror/view": "^6.41.1",
|
|
51
|
-
"@embedpdf/core": "^2.14.
|
|
52
|
-
"@embedpdf/engines": "^2.14.
|
|
53
|
-
"@embedpdf/plugin-document-manager": "^2.14.
|
|
54
|
-
"@embedpdf/plugin-render": "^2.14.
|
|
55
|
-
"@embedpdf/plugin-scroll": "^2.14.
|
|
56
|
-
"@embedpdf/plugin-viewport": "^2.14.
|
|
48
|
+
"@embedpdf/core": "^2.14.3",
|
|
49
|
+
"@embedpdf/engines": "^2.14.3",
|
|
50
|
+
"@embedpdf/plugin-document-manager": "^2.14.3",
|
|
51
|
+
"@embedpdf/plugin-render": "^2.14.3",
|
|
52
|
+
"@embedpdf/plugin-scroll": "^2.14.3",
|
|
53
|
+
"@embedpdf/plugin-viewport": "^2.14.3",
|
|
57
54
|
"@embedpdf/plugin-zoom": "^2.14.1",
|
|
58
|
-
"@lexical/history": "^0.
|
|
59
|
-
"@lexical/html": "^0.
|
|
60
|
-
"@lexical/link": "^0.
|
|
61
|
-
"@lexical/list": "^0.
|
|
62
|
-
"@lexical/rich-text": "^0.
|
|
63
|
-
"@lexical/selection": "^0.
|
|
64
|
-
"@lexical/utils": "^0.
|
|
65
|
-
"@visactor/vtable": "^1.26.
|
|
55
|
+
"@lexical/history": "^0.45.0",
|
|
56
|
+
"@lexical/html": "^0.45.0",
|
|
57
|
+
"@lexical/link": "^0.45.0",
|
|
58
|
+
"@lexical/list": "^0.45.0",
|
|
59
|
+
"@lexical/rich-text": "^0.45.0",
|
|
60
|
+
"@lexical/selection": "^0.45.0",
|
|
61
|
+
"@lexical/utils": "^0.45.0",
|
|
62
|
+
"@visactor/vtable": "^1.26.1",
|
|
66
63
|
"codemirror": "^6.0.2",
|
|
67
64
|
"docx-preview": "^0.3.7",
|
|
68
|
-
"lexical": "^0.
|
|
65
|
+
"lexical": "^0.45.0"
|
|
69
66
|
},
|
|
70
67
|
"peerDependencies": {
|
|
71
|
-
"@cat-kit/core": ">=1.1.
|
|
68
|
+
"@cat-kit/core": ">=1.1.5",
|
|
72
69
|
"@cat-kit/excel": ">=1.0.0",
|
|
73
|
-
"@
|
|
74
|
-
"@veltra/
|
|
75
|
-
"@veltra/
|
|
76
|
-
"@veltra/
|
|
77
|
-
"@veltra/
|
|
70
|
+
"@cat-kit/fe": "^1.1.5",
|
|
71
|
+
"@veltra/compositions": "1.1.22",
|
|
72
|
+
"@veltra/directives": "1.1.22",
|
|
73
|
+
"@veltra/icons": "1.1.22",
|
|
74
|
+
"@veltra/styles": "1.1.22",
|
|
75
|
+
"@veltra/utils": "1.1.22",
|
|
78
76
|
"vue": ">=3.5.0"
|
|
79
77
|
}
|
|
80
78
|
}
|
|
@@ -54,8 +54,7 @@ const iconComponent = computed(() => context?.expandIcon.value ?? ArrowRight)
|
|
|
54
54
|
const classList = computed(() => [
|
|
55
55
|
cls.e('item'),
|
|
56
56
|
bem.is('active', isActive.value),
|
|
57
|
-
bem.is('disabled', props.disabled)
|
|
58
|
-
bem.is('bordered', context?.bordered.value)
|
|
57
|
+
bem.is('disabled', props.disabled)
|
|
59
58
|
])
|
|
60
59
|
|
|
61
60
|
const headerClassList = computed(() => [
|
|
@@ -18,8 +18,7 @@ defineOptions({
|
|
|
18
18
|
|
|
19
19
|
const props = withDefaults(defineProps<CollapseProps>(), {
|
|
20
20
|
accordion: false,
|
|
21
|
-
defaultCollapseAll: false
|
|
22
|
-
bordered: false
|
|
21
|
+
defaultCollapseAll: false
|
|
23
22
|
})
|
|
24
23
|
const emit = defineEmits<CollapseEmits>()
|
|
25
24
|
|
|
@@ -33,9 +32,7 @@ const { size } = useFormFallbackProps([props], { size: 'default' })
|
|
|
33
32
|
|
|
34
33
|
const expandIcon = computed(() => props.expandIcon)
|
|
35
34
|
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
const classList = computed(() => [cls.b, cls.m(size.value), bem.is('bordered', bordered.value)])
|
|
35
|
+
const classList = computed(() => [cls.b, cls.m(size.value)])
|
|
39
36
|
|
|
40
37
|
const modelValue = useModel<CollapseProps, 'modelValue'>({
|
|
41
38
|
props,
|
|
@@ -110,7 +107,6 @@ const unregister = (value: CollapseValue) => {
|
|
|
110
107
|
provide(CollapseDIKey, {
|
|
111
108
|
cls,
|
|
112
109
|
size,
|
|
113
|
-
bordered,
|
|
114
110
|
expandIcon,
|
|
115
111
|
activeValues,
|
|
116
112
|
toggle,
|
|
@@ -6,7 +6,6 @@ import type { CollapseValue } from '../../types'
|
|
|
6
6
|
export interface CollapseContext {
|
|
7
7
|
cls: BEM<'collapse'>
|
|
8
8
|
size: ComputedRef<ComponentSize>
|
|
9
|
-
bordered: ComputedRef<boolean>
|
|
10
9
|
expandIcon: ComputedRef<Component | undefined>
|
|
11
10
|
activeValues: ComputedRef<CollapseValue[]>
|
|
12
11
|
toggle: (value: CollapseValue) => void
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
@use 'sass:map';
|
|
2
1
|
@use 'pkg:@veltra/styles/mixins' as m;
|
|
3
|
-
@use 'pkg:@veltra/styles/vars';
|
|
4
2
|
@use 'pkg:@veltra/styles/functions' as fn;
|
|
5
3
|
|
|
6
4
|
$root-name: collapse;
|
|
@@ -9,6 +7,32 @@ $root-name: collapse;
|
|
|
9
7
|
$ease: cubic-bezier(0.4, 0, 0.2, 1);
|
|
10
8
|
$transition-fast: 0.18s $ease;
|
|
11
9
|
$transition-normal: 0.24s $ease;
|
|
10
|
+
$item-bg: fn.component-var(
|
|
11
|
+
collapse,
|
|
12
|
+
item-bg,
|
|
13
|
+
color-mix(in srgb, #{fn.use-var(bg-color, hover)} 72%, #{fn.use-var(bg-color, top)})
|
|
14
|
+
);
|
|
15
|
+
$item-hover-bg: fn.component-var(
|
|
16
|
+
collapse,
|
|
17
|
+
item-hover-bg,
|
|
18
|
+
color-mix(in srgb, #{fn.use-var(color, primary)} 4%, #{$item-bg})
|
|
19
|
+
);
|
|
20
|
+
$item-active-bg: fn.component-var(
|
|
21
|
+
collapse,
|
|
22
|
+
item-active-bg,
|
|
23
|
+
color-mix(in srgb, #{fn.use-var(color, primary)} 5%, #{$item-bg})
|
|
24
|
+
);
|
|
25
|
+
$header-active-bg: fn.component-var(
|
|
26
|
+
collapse,
|
|
27
|
+
header-active-bg,
|
|
28
|
+
color-mix(in srgb, #{fn.use-var(color, primary)} 8%, #{$item-bg})
|
|
29
|
+
);
|
|
30
|
+
$content-bg: fn.component-var(
|
|
31
|
+
collapse,
|
|
32
|
+
content-bg,
|
|
33
|
+
color-mix(in srgb, #{$item-active-bg} 42%, #{fn.use-var(bg-color, top)})
|
|
34
|
+
);
|
|
35
|
+
$active-title-color: fn.component-var(collapse, active-title-color, fn.use-var(color, primary));
|
|
12
36
|
|
|
13
37
|
@include m.b($root-name) {
|
|
14
38
|
width: 100%;
|
|
@@ -18,32 +42,42 @@ $transition-normal: 0.24s $ease;
|
|
|
18
42
|
|
|
19
43
|
// ===== Item =====
|
|
20
44
|
@include m.e(item) {
|
|
45
|
+
position: relative;
|
|
21
46
|
border-radius: calc(fn.use-var(radius, default) + 2px);
|
|
22
|
-
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
background-color: $item-bg;
|
|
23
49
|
transition: background-color $transition-fast;
|
|
24
50
|
|
|
51
|
+
&::before {
|
|
52
|
+
content: '';
|
|
53
|
+
position: absolute;
|
|
54
|
+
top: 0;
|
|
55
|
+
bottom: 0;
|
|
56
|
+
left: 0;
|
|
57
|
+
width: 3px;
|
|
58
|
+
background-color: fn.use-var(color, primary);
|
|
59
|
+
opacity: 0;
|
|
60
|
+
pointer-events: none;
|
|
61
|
+
transition: opacity $transition-fast;
|
|
62
|
+
z-index: 1;
|
|
63
|
+
}
|
|
64
|
+
|
|
25
65
|
& + #{fn.bem($root-name, item)} {
|
|
26
66
|
margin-top: fn.use-var(gap, default);
|
|
27
67
|
}
|
|
28
68
|
|
|
29
69
|
@include m.is-not(disabled) {
|
|
30
70
|
&:hover {
|
|
31
|
-
|
|
32
|
-
background-color: color-mix(
|
|
33
|
-
in srgb,
|
|
34
|
-
#{fn.use-var(text-color, main)} 6%,
|
|
35
|
-
#{fn.use-var(bg-color, hover)}
|
|
36
|
-
);
|
|
71
|
+
background-color: $item-hover-bg;
|
|
37
72
|
}
|
|
38
73
|
}
|
|
39
74
|
|
|
40
75
|
@include m.is(active) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
);
|
|
76
|
+
background-color: $item-active-bg;
|
|
77
|
+
|
|
78
|
+
&::before {
|
|
79
|
+
opacity: 1;
|
|
80
|
+
}
|
|
47
81
|
}
|
|
48
82
|
|
|
49
83
|
@include m.is(disabled) {
|
|
@@ -79,10 +113,14 @@ $transition-normal: 0.24s $ease;
|
|
|
79
113
|
|
|
80
114
|
@include m.is(active) {
|
|
81
115
|
font-weight: 600;
|
|
116
|
+
color: $active-title-color;
|
|
117
|
+
background-color: $header-active-bg;
|
|
118
|
+
border-bottom-right-radius: 0;
|
|
119
|
+
border-bottom-left-radius: 0;
|
|
82
120
|
|
|
83
121
|
#{fn.bem($root-name, icon)} {
|
|
84
122
|
transform: rotate(90deg);
|
|
85
|
-
color:
|
|
123
|
+
color: $active-title-color;
|
|
86
124
|
}
|
|
87
125
|
}
|
|
88
126
|
}
|
|
@@ -111,6 +149,9 @@ $transition-normal: 0.24s $ease;
|
|
|
111
149
|
@include m.e(content-wrapper) {
|
|
112
150
|
overflow: hidden;
|
|
113
151
|
height: 0;
|
|
152
|
+
border-bottom-right-radius: inherit;
|
|
153
|
+
border-bottom-left-radius: inherit;
|
|
154
|
+
background-color: $content-bg;
|
|
114
155
|
transition: height $transition-normal;
|
|
115
156
|
}
|
|
116
157
|
|
|
@@ -141,25 +182,4 @@ $transition-normal: 0.24s $ease;
|
|
|
141
182
|
}
|
|
142
183
|
}
|
|
143
184
|
}
|
|
144
|
-
|
|
145
|
-
// ===== Bordered =====
|
|
146
|
-
@include m.is(bordered) {
|
|
147
|
-
#{fn.bem($root-name, item)} {
|
|
148
|
-
background-color: transparent;
|
|
149
|
-
border: 1px solid vars.$border-color;
|
|
150
|
-
|
|
151
|
-
&:hover,
|
|
152
|
-
&.is-active {
|
|
153
|
-
background-color: transparent;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
#{fn.bem($root-name, header)} {
|
|
158
|
-
border-radius: 0;
|
|
159
|
-
|
|
160
|
-
@include m.is(active) {
|
|
161
|
-
border-bottom: 1px solid vars.$border-color;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
185
|
}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
|
-
<u-scroll>
|
|
4
|
-
<slot />
|
|
5
|
-
</u-scroll>
|
|
2
|
+
<slot />
|
|
6
3
|
</template>
|
|
7
4
|
|
|
8
5
|
<script lang="ts" setup>
|
|
9
6
|
import { computed, inject, onBeforeUnmount, type Ref, watch } from 'vue'
|
|
10
7
|
|
|
11
|
-
import { UScroll } from '../../scroll'
|
|
12
|
-
|
|
13
8
|
defineOptions({ name: 'FileViewerPdfViewportScroll' })
|
|
14
9
|
|
|
15
10
|
/** EmbedPDF Viewport 向子树注入的滚动容器 ref */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TreeNode } from '@cat-kit/core'
|
|
2
|
-
import { reactive, shallowReactive } from 'vue'
|
|
2
|
+
import { isReactive, reactive, shallowReactive } from 'vue'
|
|
3
3
|
|
|
4
4
|
import type { TableColumn, TableColumnAlign } from '../../../types'
|
|
5
5
|
|
|
@@ -97,6 +97,6 @@ export class ColumnNode extends TreeNode<TableColumn, ColumnNode> {
|
|
|
97
97
|
style: Record<string, number> = reactive({})
|
|
98
98
|
|
|
99
99
|
constructor(val: TableColumn, index: number, depth: number, parent?: ColumnNode) {
|
|
100
|
-
super(val ?
|
|
100
|
+
super(isReactive(val) ? val : shallowReactive(val), index, depth, parent)
|
|
101
101
|
}
|
|
102
102
|
}
|
package/src/types/collapse.ts
CHANGED