@thednp/color-picker 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +25 -14
- package/dist/css/color-picker.css +3 -6
- package/dist/css/color-picker.css.map +1 -0
- package/dist/css/color-picker.min.css +1 -2
- package/dist/css/color-picker.min.css.map +1 -0
- package/dist/css/color-picker.rtl.css +3 -6
- package/dist/css/color-picker.rtl.css.map +1 -0
- package/dist/css/color-picker.rtl.min.css +1 -2
- package/dist/css/color-picker.rtl.min.css.map +1 -0
- package/dist/js/color-picker.cjs +2 -2
- package/dist/js/color-picker.cjs.map +1 -1
- package/dist/js/color-picker.d.ts +307 -300
- package/dist/js/color-picker.js +2 -2
- package/dist/js/color-picker.js.map +1 -1
- package/dist/js/color-picker.mjs +369 -332
- package/dist/js/color-picker.mjs.map +1 -1
- package/package.json +36 -44
- package/.eslintrc.cjs +0 -199
- package/.lgtm.yml +0 -9
- package/.prettierrc.json +0 -15
- package/.stylelintrc.json +0 -236
- package/compile.cjs +0 -51
- package/dts.config.ts +0 -15
- package/src/scss/_variables.scss +0 -6
- package/src/scss/color-picker.rtl.scss +0 -27
- package/src/scss/color-picker.scss +0 -536
- package/src/ts/colorPalette.ts +0 -89
- package/src/ts/index.ts +0 -1237
- package/src/ts/interface/ColorNames.ts +0 -20
- package/src/ts/interface/colorPickerLabels.ts +0 -20
- package/src/ts/interface/colorPickerOptions.ts +0 -11
- package/src/ts/interface/paletteOptions.ts +0 -6
- package/src/ts/util/colorNames.ts +0 -21
- package/src/ts/util/colorPickerLabels.ts +0 -24
- package/src/ts/util/getColorControls.ts +0 -90
- package/src/ts/util/getColorForm.ts +0 -75
- package/src/ts/util/getColorMenu.ts +0 -83
- package/src/ts/util/isValidJSON.ts +0 -19
- package/src/ts/util/setMarkup.ts +0 -130
- package/src/ts/util/vHidden.ts +0 -2
- package/test/color-palette.test.ts +0 -137
- package/test/color-picker.test.ts +0 -705
- package/test/fixtures/colorNamesFrench.js +0 -3
- package/test/fixtures/componentLabelsFrench.js +0 -21
- package/test/fixtures/format.js +0 -3
- package/test/fixtures/getMarkup.js +0 -36
- package/test/fixtures/getRandomInt.js +0 -6
- package/test/fixtures/sampleWebcolors.js +0 -18
- package/test/fixtures/swipe.ts +0 -33
- package/test/fixtures/testSample.js +0 -8
- package/test/fixtures/write.ts +0 -37
- package/tsconfig.json +0 -47
- package/vite.config.mts +0 -27
- package/vitest.config-ui.ts +0 -26
- package/vitest.config.ts +0 -26
package/dist/js/color-picker.mjs
CHANGED
@@ -1,149 +1,89 @@
|
|
1
|
-
const
|
2
|
-
/* istanbul ignore else @preserve */
|
3
|
-
mt ? mt.brands.some((o) => Xt.test(o.brand)) : Xt.test(vt);
|
4
|
-
const Yt = /(iPhone|iPod|iPad)/;
|
5
|
-
mt ? mt.brands.some((o) => Yt.test(o.brand)) : (
|
6
|
-
/* istanbul ignore next @preserve */
|
7
|
-
Yt.test(vt)
|
8
|
-
);
|
9
|
-
vt && vt.includes("Firefox");
|
10
|
-
const { head: wt } = document;
|
11
|
-
["webkitPerspective", "perspective"].some((o) => o in wt.style);
|
12
|
-
const Bt = (o, t, e, s) => {
|
1
|
+
const jt = "aria-description", Lt = "aria-expanded", Ae = "aria-hidden", wt = "aria-selected", tt = "aria-valuenow", et = "aria-valuetext", He = "change", Ne = "focusin", Ee = "focusout", qt = "keydown", Te = "keyup", At = "click", Me = "pointerdown", ie = "pointermove", Re = "pointerup", Oe = "resize", De = "scroll", Fe = "touchmove", B = "ArrowDown", ot = "ArrowUp", ht = "ArrowLeft", W = "ArrowRight", Ie = "Enter", Ve = "Escape", Gt = "Space", Ke = "transitionDuration", Be = "transitionProperty", Z = "tabindex", ae = (o, t, e, s) => {
|
13
2
|
const r = s || !1;
|
14
|
-
o.addEventListener(
|
15
|
-
|
3
|
+
o.addEventListener(
|
4
|
+
t,
|
5
|
+
e,
|
6
|
+
r
|
7
|
+
);
|
8
|
+
}, le = (o, t, e, s) => {
|
16
9
|
const r = s || !1;
|
17
|
-
o.removeEventListener(
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
Bt(o, t, r, s);
|
24
|
-
}, Xe = () => {
|
25
|
-
};
|
26
|
-
(() => {
|
27
|
-
let o = !1;
|
28
|
-
try {
|
29
|
-
const t = Object.defineProperty({}, "passive", {
|
30
|
-
get: () => (o = !0, o)
|
31
|
-
});
|
32
|
-
Je(document, Re, Xe, t);
|
33
|
-
} catch {
|
34
|
-
}
|
35
|
-
return o;
|
36
|
-
})();
|
37
|
-
["webkitTransform", "transform"].some((o) => o in wt.style);
|
38
|
-
["webkitAnimation", "animation"].some((o) => o in wt.style);
|
39
|
-
["webkitTransition", "transition"].some((o) => o in wt.style);
|
40
|
-
const kt = (o, t) => o.getAttribute(t), v = (o, t, e) => o.setAttribute(t, e), Pt = (o, t) => o.removeAttribute(t), q = (o, ...t) => {
|
10
|
+
o.removeEventListener(
|
11
|
+
t,
|
12
|
+
e,
|
13
|
+
r
|
14
|
+
);
|
15
|
+
}, vt = (o, t) => o.getAttribute(t), v = (o, t, e) => o.setAttribute(t, e), kt = (o, t) => o.removeAttribute(t), j = (o, ...t) => {
|
41
16
|
o.classList.add(...t);
|
42
17
|
}, O = (o, ...t) => {
|
43
18
|
o.classList.remove(...t);
|
44
|
-
}, R = (o, t) => o.classList.contains(t),
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
*
|
49
|
-
* @param element target element
|
50
|
-
* @param component the component's name or a unique key
|
51
|
-
* @param instance the component instance
|
52
|
-
*/
|
19
|
+
}, R = (o, t) => o.classList.contains(t), It = (o) => o != null && typeof o == "object" || !1, ct = (o) => It(o) && typeof o.nodeType == "number" && [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some(
|
20
|
+
(t) => o.nodeType === t
|
21
|
+
) || !1, z = (o) => ct(o) && o.nodeType === 1 || !1, X = /* @__PURE__ */ new Map(), lt = {
|
22
|
+
data: X,
|
53
23
|
set: (o, t, e) => {
|
54
|
-
|
24
|
+
z(o) && (X.has(t) || X.set(t, /* @__PURE__ */ new Map()), X.get(t).set(o, e));
|
55
25
|
},
|
56
|
-
|
57
|
-
* Returns all instances for specified component.
|
58
|
-
*
|
59
|
-
* @param component the component's name or a unique key
|
60
|
-
* @returns all the component instances
|
61
|
-
*/
|
62
|
-
getAllFor: (o) => z.get(o) || null,
|
63
|
-
/**
|
64
|
-
* Returns the instance associated with the target.
|
65
|
-
*
|
66
|
-
* @param element target element
|
67
|
-
* @param component the component's name or a unique key
|
68
|
-
* @returns the instance
|
69
|
-
*/
|
26
|
+
getAllFor: (o) => X.get(o) || null,
|
70
27
|
get: (o, t) => {
|
71
|
-
if (!
|
72
|
-
const e =
|
28
|
+
if (!z(o) || !t) return null;
|
29
|
+
const e = lt.getAllFor(t);
|
73
30
|
return o && e && e.get(o) || null;
|
74
31
|
},
|
75
|
-
/**
|
76
|
-
* Removes web components data.
|
77
|
-
*
|
78
|
-
* @param element target element
|
79
|
-
* @param component the component's name or a unique key
|
80
|
-
*/
|
81
32
|
remove: (o, t) => {
|
82
|
-
const e =
|
83
|
-
!e || !
|
33
|
+
const e = lt.getAllFor(t);
|
34
|
+
!e || !z(o) || (e.delete(o), e.size === 0 && X.delete(t));
|
84
35
|
}
|
85
|
-
},
|
36
|
+
}, je = (o, t) => lt.get(o, t), qe = (o) => o?.trim().replace(
|
37
|
+
/(?:^\w|[A-Z]|\b\w)/g,
|
38
|
+
(t, e) => e === 0 ? t.toLowerCase() : t.toUpperCase()
|
39
|
+
).replace(/\s+/g, ""), q = (o) => typeof o == "string" || !1, Ge = (o) => It(o) && o.constructor.name === "Window" || !1, ce = (o) => ct(o) && o.nodeType === 9 || !1, K = (o) => ce(o) ? o : ct(o) ? o.ownerDocument : Ge(o) ? o.document : globalThis.document, V = (o, ...t) => Object.assign(o, ...t), x = (o) => {
|
86
40
|
if (!o) return;
|
87
|
-
if (
|
88
|
-
return
|
41
|
+
if (q(o))
|
42
|
+
return K().createElement(o);
|
89
43
|
const { tagName: t } = o, e = x(t);
|
90
44
|
if (!e) return;
|
91
45
|
const s = { ...o };
|
92
|
-
return delete s.tagName,
|
93
|
-
},
|
46
|
+
return delete s.tagName, V(e, s);
|
47
|
+
}, Ht = (o, t) => {
|
94
48
|
if (!o || !t) return;
|
95
|
-
if (
|
96
|
-
return
|
97
|
-
const { tagName: e } = t, s =
|
49
|
+
if (q(t))
|
50
|
+
return K().createElementNS(o, t);
|
51
|
+
const { tagName: e } = t, s = Ht(o, e);
|
98
52
|
if (!s) return;
|
99
53
|
const r = { ...t };
|
100
|
-
return delete r.tagName,
|
101
|
-
},
|
102
|
-
const
|
103
|
-
return
|
104
|
-
},
|
105
|
-
const t =
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
/* istanbul ignore next */
|
110
|
-
0
|
111
|
-
);
|
112
|
-
return Number.isNaN(r) ? (
|
113
|
-
/* istanbul ignore next */
|
114
|
-
0
|
115
|
-
) : r;
|
116
|
-
}, W = (o, t) => o.focus(t), Zt = (o) => ["true", !0].includes(o) ? !0 : ["false", !1].includes(o) ? !1 : ["null", "", null, void 0].includes(o) ? null : o !== "" && !Number.isNaN(+o) ? +o : o, pt = (o) => Object.entries(o), eo = (o, t, e, s) => {
|
54
|
+
return delete r.tagName, V(s, r);
|
55
|
+
}, We = (o, t) => o.dispatchEvent(t), Nt = (o, t, e) => {
|
56
|
+
const s = getComputedStyle(o, e), r = t.replace("webkit", "Webkit").replace(/([A-Z])/g, "-$1").toLowerCase();
|
57
|
+
return s.getPropertyValue(r);
|
58
|
+
}, Ue = (o) => {
|
59
|
+
const t = Nt(o, Be), e = Nt(o, Ke), s = e.includes("ms") ? 1 : 1e3, r = t && t !== "none" ? parseFloat(e) * s : 0;
|
60
|
+
return Number.isNaN(r) ? 0 : r;
|
61
|
+
}, U = (o, t) => o.focus(t), Wt = (o) => ["true", !0].includes(o) ? !0 : ["false", !1].includes(o) ? !1 : ["null", "", null, void 0].includes(o) ? null : o !== "" && !Number.isNaN(+o) ? +o : o, pt = (o) => Object.entries(o), _e = (o, t, e, s) => {
|
62
|
+
if (!z(o)) return t;
|
117
63
|
const r = { ...e }, n = { ...o.dataset }, i = { ...t }, a = {}, l = "title";
|
118
64
|
return pt(n).forEach(([c, h]) => {
|
119
|
-
const b = c;
|
120
|
-
a[b] =
|
65
|
+
const b = qe(c);
|
66
|
+
a[b] = Wt(h);
|
121
67
|
}), pt(r).forEach(([c, h]) => {
|
122
|
-
r[c] =
|
68
|
+
r[c] = Wt(h);
|
123
69
|
}), pt(t).forEach(([c, h]) => {
|
124
|
-
c in r ? i[c] = r[c] : c in a ? i[c] = a[c] : i[c] = c === l ?
|
70
|
+
c in r ? i[c] = r[c] : c in a ? i[c] = a[c] : i[c] = c === l ? vt(o, l) : h;
|
125
71
|
}), i;
|
126
|
-
},
|
72
|
+
}, Ut = (o) => Object.fromEntries(o), ze = (o) => o.offsetHeight, D = (o, t) => {
|
127
73
|
pt(t).forEach(([e, s]) => {
|
128
|
-
if (s &&
|
74
|
+
if (s && q(e) && e.includes("--"))
|
129
75
|
o.style.setProperty(e, s);
|
130
76
|
else {
|
131
77
|
const r = {};
|
132
|
-
r[e] = s,
|
78
|
+
r[e] = s, V(o.style, r);
|
133
79
|
}
|
134
80
|
});
|
135
|
-
},
|
81
|
+
}, Xe = (o) => It(o) && o.constructor.name === "Map" || !1, he = (o) => o.toUpperCase(), ge = (o) => z(o) && "offsetWidth" in o || !1, gt = (o, t) => {
|
136
82
|
const { width: e, height: s, top: r, right: n, bottom: i, left: a } = o.getBoundingClientRect();
|
137
83
|
let l = 1, c = 1;
|
138
|
-
if (t &&
|
84
|
+
if (t && ge(o)) {
|
139
85
|
const { offsetWidth: h, offsetHeight: b } = o;
|
140
|
-
l = h > 0 ? Math.round(e) / h : (
|
141
|
-
/* istanbul ignore next */
|
142
|
-
1
|
143
|
-
), c = b > 0 ? Math.round(s) / b : (
|
144
|
-
/* istanbul ignore next */
|
145
|
-
1
|
146
|
-
);
|
86
|
+
l = h > 0 ? Math.round(e) / h : 1, c = b > 0 ? Math.round(s) / b : 1;
|
147
87
|
}
|
148
88
|
return {
|
149
89
|
width: e / l,
|
@@ -155,28 +95,30 @@ const kt = (o, t) => o.getAttribute(t), v = (o, t, e) => o.setAttribute(t, e), P
|
|
155
95
|
x: a / l,
|
156
96
|
y: r / c
|
157
97
|
};
|
158
|
-
},
|
159
|
-
let
|
160
|
-
const J = /* @__PURE__ */ new Map(),
|
161
|
-
let e = t ?
|
98
|
+
}, yt = (o) => K(o).documentElement, Je = (o) => o ? ce(o) ? o.defaultView : ct(o) ? o?.ownerDocument?.defaultView : o : window;
|
99
|
+
let _t = 0, zt = 0;
|
100
|
+
const J = /* @__PURE__ */ new Map(), ue = (o, t) => {
|
101
|
+
let e = t ? _t : zt;
|
162
102
|
if (t) {
|
163
|
-
const s =
|
164
|
-
J.has(s) || J.set(s, r),
|
103
|
+
const s = ue(o), r = J.get(s) || /* @__PURE__ */ new Map();
|
104
|
+
J.has(s) || J.set(s, r), Xe(r) && !r.has(t) ? (r.set(t, e), _t += 1) : e = r.get(t);
|
165
105
|
} else {
|
166
106
|
const s = o.id || o;
|
167
|
-
J.has(s) ? e = J.get(s) : (J.set(s, e),
|
107
|
+
J.has(s) ? e = J.get(s) : (J.set(s, e), zt += 1);
|
168
108
|
}
|
169
109
|
return e;
|
170
|
-
},
|
171
|
-
var t;
|
172
|
-
return o ? pe(o) ? o.defaultView : Z(o) ? (t = o?.ownerDocument) == null ? void 0 : t.defaultView : o : window;
|
173
|
-
}, Ct = (o) => Array.isArray(o) || !1, me = (o, t) => o ? o.closest(t) || // break out of `ShadowRoot`
|
174
|
-
me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).querySelector(o), st = (o, t) => (t && Z(t) ? t : V()).getElementsByClassName(
|
110
|
+
}, xt = (o) => Array.isArray(o) || !1, be = (o, t) => !o || !t ? null : o.closest(t) || be(o.getRootNode().host, t) || null, _ = (o, t) => z(o) ? o : (z(t) ? t : K()).querySelector(o), st = (o, t) => (t && ct(t) ? t : K()).getElementsByClassName(
|
175
111
|
o
|
176
|
-
),
|
112
|
+
), Vt = [
|
113
|
+
"transparent",
|
114
|
+
"currentColor",
|
115
|
+
"inherit",
|
116
|
+
"revert",
|
117
|
+
"initial"
|
118
|
+
], m = (o) => {
|
177
119
|
const t = Math.floor(o);
|
178
120
|
return o - t < 0.5 ? t : Math.round(o);
|
179
|
-
},
|
121
|
+
}, mt = [
|
180
122
|
[
|
181
123
|
"aliceblue",
|
182
124
|
{
|
@@ -1361,13 +1303,13 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1361
1303
|
b: 50
|
1362
1304
|
}
|
1363
1305
|
]
|
1364
|
-
],
|
1365
|
-
CSS_UNIT: new RegExp(
|
1366
|
-
ANGLES:
|
1367
|
-
CSS_ANGLE:
|
1368
|
-
CSS_INTEGER:
|
1369
|
-
CSS_NUMBER:
|
1370
|
-
CSS_UNIT2:
|
1306
|
+
], pe = "deg|rad|grad|turn", de = "[-\\+]?\\d+%?", fe = "[-\\+]?\\d*\\.\\d+%?", me = `[-\\+]?\\d*\\.?\\d+(?:${pe})?`, dt = `(?:${fe})|(?:${de})`, Et = `(?:${dt})|(?:${me}?)`, Ze = "(?:[\\s|\\(\\s|\\s\\(\\s]+)?", Qe = "(?:[\\s|\\)\\s]+)?", Xt = "(?:[,|\\s]+)", Ye = "(?:[,|\\/\\s]*)?", rt = `${Ze}(${Et})${Xt}(${dt})${Xt}(${dt})${Ye}(${dt})?${Qe}`, I = {
|
1307
|
+
CSS_UNIT: new RegExp(Et),
|
1308
|
+
ANGLES: pe,
|
1309
|
+
CSS_ANGLE: me,
|
1310
|
+
CSS_INTEGER: de,
|
1311
|
+
CSS_NUMBER: fe,
|
1312
|
+
CSS_UNIT2: Et,
|
1371
1313
|
PERMISSIVE_MATCH: rt,
|
1372
1314
|
hwb: new RegExp(`hwb${rt}`),
|
1373
1315
|
rgb: new RegExp(`rgb(?:a)?${rt}`),
|
@@ -1377,16 +1319,16 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1377
1319
|
hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
|
1378
1320
|
hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
|
1379
1321
|
hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
|
1380
|
-
},
|
1322
|
+
}, ve = (o) => Vt.includes(o), nt = (o, t) => o !== null && typeof o == "object" && Object.keys(t).every((e) => e in o), $e = (o) => `${o}`.includes(".") && parseFloat(o) === 1, Kt = (o) => typeof o == "string" && o.includes("%"), H = (o) => !!I.CSS_UNIT.exec(`${o}`), we = ["rgb", "hex", "hsl", "hsv", "hwb"], ke = (o) => Vt.includes(o) || ["#", ...we].some((t) => o.includes(t)) ? !1 : mt.some(([t]) => o === t), Jt = 1e-6, to = (o, t) => Math.abs(o * t - t) < Jt ? 1 : o < Jt ? 0 : o, E = (o, t) => {
|
1381
1323
|
let e = o;
|
1382
|
-
return
|
1383
|
-
},
|
1324
|
+
return $e(o) && (e = "100%"), Kt(e) ? Number.parseFloat(e) / 100 : (e = typeof e != "number" ? Number.parseFloat(e) : e, t === 360 ? e = (e < 0 ? e % t + t : e > 360 ? e % t : e) / t : (e = Math.min(t, Math.max(0, e)), e = e / t), to(e, t));
|
1325
|
+
}, Tt = (o) => {
|
1384
1326
|
let t = parseFloat(o);
|
1385
1327
|
return (Number.isNaN(t) || t < 0 || t > 1) && (t = 1), t;
|
1386
|
-
}, ut = (o) => Math.min(1, Math.max(0, o)), G = (o) => o.length === 1 ? `0${o}` : String(o),
|
1387
|
-
const [[, t]] =
|
1328
|
+
}, ut = (o) => Math.min(1, Math.max(0, o)), G = (o) => o.length === 1 ? `0${o}` : String(o), ye = (o) => {
|
1329
|
+
const [[, t]] = mt.filter(([e]) => e === o.toLowerCase());
|
1388
1330
|
return t;
|
1389
|
-
}, N = (o) => parseInt(o, 16),
|
1331
|
+
}, N = (o) => parseInt(o, 16), Mt = (o) => N(o) / 255, xe = (o) => m(o * 255).toString(16), Zt = (o, t, e) => {
|
1390
1332
|
const s = Math.max(o, t, e), r = Math.min(o, t, e);
|
1391
1333
|
let n = 0, i = 0;
|
1392
1334
|
const a = (s + r) / 2;
|
@@ -1400,7 +1342,7 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1400
1342
|
}, ft = (o, t, e) => {
|
1401
1343
|
let s = e;
|
1402
1344
|
return s < 0 && (s += 1), s > 1 && (s -= 1), s < 1 / 6 ? o + (t - o) * (6 * s) : s < 1 / 2 ? t : s < 2 / 3 ? o + (t - o) * (2 / 3 - s) * 6 : o;
|
1403
|
-
},
|
1345
|
+
}, at = (o, t, e) => {
|
1404
1346
|
let s = 0, r = 0, n = 0;
|
1405
1347
|
if (t === 0)
|
1406
1348
|
r = e, n = e, s = e;
|
@@ -1409,7 +1351,7 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1409
1351
|
s = ft(a, i, o + 1 / 3), r = ft(a, i, o), n = ft(a, i, o - 1 / 3);
|
1410
1352
|
}
|
1411
1353
|
return { r: s, g: r, b: n };
|
1412
|
-
},
|
1354
|
+
}, Qt = (o, t, e) => {
|
1413
1355
|
let s = 0, r = 0;
|
1414
1356
|
const n = Math.min(o, t, e), i = Math.max(o, t, e), a = 1 - i;
|
1415
1357
|
if (i === n) return { h: 0, w: n, b: a };
|
@@ -1420,45 +1362,45 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1420
1362
|
w: n,
|
1421
1363
|
b: a
|
1422
1364
|
};
|
1423
|
-
},
|
1365
|
+
}, Se = (o, t, e) => {
|
1424
1366
|
if (t + e >= 1) {
|
1425
1367
|
const i = t / (t + e);
|
1426
1368
|
return { r: i, g: i, b: i };
|
1427
1369
|
}
|
1428
|
-
let { r: s, g: r, b: n } =
|
1370
|
+
let { r: s, g: r, b: n } = at(o, 1, 0.5);
|
1429
1371
|
return [s, r, n] = [s, r, n].map((i) => i * (1 - t - e) + t), { r: s, g: r, b: n };
|
1430
|
-
},
|
1372
|
+
}, Yt = (o, t, e) => {
|
1431
1373
|
const s = Math.max(o, t, e), r = Math.min(o, t, e);
|
1432
1374
|
let n = 0;
|
1433
1375
|
const i = s, a = s - r, l = s === 0 ? 0 : a / s;
|
1434
1376
|
return s === r ? n = 0 : (o === s && (n = (t - e) / a + (t < e ? 6 : 0)), t === s && (n = (e - o) / a + 2), e === s && (n = (o - t) / a + 4), n /= 6), { h: n, s: l, v: i };
|
1435
|
-
},
|
1377
|
+
}, Rt = (o, t, e) => {
|
1436
1378
|
const s = o * 6, r = t, n = e, i = Math.floor(s), a = s - i, l = n * (1 - r), c = n * (1 - a * r), h = n * (1 - (1 - a) * r), b = i % 6, u = [n, c, l, l, h, n][b], d = [h, n, n, c, l, l][b], g = [l, l, h, n, n, c][b];
|
1437
1379
|
return { r: u, g: d, b: g };
|
1438
|
-
},
|
1380
|
+
}, St = (o, t, e, s) => {
|
1439
1381
|
const r = [
|
1440
1382
|
G(m(o).toString(16)),
|
1441
1383
|
G(m(t).toString(16)),
|
1442
1384
|
G(m(e).toString(16))
|
1443
1385
|
];
|
1444
1386
|
return s && r[0].charAt(0) === r[0].charAt(1) && r[1].charAt(0) === r[1].charAt(1) && r[2].charAt(0) === r[2].charAt(1) ? r[0].charAt(0) + r[1].charAt(0) + r[2].charAt(0) : r.join("");
|
1445
|
-
},
|
1387
|
+
}, Ct = (o, t, e, s, r) => {
|
1446
1388
|
const n = [
|
1447
1389
|
G(m(o).toString(16)),
|
1448
1390
|
G(m(t).toString(16)),
|
1449
1391
|
G(m(e).toString(16)),
|
1450
|
-
G(
|
1392
|
+
G(xe(s))
|
1451
1393
|
];
|
1452
1394
|
return r && n[0].charAt(0) === n[0].charAt(1) && n[1].charAt(0) === n[1].charAt(1) && n[2].charAt(0) === n[2].charAt(1) && n[3].charAt(0) === n[3].charAt(1) ? n[0].charAt(0) + n[1].charAt(0) + n[2].charAt(0) + n[3].charAt(0) : n.join("");
|
1453
|
-
},
|
1395
|
+
}, Ce = (o) => {
|
1454
1396
|
const t = String(o).trim().toLowerCase();
|
1455
|
-
if (
|
1456
|
-
return Object.assign(
|
1397
|
+
if (ke(t))
|
1398
|
+
return Object.assign(ye(t), {
|
1457
1399
|
a: 1,
|
1458
1400
|
format: "rgb",
|
1459
1401
|
ok: !0
|
1460
1402
|
});
|
1461
|
-
if (
|
1403
|
+
if (ve(t))
|
1462
1404
|
return {
|
1463
1405
|
r: 0,
|
1464
1406
|
g: 0,
|
@@ -1500,7 +1442,7 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1500
1442
|
r: N(e),
|
1501
1443
|
g: N(s),
|
1502
1444
|
b: N(r),
|
1503
|
-
a:
|
1445
|
+
a: Mt(n),
|
1504
1446
|
format: "hex",
|
1505
1447
|
ok: !0
|
1506
1448
|
} : ([, e, s, r] = I.hex6.exec(t) || [], e && s && r ? {
|
@@ -1514,7 +1456,7 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1514
1456
|
r: N(e + e),
|
1515
1457
|
g: N(s + s),
|
1516
1458
|
b: N(r + r),
|
1517
|
-
a:
|
1459
|
+
a: Mt(n + n),
|
1518
1460
|
format: "hex",
|
1519
1461
|
ok: !0
|
1520
1462
|
} : ([, e, s, r] = I.hex3.exec(t) || [], e && s && r ? {
|
@@ -1532,56 +1474,56 @@ me(o.getRootNode().host, t) : null, _ = (o, t) => at(o) ? o : (Z(t) ? t : V()).q
|
|
1532
1474
|
format: "rgb",
|
1533
1475
|
ok: !o
|
1534
1476
|
})))))));
|
1535
|
-
},
|
1477
|
+
}, eo = (o, t, e) => ({
|
1536
1478
|
r: E(o, 255),
|
1537
1479
|
g: E(t, 255),
|
1538
1480
|
b: E(e, 255)
|
1539
|
-
}),
|
1481
|
+
}), te = (o) => {
|
1540
1482
|
let t = { r: 0, g: 0, b: 0 }, e = o, s = 1, r, n, i, a, l, c, h, b, u = "rgb", d = !1;
|
1541
|
-
if ((!e || typeof e == "string") && (e =
|
1483
|
+
if ((!e || typeof e == "string") && (e = Ce(e), d = e.ok || d), nt(e, t) && H(e.r) && H(e.g) && H(e.b)) {
|
1542
1484
|
if (["format", "ok", "originalInput"].every((g) => g in e))
|
1543
1485
|
return { ...e };
|
1544
|
-
({ r: h, g: b, b: l } = e), t =
|
1486
|
+
({ r: h, g: b, b: l } = e), t = eo(h, b, l), u = "format" in e ? e.format : "rgb";
|
1545
1487
|
}
|
1546
|
-
return nt(e, { h: 0, s: 0, v: 0 }) && H(e.h) && H(e.s) && H(e.v) && ({ h: c, s: r, v: n } = e, c = E(c, 360), r = E(r, 100), n = E(n, 100), t =
|
1488
|
+
return nt(e, { h: 0, s: 0, v: 0 }) && H(e.h) && H(e.s) && H(e.v) && ({ h: c, s: r, v: n } = e, c = E(c, 360), r = E(r, 100), n = E(n, 100), t = Rt(c, r, n), u = "hsv"), nt(e, { h: 0, s: 0, l: 0 }) && H(e.h) && H(e.s) && H(e.l) && ({ h: c, s: r, l: i } = e, c = E(c, 360), r = E(r, 100), i = E(i, 100), t = at(c, r, i), u = "hsl"), nt(e, { h: 0, w: 0, b: 0 }) && H(e.h) && H(e.w) && H(e.b) && ({ h: c, w: a, b: l } = e, c = E(c, 360), a = E(a, 100), l = E(l, 100), t = Se(c, a, l), u = "hwb"), H(e.a) && (s = e.a, s = Kt(s) || parseFloat(`${s}`) > 1 ? E(s, 100) : s), {
|
1547
1489
|
...t,
|
1548
|
-
a:
|
1490
|
+
a: Tt(s),
|
1549
1491
|
format: u,
|
1550
1492
|
ok: d
|
1551
1493
|
};
|
1552
|
-
},
|
1494
|
+
}, oo = "1.0.13";
|
1553
1495
|
class y {
|
1554
1496
|
// bring main utilities to front
|
1555
1497
|
static matchers = I;
|
1556
|
-
static isOnePointZero =
|
1557
|
-
static isPercentage =
|
1498
|
+
static isOnePointZero = $e;
|
1499
|
+
static isPercentage = Kt;
|
1558
1500
|
static isValidCSSUnit = H;
|
1559
|
-
static isNonColor =
|
1560
|
-
static isColorName =
|
1501
|
+
static isNonColor = ve;
|
1502
|
+
static isColorName = ke;
|
1561
1503
|
static isColorType = nt;
|
1562
1504
|
static pad2 = G;
|
1563
1505
|
static clamp01 = ut;
|
1564
1506
|
static bound01 = E;
|
1565
|
-
static boundAlpha =
|
1566
|
-
static getRGBFromName =
|
1567
|
-
static convertHexToDecimal =
|
1568
|
-
static convertDecimalToHex =
|
1569
|
-
static rgbToHsl =
|
1570
|
-
static rgbToHex =
|
1571
|
-
static rgbToHsv =
|
1572
|
-
static rgbToHwb =
|
1573
|
-
static rgbaToHex =
|
1574
|
-
static hslToRgb =
|
1575
|
-
static hsvToRgb =
|
1507
|
+
static boundAlpha = Tt;
|
1508
|
+
static getRGBFromName = ye;
|
1509
|
+
static convertHexToDecimal = Mt;
|
1510
|
+
static convertDecimalToHex = xe;
|
1511
|
+
static rgbToHsl = Zt;
|
1512
|
+
static rgbToHex = St;
|
1513
|
+
static rgbToHsv = Yt;
|
1514
|
+
static rgbToHwb = Qt;
|
1515
|
+
static rgbaToHex = Ct;
|
1516
|
+
static hslToRgb = Rt;
|
1517
|
+
static hsvToRgb = Rt;
|
1576
1518
|
static hueToRgb = ft;
|
1577
|
-
static hwbToRgb =
|
1519
|
+
static hwbToRgb = Se;
|
1578
1520
|
static parseIntFromHex = N;
|
1579
|
-
static stringInputToObject =
|
1580
|
-
static inputToRGB =
|
1521
|
+
static stringInputToObject = Ce;
|
1522
|
+
static inputToRGB = te;
|
1581
1523
|
static roundPart = m;
|
1582
|
-
static webColors =
|
1583
|
-
static nonColors =
|
1584
|
-
static version =
|
1524
|
+
static webColors = mt;
|
1525
|
+
static nonColors = Vt;
|
1526
|
+
static version = oo;
|
1585
1527
|
// main public properties
|
1586
1528
|
r;
|
1587
1529
|
g;
|
@@ -1592,7 +1534,7 @@ class y {
|
|
1592
1534
|
originalInput;
|
1593
1535
|
// main public methods
|
1594
1536
|
constructor(t, e) {
|
1595
|
-
const s = e &&
|
1537
|
+
const s = e && we.includes(e) ? e : "", { r, g: n, b: i, a, ok: l, format: c } = te(t);
|
1596
1538
|
this.originalInput = t, this.r = r, this.g = n, this.b = i, this.a = a, this.ok = l, this.format = s || c;
|
1597
1539
|
}
|
1598
1540
|
/**
|
@@ -1628,7 +1570,7 @@ class y {
|
|
1628
1570
|
* Returns the web colour name closest to the current colour.
|
1629
1571
|
*/
|
1630
1572
|
get name() {
|
1631
|
-
const { r: t, g: e, b: s } = this.toRgb(), [r] =
|
1573
|
+
const { r: t, g: e, b: s } = this.toRgb(), [r] = mt.map(([n, i]) => {
|
1632
1574
|
const a = (
|
1633
1575
|
// ((rgb.r - r) ** 2 + (rgb.g - g) ** 2 + (rgb.b - b) ** 2) ** 0.5; // standard
|
1634
1576
|
(((i.r - t) * 0.3) ** 2 + ((i.g - e) * 0.6) ** 2 + ((i.b - s) * 0.1) ** 2) ** 0.5
|
@@ -1673,7 +1615,7 @@ class y {
|
|
1673
1615
|
*/
|
1674
1616
|
toHex(t) {
|
1675
1617
|
let { r: e, g: s, b: r, a: n } = this;
|
1676
|
-
return [e, s, r] = [e, s, r].map((i) => m(i * 255)), n = m(n * 100) / 100, n === 1 ?
|
1618
|
+
return [e, s, r] = [e, s, r].map((i) => m(i * 255)), n = m(n * 100) / 100, n === 1 ? St(e, s, r, t) : Ct(e, s, r, n, t);
|
1677
1619
|
}
|
1678
1620
|
/**
|
1679
1621
|
* Returns the CSS valid hexadecimal vaue of the colour. When the parameter is *true*
|
@@ -1687,7 +1629,7 @@ class y {
|
|
1687
1629
|
*/
|
1688
1630
|
toHex8(t) {
|
1689
1631
|
let { r: e, g: s, b: r, a: n } = this;
|
1690
|
-
return [e, s, r] = [e, s, r].map((i) => m(i * 255)), n = m(n * 100) / 100, n === 1 ?
|
1632
|
+
return [e, s, r] = [e, s, r].map((i) => m(i * 255)), n = m(n * 100) / 100, n === 1 ? St(e, s, r, t) : Ct(e, s, r, n, t);
|
1691
1633
|
}
|
1692
1634
|
/**
|
1693
1635
|
* Returns the HEX8 value of the colour.
|
@@ -1699,7 +1641,7 @@ class y {
|
|
1699
1641
|
* Returns the colour as a HSVA object.
|
1700
1642
|
*/
|
1701
1643
|
toHsv() {
|
1702
|
-
const { r: t, g: e, b: s, a: r } = this, { h: n, s: i, v: a } =
|
1644
|
+
const { r: t, g: e, b: s, a: r } = this, { h: n, s: i, v: a } = Yt(t, e, s);
|
1703
1645
|
return {
|
1704
1646
|
h: n,
|
1705
1647
|
s: i,
|
@@ -1711,7 +1653,7 @@ class y {
|
|
1711
1653
|
* Returns the colour as an HSLA object.
|
1712
1654
|
*/
|
1713
1655
|
toHsl() {
|
1714
|
-
const { r: t, g: e, b: s, a: r } = this, { h: n, s: i, l: a } =
|
1656
|
+
const { r: t, g: e, b: s, a: r } = this, { h: n, s: i, l: a } = Zt(t, e, s);
|
1715
1657
|
return {
|
1716
1658
|
h: n,
|
1717
1659
|
s: i,
|
@@ -1743,7 +1685,7 @@ class y {
|
|
1743
1685
|
* Returns the colour as an HWBA object.
|
1744
1686
|
*/
|
1745
1687
|
toHwb() {
|
1746
|
-
const { r: t, g: e, b: s, a: r } = this, { h: n, w: i, b: a } =
|
1688
|
+
const { r: t, g: e, b: s, a: r } = this, { h: n, w: i, b: a } = Qt(t, e, s);
|
1747
1689
|
return {
|
1748
1690
|
h: n,
|
1749
1691
|
w: i,
|
@@ -1764,14 +1706,14 @@ class y {
|
|
1764
1706
|
* Sets the alpha value of the current colour.
|
1765
1707
|
*/
|
1766
1708
|
setAlpha(t) {
|
1767
|
-
return typeof t != "number" ? this : (this.a =
|
1709
|
+
return typeof t != "number" ? this : (this.a = Tt(t), this);
|
1768
1710
|
}
|
1769
1711
|
/**
|
1770
1712
|
* Saturate the colour with a given amount.
|
1771
1713
|
*/
|
1772
1714
|
saturate(t) {
|
1773
1715
|
if (typeof t != "number") return this;
|
1774
|
-
const { h: e, s, l: r } = this.toHsl(), { r: n, g: i, b: a } =
|
1716
|
+
const { h: e, s, l: r } = this.toHsl(), { r: n, g: i, b: a } = at(e, ut(s + t / 100), r);
|
1775
1717
|
return Object.assign(this, { r: n, g: i, b: a }), this;
|
1776
1718
|
}
|
1777
1719
|
/**
|
@@ -1792,7 +1734,7 @@ class y {
|
|
1792
1734
|
*/
|
1793
1735
|
lighten(t) {
|
1794
1736
|
if (typeof t != "number") return this;
|
1795
|
-
const { h: e, s, l: r } = this.toHsl(), { r: n, g: i, b: a } =
|
1737
|
+
const { h: e, s, l: r } = this.toHsl(), { r: n, g: i, b: a } = at(e, s, ut(r + t / 100));
|
1796
1738
|
return Object.assign(this, { r: n, g: i, b: a }), this;
|
1797
1739
|
}
|
1798
1740
|
/**
|
@@ -1807,7 +1749,11 @@ class y {
|
|
1807
1749
|
*/
|
1808
1750
|
spin(t) {
|
1809
1751
|
if (typeof t != "number") return this;
|
1810
|
-
const { h: e, s, l: r } = this.toHsl(), { r: n, g: i, b: a } =
|
1752
|
+
const { h: e, s, l: r } = this.toHsl(), { r: n, g: i, b: a } = at(
|
1753
|
+
ut((e * 360 + t) % 360 / 360),
|
1754
|
+
s,
|
1755
|
+
r
|
1756
|
+
);
|
1811
1757
|
return Object.assign(this, { r: n, g: i, b: a }), this;
|
1812
1758
|
}
|
1813
1759
|
/** Returns a clone of the current `Color` instance. */
|
@@ -1822,7 +1768,7 @@ class y {
|
|
1822
1768
|
return e === "hex" ? this.toHexString(t) : e === "hsl" ? this.toHslString() : e === "hwb" ? this.toHwbString() : this.toRgbString();
|
1823
1769
|
}
|
1824
1770
|
}
|
1825
|
-
class
|
1771
|
+
class Ot {
|
1826
1772
|
static Color = y;
|
1827
1773
|
hue;
|
1828
1774
|
hueSteps;
|
@@ -1843,7 +1789,9 @@ class It {
|
|
1843
1789
|
else if (t.length === 3)
|
1844
1790
|
[e, s, r] = t;
|
1845
1791
|
else if (t.length === 2 && ([s, r] = t, [s, r].some((g) => g < 1)))
|
1846
|
-
throw TypeError(
|
1792
|
+
throw TypeError(
|
1793
|
+
"ColorPalette: the two minimum arguments must be numbers higher than 0."
|
1794
|
+
);
|
1847
1795
|
const a = [], l = 360 / s, c = y.roundPart((r - (r % 2 ? 1 : 0)) / 2), h = [0.25, 0.2, 0.15, 0.11, 0.09, 0.075], b = [
|
1848
1796
|
[1, 2, 3],
|
1849
1797
|
[4, 5],
|
@@ -1860,13 +1808,15 @@ class It {
|
|
1860
1808
|
const p = (e + g * l) % 360;
|
1861
1809
|
n.forEach((f) => {
|
1862
1810
|
const $ = new y({ h: p, s: 100, l: f * 100 });
|
1863
|
-
a.push(
|
1811
|
+
a.push(
|
1812
|
+
i < 100 ? $.saturate(i - 100) : $
|
1813
|
+
);
|
1864
1814
|
});
|
1865
1815
|
}
|
1866
1816
|
this.hue = e, this.hueSteps = s, this.lightSteps = r, this.saturation = i, this.colors = a;
|
1867
1817
|
}
|
1868
1818
|
}
|
1869
|
-
const
|
1819
|
+
const Dt = {
|
1870
1820
|
pickerLabel: "Colour Picker",
|
1871
1821
|
appearanceLabel: "Colour Appearance",
|
1872
1822
|
valueLabel: "Colour Value",
|
@@ -1902,22 +1852,22 @@ const Kt = {
|
|
1902
1852
|
"violet",
|
1903
1853
|
"magenta",
|
1904
1854
|
"pink"
|
1905
|
-
],
|
1906
|
-
if (!
|
1855
|
+
], ee = (o) => {
|
1856
|
+
if (!q(o)) return !1;
|
1907
1857
|
try {
|
1908
1858
|
JSON.parse(o);
|
1909
1859
|
} catch {
|
1910
1860
|
return !1;
|
1911
1861
|
}
|
1912
1862
|
return !0;
|
1913
|
-
},
|
1863
|
+
}, Ft = "v-hidden", so = (o) => {
|
1914
1864
|
const { format: t, id: e, componentLabels: s } = o, r = x({
|
1915
1865
|
tagName: "div",
|
1916
1866
|
className: `color-form ${t}`
|
1917
1867
|
});
|
1918
1868
|
let n = ["hex"];
|
1919
1869
|
return t === "rgb" ? n = ["red", "green", "blue", "alpha"] : t === "hsl" ? n = ["hue", "saturation", "lightness", "alpha"] : t === "hwb" && (n = ["hue", "whiteness", "blackness", "alpha"]), n.forEach((i) => {
|
1920
|
-
const [a] = t === "hex" ? ["#"] :
|
1870
|
+
const [a] = t === "hex" ? ["#"] : he(i).split(""), l = `color_${t}_${i}_${e}`, c = s[`${i}Label`], h = x({ tagName: "label" });
|
1921
1871
|
v(h, "for", l), h.append(
|
1922
1872
|
x({
|
1923
1873
|
tagName: "span",
|
@@ -1926,7 +1876,7 @@ const Kt = {
|
|
1926
1876
|
}),
|
1927
1877
|
x({
|
1928
1878
|
tagName: "span",
|
1929
|
-
className:
|
1879
|
+
className: Ft,
|
1930
1880
|
innerText: c
|
1931
1881
|
})
|
1932
1882
|
);
|
@@ -1941,14 +1891,21 @@ const Kt = {
|
|
1941
1891
|
spellcheck: !1
|
1942
1892
|
});
|
1943
1893
|
let u = "100", d = "1";
|
1944
|
-
i !== "alpha" && (t === "rgb" ? (u = "255", d = "1") : i === "hue" && (u = "360", d = "1")),
|
1894
|
+
i !== "alpha" && (t === "rgb" ? (u = "255", d = "1") : i === "hue" && (u = "360", d = "1")), V(b, {
|
1945
1895
|
min: "0",
|
1946
1896
|
max: u,
|
1947
1897
|
step: d
|
1948
1898
|
}), r.append(h, b);
|
1949
1899
|
}), r;
|
1950
|
-
},
|
1951
|
-
const { format: t, componentLabels: e } = o, {
|
1900
|
+
}, ro = (o) => {
|
1901
|
+
const { format: t, componentLabels: e } = o, {
|
1902
|
+
hueLabel: s,
|
1903
|
+
alphaLabel: r,
|
1904
|
+
lightnessLabel: n,
|
1905
|
+
saturationLabel: i,
|
1906
|
+
whitenessLabel: a,
|
1907
|
+
blacknessLabel: l
|
1908
|
+
} = e, c = t === "hsl" ? 360 : 100, h = t === "hsl" ? 100 : 360, b = 100;
|
1952
1909
|
let u = t === "hsl" ? `${s} & ${n}` : `${n} & ${i}`;
|
1953
1910
|
u = t === "hwb" ? `${a} & ${l}` : u;
|
1954
1911
|
const d = t === "hsl" ? `${i}` : `${s}`, g = x({
|
@@ -1978,7 +1935,7 @@ const Kt = {
|
|
1978
1935
|
max: b
|
1979
1936
|
}
|
1980
1937
|
].forEach((w) => {
|
1981
|
-
const { i:
|
1938
|
+
const { i: S, c: L, l: C, min: P, max: M } = w, T = x({
|
1982
1939
|
tagName: "div",
|
1983
1940
|
className: "color-control",
|
1984
1941
|
role: "presentation"
|
@@ -1986,60 +1943,68 @@ const Kt = {
|
|
1986
1943
|
T.append(
|
1987
1944
|
x({
|
1988
1945
|
tagName: "div",
|
1989
|
-
className: `visual-control visual-control${
|
1946
|
+
className: `visual-control visual-control${S}`
|
1990
1947
|
})
|
1991
1948
|
);
|
1992
1949
|
const A = x({
|
1993
1950
|
tagName: "div",
|
1994
1951
|
className: `${L} knob`,
|
1995
1952
|
ariaLive: "polite",
|
1996
|
-
ariaLabel:
|
1953
|
+
ariaLabel: C,
|
1997
1954
|
role: "slider",
|
1998
1955
|
tabIndex: 0,
|
1999
|
-
ariaValueMin: `${
|
1956
|
+
ariaValueMin: `${P}`,
|
2000
1957
|
ariaValueMax: `${M}`
|
2001
1958
|
});
|
2002
1959
|
T.append(A), g.append(T);
|
2003
1960
|
}), g;
|
2004
|
-
},
|
2005
|
-
const { input: s, format: r, componentLabels: n } = o, { defaultsLabel: i, presetsLabel: a } = n, l = e === "color-options", c = t instanceof
|
1961
|
+
}, oe = (o, t, e) => {
|
1962
|
+
const { input: s, format: r, componentLabels: n } = o, { defaultsLabel: i, presetsLabel: a } = n, l = e === "color-options", c = t instanceof Ot, h = l ? a : i, b = c ? t.colors : t, u = b.length, { lightSteps: d } = c ? t : { lightSteps: null }, g = d || [9, 10].find((A) => u >= A * 2 && !(u % A)) || 5, p = l && u > g;
|
2006
1963
|
let f = 2;
|
2007
1964
|
f = p && u > g * 2 ? 3 : f, f = p && u > g * 3 ? 4 : f, f = p && u > g * 4 ? 5 : f;
|
2008
1965
|
const $ = f - (u <= g * 3 ? 1 : 2), w = p && u > $ * g;
|
2009
|
-
let
|
2010
|
-
|
1966
|
+
let S = e;
|
1967
|
+
S += w ? " scrollable" : "", S += p ? " multiline" : "";
|
2011
1968
|
const L = p ? "1px" : "0.25rem";
|
2012
|
-
let
|
2013
|
-
|
2014
|
-
const
|
1969
|
+
let C = p ? 1.75 : 2;
|
1970
|
+
C = g > 5 && p ? 1.5 : C;
|
1971
|
+
const P = `${$ * C}rem`, M = `calc(${f} * ${C}rem + ${f - 1} * ${L})`, T = x({
|
2015
1972
|
tagName: "ul",
|
2016
|
-
className:
|
1973
|
+
className: S,
|
2017
1974
|
role: "listbox",
|
2018
1975
|
ariaLabel: h
|
2019
1976
|
});
|
2020
1977
|
return w && D(T, {
|
2021
|
-
"--grid-item-size": `${
|
1978
|
+
"--grid-item-size": `${C}rem`,
|
2022
1979
|
"--grid-fit": `${g}`,
|
2023
1980
|
"--grid-gap": L,
|
2024
|
-
"--grid-height":
|
1981
|
+
"--grid-height": P,
|
2025
1982
|
"--grid-hover-height": M
|
2026
1983
|
}), b.forEach((A) => {
|
2027
|
-
let [F,
|
2028
|
-
A instanceof y && (F = A.toHexString(),
|
2029
|
-
const
|
1984
|
+
let [F, Y] = typeof A == "string" ? A.trim().split(":") : [];
|
1985
|
+
A instanceof y && (F = A.toHexString(), Y = F);
|
1986
|
+
const Bt = new y(A instanceof y ? A : F, r).toString() === vt(s, "value"), $t = x({
|
2030
1987
|
tagName: "li",
|
2031
|
-
className: `color-option${
|
2032
|
-
innerText: `${
|
1988
|
+
className: `color-option${Bt ? " active" : ""}`,
|
1989
|
+
innerText: `${Y || F}`,
|
2033
1990
|
tabIndex: 0,
|
2034
1991
|
role: "option",
|
2035
|
-
ariaSelected:
|
1992
|
+
ariaSelected: Bt ? "true" : "false"
|
2036
1993
|
});
|
2037
|
-
v(
|
1994
|
+
v($t, "data-value", `${F}`), l && D($t, { backgroundColor: F }), T.append($t);
|
2038
1995
|
}), T;
|
2039
|
-
},
|
2040
|
-
const {
|
1996
|
+
}, no = (o) => {
|
1997
|
+
const {
|
1998
|
+
input: t,
|
1999
|
+
parent: e,
|
2000
|
+
format: s,
|
2001
|
+
id: r,
|
2002
|
+
componentLabels: n,
|
2003
|
+
colorKeywords: i,
|
2004
|
+
colorPresets: a
|
2005
|
+
} = o, l = vt(t, "value") || "#fff", { nonColors: c } = y, { toggleLabel: h, pickerLabel: b, formatLabel: u, hexLabel: d } = n, g = c.includes(l) ? "#fff" : l;
|
2041
2006
|
o.color = new y(g, s);
|
2042
|
-
const p = s === "hex" ? d :
|
2007
|
+
const p = s === "hex" ? d : he(s), f = x({
|
2043
2008
|
id: `picker-btn-${r}`,
|
2044
2009
|
tagName: "button",
|
2045
2010
|
type: "button",
|
@@ -2050,81 +2015,91 @@ const Kt = {
|
|
2050
2015
|
f.append(
|
2051
2016
|
x({
|
2052
2017
|
tagName: "span",
|
2053
|
-
className:
|
2018
|
+
className: Ft,
|
2054
2019
|
innerText: `${b}. ${u}: ${p}`
|
2055
2020
|
})
|
2056
2021
|
);
|
2057
|
-
const $ = x(
|
2058
|
-
|
2059
|
-
|
2060
|
-
|
2061
|
-
|
2062
|
-
|
2063
|
-
|
2022
|
+
const $ = x(
|
2023
|
+
{
|
2024
|
+
tagName: "div",
|
2025
|
+
className: "color-dropdown picker",
|
2026
|
+
role: "group",
|
2027
|
+
ariaLabelledBy: `picker-btn-${r}`
|
2028
|
+
}
|
2029
|
+
), w = ro(o), S = so(o);
|
2030
|
+
if ($.append(w, S), t.before(f), e.append($), i || a) {
|
2064
2031
|
const L = x({
|
2065
2032
|
tagName: "div",
|
2066
2033
|
className: "color-dropdown scrollable menu"
|
2067
2034
|
});
|
2068
|
-
a && L.append(
|
2069
|
-
|
2035
|
+
a && L.append(oe(o, a, "color-options")), i && i.length && L.append(
|
2036
|
+
oe(o, i, "color-defaults")
|
2037
|
+
);
|
2038
|
+
const C = x({
|
2070
2039
|
tagName: "button",
|
2071
2040
|
type: "button",
|
2072
2041
|
className: "menu-toggle btn-appearance",
|
2073
2042
|
tabIndex: -1,
|
2074
2043
|
ariaExpanded: "false",
|
2075
2044
|
ariaHasPopup: "true"
|
2076
|
-
}),
|
2045
|
+
}), P = encodeURI("http://www.w3.org/2000/svg"), M = Ht(P, {
|
2077
2046
|
tagName: "svg"
|
2078
2047
|
});
|
2079
|
-
v(M, "xmlns",
|
2080
|
-
const T =
|
2048
|
+
v(M, "xmlns", P), v(M, "viewBox", "0 0 512 512"), v(M, Ae, "true");
|
2049
|
+
const T = Ht(P, {
|
2081
2050
|
tagName: "path"
|
2082
2051
|
});
|
2083
|
-
v(
|
2052
|
+
v(
|
2053
|
+
T,
|
2054
|
+
"d",
|
2055
|
+
"M98,158l157,156L411,158l27,27L255,368L71,185L98,158z"
|
2056
|
+
), v(T, "fill", "#fff"), M.append(T), C.append(
|
2084
2057
|
x({
|
2085
2058
|
tagName: "span",
|
2086
|
-
className:
|
2059
|
+
className: Ft,
|
2087
2060
|
innerText: `${h}`
|
2088
2061
|
}),
|
2089
2062
|
M
|
2090
|
-
), e.append(
|
2063
|
+
), e.append(C, L);
|
2091
2064
|
}
|
2092
|
-
i && c.includes(l) && (o.value = l), v(t,
|
2093
|
-
},
|
2094
|
-
componentLabels:
|
2065
|
+
i && c.includes(l) && (o.value = l), v(t, Z, "-1");
|
2066
|
+
}, io = "2.0.3", Q = "color-picker", ao = `[data-function="${Q}"]`, se = `.${Q}`, lo = {
|
2067
|
+
componentLabels: Dt,
|
2095
2068
|
colorLabels: it,
|
2096
2069
|
format: "rgb",
|
2097
2070
|
colorPresets: !1,
|
2098
2071
|
colorKeywords: !1
|
2099
|
-
}, { roundPart: k, nonColors: bt } = y,
|
2100
|
-
const e = t ?
|
2101
|
-
e(s,
|
2102
|
-
},
|
2103
|
-
const e = t ?
|
2104
|
-
e(o.controls,
|
2105
|
-
|
2106
|
-
|
2107
|
-
},
|
2072
|
+
}, { roundPart: k, nonColors: bt } = y, co = (o) => je(o, Q), ho = (o) => new go(o), re = (o, t) => {
|
2073
|
+
const e = t ? ae : le, { input: s, pickerToggle: r, menuToggle: n } = o;
|
2074
|
+
e(s, Ne, o.showPicker), e(r, At, o.togglePicker), n && e(n, At, o.toggleMenu);
|
2075
|
+
}, Pe = (o, t) => {
|
2076
|
+
const e = t ? ae : le, { input: s, colorMenu: r, parent: n } = o, i = K(s), a = Je(i);
|
2077
|
+
e(o.controls, Me, o.pointerDown), o.controlKnobs.forEach((l) => e(l, qt, o.handleKnobs)), e(a, De, o.handleScroll), e(a, Oe, o.update), [s, ...o.inputs].forEach(
|
2078
|
+
(l) => e(l, He, o.changeHandler)
|
2079
|
+
), r && (e(r, At, o.menuClickHandler), e(r, qt, o.menuKeyHandler)), e(i, ie, o.pointerMove), e(i, Re, o.pointerUp), e(n, Ee, o.handleFocusOut), e(i, Te, o.handleDismiss);
|
2080
|
+
}, ne = (o) => {
|
2081
|
+
We(o.input, new CustomEvent("colorpicker.change"));
|
2082
|
+
}, Le = (o) => {
|
2108
2083
|
o && ["bottom", "top"].forEach((t) => O(o, t));
|
2109
|
-
},
|
2084
|
+
}, Pt = (o, t) => {
|
2110
2085
|
const { colorPicker: e, colorMenu: s, menuToggle: r, pickerToggle: n, parent: i } = o, a = t === e, l = a ? s : e, c = a ? r : n, h = a ? n : r;
|
2111
|
-
R(i, "open") ||
|
2086
|
+
R(i, "open") || j(i, "open"), l && (O(l, "show"), Le(l)), j(t, "bottom"), ze(t), j(t, "show"), a && o.update(), o.isOpen || (Pe(o, !0), o.updateDropdownPosition(), o.isOpen = !0, v(o.input, Z, "0"), r && v(r, Z, "0")), v(h, Lt, "true"), c && v(c, Lt, "false");
|
2112
2087
|
};
|
2113
|
-
class
|
2088
|
+
class go {
|
2114
2089
|
// bring utils to staic
|
2115
2090
|
static Color = y;
|
2116
|
-
static ColorPalette =
|
2117
|
-
static getInstance =
|
2118
|
-
static init =
|
2119
|
-
static selector =
|
2091
|
+
static ColorPalette = Ot;
|
2092
|
+
static getInstance = co;
|
2093
|
+
static init = ho;
|
2094
|
+
static selector = ao;
|
2120
2095
|
// utils important for render
|
2121
2096
|
static roundPart = k;
|
2122
2097
|
static setElementStyle = D;
|
2123
2098
|
static setAttribute = v;
|
2124
2099
|
static getBoundingClientRect = gt;
|
2125
|
-
static version =
|
2100
|
+
static version = io;
|
2126
2101
|
static colorNames = it;
|
2127
|
-
static colorPickerLabels =
|
2102
|
+
static colorPickerLabels = Dt;
|
2128
2103
|
id;
|
2129
2104
|
input;
|
2130
2105
|
color;
|
@@ -2133,7 +2108,9 @@ class wo {
|
|
2133
2108
|
dragElement;
|
2134
2109
|
isOpen = !1;
|
2135
2110
|
controlPositions;
|
2136
|
-
colorLabels =
|
2111
|
+
colorLabels = Ut(
|
2112
|
+
it.map((t) => [t, t])
|
2113
|
+
);
|
2137
2114
|
colorKeywords;
|
2138
2115
|
colorPresets;
|
2139
2116
|
componentLabels;
|
@@ -2154,36 +2131,72 @@ class wo {
|
|
2154
2131
|
*/
|
2155
2132
|
constructor(t, e) {
|
2156
2133
|
const s = _(t);
|
2157
|
-
if (typeof t > "u")
|
2158
|
-
|
2134
|
+
if (typeof t > "u")
|
2135
|
+
throw new TypeError("ColorPicker target not specified.");
|
2136
|
+
if (!ge(s))
|
2137
|
+
throw new TypeError(`ColorPicker target "${t}" cannot be found.`);
|
2159
2138
|
this.input = s;
|
2160
|
-
const r =
|
2161
|
-
if (!r)
|
2162
|
-
|
2139
|
+
const r = be(s, se);
|
2140
|
+
if (!r)
|
2141
|
+
throw new TypeError("ColorPicker requires a specific markup to work.");
|
2142
|
+
this.parent = r, this.id = ue(s, Q), this.dragElement = void 0, this.isOpen = !1, this.controlPositions = {
|
2163
2143
|
c1x: 0,
|
2164
2144
|
c1y: 0,
|
2165
2145
|
c2y: 0,
|
2166
2146
|
c3y: 0
|
2167
2147
|
}, this.colorKeywords = !1, this.colorPresets = !1;
|
2168
|
-
const {
|
2148
|
+
const {
|
2149
|
+
format: n,
|
2150
|
+
componentLabels: i,
|
2151
|
+
colorLabels: a,
|
2152
|
+
colorKeywords: l,
|
2153
|
+
colorPresets: c
|
2154
|
+
} = _e(
|
2169
2155
|
s,
|
2170
|
-
|
2156
|
+
lo,
|
2171
2157
|
e || {}
|
2172
2158
|
);
|
2173
2159
|
let h = it;
|
2174
|
-
|
2175
|
-
|
2176
|
-
|
2160
|
+
xt(a) && a.length === 17 ? h = a : q(a) && a.split(",").length === 17 && (h = a.split(",")), V(
|
2161
|
+
this.colorLabels,
|
2162
|
+
Ut(
|
2163
|
+
h.map((p, f) => [it[f], p])
|
2164
|
+
)
|
2165
|
+
);
|
2166
|
+
const b = q(i) && ee(i) ? JSON.parse(i) : i;
|
2167
|
+
if (this.componentLabels = V(
|
2168
|
+
{ ...Dt },
|
2169
|
+
b
|
2170
|
+
), this.color = new y(s.value || "#fff", n), this.format = n, xt(l) && l.length ? this.colorKeywords = l : q(l) && l.length && (this.colorKeywords = l.split(",").map((p) => p.trim())), xt(c) && c.length)
|
2177
2171
|
this.colorPresets = c;
|
2178
|
-
else if (c &&
|
2179
|
-
const { hue: p, hueSteps: f, lightSteps: $, saturation: w } = JSON.parse(
|
2180
|
-
|
2181
|
-
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
|
2186
|
-
|
2172
|
+
else if (c && ee(c)) {
|
2173
|
+
const { hue: p, hueSteps: f, lightSteps: $, saturation: w } = JSON.parse(
|
2174
|
+
c
|
2175
|
+
);
|
2176
|
+
this.colorPresets = new Ot(
|
2177
|
+
p,
|
2178
|
+
f,
|
2179
|
+
$,
|
2180
|
+
w
|
2181
|
+
);
|
2182
|
+
} else q(c) && (this.colorPresets = c.split(",").map((p) => p.trim()));
|
2183
|
+
no(this);
|
2184
|
+
const [u, d] = st(
|
2185
|
+
"color-dropdown",
|
2186
|
+
r
|
2187
|
+
);
|
2188
|
+
this.pickerToggle = _(".picker-toggle", r), this.menuToggle = _(".menu-toggle", r), this.colorPicker = u, this.colorMenu = d, this.inputs = [
|
2189
|
+
...st("color-input", r)
|
2190
|
+
];
|
2191
|
+
const [g] = st(
|
2192
|
+
"color-controls",
|
2193
|
+
r
|
2194
|
+
);
|
2195
|
+
this.controls = g, this.controlKnobs = [
|
2196
|
+
...st("knob", g)
|
2197
|
+
], this.visuals = [
|
2198
|
+
...st("visual-control", g)
|
2199
|
+
], this.update(), re(this, !0), lt.set(s, Q, this);
|
2187
2200
|
}
|
2188
2201
|
/** Returns the current colour value */
|
2189
2202
|
get value() {
|
@@ -2295,7 +2308,7 @@ class wo {
|
|
2295
2308
|
* @this {ColorPicker}
|
2296
2309
|
*/
|
2297
2310
|
handleDismiss = ({ code: t }) => {
|
2298
|
-
this.isOpen && t ===
|
2311
|
+
this.isOpen && t === Ve && this.hide();
|
2299
2312
|
};
|
2300
2313
|
/**
|
2301
2314
|
* The `ColorPicker` *scroll* event listener when open.
|
@@ -2303,8 +2316,8 @@ class wo {
|
|
2303
2316
|
* @param e
|
2304
2317
|
*/
|
2305
2318
|
handleScroll = (t) => {
|
2306
|
-
const { activeElement: e } =
|
2307
|
-
this.updateDropdownPosition(), ([
|
2319
|
+
const { activeElement: e } = K(this.input);
|
2320
|
+
this.updateDropdownPosition(), ([ie, Fe].includes(t.type) && this.dragElement || e && this.controlKnobs.includes(e)) && (t.stopPropagation(), t.preventDefault());
|
2308
2321
|
};
|
2309
2322
|
/**
|
2310
2323
|
* The `ColorPicker` keyboard event listener for menu navigation.
|
@@ -2312,8 +2325,8 @@ class wo {
|
|
2312
2325
|
* @param e
|
2313
2326
|
*/
|
2314
2327
|
menuKeyHandler = (t) => {
|
2315
|
-
const { target: e, code: s } = t, { previousElementSibling: r, nextElementSibling: n, parentElement: i } = e, a = i && R(i, "color-options"), l = i ? [...i.children] : [], c = a && Number(
|
2316
|
-
[
|
2328
|
+
const { target: e, code: s } = t, { previousElementSibling: r, nextElementSibling: n, parentElement: i } = e, a = i && R(i, "color-options"), l = i ? [...i.children] : [], c = a && Number(Nt(i, "--grid-fit")), h = l.indexOf(e), b = h > -1 && c && l[h - c], u = h > -1 && c && l[h + c];
|
2329
|
+
[B, ot, Gt].includes(s) && t.preventDefault(), a ? b && s === ot ? U(b) : u && s === B ? U(u) : r && s === ht ? U(r) : n && s === W && U(n) : r && [ht, ot].includes(s) ? U(r) : n && [W, B].includes(s) && U(n), [Ie, Gt].includes(s) && this.menuClickHandler(t);
|
2317
2330
|
};
|
2318
2331
|
/**
|
2319
2332
|
* The `ColorPicker` click event listener for the colour menu presets / defaults.
|
@@ -2322,18 +2335,21 @@ class wo {
|
|
2322
2335
|
* @this {ColorPicker}
|
2323
2336
|
*/
|
2324
2337
|
menuClickHandler = (t) => {
|
2325
|
-
const { target: e } = t, { colorMenu: s } = this, r = (
|
2338
|
+
const { target: e } = t, { colorMenu: s } = this, r = (vt(
|
2339
|
+
e,
|
2340
|
+
"data-value"
|
2341
|
+
) || "").trim();
|
2326
2342
|
if (!r.length) return;
|
2327
2343
|
const n = _("li.active", s);
|
2328
2344
|
let i = r;
|
2329
2345
|
i = bt.includes(i) ? "white" : i, i = i === "transparent" ? "rgba(0,0,0,0)" : i;
|
2330
2346
|
const { r: a, g: l, b: c, a: h } = new y(i);
|
2331
|
-
|
2347
|
+
V(this.color, {
|
2332
2348
|
r: a,
|
2333
2349
|
g: l,
|
2334
2350
|
b: c,
|
2335
2351
|
a: h
|
2336
|
-
}), this.update(), n !== e && (n && (O(n, "active"),
|
2352
|
+
}), this.update(), n !== e && (n && (O(n, "active"), kt(n, wt)), j(e, "active"), v(e, wt, "true"), bt.includes(r) && (this.value = r), ne(this));
|
2337
2353
|
};
|
2338
2354
|
/**
|
2339
2355
|
* The `ColorPicker` *touchstart* / *mousedown* events listener for control knobs.
|
@@ -2342,10 +2358,10 @@ class wo {
|
|
2342
2358
|
*/
|
2343
2359
|
pointerDown = (t) => {
|
2344
2360
|
if (t.button !== 0) return;
|
2345
|
-
const { target: e, pageX: s, pageY: r } = t, { colorMenu: n, visuals: i, controlKnobs: a } = this, [l, c, h] = i, [b, u, d] = a, g = a.includes(e) ? e.previousElementSibling : e, p = gt(g), f =
|
2361
|
+
const { target: e, pageX: s, pageY: r } = t, { colorMenu: n, visuals: i, controlKnobs: a } = this, [l, c, h] = i, [b, u, d] = a, g = a.includes(e) ? e.previousElementSibling : e, p = gt(g), f = yt(l), $ = s - f.scrollLeft - p.left, w = r - f.scrollTop - p.top;
|
2346
2362
|
if (e === l || e === b ? (this.dragElement = g, this.changeControl1($, w)) : e === c || e === u ? (this.dragElement = g, this.changeControl2(w)) : (e === h || e === d) && (this.dragElement = g, this.changeAlpha(w)), n) {
|
2347
|
-
const
|
2348
|
-
|
2363
|
+
const S = _("li.active", n);
|
2364
|
+
S && (O(S, "active"), kt(S, wt));
|
2349
2365
|
}
|
2350
2366
|
t.preventDefault();
|
2351
2367
|
};
|
@@ -2356,7 +2372,7 @@ class wo {
|
|
2356
2372
|
* @this
|
2357
2373
|
*/
|
2358
2374
|
pointerUp = ({ target: t }) => {
|
2359
|
-
const { parent: e } = this, s =
|
2375
|
+
const { parent: e } = this, s = K(e), r = _(`${se}.open`, s) !== null, n = s.getSelection();
|
2360
2376
|
!this.dragElement && (!n || !n.toString().length) && !e.contains(t) && this.hide(r), this.dragElement = void 0;
|
2361
2377
|
};
|
2362
2378
|
/**
|
@@ -2367,7 +2383,7 @@ class wo {
|
|
2367
2383
|
pointerMove = (t) => {
|
2368
2384
|
const { dragElement: e, visuals: s } = this, [r, n, i] = s, { pageX: a, pageY: l } = t;
|
2369
2385
|
if (!e) return;
|
2370
|
-
const c = gt(e), h =
|
2386
|
+
const c = gt(e), h = yt(r), b = a - h.scrollLeft - c.left, u = l - h.scrollTop - c.top;
|
2371
2387
|
e === r && this.changeControl1(b, u), e === n && this.changeControl2(u), e === i && this.changeAlpha(u);
|
2372
2388
|
};
|
2373
2389
|
/**
|
@@ -2377,22 +2393,29 @@ class wo {
|
|
2377
2393
|
*/
|
2378
2394
|
handleKnobs = (t) => {
|
2379
2395
|
const { target: e, code: s } = t;
|
2380
|
-
if (![ot,
|
2396
|
+
if (![ot, B, ht, W].includes(s)) return;
|
2381
2397
|
t.preventDefault();
|
2382
|
-
const { controlKnobs: r, visuals: n } = this, { offsetWidth: i, offsetHeight: a } = n[0], [l, c, h] = r, { activeElement: b } =
|
2398
|
+
const { controlKnobs: r, visuals: n } = this, { offsetWidth: i, offsetHeight: a } = n[0], [l, c, h] = r, { activeElement: b } = K(l), u = r.find((g) => g === b), d = a / 360;
|
2383
2399
|
if (u) {
|
2384
2400
|
let g = 0, p = 0;
|
2385
2401
|
if (e === l) {
|
2386
2402
|
const f = i / 100;
|
2387
|
-
[ht,
|
2388
|
-
} else e === c ? (this.controlPositions.c2y += [
|
2403
|
+
[ht, W].includes(s) ? this.controlPositions.c1x += s === W ? f : -f : [ot, B].includes(s) && (this.controlPositions.c1y += s === B ? d : -d), g = this.controlPositions.c1x, p = this.controlPositions.c1y, this.changeControl1(g, p);
|
2404
|
+
} else e === c ? (this.controlPositions.c2y += [B, W].includes(s) ? d : -d, p = this.controlPositions.c2y, this.changeControl2(p)) : e === h && (this.controlPositions.c3y += [B, W].includes(s) ? d : -d, p = this.controlPositions.c3y, this.changeAlpha(p));
|
2389
2405
|
this.handleScroll(t);
|
2390
2406
|
}
|
2391
2407
|
};
|
2392
2408
|
/** The event listener of the colour form inputs. */
|
2393
2409
|
changeHandler = () => {
|
2394
2410
|
let t;
|
2395
|
-
const {
|
2411
|
+
const {
|
2412
|
+
inputs: e,
|
2413
|
+
format: s,
|
2414
|
+
value: r,
|
2415
|
+
input: n,
|
2416
|
+
controlPositions: i,
|
2417
|
+
visuals: a
|
2418
|
+
} = this, { activeElement: l } = K(n), { offsetHeight: c } = a[0], [h, , , b] = e, [u, d, g, p] = s === "rgb" ? e.map((w) => parseFloat(w.value) / (w === b ? 100 : 1)) : e.map((w) => parseFloat(w.value) / (w !== h ? 100 : 360)), f = this.hasNonColor && bt.includes(r), $ = b ? p : 1 - i.c3y / c;
|
2396
2419
|
if (l === n || l && e.includes(l)) {
|
2397
2420
|
l === n ? f ? t = r === "transparent" ? "rgba(0,0,0,0)" : "rgb(0,0,0)" : t = r : s === "hex" ? t = h.value : s === "hsl" ? t = {
|
2398
2421
|
h: u,
|
@@ -2410,12 +2433,12 @@ class wo {
|
|
2410
2433
|
b: g,
|
2411
2434
|
a: $
|
2412
2435
|
};
|
2413
|
-
const { r: w, g:
|
2414
|
-
|
2436
|
+
const { r: w, g: S, b: L, a: C } = new y(t);
|
2437
|
+
V(this.color, {
|
2415
2438
|
r: w,
|
2416
|
-
g:
|
2439
|
+
g: S,
|
2417
2440
|
b: L,
|
2418
|
-
a:
|
2441
|
+
a: C
|
2419
2442
|
}), this.setControlPositions(), this.updateAppearance(), this.updateInputs(), this.updateControls(), this.updateVisuals(), l === n && f && (this.value = r);
|
2420
2443
|
}
|
2421
2444
|
};
|
@@ -2437,7 +2460,7 @@ class wo {
|
|
2437
2460
|
v: b * 100,
|
2438
2461
|
a: u
|
2439
2462
|
});
|
2440
|
-
|
2463
|
+
V(this.color, {
|
2441
2464
|
r: d,
|
2442
2465
|
g,
|
2443
2466
|
b: p,
|
@@ -2461,7 +2484,7 @@ class wo {
|
|
2461
2484
|
v: c * 100,
|
2462
2485
|
a: h
|
2463
2486
|
});
|
2464
|
-
|
2487
|
+
V(this.color, {
|
2465
2488
|
r: b,
|
2466
2489
|
g: u,
|
2467
2490
|
b: d,
|
@@ -2491,10 +2514,10 @@ class wo {
|
|
2491
2514
|
};
|
2492
2515
|
/** Updates the open dropdown position on *scroll* event. */
|
2493
2516
|
updateDropdownPosition() {
|
2494
|
-
const { input: t, colorPicker: e, colorMenu: s } = this, r = gt(t), { top: n, bottom: i } = r, { offsetHeight: a } = t, l =
|
2517
|
+
const { input: t, colorPicker: e, colorMenu: s } = this, r = gt(t), { top: n, bottom: i } = r, { offsetHeight: a } = t, l = yt(t).clientHeight, h = R(e, "show") ? e : s;
|
2495
2518
|
if (!h) return;
|
2496
2519
|
const { offsetHeight: b } = h, u = l - i, d = n, g = n + b + a > l, p = n - b < 0;
|
2497
|
-
(R(h, "bottom") || !p) && u < d && g ? (O(h, "bottom"),
|
2520
|
+
(R(h, "bottom") || !p) && u < d && g ? (O(h, "bottom"), j(h, "top")) : (O(h, "top"), j(h, "bottom"));
|
2498
2521
|
}
|
2499
2522
|
/** Updates control knobs' positions. */
|
2500
2523
|
setControlPositions() {
|
@@ -2505,17 +2528,25 @@ class wo {
|
|
2505
2528
|
updateAppearance() {
|
2506
2529
|
const { componentLabels: t, color: e, parent: s, hsv: r, hex: n, format: i, controlKnobs: a } = this, { appearanceLabel: l, hexLabel: c, valueLabel: h } = t;
|
2507
2530
|
let { r: b, g: u, b: d } = e.toRgb();
|
2508
|
-
const [g, p, f] = a, $ = k(r.h * 360), w = e.a,
|
2509
|
-
let
|
2531
|
+
const [g, p, f] = a, $ = k(r.h * 360), w = e.a, S = k(r.s * 100), L = k(r.v * 100), C = this.appearance;
|
2532
|
+
let P = `${c} ${n.split("").join(" ")}`;
|
2510
2533
|
if (i === "hwb") {
|
2511
|
-
const { hwb: A } = this, F = k(A.w * 100),
|
2512
|
-
|
2534
|
+
const { hwb: A } = this, F = k(A.w * 100), Y = k(A.b * 100);
|
2535
|
+
P = `HWB: ${$}°, ${F}%, ${Y}%`, v(g, et, `${F}% & ${Y}%`), v(g, tt, `${F}`), v(
|
2536
|
+
p,
|
2537
|
+
jt,
|
2538
|
+
`${h}: ${P}. ${l}: ${C}.`
|
2539
|
+
), v(p, et, `${$}%`), v(p, tt, `${$}`);
|
2513
2540
|
} else
|
2514
|
-
[b, u, d] = [b, u, d].map(k),
|
2541
|
+
[b, u, d] = [b, u, d].map(k), P = i === "hsl" ? `HSL: ${$}°, ${S}%, ${L}%` : P, P = i === "rgb" ? `RGB: ${b}, ${u}, ${d}` : P, v(g, et, `${L}% & ${S}%`), v(g, tt, `${L}`), v(
|
2542
|
+
p,
|
2543
|
+
jt,
|
2544
|
+
`${h}: ${P}. ${l}: ${C}.`
|
2545
|
+
), v(p, et, `${$}°`), v(p, tt, `${$}`);
|
2515
2546
|
const M = k(w * 100);
|
2516
2547
|
v(f, et, `${M}%`), v(f, tt, `${M}`);
|
2517
2548
|
const T = e.toString();
|
2518
|
-
D(this.input, { backgroundColor: T }), this.isDark ? (R(s, "txt-light") && O(s, "txt-light"), R(s, "txt-dark") ||
|
2549
|
+
D(this.input, { backgroundColor: T }), this.isDark ? (R(s, "txt-light") && O(s, "txt-light"), R(s, "txt-dark") || j(s, "txt-dark")) : (R(s, "txt-dark") && O(s, "txt-dark"), R(s, "txt-light") || j(s, "txt-light"));
|
2519
2550
|
}
|
2520
2551
|
/** Updates the control knobs actual positions. */
|
2521
2552
|
updateControls() {
|
@@ -2546,7 +2577,7 @@ class wo {
|
|
2546
2577
|
let { r: g, g: p, b: f } = this.rgb;
|
2547
2578
|
[g, p, f] = [g, p, f].map(k), d = this.color.toRgbString(), a.value = `${g}`, l.value = `${p}`, c.value = `${f}`, h.value = `${b}`;
|
2548
2579
|
}
|
2549
|
-
this.value = d, !t && d !== e &&
|
2580
|
+
this.value = d, !t && d !== e && ne(this);
|
2550
2581
|
}
|
2551
2582
|
/**
|
2552
2583
|
* Toggle the `ColorPicker` dropdown visibility.
|
@@ -2556,12 +2587,12 @@ class wo {
|
|
2556
2587
|
togglePicker = (t) => {
|
2557
2588
|
t && t.preventDefault();
|
2558
2589
|
const { colorPicker: e } = this;
|
2559
|
-
this.isOpen && R(e, "show") ? this.hide(!0) :
|
2590
|
+
this.isOpen && R(e, "show") ? this.hide(!0) : Pt(this, e);
|
2560
2591
|
};
|
2561
2592
|
/** Shows the `ColorPicker` dropdown. */
|
2562
2593
|
showPicker = () => {
|
2563
2594
|
const { colorPicker: t } = this;
|
2564
|
-
["top", "bottom"].some((e) => R(t, e)) ||
|
2595
|
+
["top", "bottom"].some((e) => R(t, e)) || Pt(this, t);
|
2565
2596
|
};
|
2566
2597
|
/**
|
2567
2598
|
* Toggles the visibility of the `ColorPicker` presets menu.
|
@@ -2572,7 +2603,7 @@ class wo {
|
|
2572
2603
|
toggleMenu = (t) => {
|
2573
2604
|
t && t.preventDefault();
|
2574
2605
|
const { colorMenu: e } = this;
|
2575
|
-
this.isOpen && R(e, "show") ? this.hide(!0) :
|
2606
|
+
this.isOpen && R(e, "show") ? this.hide(!0) : Pt(this, e);
|
2576
2607
|
};
|
2577
2608
|
/**
|
2578
2609
|
* Hides the currently open `ColorPicker` dropdown.
|
@@ -2580,22 +2611,28 @@ class wo {
|
|
2580
2611
|
* @param {boolean=} focusPrevented
|
2581
2612
|
*/
|
2582
2613
|
hide(t) {
|
2583
|
-
if (this.isOpen)
|
2584
|
-
|
2585
|
-
|
2586
|
-
|
2587
|
-
|
2588
|
-
|
2614
|
+
if (!this.isOpen) return;
|
2615
|
+
const {
|
2616
|
+
pickerToggle: e,
|
2617
|
+
menuToggle: s,
|
2618
|
+
colorPicker: r,
|
2619
|
+
colorMenu: n,
|
2620
|
+
parent: i,
|
2621
|
+
input: a
|
2622
|
+
} = this, l = R(r, "show"), c = l ? r : n, h = l ? e : s, b = c && Ue(c);
|
2623
|
+
this.value = this.color.toString(!0), c && (O(c, "show"), v(h, Lt, "false"), setTimeout(() => {
|
2624
|
+
Le(c), _(".show", i) || (O(i, "open"), Pe(this), this.isOpen = !1);
|
2625
|
+
}, b)), t || U(e), v(a, Z, "-1"), h === s && v(s, Z, "-1");
|
2589
2626
|
}
|
2590
2627
|
/** Removes `ColorPicker` from target `<input>`. */
|
2591
2628
|
dispose() {
|
2592
2629
|
const { input: t, parent: e } = this;
|
2593
|
-
this.hide(!0),
|
2630
|
+
this.hide(!0), re(this), [...e.children].forEach((s) => {
|
2594
2631
|
s !== t && s.remove();
|
2595
|
-
}),
|
2632
|
+
}), kt(t, Z), D(t, { backgroundColor: "" }), ["txt-light", "txt-dark"].forEach((s) => O(e, s)), lt.remove(t, Q);
|
2596
2633
|
}
|
2597
2634
|
}
|
2598
2635
|
export {
|
2599
|
-
|
2636
|
+
go as default
|
2600
2637
|
};
|
2601
2638
|
//# sourceMappingURL=color-picker.mjs.map
|