@oscarpalmer/atoms 0.202.0 → 0.203.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/array/difference.d.mts +4 -5
- package/dist/array/exists.d.mts +5 -6
- package/dist/array/filter.d.mts +10 -11
- package/dist/array/find.d.mts +10 -11
- package/dist/array/first.d.mts +10 -11
- package/dist/array/flatten.d.mts +2 -3
- package/dist/array/from.d.mts +7 -8
- package/dist/array/group-by.d.mts +7 -8
- package/dist/array/insert.d.mts +3 -4
- package/dist/array/intersection.d.mts +4 -5
- package/dist/array/last.d.mts +10 -11
- package/dist/array/move.d.mts +9 -10
- package/dist/array/partition.d.mts +5 -6
- package/dist/array/push.d.mts +2 -3
- package/dist/array/reverse.d.mts +2 -3
- package/dist/array/select.d.mts +11 -12
- package/dist/array/single.d.mts +4 -5
- package/dist/array/slice.d.mts +12 -13
- package/dist/array/sort.d.mts +31 -32
- package/dist/array/sort.mjs +41 -33
- package/dist/array/splice.d.mts +5 -6
- package/dist/array/swap.d.mts +8 -9
- package/dist/array/to-map.d.mts +7 -8
- package/dist/array/to-record.d.mts +7 -8
- package/dist/array/to-set.d.mts +4 -5
- package/dist/array/toggle.d.mts +4 -5
- package/dist/array/union.d.mts +4 -5
- package/dist/array/unique.d.mts +4 -5
- package/dist/array/update.d.mts +4 -5
- package/dist/beacon.d.mts +8 -9
- package/dist/beacon.mjs +90 -65
- package/dist/color/constants.d.mts +14 -13
- package/dist/color/constants.mjs +9 -2
- package/dist/color/index.d.mts +2 -2
- package/dist/color/instance.d.mts +3 -3
- package/dist/color/instance.mjs +125 -61
- package/dist/color/misc/alpha.d.mts +4 -5
- package/dist/color/misc/format.d.mts +6 -7
- package/dist/color/misc/format.mjs +15 -12
- package/dist/color/misc/get.d.mts +14 -15
- package/dist/color/misc/is.d.mts +16 -17
- package/dist/color/misc/is.mjs +3 -4
- package/dist/color/misc/state.d.mts +8 -10
- package/dist/color/misc/state.mjs +22 -20
- package/dist/color/models.d.mts +25 -19
- package/dist/color/space/hex.d.mts +9 -10
- package/dist/color/space/hsl.d.mts +8 -9
- package/dist/color/space/hwb.d.mts +9 -10
- package/dist/color/space/rgb.d.mts +11 -12
- package/dist/function/limit.d.mts +9 -8
- package/dist/function/limit.mjs +5 -5
- package/dist/function/once.d.mts +26 -6
- package/dist/function/once.mjs +135 -76
- package/dist/function/retry.d.mts +5 -6
- package/dist/function/retry.mjs +3 -3
- package/dist/index.d.mts +182 -58
- package/dist/index.mjs +1191 -810
- package/dist/internal/abort.d.mts +3 -4
- package/dist/internal/array/callbacks.d.mts +4 -5
- package/dist/internal/array/chunk.d.mts +2 -3
- package/dist/internal/array/compact.d.mts +3 -4
- package/dist/internal/array/find.d.mts +10 -11
- package/dist/internal/array/get.d.mts +7 -8
- package/dist/internal/array/group.d.mts +2 -3
- package/dist/internal/array/index-of.d.mts +10 -11
- package/dist/internal/array/insert.d.mts +5 -6
- package/dist/internal/array/match.d.mts +17 -18
- package/dist/internal/array/overlap.d.mts +2 -3
- package/dist/internal/array/sets.d.mts +5 -6
- package/dist/internal/array/shuffle.d.mts +2 -3
- package/dist/internal/array/update.d.mts +2 -3
- package/dist/internal/defaults.d.mts +3 -4
- package/dist/internal/function/assert.d.mts +10 -11
- package/dist/internal/function/limit.d.mts +41 -0
- package/dist/internal/function/limit.mjs +110 -0
- package/dist/internal/function/memoize.d.mts +4 -5
- package/dist/internal/function/memoize.mjs +53 -31
- package/dist/internal/function/misc.d.mts +2 -3
- package/dist/internal/function/work.d.mts +53 -54
- package/dist/internal/herald.d.mts +8 -9
- package/dist/internal/herald.mjs +38 -26
- package/dist/internal/is.d.mts +19 -20
- package/dist/internal/math/aggregate.d.mts +14 -15
- package/dist/internal/math/misc.d.mts +3 -4
- package/dist/internal/number.d.mts +4 -5
- package/dist/internal/random.d.mts +3 -4
- package/dist/internal/result/misc.d.mts +29 -14
- package/dist/internal/result/misc.mjs +4 -0
- package/dist/internal/result/models.d.mts +9 -10
- package/dist/internal/sized/map.d.mts +2 -3
- package/dist/internal/sized/misc.d.mts +2 -3
- package/dist/internal/string/case.d.mts +9 -10
- package/dist/internal/string/misc.d.mts +8 -9
- package/dist/internal/subscription.d.mts +10 -11
- package/dist/internal/subscription.mjs +69 -57
- package/dist/internal/value/compare.d.mts +17 -9
- package/dist/internal/value/compare.mjs +7 -7
- package/dist/internal/value/equal.d.mts +34 -15
- package/dist/internal/value/equal.mjs +28 -13
- package/dist/internal/value/get.d.mts +3 -4
- package/dist/internal/value/handlers.d.mts +19 -9
- package/dist/internal/value/handlers.mjs +50 -50
- package/dist/internal/value/has.d.mts +6 -7
- package/dist/internal/value/misc.d.mts +6 -7
- package/dist/internal/value/partial.d.mts +3 -4
- package/dist/internal/value/set.d.mts +4 -5
- package/dist/is.d.mts +13 -13
- package/dist/logger.d.mts +5 -4
- package/dist/logger.mjs +61 -54
- package/dist/math.d.mts +20 -20
- package/dist/models.d.mts +45 -49
- package/dist/promise/constants.d.mts +14 -15
- package/dist/promise/delay.d.mts +3 -4
- package/dist/promise/delay.mjs +4 -4
- package/dist/promise/helpers.d.mts +7 -8
- package/dist/promise/index.d.mts +13 -14
- package/dist/promise/misc.d.mts +6 -6
- package/dist/promise/models.d.mts +16 -17
- package/dist/promise/timed.d.mts +4 -5
- package/dist/promise/timed.mjs +5 -5
- package/dist/query.d.mts +3 -4
- package/dist/queue.d.mts +14 -15
- package/dist/queue.mjs +185 -129
- package/dist/random.d.mts +8 -8
- package/dist/result/index.d.mts +8 -9
- package/dist/result/match.d.mts +6 -7
- package/dist/result/misc.d.mts +3 -3
- package/dist/result/work/flow.d.mts +28 -29
- package/dist/result/work/pipe.d.mts +24 -25
- package/dist/sized/set.d.mts +2 -3
- package/dist/string/fuzzy.d.mts +21 -12
- package/dist/string/fuzzy.mjs +77 -49
- package/dist/string/index.d.mts +8 -8
- package/dist/string/match.d.mts +4 -5
- package/dist/string/normalize.d.mts +8 -9
- package/dist/string/normalize.mjs +9 -4
- package/dist/string/template.d.mts +9 -9
- package/dist/string/template.mjs +11 -4
- package/dist/value/clone.d.mts +21 -13
- package/dist/value/clone.mjs +22 -20
- package/dist/value/collection.d.mts +4 -5
- package/dist/value/diff.d.mts +5 -6
- package/dist/value/freeze.d.mts +18 -19
- package/dist/value/freeze.mjs +1 -1
- package/dist/value/merge.d.mts +13 -14
- package/dist/value/merge.mjs +21 -5
- package/dist/value/omit.d.mts +2 -3
- package/dist/value/pick.d.mts +2 -3
- package/dist/value/shake.d.mts +3 -4
- package/dist/value/smush.d.mts +3 -4
- package/dist/value/transform.d.mts +15 -10
- package/dist/value/transform.mjs +12 -7
- package/dist/value/unsmush.d.mts +3 -4
- package/package.json +1 -1
- package/dist/internal/function/timer.d.mts +0 -10
- package/dist/internal/function/timer.mjs +0 -87
package/dist/color/instance.mjs
CHANGED
|
@@ -1,66 +1,133 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "../internal/subscription.mjs";
|
|
2
2
|
import { herald } from "../internal/herald.mjs";
|
|
3
|
-
import { COLOR_PROPERTY, COLOR_TYPE } from "./constants.mjs";
|
|
3
|
+
import { COLOR_NAME, COLOR_PROPERTY, COLOR_SYMBOL, COLOR_TYPE, colorSubscription } from "./constants.mjs";
|
|
4
4
|
import { getAlpha } from "./misc/alpha.mjs";
|
|
5
5
|
import { getColorFromState, getColorState, setHSLColor, setHWBColor, setHexColor, setRGBColor } from "./misc/state.mjs";
|
|
6
6
|
import { formatHexColor, formatHslColor, formatHwbColor, formatRgbColor } from "./misc/format.mjs";
|
|
7
7
|
//#region src/color/instance.ts
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Object.defineProperties(instance, {
|
|
25
|
-
[COLOR_PROPERTY.name]: { value: true },
|
|
26
|
-
alpha: {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: () => state.alpha.value,
|
|
29
|
-
set: (value) => setAlphaValue(state, value)
|
|
8
|
+
function Color(value) {
|
|
9
|
+
Object.defineProperty(this, COLOR_SYMBOL, { value: {
|
|
10
|
+
changes: herald({
|
|
11
|
+
names: [COLOR_TYPE.wildcard, ...COLOR_TYPE.all],
|
|
12
|
+
property: colorSubscription,
|
|
13
|
+
onCreate: (event, callback) => onCreateSubscription(this, event, callback)
|
|
14
|
+
}),
|
|
15
|
+
values: getColorState(value)
|
|
16
|
+
} });
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperties(Color.prototype, {
|
|
19
|
+
[COLOR_PROPERTY]: { value: COLOR_NAME },
|
|
20
|
+
alpha: {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get() {
|
|
23
|
+
return this[COLOR_SYMBOL].values.alpha.value;
|
|
30
24
|
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
set(value) {
|
|
26
|
+
setAlphaValue(this[COLOR_SYMBOL].values, value);
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
changes: {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get() {
|
|
32
|
+
return this[COLOR_SYMBOL].changes.events;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
hex: {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get() {
|
|
38
|
+
return getColorValue(this, COLOR_TYPE.hex, false);
|
|
34
39
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
get: () => state.origin
|
|
40
|
+
set(value) {
|
|
41
|
+
setHexColor(this, value, false);
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
hexa: {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get() {
|
|
47
|
+
return getColorValue(this, COLOR_TYPE.hex, true);
|
|
44
48
|
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
set(value) {
|
|
50
|
+
setHexColor(this, value, true);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
hsl: {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get() {
|
|
56
|
+
return getColorValue(this, COLOR_TYPE.hsl, false);
|
|
57
|
+
},
|
|
58
|
+
set(value) {
|
|
59
|
+
setHSLColor(this, value, false);
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
hsla: {
|
|
63
|
+
enumerable: true,
|
|
64
|
+
get() {
|
|
65
|
+
return getColorValue(this, COLOR_TYPE.hsl, true);
|
|
66
|
+
},
|
|
67
|
+
set(value) {
|
|
68
|
+
setHSLColor(this, value, true);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
hwb: {
|
|
53
72
|
enumerable: true,
|
|
54
|
-
get
|
|
55
|
-
|
|
56
|
-
|
|
73
|
+
get() {
|
|
74
|
+
return getColorValue(this, COLOR_TYPE.hwb, false);
|
|
75
|
+
},
|
|
76
|
+
set(value) {
|
|
77
|
+
setHWBColor(this, value, false);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
hwba: {
|
|
81
|
+
enumerable: true,
|
|
82
|
+
get() {
|
|
83
|
+
return getColorValue(this, COLOR_TYPE.hwb, true);
|
|
84
|
+
},
|
|
85
|
+
set(value) {
|
|
86
|
+
setHWBColor(this, value, true);
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
origin: {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get() {
|
|
92
|
+
return this[COLOR_SYMBOL].values.origin;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
rgb: {
|
|
96
|
+
enumerable: true,
|
|
97
|
+
get() {
|
|
98
|
+
return getColorValue(this, COLOR_TYPE.rgb, false);
|
|
99
|
+
},
|
|
100
|
+
set(value) {
|
|
101
|
+
setRGBColor(this, value, false);
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
rgba: {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
get() {
|
|
107
|
+
return getColorValue(this, COLOR_TYPE.rgb, true);
|
|
108
|
+
},
|
|
109
|
+
set(value) {
|
|
110
|
+
setRGBColor(this, value, true);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
subscribe: { value: subscribeToColor },
|
|
114
|
+
toHexString: { value: formatHexColor },
|
|
115
|
+
toHslString: { value: formatHslColor },
|
|
116
|
+
toHwbString: { value: formatHwbColor },
|
|
117
|
+
toRgbString: { value: formatRgbColor },
|
|
118
|
+
toString: { value: formatHexColor },
|
|
119
|
+
unsubscribe: { value: unsubscribeFromColor }
|
|
120
|
+
});
|
|
121
|
+
function color(value) {
|
|
122
|
+
return new Color(value);
|
|
57
123
|
}
|
|
58
|
-
function getColorValue(
|
|
59
|
-
const
|
|
60
|
-
|
|
124
|
+
function getColorValue(instance, type, alpha) {
|
|
125
|
+
const { values } = instance[COLOR_SYMBOL];
|
|
126
|
+
const value = getColorFromState(values, type);
|
|
127
|
+
if (typeof value === "string") return alpha ? `${value}${values.alpha.hex}` : value;
|
|
61
128
|
return alpha ? {
|
|
62
129
|
...value,
|
|
63
|
-
alpha:
|
|
130
|
+
alpha: values.alpha.value
|
|
64
131
|
} : { ...value };
|
|
65
132
|
}
|
|
66
133
|
function onCreateSubscription(instance, event, callback) {
|
|
@@ -72,15 +139,12 @@ function onCreateSubscription(instance, event, callback) {
|
|
|
72
139
|
function setAlphaValue(state, value) {
|
|
73
140
|
if (typeof value === "number" && !Number.isNaN(value)) state.alpha = getAlpha(value, false);
|
|
74
141
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
hwb: setHWBColor,
|
|
83
|
-
rgb: setRGBColor
|
|
84
|
-
};
|
|
142
|
+
function subscribeToColor(callback, signal) {
|
|
143
|
+
const { changes } = this[COLOR_SYMBOL];
|
|
144
|
+
return changes.subscribe(COLOR_TYPE.wildcard, callback, signal);
|
|
145
|
+
}
|
|
146
|
+
function unsubscribeFromColor() {
|
|
147
|
+
this[COLOR_SYMBOL].changes.clear();
|
|
148
|
+
}
|
|
85
149
|
//#endregion
|
|
86
150
|
export { color };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Alpha } from "../models.mjs";
|
|
2
2
|
//#region src/color/misc/alpha.d.ts
|
|
3
|
-
declare function getAlpha(value: unknown, hex: boolean): Alpha;
|
|
4
|
-
declare function getAlphaHexadecimal(value: number): string;
|
|
5
|
-
declare function getAlphaValue(original: number): number;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { getAlpha, getAlphaHexadecimal, getAlphaValue };
|
|
3
|
+
export declare function getAlpha(value: unknown, hex: boolean): Alpha;
|
|
4
|
+
export declare function getAlphaHexadecimal(value: number): string;
|
|
5
|
+
export declare function getAlphaValue(original: number): number;
|
|
6
|
+
//#endregion
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InternalColor } from "../models.mjs";
|
|
2
2
|
//#region src/color/misc/format.d.ts
|
|
3
|
-
declare function formatHexColor(
|
|
4
|
-
declare function formatHslColor(
|
|
5
|
-
declare function formatHwbColor(
|
|
6
|
-
declare function formatRgbColor(
|
|
7
|
-
//#endregion
|
|
8
|
-
export { formatHexColor, formatHslColor, formatHwbColor, formatRgbColor };
|
|
3
|
+
export declare function formatHexColor(this: InternalColor, alpha?: boolean): string;
|
|
4
|
+
export declare function formatHslColor(this: InternalColor, alpha?: boolean): string;
|
|
5
|
+
export declare function formatHwbColor(this: InternalColor, alpha?: boolean): string;
|
|
6
|
+
export declare function formatRgbColor(this: InternalColor, alpha?: boolean): string;
|
|
7
|
+
//#endregion
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
import { COLOR_TYPE } from "../constants.mjs";
|
|
1
|
+
import { COLOR_SYMBOL, COLOR_TYPE } from "../constants.mjs";
|
|
2
2
|
import { getColorFromState } from "./state.mjs";
|
|
3
3
|
//#region src/color/misc/format.ts
|
|
4
|
-
function formatHexColor(
|
|
5
|
-
return `#${alpha === true ?
|
|
4
|
+
function formatHexColor(alpha) {
|
|
5
|
+
return `#${alpha === true ? this.hexa : this.hex}`;
|
|
6
6
|
}
|
|
7
|
-
function formatHslColor(
|
|
8
|
-
const {
|
|
9
|
-
|
|
7
|
+
function formatHslColor(alpha) {
|
|
8
|
+
const { values } = this[COLOR_SYMBOL];
|
|
9
|
+
const { hue, lightness, saturation } = getColorFromState(values, COLOR_TYPE.hsl);
|
|
10
|
+
return `hsl(${hue}deg ${saturation}% ${lightness}%${getSuffix(values, alpha)})`;
|
|
10
11
|
}
|
|
11
|
-
function formatHwbColor(
|
|
12
|
-
const {
|
|
13
|
-
|
|
12
|
+
function formatHwbColor(alpha) {
|
|
13
|
+
const { values } = this[COLOR_SYMBOL];
|
|
14
|
+
const { blackness, hue, whiteness } = getColorFromState(values, COLOR_TYPE.hwb);
|
|
15
|
+
return `hwb(${hue}deg ${whiteness}% ${blackness}%${getSuffix(values, alpha)})`;
|
|
14
16
|
}
|
|
15
|
-
function formatRgbColor(
|
|
16
|
-
const {
|
|
17
|
-
|
|
17
|
+
function formatRgbColor(alpha) {
|
|
18
|
+
const { values } = this[COLOR_SYMBOL];
|
|
19
|
+
const { blue, green, red } = getColorFromState(values, COLOR_TYPE.rgb);
|
|
20
|
+
return `rgb(${red} ${green} ${blue}${getSuffix(values, alpha)})`;
|
|
18
21
|
}
|
|
19
22
|
function getSuffix(state, alpha) {
|
|
20
23
|
return alpha === true ? ` / ${state.alpha.value}%` : "";
|
|
@@ -9,7 +9,7 @@ import { Color, HSLAColor, HSLColor, HWBAColor, HWBColor, RGBAColor, RGBColor }
|
|
|
9
9
|
* @param value Original value
|
|
10
10
|
* @returns Foreground color
|
|
11
11
|
*/
|
|
12
|
-
declare function getForegroundColor(value: unknown, hex: true): string;
|
|
12
|
+
export declare function getForegroundColor(value: unknown, hex: true): string;
|
|
13
13
|
/**
|
|
14
14
|
* Get a foreground color _(usually text)_ based on a background color's luminance
|
|
15
15
|
*
|
|
@@ -19,7 +19,7 @@ declare function getForegroundColor(value: unknown, hex: true): string;
|
|
|
19
19
|
* @param value Original value
|
|
20
20
|
* @returns Foreground color
|
|
21
21
|
*/
|
|
22
|
-
declare function getForegroundColor(value: unknown): Color;
|
|
22
|
+
export declare function getForegroundColor(value: unknown): Color;
|
|
23
23
|
/**
|
|
24
24
|
* Get the hex color _(with alpha channel, i.e., opacity)_ from any kind of value
|
|
25
25
|
*
|
|
@@ -29,7 +29,7 @@ declare function getForegroundColor(value: unknown): Color;
|
|
|
29
29
|
* @param value Original value
|
|
30
30
|
* @returns Hex color string
|
|
31
31
|
*/
|
|
32
|
-
declare function getHexaColor(value: unknown): string;
|
|
32
|
+
export declare function getHexaColor(value: unknown): string;
|
|
33
33
|
/**
|
|
34
34
|
* Get the hex color from any kind of value
|
|
35
35
|
*
|
|
@@ -39,9 +39,9 @@ declare function getHexaColor(value: unknown): string;
|
|
|
39
39
|
* @param value Original value
|
|
40
40
|
* @returns Hex color string
|
|
41
41
|
*/
|
|
42
|
-
declare function getHexColor(value: unknown): string;
|
|
43
|
-
declare function getHexValue(value: unknown): number;
|
|
44
|
-
declare function getDegrees(value: unknown): number;
|
|
42
|
+
export declare function getHexColor(value: unknown): string;
|
|
43
|
+
export declare function getHexValue(value: unknown): number;
|
|
44
|
+
export declare function getDegrees(value: unknown): number;
|
|
45
45
|
/**
|
|
46
46
|
* Get the _HSLA_ color from any kind of value
|
|
47
47
|
*
|
|
@@ -51,7 +51,7 @@ declare function getDegrees(value: unknown): number;
|
|
|
51
51
|
* @param value Original value
|
|
52
52
|
* @returns _HSLA_ color
|
|
53
53
|
*/
|
|
54
|
-
declare function getHslaColor(value: unknown): HSLAColor;
|
|
54
|
+
export declare function getHslaColor(value: unknown): HSLAColor;
|
|
55
55
|
/**
|
|
56
56
|
* Get the _HWB_ color from any kind of value
|
|
57
57
|
*
|
|
@@ -61,7 +61,7 @@ declare function getHslaColor(value: unknown): HSLAColor;
|
|
|
61
61
|
* @param value Original value
|
|
62
62
|
* @returns _HWB_ color
|
|
63
63
|
*/
|
|
64
|
-
declare function getHwbColor(value: unknown): HWBColor;
|
|
64
|
+
export declare function getHwbColor(value: unknown): HWBColor;
|
|
65
65
|
/**
|
|
66
66
|
* Get the _HWBA_ color from any kind of value
|
|
67
67
|
*
|
|
@@ -71,7 +71,7 @@ declare function getHwbColor(value: unknown): HWBColor;
|
|
|
71
71
|
* @param value Original value
|
|
72
72
|
* @returns _HWBA_ color
|
|
73
73
|
*/
|
|
74
|
-
declare function getHwbaColor(value: unknown): HWBAColor;
|
|
74
|
+
export declare function getHwbaColor(value: unknown): HWBAColor;
|
|
75
75
|
/**
|
|
76
76
|
* Get the _HSL_ color from any kind of value
|
|
77
77
|
*
|
|
@@ -81,8 +81,8 @@ declare function getHwbaColor(value: unknown): HWBAColor;
|
|
|
81
81
|
* @param value Original value
|
|
82
82
|
* @returns _HSL_ color
|
|
83
83
|
*/
|
|
84
|
-
declare function getHslColor(value: unknown): HSLColor;
|
|
85
|
-
declare function getPercentage(value: unknown): number;
|
|
84
|
+
export declare function getHslColor(value: unknown): HSLColor;
|
|
85
|
+
export declare function getPercentage(value: unknown): number;
|
|
86
86
|
/**
|
|
87
87
|
* Get the _RGBA_ color from any kind of value
|
|
88
88
|
*
|
|
@@ -92,7 +92,7 @@ declare function getPercentage(value: unknown): number;
|
|
|
92
92
|
* @param value Original value
|
|
93
93
|
* @returns _RGBA_ color
|
|
94
94
|
*/
|
|
95
|
-
declare function getRgbaColor(value: unknown): RGBAColor;
|
|
95
|
+
export declare function getRgbaColor(value: unknown): RGBAColor;
|
|
96
96
|
/**
|
|
97
97
|
* Get the _RGB_ color from any kind of value
|
|
98
98
|
*
|
|
@@ -102,6 +102,5 @@ declare function getRgbaColor(value: unknown): RGBAColor;
|
|
|
102
102
|
* @param value Original value
|
|
103
103
|
* @returns _RGB_ color
|
|
104
104
|
*/
|
|
105
|
-
declare function getRgbColor(value: unknown): RGBColor;
|
|
106
|
-
//#endregion
|
|
107
|
-
export { getDegrees, getForegroundColor, getHexColor, getHexValue, getHexaColor, getHslColor, getHslaColor, getHwbColor, getHwbaColor, getPercentage, getRgbColor, getRgbaColor };
|
|
105
|
+
export declare function getRgbColor(value: unknown): RGBColor;
|
|
106
|
+
//#endregion
|
package/dist/color/misc/is.d.mts
CHANGED
|
@@ -7,14 +7,14 @@ import { Color, HSLAColor, HSLColor, HWBAColor, HWBColor, RGBAColor, RGBColor }
|
|
|
7
7
|
* @param value Value to check
|
|
8
8
|
* @returns `true` if the value is a _Color_, otherwise `false`
|
|
9
9
|
*/
|
|
10
|
-
declare function isColor(value: unknown): value is Color;
|
|
10
|
+
export declare function isColor(value: unknown): value is Color;
|
|
11
11
|
/**
|
|
12
12
|
* Is the value a color subscription?
|
|
13
13
|
*
|
|
14
14
|
* @param value Value to check
|
|
15
15
|
* @returns `true` if the value is a color subscription, otherwise `false`
|
|
16
16
|
*/
|
|
17
|
-
declare function isColorSubscription(value: unknown): value is Subscription;
|
|
17
|
+
export declare function isColorSubscription(value: unknown): value is Subscription;
|
|
18
18
|
/**
|
|
19
19
|
* Is the value a hex color?
|
|
20
20
|
*
|
|
@@ -31,54 +31,53 @@ declare function isColorSubscription(value: unknown): value is Subscription;
|
|
|
31
31
|
* isHexColor('#ff000050', false); // => false
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
|
-
declare function isHexColor(value: unknown, alpha?: boolean): value is string;
|
|
34
|
+
export declare function isHexColor(value: unknown, alpha?: boolean): value is string;
|
|
35
35
|
/**
|
|
36
36
|
* Is the value an _HSLA_ color?
|
|
37
37
|
*
|
|
38
38
|
* @param value Value to check
|
|
39
39
|
* @returns `true` if the value is an _HSLA_ color, otherwise `false`
|
|
40
40
|
*/
|
|
41
|
-
declare function isHslaColor(value: unknown): value is HSLAColor;
|
|
42
|
-
declare function isHslaLike(value: unknown): value is Record<keyof HSLAColor, unknown>;
|
|
41
|
+
export declare function isHslaColor(value: unknown): value is HSLAColor;
|
|
42
|
+
export declare function isHslaLike(value: unknown): value is Record<keyof HSLAColor, unknown>;
|
|
43
43
|
/**
|
|
44
44
|
* Is the value an _HSL_ color?
|
|
45
45
|
*
|
|
46
46
|
* @param value Value to check
|
|
47
47
|
* @returns `true` if the value is an _HSL_ color, otherwise `false`
|
|
48
48
|
*/
|
|
49
|
-
declare function isHslColor(value: unknown): value is HSLColor;
|
|
50
|
-
declare function isHslLike(value: unknown): value is Record<keyof HSLColor, unknown>;
|
|
49
|
+
export declare function isHslColor(value: unknown): value is HSLColor;
|
|
50
|
+
export declare function isHslLike(value: unknown): value is Record<keyof HSLColor, unknown>;
|
|
51
51
|
/**
|
|
52
52
|
* Is the value an _HWBA_ color?
|
|
53
53
|
*
|
|
54
54
|
* @param value Value to check
|
|
55
55
|
* @returns `true` if the value is an _HWBA_ color, otherwise `false`
|
|
56
56
|
*/
|
|
57
|
-
declare function isHwbaColor(value: unknown): value is HWBAColor;
|
|
58
|
-
declare function isHwbaLike(value: unknown): value is Record<keyof HWBAColor, unknown>;
|
|
57
|
+
export declare function isHwbaColor(value: unknown): value is HWBAColor;
|
|
58
|
+
export declare function isHwbaLike(value: unknown): value is Record<keyof HWBAColor, unknown>;
|
|
59
59
|
/**
|
|
60
60
|
* Is the value an _HWB_ color?
|
|
61
61
|
*
|
|
62
62
|
* @param value Value to check
|
|
63
63
|
* @returns `true` if the value is an _HWB_ color, otherwise `false`
|
|
64
64
|
*/
|
|
65
|
-
declare function isHwbColor(value: unknown): value is HWBColor;
|
|
66
|
-
declare function isHwbLike(value: unknown): value is Record<keyof HWBColor, unknown>;
|
|
65
|
+
export declare function isHwbColor(value: unknown): value is HWBColor;
|
|
66
|
+
export declare function isHwbLike(value: unknown): value is Record<keyof HWBColor, unknown>;
|
|
67
67
|
/**
|
|
68
68
|
* Is the value an _RGBA_ color?
|
|
69
69
|
*
|
|
70
70
|
* @param value Value to check
|
|
71
71
|
* @returns `true` if the value is an _RGBA_ color, otherwise `false`
|
|
72
72
|
*/
|
|
73
|
-
declare function isRgbaColor(value: unknown): value is RGBAColor;
|
|
74
|
-
declare function isRgbaLike(value: unknown): value is Record<keyof RGBAColor, unknown>;
|
|
73
|
+
export declare function isRgbaColor(value: unknown): value is RGBAColor;
|
|
74
|
+
export declare function isRgbaLike(value: unknown): value is Record<keyof RGBAColor, unknown>;
|
|
75
75
|
/**
|
|
76
76
|
* Is the value an _RGB_ color?
|
|
77
77
|
*
|
|
78
78
|
* @param value Value to check
|
|
79
79
|
* @returns `true` if the value is an _RGB_ color, otherwise `false`
|
|
80
80
|
*/
|
|
81
|
-
declare function isRgbColor(value: unknown): value is RGBColor;
|
|
82
|
-
declare function isRgbLike(value: unknown): value is Record<keyof RGBColor, unknown>;
|
|
83
|
-
//#endregion
|
|
84
|
-
export { isColor, isColorSubscription, isHexColor, isHslColor, isHslLike, isHslaColor, isHslaLike, isHwbColor, isHwbLike, isHwbaColor, isHwbaLike, isRgbColor, isRgbLike, isRgbaColor, isRgbaLike };
|
|
81
|
+
export declare function isRgbColor(value: unknown): value is RGBColor;
|
|
82
|
+
export declare function isRgbLike(value: unknown): value is Record<keyof RGBColor, unknown>;
|
|
83
|
+
//#endregion
|
package/dist/color/misc/is.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { isPlainObject } from "../../internal/is.mjs";
|
|
2
1
|
import { isSubscription } from "../../internal/subscription.mjs";
|
|
3
2
|
import { between } from "../../internal/number.mjs";
|
|
4
|
-
import { COLOR_ALPHA, COLOR_EXPRESSION, COLOR_KEYS, COLOR_LENGTHS, COLOR_MAX
|
|
3
|
+
import { COLOR_ALPHA, COLOR_EXPRESSION, COLOR_KEYS, COLOR_LENGTHS, COLOR_MAX } from "../constants.mjs";
|
|
5
4
|
//#region src/color/misc/is.ts
|
|
6
5
|
function hasKeys(value, keys) {
|
|
7
6
|
return typeof value === "object" && value !== null && keys.every((key) => key in value);
|
|
@@ -19,7 +18,7 @@ function isBytey(value) {
|
|
|
19
18
|
* @returns `true` if the value is a _Color_, otherwise `false`
|
|
20
19
|
*/
|
|
21
20
|
function isColor(value) {
|
|
22
|
-
return
|
|
21
|
+
return typeof value === "object" && value !== null && "$color" in value && value["$color"] === "color";
|
|
23
22
|
}
|
|
24
23
|
/**
|
|
25
24
|
* Is the value a color subscription?
|
|
@@ -28,7 +27,7 @@ function isColor(value) {
|
|
|
28
27
|
* @returns `true` if the value is a color subscription, otherwise `false`
|
|
29
28
|
*/
|
|
30
29
|
function isColorSubscription(value) {
|
|
31
|
-
return isSubscription(value) && value[
|
|
30
|
+
return isSubscription(value) && value["$color"] === "subscription";
|
|
32
31
|
}
|
|
33
32
|
function isColorValue(obj, properties) {
|
|
34
33
|
if (typeof obj !== "object" || obj === null) return false;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Color, ColorChanges, ColorState, ColorType } from "../models.mjs";
|
|
1
|
+
import { ColorState, ColorType, InternalColor } from "../models.mjs";
|
|
3
2
|
//#region src/color/misc/state.d.ts
|
|
4
|
-
declare function getColorFromState<Type extends ColorType>(state: ColorState, type: Type): NonNullable<ColorState[Type]>;
|
|
5
|
-
declare function getColorState(value: unknown): ColorState;
|
|
6
|
-
declare function setHexColor(
|
|
7
|
-
declare function setHSLColor(
|
|
8
|
-
declare function setHWBColor(
|
|
9
|
-
declare function setRGBColor(
|
|
10
|
-
//#endregion
|
|
11
|
-
export { getColorFromState, getColorState, setHSLColor, setHWBColor, setHexColor, setRGBColor };
|
|
3
|
+
export declare function getColorFromState<Type extends ColorType>(state: ColorState, type: Type): NonNullable<ColorState[Type]>;
|
|
4
|
+
export declare function getColorState(value: unknown): ColorState;
|
|
5
|
+
export declare function setHexColor(instance: InternalColor, value: string, alpha: boolean): void;
|
|
6
|
+
export declare function setHSLColor(instance: InternalColor, value: unknown, alpha: boolean): void;
|
|
7
|
+
export declare function setHWBColor(instance: InternalColor, value: unknown, alpha: boolean): void;
|
|
8
|
+
export declare function setRGBColor(instance: InternalColor, value: unknown, alpha: boolean): void;
|
|
9
|
+
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { COLOR_DEFAULTS, COLOR_KEYS, COLOR_LENGTHS, COLOR_MAX, COLOR_TYPE } from "../constants.mjs";
|
|
1
|
+
import { COLOR_DEFAULTS, COLOR_KEYS, COLOR_LENGTHS, COLOR_MAX, COLOR_SYMBOL, COLOR_TYPE } from "../constants.mjs";
|
|
2
2
|
import { getAlpha } from "./alpha.mjs";
|
|
3
3
|
import { getDegrees, getHexValue, getPercentage } from "./get.mjs";
|
|
4
4
|
import { isColor, isHexColor, isHslLike, isHwbLike, isRgbLike } from "./is.mjs";
|
|
@@ -59,41 +59,43 @@ function getDefaultColorState() {
|
|
|
59
59
|
origin: COLOR_TYPE.hex
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
|
-
function setColorValue(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
changes.emit(
|
|
62
|
+
function setColorValue(instance, type, value, alpha) {
|
|
63
|
+
const { changes, values } = instance[COLOR_SYMBOL];
|
|
64
|
+
values.hex = void 0;
|
|
65
|
+
values.hsl = void 0;
|
|
66
|
+
values.hwb = void 0;
|
|
67
|
+
values.rgb = void 0;
|
|
68
|
+
values.origin = type;
|
|
69
|
+
values[type] = value;
|
|
70
|
+
if (alpha != null) values.alpha = getAlpha(alpha, type === COLOR_TYPE.hex);
|
|
71
|
+
for (const type of COLOR_TYPE.all) if (changes.observed(type)) changes.emit(type, instance[type]);
|
|
72
|
+
changes.emit(COLOR_TYPE.wildcard, instance);
|
|
72
73
|
}
|
|
73
|
-
function setHexColor(
|
|
74
|
-
|
|
74
|
+
function setHexColor(instance, value, alpha) {
|
|
75
|
+
const { values } = instance[COLOR_SYMBOL];
|
|
76
|
+
if (!isHexColor(value) || !alpha && value === values.hex) return;
|
|
75
77
|
const normalized = getNormalizedHex(value, true);
|
|
76
|
-
setColorValue(
|
|
78
|
+
setColorValue(instance, COLOR_TYPE.hex, normalized.slice(0, COLOR_LENGTHS.hexLong), alpha ? normalized.slice(COLOR_LENGTHS.hexLong) : void 0);
|
|
77
79
|
}
|
|
78
|
-
function setHSLColor(
|
|
80
|
+
function setHSLColor(instance, value, alpha) {
|
|
79
81
|
if (!isHslLike(value)) return;
|
|
80
|
-
setColorValue(
|
|
82
|
+
setColorValue(instance, COLOR_TYPE.hsl, {
|
|
81
83
|
hue: getDegrees(value.hue),
|
|
82
84
|
saturation: getPercentage(value.saturation),
|
|
83
85
|
lightness: getPercentage(value.lightness)
|
|
84
86
|
}, alpha ? value.alpha : void 0);
|
|
85
87
|
}
|
|
86
|
-
function setHWBColor(
|
|
88
|
+
function setHWBColor(instance, value, alpha) {
|
|
87
89
|
if (!isHwbLike(value)) return;
|
|
88
|
-
setColorValue(
|
|
90
|
+
setColorValue(instance, COLOR_TYPE.hwb, {
|
|
89
91
|
hue: getDegrees(value.hue),
|
|
90
92
|
whiteness: getPercentage(value.whiteness),
|
|
91
93
|
blackness: getPercentage(value.blackness)
|
|
92
94
|
}, alpha ? value.alpha : void 0);
|
|
93
95
|
}
|
|
94
|
-
function setRGBColor(
|
|
96
|
+
function setRGBColor(instance, value, alpha) {
|
|
95
97
|
if (!isRgbLike(value)) return;
|
|
96
|
-
setColorValue(
|
|
98
|
+
setColorValue(instance, COLOR_TYPE.rgb, {
|
|
97
99
|
red: getHexValue(value.red),
|
|
98
100
|
green: getHexValue(value.green),
|
|
99
101
|
blue: getHexValue(value.blue)
|