@sdata/web-vue 1.7.1 → 1.9.0
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/sd.css +182 -1
- package/dist/sd.min.css +1 -1
- package/es/_components/input-label/input-label.js +30 -24
- package/es/_components/select-view/interface.d.ts +1 -0
- package/es/_components/select-view/select-view.d.ts +12 -3
- package/es/_components/select-view/select-view.js +38 -28
- package/es/_components/select-view/style/index.css +45 -0
- package/es/_hooks/use-allow-clear.d.ts +4 -0
- package/es/_hooks/use-allow-clear.js +20 -0
- package/es/_hooks/use-trigger.d.ts +4 -6
- package/es/_hooks/use-trigger.js +7 -5
- package/es/_utils/color.js +1 -18
- package/es/auto-complete/auto-complete.d.ts +1 -1
- package/es/auto-complete/auto-complete.js +4 -2
- package/es/auto-complete/index.d.ts +3 -3
- package/es/badge/badge.d.ts +1 -1
- package/es/badge/index.d.ts +3 -3
- package/es/carousel/carousel-arrow.vue.d.ts +1 -1
- package/es/carousel/carousel.d.ts +2 -2
- package/es/carousel/index.d.ts +6 -6
- package/es/cascader/cascader-panel.vue.d.ts +2 -2
- package/es/cascader/cascader.js +1 -1
- package/es/cascader/cascader.vue.d.ts +21 -11
- package/es/cascader/cascader.vue_vue_type_script_lang.js +4 -1
- package/es/cascader/index.d.ts +47 -26
- package/es/color-picker/color-picker.d.ts +115 -40
- package/es/color-picker/color-picker.js +146 -102
- package/es/color-picker/index.d.ts +217 -69
- package/es/color-picker/interface.d.ts +41 -0
- package/es/color-picker/palette.js +1 -1
- package/es/color-picker/panel.d.ts +73 -34
- package/es/color-picker/panel.js +423 -89
- package/es/color-picker/style/index.css +92 -1
- package/es/color-picker/style/index.scss +107 -1
- package/es/color-picker/utils.d.ts +89 -0
- package/es/color-picker/utils.js +456 -0
- package/es/config-provider/config-provider.vue.d.ts +10 -1
- package/es/config-provider/config-provider.vue_vue_type_script_lang.js +6 -1
- package/es/config-provider/context.d.ts +1 -0
- package/es/config-provider/index.d.ts +18 -3
- package/es/date-picker/index.d.ts +7 -6
- package/es/date-picker/picker.js +1 -1
- package/es/date-picker/picker.vue.d.ts +7 -6
- package/es/date-picker/picker.vue_vue_type_script_lang.js +4 -1
- package/es/date-picker/range-picker.js +1 -1
- package/es/date-picker/range-picker.vue.d.ts +7 -6
- package/es/date-picker/range-picker.vue_vue_type_script_lang.js +4 -1
- package/es/descriptions/descriptions.d.ts +2 -2
- package/es/descriptions/index.d.ts +6 -6
- package/es/drawer/drawer.vue_vue_type_script_lang.js +1 -1
- package/es/dropdown/dropdown-button.vue.d.ts +8 -8
- package/es/dropdown/dropdown-panel.vue.d.ts +2 -2
- package/es/dropdown/dropdown-submenu.vue.d.ts +8 -8
- package/es/dropdown/dropdown.vue.d.ts +8 -8
- package/es/dropdown/index.d.ts +32 -32
- package/es/ellipsis/ellipsis.vue.d.ts +13 -13
- package/es/ellipsis/ellipsis.vue_vue_type_script_lang.js +1 -1
- package/es/ellipsis/index.d.ts +56 -56
- package/es/ellipsis/performant-ellipsis.vue.d.ts +14 -14
- package/es/form/form-item-label.vue.d.ts +12 -12
- package/es/form/form-item.vue.d.ts +12 -12
- package/es/form/index.d.ts +12 -12
- package/es/grid/grid.vue.d.ts +1 -1
- package/es/grid/index.d.ts +3 -3
- package/es/image/image.vue.d.ts +12 -12
- package/es/image/preview-action.d.ts +12 -12
- package/es/image/preview-group.vue.d.ts +12 -12
- package/es/image/preview-toolbar.vue.d.ts +12 -12
- package/es/image/preview.vue.d.ts +12 -12
- package/es/index.css +182 -1
- package/es/index.js +2 -2
- package/es/input/input.js +4 -2
- package/es/input-number/input-number.js +4 -2
- package/es/input-tag/index.d.ts +6 -6
- package/es/input-tag/input-tag.d.ts +3 -3
- package/es/input-tag/input-tag.js +183 -32
- package/es/input-tag/style/index.css +45 -0
- package/es/input-tag/style/input-tag.scss +53 -0
- package/es/list/index.d.ts +3 -3
- package/es/list/list.d.ts +1 -1
- package/es/mention/mention.js +4 -2
- package/es/menu/sub-menu-pop.vue.d.ts +6 -6
- package/es/modal/modal.vue_vue_type_script_lang.js +1 -1
- package/es/overflow-list/index.d.ts +3 -3
- package/es/overflow-list/overflow-list.d.ts +1 -1
- package/es/pagination/page-options.vue.d.ts +188 -98
- package/es/popconfirm/index.d.ts +12 -12
- package/es/popconfirm/popconfirm.vue.d.ts +6 -6
- package/es/popover/index.d.ts +12 -12
- package/es/popover/popover.vue.d.ts +6 -6
- package/es/progress/index.d.ts +5 -5
- package/es/progress/line.vue.d.ts +1 -1
- package/es/progress/progress.vue.d.ts +2 -2
- package/es/rate/rate.js +4 -2
- package/es/scrollbar/index.d.ts +2 -2
- package/es/scrollbar/scrollbar.vue.d.ts +1 -1
- package/es/scrollbar/thumb.vue.d.ts +1 -1
- package/es/sd-vue.js +2 -2
- package/es/select/hooks/use-options.d.ts +9 -4
- package/es/select/hooks/use-options.js +2 -2
- package/es/select/hooks/use-select.d.ts +9 -4
- package/es/select/index.d.ts +188 -98
- package/es/select/interface.d.ts +57 -46
- package/es/select/select-dropdown.vue.d.ts +2 -2
- package/es/select/select.d.ts +107 -59
- package/es/select/select.js +182 -126
- package/es/select/utils.d.ts +1 -1
- package/es/select/utils.js +28 -10
- package/es/skeleton/index.d.ts +1 -1
- package/es/skeleton/line.vue.d.ts +1 -1
- package/es/slider/index.d.ts +27 -27
- package/es/slider/slider-button.vue.d.ts +12 -12
- package/es/slider/slider.vue.d.ts +13 -13
- package/es/space/index.d.ts +3 -3
- package/es/space/space.d.ts +1 -1
- package/es/statistic/index.d.ts +6 -6
- package/es/statistic/statistic.vue.d.ts +2 -2
- package/es/table/index.d.ts +6 -6
- package/es/table/table.d.ts +2 -2
- package/es/tabs/index.d.ts +9 -9
- package/es/tabs/tabs.d.ts +3 -3
- package/es/tag/index.d.ts +3 -3
- package/es/tag/tag.vue.d.ts +1 -1
- package/es/textarea/index.d.ts +3 -3
- package/es/textarea/textarea.vue.d.ts +1 -1
- package/es/textarea/textarea.vue_vue_type_script_lang.js +6 -2
- package/es/time-picker/index.d.ts +15 -12
- package/es/time-picker/time-picker.js +1 -1
- package/es/time-picker/time-picker.vue.d.ts +7 -6
- package/es/time-picker/time-picker.vue_vue_type_script_lang.js +4 -1
- package/es/tooltip/index.d.ts +12 -12
- package/es/tooltip/tooltip.vue.d.ts +6 -6
- package/es/transfer/index.d.ts +10 -10
- package/es/transfer/transfer-view.vue.d.ts +5 -5
- package/es/transfer/transfer.vue.d.ts +5 -5
- package/es/tree/index.d.ts +6 -6
- package/es/tree/tree.vue.d.ts +2 -2
- package/es/tree-select/hooks/use-selected-state.d.ts +2 -0
- package/es/tree-select/hooks/use-selected-state.js +26 -8
- package/es/tree-select/index.d.ts +268 -61
- package/es/tree-select/interface.d.ts +16 -3
- package/es/tree-select/panel.d.ts +6 -6
- package/es/tree-select/tree-select.js +29 -16
- package/es/tree-select/tree-select.vue.d.ts +144 -30
- package/es/tree-select/tree-select.vue_vue_type_script_lang.js +102 -22
- package/es/trigger/index.d.ts +6 -6
- package/es/trigger/trigger.d.ts +2 -2
- package/es/typography/operations.vue.d.ts +12 -12
- package/json/vetur-attributes.json +82 -178
- package/json/vetur-tags.json +24 -52
- package/json/web-types.json +164 -387
- package/package.json +9 -7
- package/es/color-picker/input-alpha.js +0 -32
- package/es/color-picker/input-hex.js +0 -73
- package/es/color-picker/input-rgb.js +0 -55
|
@@ -176,6 +176,86 @@ $__less-vars: (
|
|
|
176
176
|
border-radius: $color-panel-border-radius;
|
|
177
177
|
box-shadow: $color-panel-box-shadow;
|
|
178
178
|
|
|
179
|
+
.#{$color-picker-prefix-cls}-panel-head {
|
|
180
|
+
display: flex;
|
|
181
|
+
justify-content: center;
|
|
182
|
+
padding: global.$spacing-4 global.$spacing-4 0;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.#{$color-picker-prefix-cls}-gradient-panel {
|
|
186
|
+
padding: global.$spacing-4 global.$spacing-4 0;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.#{$color-picker-prefix-cls}-gradient-bar-shell {
|
|
190
|
+
position: relative;
|
|
191
|
+
display: flex;
|
|
192
|
+
align-items: center;
|
|
193
|
+
height: 28px;
|
|
194
|
+
user-select: none;
|
|
195
|
+
margin-inline: global.$spacing-4;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.#{$color-picker-prefix-cls}-gradient-bar {
|
|
199
|
+
display: block;
|
|
200
|
+
width: 100%;
|
|
201
|
+
height: 8px;
|
|
202
|
+
padding: 0;
|
|
203
|
+
background-color: transparent;
|
|
204
|
+
border: 1px solid $color-panel-border-color;
|
|
205
|
+
border-radius: global.$border-radius-medium;
|
|
206
|
+
cursor: pointer;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.#{$color-picker-prefix-cls}-gradient-thumb {
|
|
210
|
+
position: absolute;
|
|
211
|
+
z-index: 1;
|
|
212
|
+
width: 18px;
|
|
213
|
+
height: 18px;
|
|
214
|
+
padding: 2px;
|
|
215
|
+
background: var(--color-bg-white);
|
|
216
|
+
border: 1px solid var(--color-border-2);
|
|
217
|
+
border-radius: global.$border-radius-circle;
|
|
218
|
+
box-shadow: 0 1px 3px rgb(0 0 0 / 14%);
|
|
219
|
+
transform: translateX(-50%);
|
|
220
|
+
cursor: pointer;
|
|
221
|
+
touch-action: none;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.#{$color-picker-prefix-cls}-gradient-thumb-active {
|
|
225
|
+
border-color: var(--color-primary-6);
|
|
226
|
+
box-shadow: 0 0 0 2px rgb(22 93 255 / 16%);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.#{$color-picker-prefix-cls}-gradient-thumb-inner {
|
|
230
|
+
display: block;
|
|
231
|
+
width: 100%;
|
|
232
|
+
height: 100%;
|
|
233
|
+
border-radius: global.$border-radius-circle;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.#{$color-picker-prefix-cls}-gradient-meta {
|
|
237
|
+
display: flex;
|
|
238
|
+
gap: global.$spacing-3;
|
|
239
|
+
align-items: center;
|
|
240
|
+
margin-top: global.$spacing-4;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.#{$color-picker-prefix-cls}-gradient-label {
|
|
244
|
+
color: var(--color-text-2);
|
|
245
|
+
font-size: global.$font-size-body-1;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.#{$color-picker-prefix-cls}-gradient-degree {
|
|
249
|
+
width: 72px;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.#{$color-picker-prefix-cls}-gradient-preview {
|
|
253
|
+
height: 32px;
|
|
254
|
+
margin-top: global.$spacing-4;
|
|
255
|
+
border: 1px solid $color-panel-border-color;
|
|
256
|
+
border-radius: global.$border-radius-medium;
|
|
257
|
+
}
|
|
258
|
+
|
|
179
259
|
.#{$color-picker-prefix-cls}-palette {
|
|
180
260
|
position: relative;
|
|
181
261
|
box-sizing: border-box;
|
|
@@ -261,12 +341,28 @@ $__less-vars: (
|
|
|
261
341
|
margin-top: global.$spacing-6;
|
|
262
342
|
}
|
|
263
343
|
|
|
344
|
+
.#{$color-picker-prefix-cls}-colors-header {
|
|
345
|
+
display: flex;
|
|
346
|
+
gap: global.$spacing-3;
|
|
347
|
+
align-items: center;
|
|
348
|
+
justify-content: space-between;
|
|
349
|
+
}
|
|
350
|
+
|
|
264
351
|
.#{$color-picker-prefix-cls}-colors-text {
|
|
265
352
|
color: var(--color-text-1);
|
|
266
353
|
font-weight: global.$font-weight-400;
|
|
267
354
|
font-size: $color-panel-section-title-font-size;
|
|
268
355
|
}
|
|
269
356
|
|
|
357
|
+
.#{$color-picker-prefix-cls}-colors-action {
|
|
358
|
+
padding: 0;
|
|
359
|
+
color: var(--color-primary-6);
|
|
360
|
+
font-size: global.$font-size-body-1;
|
|
361
|
+
background: transparent;
|
|
362
|
+
border: 0;
|
|
363
|
+
cursor: pointer;
|
|
364
|
+
}
|
|
365
|
+
|
|
270
366
|
.#{$color-picker-prefix-cls}-colors-empty {
|
|
271
367
|
margin: global.$spacing-6 0;
|
|
272
368
|
color: var(--color-text-3);
|
|
@@ -386,6 +482,14 @@ $__less-vars: (
|
|
|
386
482
|
width: $color-panel-alpha-input-width;
|
|
387
483
|
}
|
|
388
484
|
|
|
485
|
+
.#{$color-picker-prefix-cls}-input-group {
|
|
486
|
+
width: 100%;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
.#{$color-picker-prefix-cls}-format-input {
|
|
490
|
+
min-width: 0;
|
|
491
|
+
}
|
|
492
|
+
|
|
389
493
|
.#{$color-picker-prefix-cls}-input-hex {
|
|
390
494
|
.#{theme.$prefix}-input {
|
|
391
495
|
padding-left: global.$spacing-2;
|
|
@@ -396,7 +500,9 @@ $__less-vars: (
|
|
|
396
500
|
.#{$color-picker-prefix-cls}-palette,
|
|
397
501
|
.#{$color-picker-prefix-cls}-control-bar,
|
|
398
502
|
.#{$color-picker-prefix-cls}-color-block,
|
|
399
|
-
.#{$color-picker-prefix-cls}-preview
|
|
503
|
+
.#{$color-picker-prefix-cls}-preview,
|
|
504
|
+
.#{$color-picker-prefix-cls}-gradient-bar,
|
|
505
|
+
.#{$color-picker-prefix-cls}-gradient-thumb {
|
|
400
506
|
cursor: not-allowed;
|
|
401
507
|
opacity: 0.8;
|
|
402
508
|
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { ColorFormat, ColorMode, ColorObject, ColorValueState, GradientColorPoint, HSVA, LegacyFormat } from './interface';
|
|
2
|
+
export declare const DEFAULT_LINEAR_GRADIENT = "linear-gradient(90deg, rgba(0, 82, 217, 1) 0%, rgba(255, 255, 255, 1) 100%)";
|
|
3
|
+
export declare const TD_COLOR_USED_COLORS_MAX_SIZE = 8;
|
|
4
|
+
export declare const round: (value: number, precision?: number) => number;
|
|
5
|
+
export declare const rgbToHsl: (r: number, g: number, b: number) => {
|
|
6
|
+
h: number;
|
|
7
|
+
s: number;
|
|
8
|
+
l: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const hslToRgb: (h: number, s: number, l: number) => {
|
|
11
|
+
r: number;
|
|
12
|
+
g: number;
|
|
13
|
+
b: number;
|
|
14
|
+
};
|
|
15
|
+
export declare const normalizeFormat: (format?: string, enableAlpha?: boolean) => ColorFormat;
|
|
16
|
+
export declare const parseColor: (input?: string) => {
|
|
17
|
+
a: number;
|
|
18
|
+
h: number;
|
|
19
|
+
s: number;
|
|
20
|
+
v: number;
|
|
21
|
+
};
|
|
22
|
+
export declare const isGradientColor: (input?: string) => boolean;
|
|
23
|
+
export declare const parseGradientString: (input?: string) => {
|
|
24
|
+
degree: number;
|
|
25
|
+
colors: {
|
|
26
|
+
id: string;
|
|
27
|
+
left: number;
|
|
28
|
+
color: string;
|
|
29
|
+
hsva: {
|
|
30
|
+
a: number;
|
|
31
|
+
h: number;
|
|
32
|
+
s: number;
|
|
33
|
+
v: number;
|
|
34
|
+
};
|
|
35
|
+
}[];
|
|
36
|
+
} | null;
|
|
37
|
+
export declare const formatColor: (hsva: HSVA, format: ColorFormat | LegacyFormat, enableAlpha?: boolean) => string;
|
|
38
|
+
export declare const createGradientPoint: (left: number, color: string) => {
|
|
39
|
+
id: string;
|
|
40
|
+
left: number;
|
|
41
|
+
color: string;
|
|
42
|
+
hsva: {
|
|
43
|
+
a: number;
|
|
44
|
+
h: number;
|
|
45
|
+
s: number;
|
|
46
|
+
v: number;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export declare const getDefaultGradientState: (baseColor?: string) => ColorValueState;
|
|
50
|
+
export declare const getDefaultColorState: () => ColorValueState;
|
|
51
|
+
export declare const getColorMode: (input: string | undefined, colorModes: ColorMode[]) => ColorMode;
|
|
52
|
+
export declare const parseColorState: (input?: string, colorModes?: ColorMode[]) => ColorValueState;
|
|
53
|
+
export declare const getGradientThumbBackground: (points: GradientColorPoint[]) => string;
|
|
54
|
+
export declare const getLinearGradientString: (state: ColorValueState) => string;
|
|
55
|
+
export declare const formatColorState: (state: ColorValueState, format: ColorFormat | LegacyFormat, enableAlpha?: boolean) => string;
|
|
56
|
+
export declare const getActiveGradientPoint: (state: ColorValueState) => GradientColorPoint | null;
|
|
57
|
+
export declare const setGradientSelectedPoint: (state: ColorValueState, selectedId: string) => ColorValueState;
|
|
58
|
+
export declare const setActiveColorHsva: (state: ColorValueState, hsva: HSVA) => {
|
|
59
|
+
hsva: HSVA;
|
|
60
|
+
mode: ColorMode;
|
|
61
|
+
gradientDegree: number;
|
|
62
|
+
gradientSelectedId: string;
|
|
63
|
+
gradientColors: GradientColorPoint[];
|
|
64
|
+
};
|
|
65
|
+
export declare const setGradientDegree: (state: ColorValueState, degree: number) => {
|
|
66
|
+
gradientDegree: number;
|
|
67
|
+
mode: ColorMode;
|
|
68
|
+
hsva: HSVA;
|
|
69
|
+
gradientSelectedId: string;
|
|
70
|
+
gradientColors: GradientColorPoint[];
|
|
71
|
+
};
|
|
72
|
+
export declare const setGradientColors: (state: ColorValueState, gradientColors: GradientColorPoint[]) => {
|
|
73
|
+
gradientColors: GradientColorPoint[];
|
|
74
|
+
gradientSelectedId: string;
|
|
75
|
+
hsva: HSVA;
|
|
76
|
+
mode: ColorMode;
|
|
77
|
+
gradientDegree: number;
|
|
78
|
+
};
|
|
79
|
+
export declare const addGradientColor: (state: ColorValueState, left: number, color?: string) => ColorValueState;
|
|
80
|
+
export declare const removeGradientColor: (state: ColorValueState, selectedId: string) => ColorValueState;
|
|
81
|
+
export declare const getColorBackground: (state: ColorValueState) => string;
|
|
82
|
+
export declare const getColorObject: (input: HSVA | ColorValueState) => ColorObject;
|
|
83
|
+
export declare const getFormatInputs: (hsva: HSVA, format: ColorFormat, enableAlpha?: boolean) => string[];
|
|
84
|
+
export declare const parseFormatInputValues: (values: string[], format: ColorFormat, enableAlpha?: boolean) => {
|
|
85
|
+
a: number;
|
|
86
|
+
h: number;
|
|
87
|
+
s: number;
|
|
88
|
+
v: number;
|
|
89
|
+
};
|
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.124.0/helpers/objectSpread2.js";
|
|
2
|
+
import { formatInputToHSVA, hsvToRgb, rgbToHex, rgbToHsv, rgbaToHex } from "../_utils/color.js";
|
|
3
|
+
//#region components/color-picker/utils.ts
|
|
4
|
+
var DEFAULT_HSVA = {
|
|
5
|
+
h: 0,
|
|
6
|
+
s: 1,
|
|
7
|
+
v: 1,
|
|
8
|
+
a: 1
|
|
9
|
+
};
|
|
10
|
+
var HSL_REGEXP = /^hsla?\((.+)\)$/i;
|
|
11
|
+
var HSV_REGEXP = /^hsva?\((.+)\)$/i;
|
|
12
|
+
var CMYK_REGEXP = /^cmyk\((.+)\)$/i;
|
|
13
|
+
var LINEAR_GRADIENT_REGEXP = /^linear-gradient\((.+)\)$/i;
|
|
14
|
+
var GRADIENT_DEGREE_REGEXP = /^(-?\d+(?:\.\d+)?)deg$/i;
|
|
15
|
+
var GRADIENT_STOP_REGEXP = /^(.*?)(?:\s+(-?\d+(?:\.\d+)?)%)?$/;
|
|
16
|
+
var gradientPointId = 0;
|
|
17
|
+
var clamp = (value, min, max) => {
|
|
18
|
+
if (Number.isNaN(value)) return min;
|
|
19
|
+
return Math.min(max, Math.max(min, value));
|
|
20
|
+
};
|
|
21
|
+
var round = (value, precision = 0) => {
|
|
22
|
+
const factor = Math.pow(10, precision);
|
|
23
|
+
return Math.round(value * factor) / factor;
|
|
24
|
+
};
|
|
25
|
+
var parseUnitValue = (value, max) => {
|
|
26
|
+
const trimmed = value.trim();
|
|
27
|
+
if (trimmed.endsWith("%")) return clamp(parseFloat(trimmed) / 100, 0, 1) * max;
|
|
28
|
+
return clamp(parseFloat(trimmed), 0, max);
|
|
29
|
+
};
|
|
30
|
+
var toGradientPointId = () => `gradient-point-${++gradientPointId}`;
|
|
31
|
+
var rgbToHsl = (r, g, b) => {
|
|
32
|
+
const red = r / 255;
|
|
33
|
+
const green = g / 255;
|
|
34
|
+
const blue = b / 255;
|
|
35
|
+
const max = Math.max(red, green, blue);
|
|
36
|
+
const min = Math.min(red, green, blue);
|
|
37
|
+
let hue = 0;
|
|
38
|
+
let saturation = 0;
|
|
39
|
+
const lightness = (max + min) / 2;
|
|
40
|
+
if (max !== min) {
|
|
41
|
+
const delta = max - min;
|
|
42
|
+
saturation = lightness > .5 ? delta / (2 - max - min) : delta / (max + min);
|
|
43
|
+
switch (max) {
|
|
44
|
+
case red:
|
|
45
|
+
hue = (green - blue) / delta + (green < blue ? 6 : 0);
|
|
46
|
+
break;
|
|
47
|
+
case green:
|
|
48
|
+
hue = (blue - red) / delta + 2;
|
|
49
|
+
break;
|
|
50
|
+
case blue:
|
|
51
|
+
hue = (red - green) / delta + 4;
|
|
52
|
+
break;
|
|
53
|
+
default: break;
|
|
54
|
+
}
|
|
55
|
+
hue /= 6;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
h: round(hue * 360),
|
|
59
|
+
s: round(saturation * 100),
|
|
60
|
+
l: round(lightness * 100)
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
var hueToRgb = (p, q, t) => {
|
|
64
|
+
let next = t;
|
|
65
|
+
if (next < 0) next += 1;
|
|
66
|
+
if (next > 1) next -= 1;
|
|
67
|
+
if (next < 1 / 6) return p + (q - p) * 6 * next;
|
|
68
|
+
if (next < 1 / 2) return q;
|
|
69
|
+
if (next < 2 / 3) return p + (q - p) * (2 / 3 - next) * 6;
|
|
70
|
+
return p;
|
|
71
|
+
};
|
|
72
|
+
var hslToRgb = (h, s, l) => {
|
|
73
|
+
const hue = (h % 360 + 360) % 360 / 360;
|
|
74
|
+
const saturation = clamp(s / 100, 0, 1);
|
|
75
|
+
const lightness = clamp(l / 100, 0, 1);
|
|
76
|
+
if (saturation === 0) {
|
|
77
|
+
const channel = Math.round(lightness * 255);
|
|
78
|
+
return {
|
|
79
|
+
r: channel,
|
|
80
|
+
g: channel,
|
|
81
|
+
b: channel
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
const q = lightness < .5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;
|
|
85
|
+
const p = 2 * lightness - q;
|
|
86
|
+
return {
|
|
87
|
+
r: Math.round(hueToRgb(p, q, hue + 1 / 3) * 255),
|
|
88
|
+
g: Math.round(hueToRgb(p, q, hue) * 255),
|
|
89
|
+
b: Math.round(hueToRgb(p, q, hue - 1 / 3) * 255)
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
var parseCommaArguments = (input) => {
|
|
93
|
+
const result = [];
|
|
94
|
+
let buffer = "";
|
|
95
|
+
let depth = 0;
|
|
96
|
+
for (const char of input) {
|
|
97
|
+
if (char === "(") depth += 1;
|
|
98
|
+
if (char === ")") depth = Math.max(0, depth - 1);
|
|
99
|
+
if (char === "," && depth === 0) {
|
|
100
|
+
result.push(buffer.trim());
|
|
101
|
+
buffer = "";
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
buffer += char;
|
|
105
|
+
}
|
|
106
|
+
if (buffer.trim()) result.push(buffer.trim());
|
|
107
|
+
return result;
|
|
108
|
+
};
|
|
109
|
+
var parseColorTuple = (input) => parseCommaArguments(input);
|
|
110
|
+
var parseHslString = (input) => {
|
|
111
|
+
const match = HSL_REGEXP.exec(input);
|
|
112
|
+
if (!match) return null;
|
|
113
|
+
const parts = parseColorTuple(match[1]);
|
|
114
|
+
if (parts.length < 3) return null;
|
|
115
|
+
const rgb = hslToRgb(parseFloat(parts[0]), parseUnitValue(parts[1], 100), parseUnitValue(parts[2], 100));
|
|
116
|
+
return _objectSpread2(_objectSpread2({}, rgbToHsv(rgb.r, rgb.g, rgb.b)), {}, { a: parts[3] ? clamp(parseUnitValue(parts[3], 1), 0, 1) : 1 });
|
|
117
|
+
};
|
|
118
|
+
var parseHsvString = (input) => {
|
|
119
|
+
const match = HSV_REGEXP.exec(input);
|
|
120
|
+
if (!match) return null;
|
|
121
|
+
const parts = parseColorTuple(match[1]);
|
|
122
|
+
if (parts.length < 3) return null;
|
|
123
|
+
return {
|
|
124
|
+
h: clamp((parseFloat(parts[0]) % 360 + 360) % 360 / 360, 0, 1),
|
|
125
|
+
s: clamp(parseUnitValue(parts[1], 100) / 100, 0, 1),
|
|
126
|
+
v: clamp(parseUnitValue(parts[2], 100) / 100, 0, 1),
|
|
127
|
+
a: parts[3] ? clamp(parseUnitValue(parts[3], 1), 0, 1) : 1
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
var parseCmykString = (input) => {
|
|
131
|
+
const match = CMYK_REGEXP.exec(input);
|
|
132
|
+
if (!match) return null;
|
|
133
|
+
const parts = parseColorTuple(match[1]);
|
|
134
|
+
if (parts.length < 4) return null;
|
|
135
|
+
const [c, m, y, k] = parts.map((part) => clamp(parseUnitValue(part, 100) / 100, 0, 1));
|
|
136
|
+
const rgb = {
|
|
137
|
+
r: Math.round(255 * (1 - c) * (1 - k)),
|
|
138
|
+
g: Math.round(255 * (1 - m) * (1 - k)),
|
|
139
|
+
b: Math.round(255 * (1 - y) * (1 - k))
|
|
140
|
+
};
|
|
141
|
+
return _objectSpread2(_objectSpread2({}, rgbToHsv(rgb.r, rgb.g, rgb.b)), {}, { a: 1 });
|
|
142
|
+
};
|
|
143
|
+
var normalizeFormat = (format, enableAlpha) => {
|
|
144
|
+
if (!format) return enableAlpha ? "RGBA" : "RGB";
|
|
145
|
+
const normalized = format.toUpperCase();
|
|
146
|
+
if (normalized === "HEX" && enableAlpha) return "HEX8";
|
|
147
|
+
if (normalized === "RGB" && enableAlpha) return "RGBA";
|
|
148
|
+
return normalized;
|
|
149
|
+
};
|
|
150
|
+
var parseColor = (input) => {
|
|
151
|
+
if (!input) return _objectSpread2({}, DEFAULT_HSVA);
|
|
152
|
+
const trimmed = input.trim();
|
|
153
|
+
return parseHsvString(trimmed) || parseHslString(trimmed) || parseCmykString(trimmed) || formatInputToHSVA(trimmed);
|
|
154
|
+
};
|
|
155
|
+
var parseGradientStop = (input, index, total) => {
|
|
156
|
+
var _match$;
|
|
157
|
+
const match = GRADIENT_STOP_REGEXP.exec(input);
|
|
158
|
+
const color = (match === null || match === void 0 || (_match$ = match[1]) === null || _match$ === void 0 ? void 0 : _match$.trim()) || input.trim();
|
|
159
|
+
let left = total === 1 ? 0 : index / (total - 1) * 100;
|
|
160
|
+
if ((match === null || match === void 0 ? void 0 : match[2]) !== void 0) left = parseFloat(match[2]);
|
|
161
|
+
const hsva = parseColor(color);
|
|
162
|
+
return {
|
|
163
|
+
id: toGradientPointId(),
|
|
164
|
+
left: clamp(left, 0, 100),
|
|
165
|
+
color,
|
|
166
|
+
hsva
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
var isGradientColor = (input) => Boolean(input && LINEAR_GRADIENT_REGEXP.exec(input.trim()));
|
|
170
|
+
var parseGradientString = (input) => {
|
|
171
|
+
if (!input || !isGradientColor(input)) return null;
|
|
172
|
+
const match = LINEAR_GRADIENT_REGEXP.exec(input.trim());
|
|
173
|
+
if (!match) return null;
|
|
174
|
+
const parts = parseCommaArguments(match[1]);
|
|
175
|
+
if (parts.length < 2) return null;
|
|
176
|
+
let degree = 90;
|
|
177
|
+
let stops = parts;
|
|
178
|
+
const degreeMatch = GRADIENT_DEGREE_REGEXP.exec(parts[0]);
|
|
179
|
+
if (degreeMatch) {
|
|
180
|
+
degree = parseFloat(degreeMatch[1]);
|
|
181
|
+
stops = parts.slice(1);
|
|
182
|
+
}
|
|
183
|
+
const gradientColors = stops.map((item, index) => parseGradientStop(item, index, stops.length)).sort((a, b) => a.left - b.left);
|
|
184
|
+
if (!gradientColors.length) return null;
|
|
185
|
+
return {
|
|
186
|
+
degree: clamp(degree, 0, 360),
|
|
187
|
+
colors: gradientColors
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
var formatColor = (hsva, format, enableAlpha) => {
|
|
191
|
+
const normalized = normalizeFormat(format, enableAlpha);
|
|
192
|
+
const rgb = hsvToRgb(hsva.h, hsva.s, hsva.v);
|
|
193
|
+
const alpha = round(hsva.a, 2);
|
|
194
|
+
const hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);
|
|
195
|
+
const hue = round(hsva.h * 360);
|
|
196
|
+
const saturation = round(hsva.s * 100);
|
|
197
|
+
const value = round(hsva.v * 100);
|
|
198
|
+
switch (normalized) {
|
|
199
|
+
case "HEX": return `#${rgbToHex(rgb.r, rgb.g, rgb.b)}`;
|
|
200
|
+
case "HEX8": return `#${rgbaToHex(rgb.r, rgb.g, rgb.b, hsva.a)}`;
|
|
201
|
+
case "RGB": return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;
|
|
202
|
+
case "RGBA": return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha})`;
|
|
203
|
+
case "HSL": return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;
|
|
204
|
+
case "HSLA": return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${alpha})`;
|
|
205
|
+
case "HSV": return `hsv(${hue}, ${saturation}%, ${value}%)`;
|
|
206
|
+
case "HSVA": return `hsva(${hue}, ${saturation}%, ${value}%, ${alpha})`;
|
|
207
|
+
case "CMYK": {
|
|
208
|
+
const red = rgb.r / 255;
|
|
209
|
+
const green = rgb.g / 255;
|
|
210
|
+
const blue = rgb.b / 255;
|
|
211
|
+
const key = 1 - Math.max(red, green, blue);
|
|
212
|
+
const cyan = key === 1 ? 0 : (1 - red - key) / (1 - key);
|
|
213
|
+
const magenta = key === 1 ? 0 : (1 - green - key) / (1 - key);
|
|
214
|
+
const yellow = key === 1 ? 0 : (1 - blue - key) / (1 - key);
|
|
215
|
+
return `cmyk(${round(cyan * 100)}%, ${round(magenta * 100)}%, ${round(yellow * 100)}%, ${round(key * 100)}%)`;
|
|
216
|
+
}
|
|
217
|
+
default: return hsva.a < 1 ? `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha})` : `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
var createGradientPoint = (left, color) => {
|
|
221
|
+
const hsva = parseColor(color);
|
|
222
|
+
return {
|
|
223
|
+
id: toGradientPointId(),
|
|
224
|
+
left: clamp(left, 0, 100),
|
|
225
|
+
color,
|
|
226
|
+
hsva
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
var getDefaultGradientState = (baseColor) => {
|
|
230
|
+
const gradientColors = [createGradientPoint(0, baseColor && !isGradientColor(baseColor) ? formatColor(parseColor(baseColor), "CSS", true) : "rgba(0, 82, 217, 1)"), createGradientPoint(100, "rgba(255, 255, 255, 1)")];
|
|
231
|
+
return {
|
|
232
|
+
mode: "linear-gradient",
|
|
233
|
+
hsva: gradientColors[0].hsva,
|
|
234
|
+
gradientDegree: 90,
|
|
235
|
+
gradientSelectedId: gradientColors[0].id,
|
|
236
|
+
gradientColors
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
var getDefaultColorState = () => ({
|
|
240
|
+
mode: "monochrome",
|
|
241
|
+
hsva: _objectSpread2({}, DEFAULT_HSVA),
|
|
242
|
+
gradientDegree: 90,
|
|
243
|
+
gradientSelectedId: "",
|
|
244
|
+
gradientColors: []
|
|
245
|
+
});
|
|
246
|
+
var getColorMode = (input, colorModes) => {
|
|
247
|
+
if (colorModes.length === 1) return colorModes[0];
|
|
248
|
+
return colorModes.includes("linear-gradient") && isGradientColor(input) ? "linear-gradient" : "monochrome";
|
|
249
|
+
};
|
|
250
|
+
var parseColorState = (input, colorModes = ["monochrome", "linear-gradient"]) => {
|
|
251
|
+
const mode = getColorMode(input, colorModes);
|
|
252
|
+
if (mode === "linear-gradient") {
|
|
253
|
+
const parsed = parseGradientString(input) || parseGradientString("linear-gradient(90deg, rgba(0, 82, 217, 1) 0%, rgba(255, 255, 255, 1) 100%)");
|
|
254
|
+
if (!parsed) return getDefaultGradientState();
|
|
255
|
+
const selected = parsed.colors[0];
|
|
256
|
+
return {
|
|
257
|
+
mode,
|
|
258
|
+
hsva: selected.hsva,
|
|
259
|
+
gradientDegree: parsed.degree,
|
|
260
|
+
gradientSelectedId: selected.id,
|
|
261
|
+
gradientColors: parsed.colors
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
return _objectSpread2(_objectSpread2({}, getDefaultColorState()), {}, {
|
|
265
|
+
mode: "monochrome",
|
|
266
|
+
hsva: parseColor(input)
|
|
267
|
+
});
|
|
268
|
+
};
|
|
269
|
+
var getGradientThumbBackground = (points) => {
|
|
270
|
+
return `linear-gradient(90deg, ${points.map((point) => `${formatColor(point.hsva, "CSS", true)} ${round(point.left, 2)}%`).join(", ")})`;
|
|
271
|
+
};
|
|
272
|
+
var getLinearGradientString = (state) => {
|
|
273
|
+
const colors = state.gradientColors.length ? state.gradientColors : getDefaultGradientState().gradientColors;
|
|
274
|
+
return `linear-gradient(${round(state.gradientDegree, 2)}deg, ${colors.map((point) => `${formatColor(point.hsva, "CSS", true)} ${round(point.left, 2)}%`).join(", ")})`;
|
|
275
|
+
};
|
|
276
|
+
var formatColorState = (state, format, enableAlpha) => {
|
|
277
|
+
if (state.mode === "linear-gradient") return getLinearGradientString(state);
|
|
278
|
+
return formatColor(state.hsva, format, enableAlpha);
|
|
279
|
+
};
|
|
280
|
+
var getActiveGradientPoint = (state) => {
|
|
281
|
+
if (!state.gradientColors.length) return null;
|
|
282
|
+
return state.gradientColors.find((point) => point.id === state.gradientSelectedId) || state.gradientColors[0];
|
|
283
|
+
};
|
|
284
|
+
var setGradientSelectedPoint = (state, selectedId) => {
|
|
285
|
+
const point = state.gradientColors.find((item) => item.id === selectedId);
|
|
286
|
+
if (!point) return state;
|
|
287
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
288
|
+
gradientSelectedId: selectedId,
|
|
289
|
+
hsva: point.hsva
|
|
290
|
+
});
|
|
291
|
+
};
|
|
292
|
+
var setActiveColorHsva = (state, hsva) => {
|
|
293
|
+
if (state.mode !== "linear-gradient") return _objectSpread2(_objectSpread2({}, state), {}, { hsva });
|
|
294
|
+
const current = getActiveGradientPoint(state) || state.gradientColors[0];
|
|
295
|
+
const gradientColors = state.gradientColors.map((point) => point.id === current.id ? _objectSpread2(_objectSpread2({}, point), {}, {
|
|
296
|
+
hsva,
|
|
297
|
+
color: formatColor(hsva, "CSS", true)
|
|
298
|
+
}) : point);
|
|
299
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
300
|
+
hsva,
|
|
301
|
+
gradientColors
|
|
302
|
+
});
|
|
303
|
+
};
|
|
304
|
+
var setGradientDegree = (state, degree) => _objectSpread2(_objectSpread2({}, state), {}, { gradientDegree: clamp(degree, 0, 360) });
|
|
305
|
+
var setGradientColors = (state, gradientColors) => {
|
|
306
|
+
const nextColors = [...gradientColors].sort((a, b) => a.left - b.left);
|
|
307
|
+
const selected = nextColors.find((item) => item.id === state.gradientSelectedId) || nextColors[0];
|
|
308
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
309
|
+
gradientColors: nextColors,
|
|
310
|
+
gradientSelectedId: (selected === null || selected === void 0 ? void 0 : selected.id) || "",
|
|
311
|
+
hsva: (selected === null || selected === void 0 ? void 0 : selected.hsva) || state.hsva
|
|
312
|
+
});
|
|
313
|
+
};
|
|
314
|
+
var addGradientColor = (state, left, color) => {
|
|
315
|
+
const nextPoint = createGradientPoint(left, color || formatColor(state.hsva, "CSS", true));
|
|
316
|
+
return setGradientSelectedPoint(setGradientColors(state, [...state.gradientColors, nextPoint]), nextPoint.id);
|
|
317
|
+
};
|
|
318
|
+
var removeGradientColor = (state, selectedId) => {
|
|
319
|
+
if (state.gradientColors.length <= 2) return state;
|
|
320
|
+
return setGradientColors(state, state.gradientColors.filter((point) => point.id !== selectedId));
|
|
321
|
+
};
|
|
322
|
+
var getColorBackground = (state) => state.mode === "linear-gradient" ? getLinearGradientString(state) : formatColor(state.hsva, "CSS", true);
|
|
323
|
+
var getColorObject = (input) => {
|
|
324
|
+
var _getActiveGradientPoi;
|
|
325
|
+
const state = "mode" in input ? input : _objectSpread2(_objectSpread2({}, getDefaultColorState()), {}, { hsva: input });
|
|
326
|
+
const active = state.mode === "linear-gradient" ? ((_getActiveGradientPoi = getActiveGradientPoint(state)) === null || _getActiveGradientPoi === void 0 ? void 0 : _getActiveGradientPoi.hsva) || state.hsva : state.hsva;
|
|
327
|
+
const rgb = hsvToRgb(active.h, active.s, active.v);
|
|
328
|
+
return {
|
|
329
|
+
alpha: round(active.a, 2),
|
|
330
|
+
css: formatColor(active, "CSS", true),
|
|
331
|
+
hex: formatColor(active, "HEX"),
|
|
332
|
+
hex8: formatColor(active, "HEX8", true),
|
|
333
|
+
hsl: formatColor(active, "HSL"),
|
|
334
|
+
hsla: formatColor(active, "HSLA", true),
|
|
335
|
+
hsv: formatColor(active, "HSV"),
|
|
336
|
+
hsva: formatColor(active, "HSVA", true),
|
|
337
|
+
rgb: formatColor(active, "RGB"),
|
|
338
|
+
rgba: formatColor(active, "RGBA", true),
|
|
339
|
+
saturation: round(active.s * 100),
|
|
340
|
+
value: round(active.v * 100),
|
|
341
|
+
isGradient: state.mode === "linear-gradient",
|
|
342
|
+
linearGradient: state.mode === "linear-gradient" ? getLinearGradientString(state) : void 0,
|
|
343
|
+
red: rgb.r,
|
|
344
|
+
green: rgb.g,
|
|
345
|
+
blue: rgb.b
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
var getFormatInputs = (hsva, format, enableAlpha) => {
|
|
349
|
+
const rgb = hsvToRgb(hsva.h, hsva.s, hsva.v);
|
|
350
|
+
const hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);
|
|
351
|
+
const hue = round(hsva.h * 360);
|
|
352
|
+
const saturation = round(hsva.s * 100);
|
|
353
|
+
const value = round(hsva.v * 100);
|
|
354
|
+
const alpha = round(hsva.a * 100);
|
|
355
|
+
switch (normalizeFormat(format, enableAlpha)) {
|
|
356
|
+
case "HEX8": return [rgbaToHex(rgb.r, rgb.g, rgb.b, hsva.a), `${alpha}%`];
|
|
357
|
+
case "HEX": return [rgbToHex(rgb.r, rgb.g, rgb.b)];
|
|
358
|
+
case "RGBA": return [
|
|
359
|
+
`${rgb.r}`,
|
|
360
|
+
`${rgb.g}`,
|
|
361
|
+
`${rgb.b}`,
|
|
362
|
+
`${alpha}%`
|
|
363
|
+
];
|
|
364
|
+
case "RGB": return [
|
|
365
|
+
`${rgb.r}`,
|
|
366
|
+
`${rgb.g}`,
|
|
367
|
+
`${rgb.b}`
|
|
368
|
+
];
|
|
369
|
+
case "HSLA": return [
|
|
370
|
+
`${hue}`,
|
|
371
|
+
`${hsl.s}%`,
|
|
372
|
+
`${hsl.l}%`,
|
|
373
|
+
`${alpha}%`
|
|
374
|
+
];
|
|
375
|
+
case "HSL": return [
|
|
376
|
+
`${hue}`,
|
|
377
|
+
`${hsl.s}%`,
|
|
378
|
+
`${hsl.l}%`
|
|
379
|
+
];
|
|
380
|
+
case "HSVA": return [
|
|
381
|
+
`${hue}`,
|
|
382
|
+
`${saturation}%`,
|
|
383
|
+
`${value}%`,
|
|
384
|
+
`${alpha}%`
|
|
385
|
+
];
|
|
386
|
+
case "HSV": return [
|
|
387
|
+
`${hue}`,
|
|
388
|
+
`${saturation}%`,
|
|
389
|
+
`${value}%`
|
|
390
|
+
];
|
|
391
|
+
case "CMYK": {
|
|
392
|
+
const red = rgb.r / 255;
|
|
393
|
+
const green = rgb.g / 255;
|
|
394
|
+
const blue = rgb.b / 255;
|
|
395
|
+
const key = 1 - Math.max(red, green, blue);
|
|
396
|
+
const cyan = key === 1 ? 0 : (1 - red - key) / (1 - key);
|
|
397
|
+
const magenta = key === 1 ? 0 : (1 - green - key) / (1 - key);
|
|
398
|
+
const yellow = key === 1 ? 0 : (1 - blue - key) / (1 - key);
|
|
399
|
+
return [
|
|
400
|
+
`${round(cyan * 100)}%`,
|
|
401
|
+
`${round(magenta * 100)}%`,
|
|
402
|
+
`${round(yellow * 100)}%`,
|
|
403
|
+
`${round(key * 100)}%`
|
|
404
|
+
];
|
|
405
|
+
}
|
|
406
|
+
default: return [formatColor(hsva, "CSS", true)];
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
var parseFormatInputValues = (values, format, enableAlpha) => {
|
|
410
|
+
const normalized = normalizeFormat(format, enableAlpha);
|
|
411
|
+
switch (normalized) {
|
|
412
|
+
case "HEX": return parseColor(`#${values[0] || ""}`);
|
|
413
|
+
case "HEX8": {
|
|
414
|
+
const hex = values[0] || "";
|
|
415
|
+
if (hex.length === 8) return parseColor(`#${hex}`);
|
|
416
|
+
const alpha = clamp(parseUnitValue(values[1] || "100%", 100) / 100, 0, 1);
|
|
417
|
+
return _objectSpread2(_objectSpread2({}, parseColor(`#${hex.slice(0, 6)}`)), {}, { a: alpha });
|
|
418
|
+
}
|
|
419
|
+
case "RGB":
|
|
420
|
+
case "RGBA": {
|
|
421
|
+
const rgb = {
|
|
422
|
+
r: clamp(parseFloat(values[0] || "0"), 0, 255),
|
|
423
|
+
g: clamp(parseFloat(values[1] || "0"), 0, 255),
|
|
424
|
+
b: clamp(parseFloat(values[2] || "0"), 0, 255)
|
|
425
|
+
};
|
|
426
|
+
return _objectSpread2(_objectSpread2({}, rgbToHsv(rgb.r, rgb.g, rgb.b)), {}, { a: normalized === "RGBA" ? clamp(parseUnitValue(values[3] || "100%", 100) / 100, 0, 1) : 1 });
|
|
427
|
+
}
|
|
428
|
+
case "HSL":
|
|
429
|
+
case "HSLA": {
|
|
430
|
+
const rgb = hslToRgb(parseFloat(values[0] || "0"), parseUnitValue(values[1] || "0%", 100), parseUnitValue(values[2] || "0%", 100));
|
|
431
|
+
return _objectSpread2(_objectSpread2({}, rgbToHsv(rgb.r, rgb.g, rgb.b)), {}, { a: normalized === "HSLA" ? clamp(parseUnitValue(values[3] || "100%", 100) / 100, 0, 1) : 1 });
|
|
432
|
+
}
|
|
433
|
+
case "HSV":
|
|
434
|
+
case "HSVA": return {
|
|
435
|
+
h: clamp((parseFloat(values[0] || "0") % 360 + 360) % 360 / 360, 0, 1),
|
|
436
|
+
s: clamp(parseUnitValue(values[1] || "0%", 100) / 100, 0, 1),
|
|
437
|
+
v: clamp(parseUnitValue(values[2] || "0%", 100) / 100, 0, 1),
|
|
438
|
+
a: normalized === "HSVA" ? clamp(parseUnitValue(values[3] || "100%", 100) / 100, 0, 1) : 1
|
|
439
|
+
};
|
|
440
|
+
case "CMYK": {
|
|
441
|
+
const c = clamp(parseUnitValue(values[0] || "0%", 100) / 100, 0, 1);
|
|
442
|
+
const m = clamp(parseUnitValue(values[1] || "0%", 100) / 100, 0, 1);
|
|
443
|
+
const y = clamp(parseUnitValue(values[2] || "0%", 100) / 100, 0, 1);
|
|
444
|
+
const k = clamp(parseUnitValue(values[3] || "0%", 100) / 100, 0, 1);
|
|
445
|
+
const rgb = {
|
|
446
|
+
r: Math.round(255 * (1 - c) * (1 - k)),
|
|
447
|
+
g: Math.round(255 * (1 - m) * (1 - k)),
|
|
448
|
+
b: Math.round(255 * (1 - y) * (1 - k))
|
|
449
|
+
};
|
|
450
|
+
return _objectSpread2(_objectSpread2({}, rgbToHsv(rgb.r, rgb.g, rgb.b)), {}, { a: 1 });
|
|
451
|
+
}
|
|
452
|
+
default: return parseColor(values[0]);
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
//#endregion
|
|
456
|
+
export { addGradientColor, formatColor, formatColorState, getActiveGradientPoint, getColorBackground, getColorObject, getDefaultColorState, getDefaultGradientState, getFormatInputs, getGradientThumbBackground, getLinearGradientString, normalizeFormat, parseColorState, parseFormatInputValues, removeGradientColor, round, setActiveColorHsva, setGradientColors, setGradientDegree, setGradientSelectedPoint };
|