@veltra/desktop 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/action/action-group.vue.d.ts +1 -1
- package/dist/components/action/action.vue.d.ts +3 -3
- package/dist/components/action/style.js +3 -0
- package/dist/components/auto-complete/auto-complete.vue.d.ts +2 -2
- package/dist/components/auto-complete/style.js +5 -0
- package/dist/components/batch-edit/style.js +9 -0
- package/dist/components/breadcrumb/style2.css +0 -6
- package/dist/components/button/style.js +1 -0
- package/dist/components/cascade/cascade.js +15 -13
- package/dist/components/cascade/cascade.js.map +1 -1
- package/dist/components/cascade/cascade.vue.d.ts +3 -3
- package/dist/components/cascade/node.js.map +1 -1
- package/dist/components/cascade/style.js +7 -0
- package/dist/components/cascade/use-check.js +3 -2
- package/dist/components/cascade/use-check.js.map +1 -1
- package/dist/components/cascade/use-select.js +3 -3
- package/dist/components/cascade/use-select.js.map +1 -1
- package/dist/components/checkbox/style.js +1 -0
- package/dist/components/checkbox/style2.css +0 -8
- package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
- package/dist/components/checkbox-group/style.js +1 -0
- package/dist/components/context-menu/style.js +1 -0
- package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
- package/dist/components/date-picker/date-picker.js +9 -9
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-picker/date-picker.vue.d.ts +2 -2
- package/dist/components/date-picker/style.js +3 -0
- package/dist/components/date-range-picker/date-range-picker.js +9 -9
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.vue.d.ts +2 -2
- package/dist/components/date-range-picker/style.js +3 -0
- package/dist/components/dialog/style.js +2 -0
- package/dist/components/drawer/style.js +1 -0
- package/dist/components/drawer/style2.css +4 -16
- package/dist/components/empty/style.js +1 -0
- package/dist/components/expression-editor/style.js +6 -0
- package/dist/components/file-picker/file-picker.vue.d.ts +1 -1
- package/dist/components/file-picker/helper.js +19 -7
- package/dist/components/file-picker/helper.js.map +1 -1
- package/dist/components/file-viewer/file-viewer.js +294 -0
- package/dist/components/file-viewer/file-viewer.js.map +1 -0
- package/dist/components/file-viewer/file-viewer.vue.d.ts +42 -0
- package/dist/components/file-viewer/helper.js +185 -0
- package/dist/components/file-viewer/helper.js.map +1 -0
- package/dist/components/file-viewer/index.d.ts +1 -0
- package/dist/components/file-viewer/previewers/docx-previewer.js +76 -0
- package/dist/components/file-viewer/previewers/docx-previewer.js.map +1 -0
- package/dist/components/file-viewer/previewers/image-previewer.js +64 -0
- package/dist/components/file-viewer/previewers/image-previewer.js.map +1 -0
- package/dist/components/file-viewer/previewers/pdf-previewer.js +90 -0
- package/dist/components/file-viewer/previewers/pdf-previewer.js.map +1 -0
- package/dist/components/file-viewer/previewers/sheet-previewer.js +175 -0
- package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -0
- package/dist/components/file-viewer/previewers/text-previewer.js +74 -0
- package/dist/components/file-viewer/previewers/text-previewer.js.map +1 -0
- package/dist/components/file-viewer/previewers/video-previewer.js +62 -0
- package/dist/components/file-viewer/previewers/video-previewer.js.map +1 -0
- package/dist/components/file-viewer/style.d.ts +1 -0
- package/dist/components/file-viewer/style.js +4 -0
- package/dist/components/file-viewer/style2.css +445 -0
- package/dist/components/float-button/style.js +1 -0
- package/dist/components/form/style.js +2 -0
- package/dist/components/form-item/style.js +1 -0
- package/dist/components/form-item/style2.css +2 -3
- package/dist/components/grid-input/grid-input.vue.d.ts +1 -1
- package/dist/components/index.d.ts +12 -9
- package/dist/components/input/input.vue.d.ts +2 -2
- package/dist/components/input/style.js +1 -0
- package/dist/components/layout/style.js +1 -0
- package/dist/components/list/style.js +1 -0
- package/dist/components/loading/style2.css +16 -20
- package/dist/components/menu/style.js +2 -0
- package/dist/components/menu/style2.css +0 -78
- package/dist/components/multi-select/multi-select-option.js +14 -10
- package/dist/components/multi-select/multi-select-option.js.map +1 -1
- package/dist/components/multi-select/multi-select.js +16 -19
- package/dist/components/multi-select/multi-select.js.map +1 -1
- package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
- package/dist/components/multi-select/style.js +7 -0
- package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +4 -4
- package/dist/components/multi-tree-select/style.js +7 -0
- package/dist/components/notification/notification.vue.d.ts +1 -1
- package/dist/components/number-input/number-input.vue.d.ts +2 -2
- package/dist/components/number-input/style.js +1 -0
- package/dist/components/number-range-input/number-range-input.vue.d.ts +2 -2
- package/dist/components/number-range-input/style.js +1 -0
- package/dist/components/paginator/style.js +3 -0
- package/dist/components/palette/di.js.map +1 -1
- package/dist/components/palette/palette-alpha.js +7 -10
- package/dist/components/palette/palette-alpha.js.map +1 -1
- package/dist/components/palette/palette-hue.js +5 -7
- package/dist/components/palette/palette-hue.js.map +1 -1
- package/dist/components/palette/palette-sv.js +8 -10
- package/dist/components/palette/palette-sv.js.map +1 -1
- package/dist/components/palette/palette.js +22 -24
- package/dist/components/palette/palette.js.map +1 -1
- package/dist/components/palette/style.js +3 -0
- package/dist/components/password-input/password-input.vue.d.ts +1 -1
- package/dist/components/password-input/style.js +2 -0
- package/dist/components/pop-confirm/pop-confirm.vue.d.ts +1 -1
- package/dist/components/pop-confirm/style.js +3 -0
- package/dist/components/progress-nodes/progress-nodes.vue.d.ts +2 -2
- package/dist/components/progress-nodes/style2.css +79 -33
- package/dist/components/radio/style2.css +0 -8
- package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
- package/dist/components/radio-group/style.js +1 -0
- package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +2 -2
- package/dist/components/select/select.js +14 -12
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/select/select.vue.d.ts +2 -2
- package/dist/components/select/style.js +5 -0
- package/dist/components/select/style2.css +0 -20
- package/dist/components/slider/slider-thumb.js +10 -13
- package/dist/components/slider/slider-thumb.js.map +1 -1
- package/dist/components/slider/slider.js +12 -15
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/steps/style.js +2 -0
- package/dist/components/steps/style2.css +28 -35
- package/dist/components/switch/style2.css +0 -3
- package/dist/components/table/di.js.map +1 -1
- package/dist/components/table/node/row.d.ts +10 -1
- package/dist/components/table/node/row.js +9 -0
- package/dist/components/table/node/row.js.map +1 -1
- package/dist/components/table/style.js +7 -0
- package/dist/components/table/style2.css +0 -41
- package/dist/components/table/table-body.js +25 -26
- package/dist/components/table/table-body.js.map +1 -1
- package/dist/components/table/table-cell.js +16 -9
- package/dist/components/table/table-cell.js.map +1 -1
- package/dist/components/table/table-row.js +78 -19
- package/dist/components/table/table-row.js.map +1 -1
- package/dist/components/table/table.js +76 -34
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/use-fixed-columns.js +27 -8
- package/dist/components/table/use-fixed-columns.js.map +1 -1
- package/dist/components/table/use-rows.js +2 -2
- package/dist/components/table/use-rows.js.map +1 -1
- package/dist/components/table/use-table.js +25 -3
- package/dist/components/table/use-table.js.map +1 -1
- package/dist/components/table-editor/style.js +2 -0
- package/dist/components/tabs/index.d.ts +3 -1
- package/dist/components/tabs/style.js +2 -0
- package/dist/components/tabs/style2.css +169 -107
- package/dist/components/tabs/tabs-horizontal.js +133 -0
- package/dist/components/tabs/tabs-horizontal.js.map +1 -0
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +29 -0
- package/dist/components/tabs/tabs-vertical.js +89 -0
- package/dist/components/tabs/tabs-vertical.js.map +1 -0
- package/dist/components/tabs/tabs-vertical.vue.d.ts +28 -0
- package/dist/components/tabs/tabs.js +75 -105
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/tabs/tabs.vue.d.ts +9 -23
- package/dist/components/tabs/use-tabs-bar.js +105 -0
- package/dist/components/tabs/use-tabs-bar.js.map +1 -0
- package/dist/components/tag/style2.css +0 -6
- package/dist/components/textarea/style.js +1 -0
- package/dist/components/textarea/textarea.vue.d.ts +2 -2
- package/dist/components/theme/style.js +5 -0
- package/dist/components/tip/tip.vue.d.ts +2 -2
- package/dist/components/tree/style.js +4 -0
- package/dist/components/tree/style2.css +45 -23
- package/dist/components/tree/tree-node.js +50 -35
- package/dist/components/tree/tree-node.js.map +1 -1
- package/dist/components/tree/tree.js +27 -20
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree/tree.vue.d.ts +1 -1
- package/dist/components/tree/use-check.js +52 -14
- package/dist/components/tree/use-check.js.map +1 -1
- package/dist/components/tree/use-tree-nodes.js +51 -24
- package/dist/components/tree/use-tree-nodes.js.map +1 -1
- package/dist/components/tree-select/style.js +4 -0
- package/dist/components/tree-select/tree-select.vue.d.ts +3 -3
- package/dist/components/watermark/watermark.vue.d.ts +1 -1
- package/dist/index.d.ts +57 -53
- package/dist/index.js +51 -48
- package/dist/types/file-viewer.d.ts +71 -0
- package/dist/types/index.d.ts +4 -3
- package/dist/types/tabs.d.ts +106 -14
- package/dist/types/tree.d.ts +6 -1
- package/package.json +32 -31
- package/src/components/breadcrumb/style.scss +0 -6
- package/src/components/cascade/cascade.vue +18 -18
- package/src/components/cascade/node.ts +4 -1
- package/src/components/cascade/use-check.ts +5 -4
- package/src/components/cascade/use-select.ts +4 -5
- package/src/components/checkbox/style.scss +0 -4
- package/src/components/date-picker/date-picker.vue +10 -9
- package/src/components/date-range-picker/date-range-picker.vue +12 -12
- package/src/components/drawer/style.scss +18 -11
- package/src/components/file-picker/helper.ts +21 -10
- package/src/components/file-viewer/file-viewer.vue +311 -0
- package/src/components/file-viewer/helper.ts +193 -0
- package/src/components/file-viewer/index.ts +1 -0
- package/src/components/file-viewer/previewers/docx-previewer.vue +78 -0
- package/src/components/file-viewer/previewers/image-previewer.vue +64 -0
- package/src/components/file-viewer/previewers/pdf-previewer.vue +90 -0
- package/src/components/file-viewer/previewers/sheet-previewer.vue +210 -0
- package/src/components/file-viewer/previewers/text-previewer.vue +76 -0
- package/src/components/file-viewer/previewers/video-previewer.vue +72 -0
- package/src/components/file-viewer/style.scss +504 -0
- package/src/components/file-viewer/style.ts +4 -0
- package/src/components/form-item/style.scss +2 -3
- package/src/components/index.ts +2 -0
- package/src/components/loading/style.scss +125 -126
- package/src/components/menu/style.scss +0 -31
- package/src/components/multi-select/multi-select-option.vue +16 -3
- package/src/components/multi-select/multi-select.vue +17 -9
- package/src/components/palette/di.ts +5 -3
- package/src/components/palette/palette-alpha.vue +7 -10
- package/src/components/palette/palette-hue.vue +5 -7
- package/src/components/palette/palette-sv.vue +12 -14
- package/src/components/palette/palette.vue +19 -21
- package/src/components/progress-nodes/style.scss +28 -22
- package/src/components/radio/style.scss +0 -4
- package/src/components/select/select.vue +21 -19
- package/src/components/select/style.scss +0 -12
- package/src/components/slider/slider-thumb.vue +11 -14
- package/src/components/slider/slider.vue +15 -15
- package/src/components/steps/style.scss +10 -10
- package/src/components/switch/style.scss +0 -4
- package/src/components/table/di.ts +20 -3
- package/src/components/table/node/row.ts +10 -1
- package/src/components/table/style.scss +0 -26
- package/src/components/table/table-body.vue +28 -33
- package/src/components/table/table-cell.vue +17 -9
- package/src/components/table/table-row.tsx +83 -17
- package/src/components/table/table.vue +73 -45
- package/src/components/table/use-fixed-columns.ts +46 -12
- package/src/components/table/use-rows.ts +14 -3
- package/src/components/table/use-table.ts +27 -3
- package/src/components/tabs/index.ts +2 -0
- package/src/components/tabs/style.scss +217 -134
- package/src/components/tabs/tabs-horizontal.vue +125 -0
- package/src/components/tabs/tabs-vertical.vue +75 -0
- package/src/components/tabs/tabs.vue +56 -127
- package/src/components/tabs/use-tabs-bar.ts +119 -0
- package/src/components/tag/style.scss +0 -6
- package/src/components/tree/style.scss +74 -29
- package/src/components/tree/tree-node.vue +10 -4
- package/src/components/tree/tree.vue +39 -12
- package/src/components/tree/use-check.ts +79 -23
- package/src/components/tree/use-tree-nodes.ts +85 -34
- package/src/types/file-viewer.ts +69 -0
- package/src/types/index.ts +1 -0
- package/src/types/tabs.ts +113 -19
- package/src/types/tree.ts +6 -1
- package/dist/types/index.js +0 -0
|
@@ -20,10 +20,10 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
20
20
|
"onUpdate:modelValue"?: ((value?: number | undefined) => any) | undefined;
|
|
21
21
|
onChange?: ((value?: number | undefined) => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
|
-
placeholder: string;
|
|
24
|
-
clearable: boolean;
|
|
25
23
|
disabled: boolean;
|
|
26
24
|
readonly: boolean;
|
|
25
|
+
placeholder: string;
|
|
26
|
+
clearable: boolean;
|
|
27
27
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
28
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
29
29
|
declare const _default: typeof __VLS_export;
|
|
@@ -24,10 +24,10 @@ declare const __VLS_export: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {},
|
|
|
24
24
|
"onUpdate:start"?: ((value: number | undefined) => any) | undefined;
|
|
25
25
|
"onUpdate:end"?: ((value: number | undefined) => any) | undefined;
|
|
26
26
|
}>, {
|
|
27
|
-
|
|
27
|
+
separator: string;
|
|
28
28
|
disabled: boolean;
|
|
29
29
|
readonly: boolean;
|
|
30
|
-
|
|
30
|
+
clearable: boolean;
|
|
31
31
|
startPlaceholder: string;
|
|
32
32
|
endPlaceholder: string;
|
|
33
33
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.js","names":[],"sources":["../../../src/components/palette/di.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"di.js","names":[],"sources":["../../../src/components/palette/di.ts"],"sourcesContent":["import type { UserAction } from '@veltra/compositions'\nimport type { BEM } from '@veltra/utils'\nimport type { InjectionKey, Ref, ComputedRef } from 'vue'\n\nimport type { PaletteHSV, PaletteRGB } from '../../types'\n\nexport const PaletteDIKey: InjectionKey<{\n cls: BEM<'palette', 'u-'>\n /** 色调 RGB 值 */\n hueRGB: ComputedRef<PaletteRGB>\n /** 色调 饱和度 亮度 */\n HSV: PaletteHSV\n /** RGB 值 */\n RGB: ComputedRef<PaletteRGB>\n /** 透明度 */\n alpha: Ref<number>\n /** 将函数包装为用户动作(阻断 modelValue 回流副作用) */\n userAction: UserAction\n /** 当前是否处于用户动作期间 */\n isUserActive: () => boolean\n /** 更新色调 */\n updateHue: (deg: number) => void\n /** 更新调色盘透明度 */\n updateAlpha: (alpha: number) => void\n /** 更新饱和度 亮度 */\n updateSV: (sv: { s: number; v: number }) => void\n}> = Symbol('PaletteDIKey')\n"],"mappings":";AAMA,MAAa,eAoBR,OAAO,eAAe"}
|
|
@@ -6,7 +6,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
6
6
|
name: "PaletteAlpha",
|
|
7
7
|
__name: "palette-alpha",
|
|
8
8
|
setup(__props, { expose: __expose }) {
|
|
9
|
-
const { cls, updateAlpha, hueRGB, alpha,
|
|
9
|
+
const { cls, updateAlpha, hueRGB, alpha, userAction, isUserActive } = inject(PaletteDIKey);
|
|
10
10
|
const alphaRef = shallowRef();
|
|
11
11
|
const alphaThumbTransformX = shallowRef(0);
|
|
12
12
|
const alphaThumbStyle = computed(() => {
|
|
@@ -18,12 +18,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
18
18
|
alphaWidth = alphaRef.value?.offsetWidth ?? 0;
|
|
19
19
|
rangeX[1] = alphaWidth;
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
}
|
|
21
|
+
const updateOffsetX = userAction((offsetX) => {
|
|
22
|
+
alphaThumbTransformX.value = offsetX;
|
|
23
|
+
updateAlpha(alphaWidth > 0 ? offsetX / alphaWidth : 0);
|
|
24
|
+
});
|
|
27
25
|
const alphaDragger = useDrag({
|
|
28
26
|
target: alphaRef,
|
|
29
27
|
rangeX,
|
|
@@ -48,9 +46,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
48
46
|
init();
|
|
49
47
|
});
|
|
50
48
|
watch(alpha, (newAlphaValue) => {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
49
|
+
if (isUserActive()) return;
|
|
50
|
+
alphaThumbTransformX.value = alphaWidth > 0 ? alphaWidth * newAlphaValue : 0;
|
|
54
51
|
}, { flush: "post" });
|
|
55
52
|
__expose({ init });
|
|
56
53
|
return (_ctx, _cache) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette-alpha.js","names":[],"sources":["../../../src/components/palette/palette-alpha.vue"],"sourcesContent":["<template>\n <div :class=\"cls.e('alpha')\" ref=\"alphaRef\">\n <div :class=\"cls.e('alpha-bg')\" :style=\"{ background: alphaSliderBG }\"></div>\n\n <span :class=\"cls.e('alpha-thumb')\" @click.stop :style=\"alphaThumbStyle\"></span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useDrag } from '@veltra/compositions'\nimport { computed, inject, shallowRef, onMounted, watch } from 'vue'\n\nimport { PaletteDIKey } from './di'\n\ndefineOptions({\n name: 'PaletteAlpha'\n})\n\nconst { cls, updateAlpha, hueRGB, alpha,
|
|
1
|
+
{"version":3,"file":"palette-alpha.js","names":[],"sources":["../../../src/components/palette/palette-alpha.vue"],"sourcesContent":["<template>\n <div :class=\"cls.e('alpha')\" ref=\"alphaRef\">\n <div :class=\"cls.e('alpha-bg')\" :style=\"{ background: alphaSliderBG }\"></div>\n\n <span :class=\"cls.e('alpha-thumb')\" @click.stop :style=\"alphaThumbStyle\"></span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useDrag } from '@veltra/compositions'\nimport { computed, inject, shallowRef, onMounted, watch } from 'vue'\n\nimport { PaletteDIKey } from './di'\n\ndefineOptions({\n name: 'PaletteAlpha'\n})\n\nconst { cls, updateAlpha, hueRGB, alpha, userAction, isUserActive } = inject(PaletteDIKey)!\n\nconst alphaRef = shallowRef<HTMLElement>()\n\nconst alphaThumbTransformX = shallowRef(0)\n\nconst alphaThumbStyle = computed(() => {\n return { transform: `translateX(${alphaThumbTransformX.value}px)` }\n})\n\nlet alphaWidth = 0\nconst rangeX = [0, 0] as [number, number]\n\nfunction getAlphaWidth() {\n alphaWidth = alphaRef.value?.offsetWidth ?? 0\n rangeX[1] = alphaWidth\n}\n\nconst updateOffsetX = userAction((offsetX: number) => {\n alphaThumbTransformX.value = offsetX\n updateAlpha(alphaWidth > 0 ? offsetX / alphaWidth : 0)\n})\n\nconst alphaDragger = useDrag({\n target: alphaRef,\n rangeX,\n onDrag({ offsetX }) {\n updateOffsetX(offsetX)\n },\n onDragStart(e) {\n getAlphaWidth()\n\n alphaDragger.update({ offsetX: e.offsetX })\n\n updateOffsetX(e.offsetX)\n }\n})\n\nconst alphaSliderBG = computed(() => {\n const { r, g, b } = hueRGB.value\n return `linear-gradient(to right, rgba(${r}, ${g}, ${b}, 0), rgba(${r}, ${g}, ${b}, 1))`\n})\n\nfunction init(): void {\n getAlphaWidth()\n alphaThumbTransformX.value = alphaWidth > 0 ? alphaWidth * alpha.value : 0\n}\n\nonMounted(() => {\n init()\n})\n\nwatch(\n alpha,\n (newAlphaValue) => {\n if (isUserActive()) return\n alphaThumbTransformX.value = alphaWidth > 0 ? alphaWidth * newAlphaValue : 0\n },\n { flush: 'post' }\n)\n\ndefineExpose({\n init\n})\n</script>\n"],"mappings":";;;;;;;;EAkBA,MAAM,EAAE,KAAK,aAAa,QAAQ,OAAO,YAAY,iBAAiB,OAAO,aAAa;EAE1F,MAAM,WAAW,YAAwB;EAEzC,MAAM,uBAAuB,WAAW,EAAC;EAEzC,MAAM,kBAAkB,eAAe;AACrC,UAAO,EAAE,WAAW,cAAc,qBAAqB,MAAM,MAAK;IACnE;EAED,IAAI,aAAa;EACjB,MAAM,SAAS,CAAC,GAAG,EAAE;EAErB,SAAS,gBAAgB;AACvB,gBAAa,SAAS,OAAO,eAAe;AAC5C,UAAO,KAAK;;EAGd,MAAM,gBAAgB,YAAY,YAAoB;AACpD,wBAAqB,QAAQ;AAC7B,eAAY,aAAa,IAAI,UAAU,aAAa,EAAC;IACtD;EAED,MAAM,eAAe,QAAQ;GAC3B,QAAQ;GACR;GACA,OAAO,EAAE,WAAW;AAClB,kBAAc,QAAO;;GAEvB,YAAY,GAAG;AACb,mBAAc;AAEd,iBAAa,OAAO,EAAE,SAAS,EAAE,SAAS,CAAA;AAE1C,kBAAc,EAAE,QAAO;;GAE1B,CAAA;EAED,MAAM,gBAAgB,eAAe;GACnC,MAAM,EAAE,GAAG,GAAG,MAAM,OAAO;AAC3B,UAAO,kCAAkC,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE;IACnF;EAED,SAAS,OAAa;AACpB,kBAAc;AACd,wBAAqB,QAAQ,aAAa,IAAI,aAAa,MAAM,QAAQ;;AAG3E,kBAAgB;AACd,SAAK;IACN;AAED,QACE,QACC,kBAAkB;AACjB,OAAI,cAAc,CAAE;AACpB,wBAAqB,QAAQ,aAAa,IAAI,aAAa,gBAAgB;KAE7E,EAAE,OAAO,QAAO,CAClB;AAEA,WAAa,EACX,MACD,CAAA;;uBAhFC,mBAIM,OAAA;IAJA,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,QAAA,CAAA;aAAe;IAAJ,KAAI;OAC/B,mBAA6E,OAAA;IAAvE,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,WAAA,CAAA;IAAe,OAAK,eAAA,EAAA,YAAgB,cAAA,OAAa,CAAA;gBAEnE,mBAAgF,QAAA;IAAzE,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,cAAA,CAAA;IAAkB,SAAK,OAAA,OAAA,OAAA,KAAA,oBAAN,IAAW,CAAA,OAAA,CAAA;IAAE,OAAK,eAAE,gBAAA,MAAe"}
|
|
@@ -6,7 +6,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
6
6
|
name: "PaletteHue",
|
|
7
7
|
__name: "palette-hue",
|
|
8
8
|
setup(__props, { expose: __expose }) {
|
|
9
|
-
const { cls, updateHue, HSV,
|
|
9
|
+
const { cls, updateHue, HSV, userAction } = inject(PaletteDIKey);
|
|
10
10
|
const hueRef = shallowRef();
|
|
11
11
|
const transformX = shallowRef(0);
|
|
12
12
|
let sliderWidth = 0;
|
|
@@ -18,12 +18,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
18
18
|
sliderWidth = hueRef.value?.offsetWidth ?? 0;
|
|
19
19
|
rangeX[1] = sliderWidth;
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
}
|
|
21
|
+
const updateOffsetX = userAction((offsetX) => {
|
|
22
|
+
transformX.value = offsetX;
|
|
23
|
+
updateHue(Math.round(offsetX / sliderWidth * 360));
|
|
24
|
+
});
|
|
27
25
|
const sliderDragger = useDrag({
|
|
28
26
|
target: hueRef,
|
|
29
27
|
rangeX,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette-hue.js","names":[],"sources":["../../../src/components/palette/palette-hue.vue"],"sourcesContent":["<template>\n <div :class=\"cls.e('hue')\" ref=\"hueRef\">\n <span :class=\"cls.e('hue-thumb')\" @click.stop :style=\"hueThumbStyle\"></span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useDrag } from '@veltra/compositions'\nimport { inject, onMounted } from 'vue'\nimport { shallowRef, computed } from 'vue'\n\nimport { PaletteDIKey } from './di'\n\ndefineOptions({\n name: 'PaletteHue'\n})\n\nconst { cls, updateHue, HSV,
|
|
1
|
+
{"version":3,"file":"palette-hue.js","names":[],"sources":["../../../src/components/palette/palette-hue.vue"],"sourcesContent":["<template>\n <div :class=\"cls.e('hue')\" ref=\"hueRef\">\n <span :class=\"cls.e('hue-thumb')\" @click.stop :style=\"hueThumbStyle\"></span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useDrag } from '@veltra/compositions'\nimport { inject, onMounted } from 'vue'\nimport { shallowRef, computed } from 'vue'\n\nimport { PaletteDIKey } from './di'\n\ndefineOptions({\n name: 'PaletteHue'\n})\n\nconst { cls, updateHue, HSV, userAction } = inject(PaletteDIKey)!\n\nconst hueRef = shallowRef<HTMLElement>()\n\nconst transformX = shallowRef(0)\nlet sliderWidth = 0\n\nconst hueThumbStyle = computed(() => {\n return { transform: `translateX(${transformX.value}px)` }\n})\n\nconst rangeX = [0, 0] as [number, number]\n\nfunction getSliderWidth() {\n sliderWidth = hueRef.value?.offsetWidth ?? 0\n rangeX[1] = sliderWidth\n}\n\nconst updateOffsetX = userAction((offsetX: number) => {\n transformX.value = offsetX\n updateHue(Math.round((offsetX / sliderWidth) * 360))\n})\n\nconst sliderDragger = useDrag({\n target: hueRef,\n rangeX,\n onDrag({ offsetX }) {\n updateOffsetX(offsetX)\n },\n onDragStart(e) {\n getSliderWidth()\n\n sliderDragger.update({ offsetX: e.offsetX })\n\n updateOffsetX(e.offsetX)\n }\n})\n\nfunction init(): void {\n getSliderWidth()\n transformX.value = (sliderWidth * HSV.h) / 360\n}\n\nonMounted(() => {\n init()\n})\n\ndefineExpose({\n init\n})\n</script>\n"],"mappings":";;;;;;;;EAiBA,MAAM,EAAE,KAAK,WAAW,KAAK,eAAe,OAAO,aAAa;EAEhE,MAAM,SAAS,YAAwB;EAEvC,MAAM,aAAa,WAAW,EAAC;EAC/B,IAAI,cAAc;EAElB,MAAM,gBAAgB,eAAe;AACnC,UAAO,EAAE,WAAW,cAAc,WAAW,MAAM,MAAK;IACzD;EAED,MAAM,SAAS,CAAC,GAAG,EAAE;EAErB,SAAS,iBAAiB;AACxB,iBAAc,OAAO,OAAO,eAAe;AAC3C,UAAO,KAAK;;EAGd,MAAM,gBAAgB,YAAY,YAAoB;AACpD,cAAW,QAAQ;AACnB,aAAU,KAAK,MAAO,UAAU,cAAe,IAAI,CAAA;IACpD;EAED,MAAM,gBAAgB,QAAQ;GAC5B,QAAQ;GACR;GACA,OAAO,EAAE,WAAW;AAClB,kBAAc,QAAO;;GAEvB,YAAY,GAAG;AACb,oBAAe;AAEf,kBAAc,OAAO,EAAE,SAAS,EAAE,SAAS,CAAA;AAE3C,kBAAc,EAAE,QAAO;;GAE1B,CAAA;EAED,SAAS,OAAa;AACpB,mBAAe;AACf,cAAW,QAAS,cAAc,IAAI,IAAK;;AAG7C,kBAAgB;AACd,SAAK;IACN;AAED,WAAa,EACX,MACD,CAAA;;uBAjEC,mBAEM,OAAA;IAFA,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,MAAA,CAAA;aAAa;IAAJ,KAAI;OAC7B,mBAA4E,QAAA;IAArE,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,YAAA,CAAA;IAAgB,SAAK,OAAA,OAAA,OAAA,KAAA,oBAAN,IAAW,CAAA,OAAA,CAAA;IAAE,OAAK,eAAE,cAAA,MAAa"}
|
|
@@ -6,7 +6,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
6
6
|
name: "PaletteSV",
|
|
7
7
|
__name: "palette-sv",
|
|
8
8
|
setup(__props, { expose: __expose }) {
|
|
9
|
-
const { cls, hueRGB, HSV, updateSV,
|
|
9
|
+
const { cls, hueRGB, HSV, updateSV, userAction } = inject(PaletteDIKey);
|
|
10
10
|
const svRef = shallowRef();
|
|
11
11
|
const canvasSize = {
|
|
12
12
|
width: 0,
|
|
@@ -29,16 +29,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
29
29
|
const svThumbStyle = computed(() => {
|
|
30
30
|
return { transform: `translate(${transform.x}px, ${transform.y}px)` };
|
|
31
31
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
v: Math.max(0, Math.min(1, 1 - offsetY / canvasSize.height))
|
|
39
|
-
});
|
|
32
|
+
const updateThumb = userAction((offsetX, offsetY) => {
|
|
33
|
+
transform.x = offsetX;
|
|
34
|
+
transform.y = offsetY;
|
|
35
|
+
updateSV({
|
|
36
|
+
s: Math.max(0, Math.min(1, offsetX / canvasSize.width)),
|
|
37
|
+
v: Math.max(0, Math.min(1, 1 - offsetY / canvasSize.height))
|
|
40
38
|
});
|
|
41
|
-
}
|
|
39
|
+
});
|
|
42
40
|
const svDragger = useDrag({
|
|
43
41
|
target: svRef,
|
|
44
42
|
rangeX,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette-sv.js","names":[],"sources":["../../../src/components/palette/palette-sv.vue"],"sourcesContent":["<template>\n <!-- 调色画布 -->\n <div :class=\"cls.e('sv')\" ref=\"svRef\">\n <div :class=\"cls.e('sv-s')\" :style=\"{ backgroundImage: canvasBackground }\"></div>\n <div :class=\"cls.e('sv-v')\">{{}}</div>\n\n <div\n :class=\"cls.e('sv-thumb')\"\n ref=\"svThumbRef\"\n @click.stop\n @mousedown.stop\n :style=\"svThumbStyle\"\n ></div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useDrag } from '@veltra/compositions'\nimport { computed, inject, reactive, shallowRef, onMounted } from 'vue'\n\nimport { PaletteDIKey } from './di'\n\ndefineOptions({\n name: 'PaletteSV'\n})\n\nconst { cls, hueRGB, HSV, updateSV,
|
|
1
|
+
{"version":3,"file":"palette-sv.js","names":[],"sources":["../../../src/components/palette/palette-sv.vue"],"sourcesContent":["<template>\n <!-- 调色画布 -->\n <div :class=\"cls.e('sv')\" ref=\"svRef\">\n <div :class=\"cls.e('sv-s')\" :style=\"{ backgroundImage: canvasBackground }\"></div>\n <div :class=\"cls.e('sv-v')\">{{}}</div>\n\n <div\n :class=\"cls.e('sv-thumb')\"\n ref=\"svThumbRef\"\n @click.stop\n @mousedown.stop\n :style=\"svThumbStyle\"\n ></div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useDrag } from '@veltra/compositions'\nimport { computed, inject, reactive, shallowRef, onMounted } from 'vue'\n\nimport { PaletteDIKey } from './di'\n\ndefineOptions({\n name: 'PaletteSV'\n})\n\nconst { cls, hueRGB, HSV, updateSV, userAction } = inject(PaletteDIKey)!\n\nconst svRef = shallowRef<HTMLDivElement>()\n\nconst canvasSize = {\n width: 0,\n height: 0\n}\n\nconst rangeX = [0, 0] as [number, number]\nconst rangeY = [0, 0] as [number, number]\n\nconst getCanvasSize = () => {\n if (!svRef.value) return\n const { offsetHeight, offsetWidth } = svRef.value!\n\n canvasSize.width = offsetWidth\n rangeX[1] = offsetWidth\n\n canvasSize.height = offsetHeight\n rangeY[1] = offsetHeight\n}\n\nconst transform = reactive({\n x: 0,\n y: 0\n})\n\nconst svThumbStyle = computed(() => {\n return {\n transform: `translate(${transform.x}px, ${transform.y}px)`\n }\n})\n\nconst updateThumb = userAction((offsetX: number, offsetY: number) => {\n transform.x = offsetX\n transform.y = offsetY\n\n // 根据画布位置计算饱和度和亮度\n // 水平方向表示饱和度,从左到右饱和度逐渐增高\n // 垂直方向表示亮度,上亮下暗\n const s = Math.max(0, Math.min(1, offsetX / canvasSize.width))\n const v = Math.max(0, Math.min(1, 1 - offsetY / canvasSize.height))\n\n // 更新饱和度和亮度\n updateSV({ s, v })\n})\n\nconst svDragger = useDrag({\n target: svRef,\n rangeX,\n rangeY,\n\n onDrag({ offsetX, offsetY }) {\n updateThumb(offsetX, offsetY)\n },\n onDragStart(e) {\n getCanvasSize()\n\n const { offsetX, offsetY } = e\n\n updateThumb(offsetX, offsetY)\n\n svDragger.update({ offsetX, offsetY })\n }\n})\n\nconst canvasBackground = computed(() => {\n const { r, g, b } = hueRGB.value\n return `linear-gradient(to right, rgb(255, 255, 255), rgb(${r}, ${g}, ${b}))`\n})\n\nfunction init(): void {\n getCanvasSize()\n transform.x = canvasSize.width * HSV.s\n transform.y = canvasSize.height * (1 - HSV.v)\n}\n\nonMounted(() => {\n init()\n})\n\ndefineExpose({\n init\n})\n</script>\n"],"mappings":";;;;;;;;EA0BA,MAAM,EAAE,KAAK,QAAQ,KAAK,UAAU,eAAe,OAAO,aAAa;EAEvE,MAAM,QAAQ,YAA2B;EAEzC,MAAM,aAAa;GACjB,OAAO;GACP,QAAQ;GACV;EAEA,MAAM,SAAS,CAAC,GAAG,EAAE;EACrB,MAAM,SAAS,CAAC,GAAG,EAAE;EAErB,MAAM,sBAAsB;AAC1B,OAAI,CAAC,MAAM,MAAO;GAClB,MAAM,EAAE,cAAc,gBAAgB,MAAM;AAE5C,cAAW,QAAQ;AACnB,UAAO,KAAK;AAEZ,cAAW,SAAS;AACpB,UAAO,KAAK;;EAGd,MAAM,YAAY,SAAS;GACzB,GAAG;GACH,GAAG;GACJ,CAAA;EAED,MAAM,eAAe,eAAe;AAClC,UAAO,EACL,WAAW,aAAa,UAAU,EAAE,MAAM,UAAU,EAAE,MACxD;IACD;EAED,MAAM,cAAc,YAAY,SAAiB,YAAoB;AACnE,aAAU,IAAI;AACd,aAAU,IAAI;AASd,YAAS;IAAE,GAJD,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,WAAW,MAAM,CAAA;IAI/C,GAHJ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,UAAU,WAAW,OAAO,CAAA;IAGjD,CAAA;IAClB;EAED,MAAM,YAAY,QAAQ;GACxB,QAAQ;GACR;GACA;GAEA,OAAO,EAAE,SAAS,WAAW;AAC3B,gBAAY,SAAS,QAAO;;GAE9B,YAAY,GAAG;AACb,mBAAc;IAEd,MAAM,EAAE,SAAS,YAAY;AAE7B,gBAAY,SAAS,QAAO;AAE5B,cAAU,OAAO;KAAE;KAAS;KAAS,CAAA;;GAExC,CAAA;EAED,MAAM,mBAAmB,eAAe;GACtC,MAAM,EAAE,GAAG,GAAG,MAAM,OAAO;AAC3B,UAAO,qDAAqD,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3E;EAED,SAAS,OAAa;AACpB,kBAAc;AACd,aAAU,IAAI,WAAW,QAAQ,IAAI;AACrC,aAAU,IAAI,WAAW,UAAU,IAAI,IAAI;;AAG7C,kBAAgB;AACd,SAAK;IACN;AAED,WAAa,EACX,MACD,CAAA;;2DA7GC,mBAAA,SAAa,EACb,mBAWM,OAAA;IAXA,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,KAAA,CAAA;aAAY;IAAJ,KAAI;;IAC5B,mBAAiF,OAAA;KAA3E,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,OAAA,CAAA;KAAW,OAAK,eAAA,EAAA,iBAAqB,iBAAA,OAAgB,CAAA;;IACvE,mBAAsC,OAAA,EAAhC,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,OAAA,CAAA,EAAA,EAAA,iBAAA,EAAA,EAAA;IAElB,mBAMO,OAAA;KALJ,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,WAAA,CAAA;KACb,KAAI;KACH,SAAK,OAAA,OAAA,OAAA,KAAA,oBAAN,IAAW,CAAA,OAAA,CAAA;KACV,aAAS,OAAA,OAAA,OAAA,KAAA,oBAAV,IAAe,CAAA,OAAA,CAAA;KACd,OAAK,eAAE,aAAA,MAAY"}
|
|
@@ -8,7 +8,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
10
|
import { bem } from "@veltra/utils";
|
|
11
|
-
import { useFormComponent, useFormFallbackProps,
|
|
11
|
+
import { useFormComponent, useFormFallbackProps, useUserAction } from "@veltra/compositions";
|
|
12
12
|
//#region src/components/palette/palette.vue
|
|
13
13
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
14
|
name: "Palette",
|
|
@@ -48,43 +48,41 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
48
48
|
const { HSV, alpha, ...rest } = useHSV();
|
|
49
49
|
const color = useModel(__props, "modelValue");
|
|
50
50
|
const RGB = computed(() => HSV2RGB(HSV));
|
|
51
|
-
const
|
|
51
|
+
const { userAction, isUserActive } = useUserAction();
|
|
52
52
|
watch([alpha, RGB], ([alpha, RGB]) => {
|
|
53
53
|
color.value = `#${RGB2HEX(RGB, alpha)}`;
|
|
54
54
|
});
|
|
55
55
|
const visible = shallowRef(false);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
});
|
|
62
|
-
}
|
|
56
|
+
const handleClear = userAction(() => {
|
|
57
|
+
color.value = "";
|
|
58
|
+
rest.updateAlpha(1);
|
|
59
|
+
visible.value = false;
|
|
60
|
+
});
|
|
63
61
|
const paletteSVRef = useTemplateRef("palette-sv");
|
|
64
62
|
const paletteHueRef = useTemplateRef("palette-hue");
|
|
65
63
|
const paletteAlphaRef = useTemplateRef("palette-alpha");
|
|
66
64
|
watch(color, (color) => {
|
|
67
65
|
if (!color) return;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
});
|
|
76
|
-
rest.updateAlpha(alpha);
|
|
77
|
-
paletteSVRef.value?.init();
|
|
78
|
-
paletteHueRef.value?.init();
|
|
79
|
-
paletteAlphaRef.value?.init();
|
|
66
|
+
if (isUserActive()) return;
|
|
67
|
+
const { RGB, alpha } = HEX2RGBA(color);
|
|
68
|
+
const hsv = RGB2HSV(RGB);
|
|
69
|
+
rest.updateHue(hsv.h);
|
|
70
|
+
rest.updateSV({
|
|
71
|
+
s: hsv.s,
|
|
72
|
+
v: hsv.v
|
|
80
73
|
});
|
|
74
|
+
rest.updateAlpha(alpha);
|
|
75
|
+
paletteSVRef.value?.init();
|
|
76
|
+
paletteHueRef.value?.init();
|
|
77
|
+
paletteAlphaRef.value?.init();
|
|
81
78
|
}, { immediate: true });
|
|
82
79
|
provide(PaletteDIKey, {
|
|
83
80
|
cls,
|
|
84
81
|
HSV,
|
|
85
82
|
RGB,
|
|
86
83
|
alpha,
|
|
87
|
-
|
|
84
|
+
userAction,
|
|
85
|
+
isUserActive,
|
|
88
86
|
...rest
|
|
89
87
|
});
|
|
90
88
|
return (_ctx, _cache) => {
|
|
@@ -106,8 +104,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
106
104
|
createVNode(_sfc_main$3, {
|
|
107
105
|
color: color.value,
|
|
108
106
|
"onUpdate:color": _cache[0] || (_cache[0] = ($event) => color.value = $event),
|
|
109
|
-
onClear: handleClear
|
|
110
|
-
}, null, 8, ["color"])
|
|
107
|
+
onClear: unref(handleClear)
|
|
108
|
+
}, null, 8, ["color", "onClear"])
|
|
111
109
|
]),
|
|
112
110
|
default: withCtx(() => [createElementVNode("span", {
|
|
113
111
|
class: normalizeClass(className.value),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.js","names":[],"sources":["../../../src/components/palette/palette.vue"],"sourcesContent":["<template>\n <u-tip\n trigger=\"click\"\n :class=\"cls.e('panel')\"\n v-model:visible=\"visible\"\n :disabled=\"disabled || readonly\"\n >\n <span :class=\"className\" :style=\"{ backgroundColor: color }\"> </span>\n\n <template #content>\n <!-- 饱和度和亮度 -->\n <PaletteSV ref=\"palette-sv\" />\n\n <!-- 色相 -->\n <PaletteHue ref=\"palette-hue\" />\n\n <!-- 透明度 -->\n <PaletteAlpha ref=\"palette-alpha\" />\n\n <!-- 颜色切换 -->\n <PaletteColorSwitch v-model:color=\"color\" @clear=\"handleClear\" />\n </template>\n </u-tip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormComponent, useFormFallbackProps,
|
|
1
|
+
{"version":3,"file":"palette.js","names":[],"sources":["../../../src/components/palette/palette.vue"],"sourcesContent":["<template>\n <u-tip\n trigger=\"click\"\n :class=\"cls.e('panel')\"\n v-model:visible=\"visible\"\n :disabled=\"disabled || readonly\"\n >\n <span :class=\"className\" :style=\"{ backgroundColor: color }\"> </span>\n\n <template #content>\n <!-- 饱和度和亮度 -->\n <PaletteSV ref=\"palette-sv\" />\n\n <!-- 色相 -->\n <PaletteHue ref=\"palette-hue\" />\n\n <!-- 透明度 -->\n <PaletteAlpha ref=\"palette-alpha\" />\n\n <!-- 颜色切换 -->\n <PaletteColorSwitch v-model:color=\"color\" @clear=\"handleClear\" />\n </template>\n </u-tip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormComponent, useFormFallbackProps, useUserAction } from '@veltra/compositions'\nimport { bem } from '@veltra/utils'\nimport { computed, provide, shallowRef, useTemplateRef, watch } from 'vue'\n\nimport type { PaletteProps } from '../../types'\nimport { UTip } from '../tip'\nimport { HSV2RGB, RGB2HEX, HEX2RGBA, RGB2HSV } from './color-transform'\nimport { PaletteDIKey } from './di'\nimport PaletteAlpha from './palette-alpha.vue'\nimport PaletteColorSwitch from './palette-color-switch.vue'\nimport PaletteHue from './palette-hue.vue'\nimport PaletteSV from './palette-sv.vue'\nimport { useHSV } from './use-hsv'\n\ndefineOptions({\n name: 'Palette'\n})\n\nconst props = withDefaults(defineProps<PaletteProps>(), {\n disabled: undefined,\n readonly: undefined\n})\n\nconst { formProps } = useFormComponent()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props])\n\nconst cls = bem('palette')\n\nconst className = computed(() => {\n return [cls.b, cls.m(size.value), bem.is('no-color', !color.value)]\n})\n\nconst { HSV, alpha, ...rest } = useHSV()\n\nconst color = defineModel<string>()\nconst RGB = computed(() => HSV2RGB(HSV))\nconst { userAction, isUserActive } = useUserAction()\n\nwatch([alpha, RGB], ([alpha, RGB]) => {\n color.value = `#${RGB2HEX(RGB, alpha)}`\n})\n\nconst visible = shallowRef(false)\n\nconst handleClear = userAction(() => {\n color.value = ''\n rest.updateAlpha(1)\n visible.value = false\n})\n\nconst paletteSVRef = useTemplateRef('palette-sv')\nconst paletteHueRef = useTemplateRef('palette-hue')\nconst paletteAlphaRef = useTemplateRef('palette-alpha')\n\nwatch(\n color,\n (color) => {\n if (!color) return\n if (isUserActive()) return\n\n const { RGB, alpha } = HEX2RGBA(color)\n const hsv = RGB2HSV(RGB)\n rest.updateHue(hsv.h)\n rest.updateSV({ s: hsv.s, v: hsv.v })\n rest.updateAlpha(alpha)\n\n paletteSVRef.value?.init()\n paletteHueRef.value?.init()\n paletteAlphaRef.value?.init()\n },\n { immediate: true }\n)\n\nprovide(PaletteDIKey, {\n cls,\n HSV,\n RGB,\n alpha,\n userAction,\n isUserActive,\n ...rest\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CA,MAAM,QAAQ;EAKd,MAAM,EAAE,cAAc,kBAAiB;EAEvC,MAAM,EAAE,MAAM,UAAU,aAAa,qBAAqB,CAAC,aAAa,EAAE,EAAE,MAAM,CAAA;EAElF,MAAM,MAAM,IAAI,UAAS;EAEzB,MAAM,YAAY,eAAe;AAC/B,UAAO;IAAC,IAAI;IAAG,IAAI,EAAE,KAAK,MAAM;IAAE,IAAI,GAAG,YAAY,CAAC,MAAM,MAAM;IAAA;IACnE;EAED,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS,QAAO;EAEvC,MAAM,QAAQ,SAAmB,SAAA,aAAC;EAClC,MAAM,MAAM,eAAe,QAAQ,IAAI,CAAA;EACvC,MAAM,EAAE,YAAY,iBAAiB,eAAc;AAEnD,QAAM,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,SAAS;AACpC,SAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM;IACtC;EAED,MAAM,UAAU,WAAW,MAAK;EAEhC,MAAM,cAAc,iBAAiB;AACnC,SAAM,QAAQ;AACd,QAAK,YAAY,EAAC;AAClB,WAAQ,QAAQ;IACjB;EAED,MAAM,eAAe,eAAe,aAAY;EAChD,MAAM,gBAAgB,eAAe,cAAa;EAClD,MAAM,kBAAkB,eAAe,gBAAe;AAEtD,QACE,QACC,UAAU;AACT,OAAI,CAAC,MAAO;AACZ,OAAI,cAAc,CAAE;GAEpB,MAAM,EAAE,KAAK,UAAU,SAAS,MAAK;GACrC,MAAM,MAAM,QAAQ,IAAG;AACvB,QAAK,UAAU,IAAI,EAAC;AACpB,QAAK,SAAS;IAAE,GAAG,IAAI;IAAG,GAAG,IAAI;IAAG,CAAA;AACpC,QAAK,YAAY,MAAK;AAEtB,gBAAa,OAAO,MAAK;AACzB,iBAAc,OAAO,MAAK;AAC1B,mBAAgB,OAAO,MAAK;KAE9B,EAAE,WAAW,MAAK,CACpB;AAEA,UAAQ,cAAc;GACpB;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,CAAA;;uBA3GC,YAqBQ,MAAA,YAAA,EAAA;IApBN,SAAQ;IACP,OAAK,eAAE,MAAA,IAAG,CAAC,EAAC,QAAA,CAAA;IACL,SAAS,QAAA;8DAAA,QAAO,QAAA;IACvB,UAAU,MAAA,SAAQ,IAAI,MAAA,SAAQ;;IAIpB,SAAO,cACD;KAAf,mBAAA,WAAe;KACf,YAA8B,aAAA,EAAnB,KAAI,cAAY,EAAA,MAAA,IAAA;KAE3B,mBAAA,OAAW;KACX,YAAgC,aAAA,EAApB,KAAI,eAAa,EAAA,MAAA,IAAA;KAE7B,mBAAA,QAAY;KACZ,YAAoC,aAAA,EAAtB,KAAI,iBAAe,EAAA,MAAA,IAAA;KAEjC,mBAAA,SAAa;KACb,YAAiE,aAAA;MAArC,OAAO,MAAA;8DAAA,MAAK,QAAA;MAAG,SAAO,MAAA,YAAW;;;2BAbM,CAArE,mBAAqE,QAAA;KAA9D,OAAK,eAAE,UAAA,MAAS;KAAG,OAAK,eAAA,EAAA,iBAAqB,MAAA,OAAK,CAAA"}
|
|
@@ -15,9 +15,9 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, {}, {}, {}, {
|
|
|
15
15
|
}, string, _$vue.PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
16
16
|
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
17
17
|
}>, {
|
|
18
|
-
clearable: boolean;
|
|
19
18
|
disabled: boolean;
|
|
20
19
|
readonly: boolean;
|
|
20
|
+
clearable: boolean;
|
|
21
21
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
22
22
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
23
23
|
declare const _default: typeof __VLS_export;
|
|
@@ -15,8 +15,8 @@ declare const __VLS_base: _$vue.DefineComponent<PopConfirmProps, {}, {}, {}, {},
|
|
|
15
15
|
onCancel?: (() => any) | undefined;
|
|
16
16
|
}>, {
|
|
17
17
|
icon: _$vue.Component;
|
|
18
|
-
direction: TipDirection;
|
|
19
18
|
trigger: "hover" | "click";
|
|
19
|
+
direction: TipDirection;
|
|
20
20
|
iconColor: string;
|
|
21
21
|
confirmText: string;
|
|
22
22
|
cancelText: string;
|
|
@@ -16,11 +16,11 @@ type __VLS_Slots = {} & {
|
|
|
16
16
|
default?: (props: typeof __VLS_3) => any;
|
|
17
17
|
};
|
|
18
18
|
declare const __VLS_base: _$vue.DefineComponent<ProgressNodesProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {} & {
|
|
19
|
-
"update:modelValue": (value: string | number) => any;
|
|
20
19
|
click: (node: Record<string, any>, index: number) => any;
|
|
20
|
+
"update:modelValue": (value: string | number) => any;
|
|
21
21
|
}, string, _$vue.PublicProps, Readonly<ProgressNodesProps> & Readonly<{
|
|
22
|
-
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
23
22
|
onClick?: ((node: Record<string, any>, index: number) => any) | undefined;
|
|
23
|
+
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
24
24
|
}>, {
|
|
25
25
|
colorType: _$_veltra_utils0.ColorType;
|
|
26
26
|
labelKey: string;
|
|
@@ -16,11 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
/** 暗色:data-theme 与系统偏好,与 UITheme.injectBuiltInThemes 选择器策略一致 */
|
|
18
18
|
.u-progress-nodes {
|
|
19
|
-
--checked-color: var(--u-color-primary);
|
|
20
|
-
--node-color: var(--u-text-color-placeholder);
|
|
21
|
-
--dot-size: 14px;
|
|
22
19
|
position: relative;
|
|
23
|
-
color: var(--
|
|
20
|
+
color: var(--u-text-color-placeholder);
|
|
24
21
|
overflow: auto;
|
|
25
22
|
cursor: default;
|
|
26
23
|
scrollbar-width: none;
|
|
@@ -34,27 +31,6 @@
|
|
|
34
31
|
.u-progress-nodes.is-dragging {
|
|
35
32
|
cursor: grabbing;
|
|
36
33
|
}
|
|
37
|
-
.u-progress-nodes--primary {
|
|
38
|
-
--checked-color: var(--u-color-primary);
|
|
39
|
-
}
|
|
40
|
-
.u-progress-nodes--success {
|
|
41
|
-
--checked-color: var(--u-color-success);
|
|
42
|
-
}
|
|
43
|
-
.u-progress-nodes--warning {
|
|
44
|
-
--checked-color: var(--u-color-warning);
|
|
45
|
-
}
|
|
46
|
-
.u-progress-nodes--danger {
|
|
47
|
-
--checked-color: var(--u-color-danger);
|
|
48
|
-
}
|
|
49
|
-
.u-progress-nodes--info {
|
|
50
|
-
--checked-color: var(--u-color-info);
|
|
51
|
-
}
|
|
52
|
-
.u-progress-nodes--disabled {
|
|
53
|
-
--checked-color: var(--u-color-disabled);
|
|
54
|
-
}
|
|
55
|
-
.u-progress-nodes--default {
|
|
56
|
-
--checked-color: var(--u-color-default);
|
|
57
|
-
}
|
|
58
34
|
.u-progress-nodes__list {
|
|
59
35
|
position: relative;
|
|
60
36
|
display: flex;
|
|
@@ -87,8 +63,8 @@
|
|
|
87
63
|
}
|
|
88
64
|
.u-progress-nodes__dot {
|
|
89
65
|
position: relative;
|
|
90
|
-
width:
|
|
91
|
-
height:
|
|
66
|
+
width: 14px;
|
|
67
|
+
height: 14px;
|
|
92
68
|
border: 2px solid currentColor;
|
|
93
69
|
border-radius: 50%;
|
|
94
70
|
background-color: var(--u-bg-color-top);
|
|
@@ -112,14 +88,84 @@
|
|
|
112
88
|
white-space: nowrap;
|
|
113
89
|
}
|
|
114
90
|
.u-progress-nodes .u-progress-nodes__item.is-checked {
|
|
115
|
-
color: var(--
|
|
91
|
+
color: var(--u-color-primary);
|
|
116
92
|
}
|
|
117
93
|
.u-progress-nodes .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
118
|
-
background-color: var(--
|
|
119
|
-
border-color: var(--
|
|
94
|
+
background-color: var(--u-color-primary);
|
|
95
|
+
border-color: var(--u-color-primary);
|
|
120
96
|
}
|
|
121
97
|
.u-progress-nodes .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
122
|
-
color: var(--
|
|
98
|
+
color: var(--u-color-primary);
|
|
99
|
+
}
|
|
100
|
+
.u-progress-nodes--primary .u-progress-nodes__item.is-checked {
|
|
101
|
+
color: var(--u-color-primary);
|
|
102
|
+
}
|
|
103
|
+
.u-progress-nodes--primary .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
104
|
+
background-color: var(--u-color-primary);
|
|
105
|
+
border-color: var(--u-color-primary);
|
|
106
|
+
}
|
|
107
|
+
.u-progress-nodes--primary .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
108
|
+
color: var(--u-color-primary);
|
|
109
|
+
}
|
|
110
|
+
.u-progress-nodes--success .u-progress-nodes__item.is-checked {
|
|
111
|
+
color: var(--u-color-success);
|
|
112
|
+
}
|
|
113
|
+
.u-progress-nodes--success .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
114
|
+
background-color: var(--u-color-success);
|
|
115
|
+
border-color: var(--u-color-success);
|
|
116
|
+
}
|
|
117
|
+
.u-progress-nodes--success .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
118
|
+
color: var(--u-color-success);
|
|
119
|
+
}
|
|
120
|
+
.u-progress-nodes--warning .u-progress-nodes__item.is-checked {
|
|
121
|
+
color: var(--u-color-warning);
|
|
122
|
+
}
|
|
123
|
+
.u-progress-nodes--warning .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
124
|
+
background-color: var(--u-color-warning);
|
|
125
|
+
border-color: var(--u-color-warning);
|
|
126
|
+
}
|
|
127
|
+
.u-progress-nodes--warning .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
128
|
+
color: var(--u-color-warning);
|
|
129
|
+
}
|
|
130
|
+
.u-progress-nodes--danger .u-progress-nodes__item.is-checked {
|
|
131
|
+
color: var(--u-color-danger);
|
|
132
|
+
}
|
|
133
|
+
.u-progress-nodes--danger .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
134
|
+
background-color: var(--u-color-danger);
|
|
135
|
+
border-color: var(--u-color-danger);
|
|
136
|
+
}
|
|
137
|
+
.u-progress-nodes--danger .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
138
|
+
color: var(--u-color-danger);
|
|
139
|
+
}
|
|
140
|
+
.u-progress-nodes--info .u-progress-nodes__item.is-checked {
|
|
141
|
+
color: var(--u-color-info);
|
|
142
|
+
}
|
|
143
|
+
.u-progress-nodes--info .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
144
|
+
background-color: var(--u-color-info);
|
|
145
|
+
border-color: var(--u-color-info);
|
|
146
|
+
}
|
|
147
|
+
.u-progress-nodes--info .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
148
|
+
color: var(--u-color-info);
|
|
149
|
+
}
|
|
150
|
+
.u-progress-nodes--disabled .u-progress-nodes__item.is-checked {
|
|
151
|
+
color: var(--u-color-disabled);
|
|
152
|
+
}
|
|
153
|
+
.u-progress-nodes--disabled .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
154
|
+
background-color: var(--u-color-disabled);
|
|
155
|
+
border-color: var(--u-color-disabled);
|
|
156
|
+
}
|
|
157
|
+
.u-progress-nodes--disabled .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
158
|
+
color: var(--u-color-disabled);
|
|
159
|
+
}
|
|
160
|
+
.u-progress-nodes--default .u-progress-nodes__item.is-checked {
|
|
161
|
+
color: var(--u-color-default);
|
|
162
|
+
}
|
|
163
|
+
.u-progress-nodes--default .u-progress-nodes__item.is-checked .u-progress-nodes__dot {
|
|
164
|
+
background-color: var(--u-color-default);
|
|
165
|
+
border-color: var(--u-color-default);
|
|
166
|
+
}
|
|
167
|
+
.u-progress-nodes--default .u-progress-nodes__item.is-checked .u-progress-nodes__label {
|
|
168
|
+
color: var(--u-color-default);
|
|
123
169
|
}
|
|
124
170
|
.u-progress-nodes .u-progress-nodes__item.is-active {
|
|
125
171
|
isolation: isolate;
|
|
@@ -152,10 +198,10 @@
|
|
|
152
198
|
width: 100%;
|
|
153
199
|
}
|
|
154
200
|
.u-progress-nodes__link {
|
|
155
|
-
width: calc(100% -
|
|
201
|
+
width: calc(100% - 14px + 24px);
|
|
156
202
|
height: 0;
|
|
157
203
|
border-width: 1px 0 0 0;
|
|
158
|
-
left: calc(50% +
|
|
204
|
+
left: calc(50% + 7px);
|
|
159
205
|
top: 50%;
|
|
160
206
|
transform: translateY(-50%);
|
|
161
207
|
}
|
|
@@ -15,14 +15,6 @@
|
|
|
15
15
|
* --u-height-small: 24px;
|
|
16
16
|
*/
|
|
17
17
|
/** 暗色:data-theme 与系统偏好,与 UITheme.injectBuiltInThemes 选择器策略一致 */
|
|
18
|
-
html[data-theme=dark] .u-radio {
|
|
19
|
-
--u-radio-border: #595959;
|
|
20
|
-
}
|
|
21
|
-
@media (prefers-color-scheme: dark) {
|
|
22
|
-
html:not([data-theme=light]) .u-radio {
|
|
23
|
-
--u-radio-border: #595959;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
18
|
.u-radio {
|
|
27
19
|
cursor: pointer;
|
|
28
20
|
vertical-align: middle;
|
|
@@ -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
|
-
labelKey: string;
|
|
20
|
-
valueKey: string;
|
|
21
19
|
disabled: boolean;
|
|
22
20
|
readonly: boolean;
|
|
21
|
+
labelKey: string;
|
|
22
|
+
valueKey: string;
|
|
23
23
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
24
24
|
declare const _default: typeof __VLS_export;
|
|
25
25
|
//#endregion
|
|
@@ -12,10 +12,10 @@ declare const __VLS_export: _$vue.DefineComponent<RichTextEditorProps & {
|
|
|
12
12
|
}> & Readonly<{
|
|
13
13
|
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
14
14
|
}>, {
|
|
15
|
-
|
|
15
|
+
format: RichTextFormat;
|
|
16
16
|
disabled: boolean;
|
|
17
17
|
readonly: boolean;
|
|
18
|
-
|
|
18
|
+
placeholder: string;
|
|
19
19
|
toolbar: ToolbarItem[];
|
|
20
20
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
21
21
|
//#endregion
|