@luzmo/analytics-components-kit 1.0.1-alpha.86 → 1.0.1-alpha.87
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/components/ai-chat-messages-container/index.cjs +1 -1
- package/components/ai-chat-messages-container/index.js +2 -2
- package/components/ai-interaction-textarea/index.cjs +1 -1
- package/components/ai-interaction-textarea/index.js +1 -2
- package/components/area-chart-options.config-Bl8bhhOo.cjs +20 -0
- package/components/{area-chart-options.config-_J0sG4NF.js → area-chart-options.config-u8itidsi.js} +14 -26
- package/components/bar-chart-options.config-CePAqM83.cjs +20 -0
- package/components/{bar-chart-options.config-D1mb5TDl.js → bar-chart-options.config-DIirbAJ0.js} +21 -35
- package/components/box-plot-options.config-BVNrV2eD.cjs +20 -0
- package/components/{box-plot-options.config-xu_i6ms7.js → box-plot-options.config-BWROiguA.js} +52 -88
- package/components/{bubble-chart-options.config-BacgXkJ_.js → bubble-chart-options.config-4QD8VPhU.js} +9 -18
- package/components/bubble-chart-options.config-BDgOe3GQ.cjs +20 -0
- package/components/{bullet-chart-options.config-CDPpX1yc.js → bullet-chart-options.config-3bH7uekx.js} +1 -1
- package/components/{bullet-chart-options.config-DfS4Bwds.cjs → bullet-chart-options.config-tWb6Fio-.cjs} +1 -1
- package/components/calculate-data-item-icon-C8CbsMQf.js +139 -0
- package/components/{calculate-data-item-icon-DjW1_RI1.cjs → calculate-data-item-icon-CX4VW9Km.cjs} +1 -1
- package/components/{choropleth-map-options.config-B_W9-rhe.js → choropleth-map-options.config-CMxx3ORp.js} +63 -84
- package/components/choropleth-map-options.config-CWJACFd0.cjs +20 -0
- package/components/circular-gauge-options.config-BMxgq3zH.cjs +20 -0
- package/components/{circular-gauge-options.config-DAIjz4Rl.js → circular-gauge-options.config-DhIKn44k.js} +23 -36
- package/components/{color-DuJ4-73S.js → color-B7m0j8lX.js} +941 -950
- package/components/color-Czp4Im5q.cjs +20 -0
- package/components/{color-range-utils-Bvo9sm5A.js → color-range-utils-BSfqtB3A.js} +31 -32
- package/components/color-range-utils-DYYR-iwx.cjs +20 -0
- package/components/column-chart-options.config-BV9R3ssH.cjs +20 -0
- package/components/{column-chart-options.config-B5SjBVdy.js → column-chart-options.config-D5-yR7iq.js} +27 -37
- package/components/conditional-number-options.config-Co099Qfm.cjs +20 -0
- package/components/{conditional-number-options.config-BCEpSK9J.js → conditional-number-options.config-DPYsdML5.js} +24 -40
- package/components/dataset-icon/index.cjs +1 -1
- package/components/dataset-icon/index.js +1 -2
- package/components/dataset-selector-list/index.cjs +1 -1
- package/components/dataset-selector-list/index.js +32 -35
- package/components/dataset-selector-row/index.cjs +9 -9
- package/components/dataset-selector-row/index.js +51 -53
- package/components/{date-comparison-filter-options.config-JA_yYpJa.js → date-comparison-filter-options.config-CSwGyuBg.js} +3 -6
- package/components/{date-comparison-filter-options.config-DAVncmi0.cjs → date-comparison-filter-options.config-QaoWaFUn.cjs} +1 -1
- package/components/{date-filter-options.config-DBRxlTWy.js → date-filter-options.config-BTVyHRkp.js} +3 -6
- package/components/{date-filter-options.config-CWPMtA18.cjs → date-filter-options.config-n-zhWaYa.cjs} +1 -1
- package/components/display-settings/index.cjs +1 -1
- package/components/display-settings/index.js +1 -1
- package/components/display-settings-binning/index.cjs +5 -5
- package/components/display-settings-binning/index.js +29 -30
- package/components/display-settings-datetime/index.cjs +29 -29
- package/components/display-settings-datetime/index.js +112 -120
- package/components/display-settings-grand-totals/index.cjs +4 -4
- package/components/display-settings-grand-totals/index.js +23 -24
- package/components/display-settings-numeric/index.cjs +48 -48
- package/components/display-settings-numeric/index.js +194 -211
- package/components/display-settings-period-over-period/index.cjs +16 -16
- package/components/display-settings-period-over-period/index.js +91 -97
- package/components/{donut-chart-options.config-BulUEiaH.js → donut-chart-options.config-3ZqX8Cbb.js} +21 -37
- package/components/donut-chart-options.config-BQyPgnC9.cjs +20 -0
- package/components/draggable-data-item/index.cjs +8 -8
- package/components/draggable-data-item/index.js +44 -45
- package/components/draggable-data-item-level/index.cjs +11 -11
- package/components/draggable-data-item-level/index.js +89 -92
- package/components/{dropdown-filter-options.config-D9dvPypF.js → dropdown-filter-options.config-CGJTtgAX.js} +7 -10
- package/components/{dropdown-filter-options.config-DS-MORmq.cjs → dropdown-filter-options.config-DJvfCTk7.cjs} +1 -1
- package/components/droppable-slot/index.cjs +20 -20
- package/components/droppable-slot/index.js +167 -181
- package/components/edit-item/index.cjs +9 -9
- package/components/edit-item/index.js +116 -119
- package/components/edit-option/index.cjs +1 -1
- package/components/edit-option/index.js +1 -1
- package/components/edit-option-action-button-group/index.cjs +8 -8
- package/components/edit-option-action-button-group/index.js +52 -53
- package/components/{edit-option-base-DIc7iC-b.js → edit-option-base-Bh29-Cak.js} +1 -1
- package/components/{edit-option-base-VhTih9T1.cjs → edit-option-base-tFr8Qg2B.cjs} +1 -1
- package/components/edit-option-color-palette-picker/index.cjs +1 -1
- package/components/edit-option-color-palette-picker/index.js +1 -1
- package/components/edit-option-color-picker/index.cjs +1 -1
- package/components/edit-option-color-picker/index.js +1 -1
- package/components/edit-option-color-range/index.cjs +19 -19
- package/components/edit-option-color-range/index.js +106 -117
- package/components/edit-option-multi-language-field/index.cjs +3 -3
- package/components/edit-option-multi-language-field/index.js +26 -27
- package/components/edit-option-number-field/index.cjs +1 -1
- package/components/edit-option-number-field/index.js +1 -1
- package/components/edit-option-picker/index.cjs +5 -5
- package/components/edit-option-picker/index.js +7 -7
- package/components/edit-option-position-picker/index.cjs +4 -4
- package/components/edit-option-position-picker/index.js +21 -25
- package/components/edit-option-positions-number-field/index.cjs +9 -9
- package/components/edit-option-positions-number-field/index.js +76 -81
- package/components/edit-option-radio-button-group/index.cjs +6 -6
- package/components/edit-option-radio-button-group/index.js +21 -22
- package/components/edit-option-slider/index.cjs +1 -1
- package/components/edit-option-slider/index.js +1 -1
- package/components/edit-option-switch/index.cjs +1 -1
- package/components/edit-option-switch/index.js +1 -1
- package/components/edit-option-text-field/index.cjs +2 -2
- package/components/edit-option-text-field/index.js +22 -23
- package/components/en--a5SfjnM.cjs +20 -0
- package/components/en-CtCctD2c.js +1483 -0
- package/components/{en-GB-DG6uS3sM.cjs → en-GB-CXVKFWyH.cjs} +1 -1
- package/components/{en-GB-CEHEs8F2.js → en-GB-CbNfyZMo.js} +1 -1
- package/components/{evolution-number-options.config-DzkfeoIN.js → evolution-number-options.config-BIPO_4n3.js} +11 -14
- package/components/{evolution-number-options.config-BgIZY4gQ.cjs → evolution-number-options.config-Bc9eKYnn.cjs} +1 -1
- package/components/{extrapolate-color-0j_AeYkz.cjs → extrapolate-color-C0n1UDs-.cjs} +1 -1
- package/components/{extrapolate-color-CC9CURf6.js → extrapolate-color-v1PimdQr.js} +1 -1
- package/components/filter-data-item-picker/index.cjs +7 -7
- package/components/filter-data-item-picker/index.js +85 -86
- package/components/filter-expression-picker/index.cjs +1 -1
- package/components/filter-expression-picker/index.js +1 -1
- package/components/filter-item/index.cjs +6 -6
- package/components/filter-item/index.js +109 -119
- package/components/filter-value-picker/index.cjs +2 -2
- package/components/filter-value-picker/index.js +34 -36
- package/components/filter-value-picker-datetime/index.cjs +8 -8
- package/components/filter-value-picker-datetime/index.js +56 -71
- package/components/filter-value-picker-hierarchy/index.cjs +12 -12
- package/components/filter-value-picker-hierarchy/index.js +113 -124
- package/components/filter-value-picker-numeric/index.cjs +8 -8
- package/components/filter-value-picker-numeric/index.js +101 -110
- package/components/{focusable-DCIFkpiW.js → focusable-BS2pbY7w.js} +24 -26
- package/components/focusable-QLh-LlNt.cjs +20 -0
- package/components/{funnel-chart-options.config-C_VjTOvD.js → funnel-chart-options.config-CrJy2U7_.js} +5 -20
- package/components/funnel-chart-options.config-DrP4AFgk.cjs +20 -0
- package/components/{get-css-variable-DLiZYZEi.cjs → get-css-variable-CuDaWSjr.cjs} +2 -2
- package/components/{get-css-variable-YlLiVgo8.js → get-css-variable-DEf4GhTH.js} +4 -4
- package/components/grid/index.cjs +46 -46
- package/components/grid/index.js +2612 -1873
- package/components/heat-map-options.config-CIHnPdYE.cjs +20 -0
- package/components/{heat-map-options.config-BnLWe8jS.js → heat-map-options.config-CmL87j1j.js} +35 -41
- package/components/{heat-table-options.config-CUsDdgUr.js → heat-table-options.config-BrCYAgYD.js} +60 -88
- package/components/heat-table-options.config-DTlZRc_i.cjs +20 -0
- package/components/helpers-9I0oLoUB.cjs +20 -0
- package/components/helpers-bR8Ibjqh.js +79 -0
- package/components/{hexbin-map-options.config-F-7uCqxb.js → hexbin-map-options.config-BguV1w8q.js} +20 -38
- package/components/hexbin-map-options.config-CKnn3VAB.cjs +20 -0
- package/components/{index-Do7O9azB.js → index-3WsfvkZF.js} +112 -123
- package/components/index-BGb_wRRW.js +1766 -0
- package/components/{index-BPNsFiyq.cjs → index-BNAmjOkm.cjs} +4 -4
- package/components/index-BUal0r_D.cjs +121 -0
- package/components/index-D1Y5TRsH.cjs +20 -0
- package/components/{index-PMDgRSzR.js → index-DdyZ2g5L.js} +94 -104
- package/components/index-DvkzMbLt.cjs +249 -0
- package/components/{index-CdIUfo-L.js → index-haa7WNrl.js} +453 -481
- package/components/index.cjs +1 -1
- package/components/index.js +5 -5
- package/components/item-options-configs.cjs +1 -1
- package/components/item-options-configs.js +37 -37
- package/components/{line-chart-options.config-DB3IsXXr.js → line-chart-options.config-BhirTGqD.js} +13 -28
- package/components/line-chart-options.config-Cqwou5u6.cjs +20 -0
- package/components/{localize-r7ALOUy_.cjs → localize-C4zNlrwK.cjs} +1 -1
- package/components/{localize-BX7q0S0M.js → localize-CcDpq940.js} +10 -10
- package/components/{marker-map-options.config-DPJ955tt.js → marker-map-options.config-Bx17jmiq.js} +1 -1
- package/components/{marker-map-options.config-_FYZzRwA.cjs → marker-map-options.config-CvhCylSC.cjs} +1 -1
- package/components/{pivot-table-options.config-DNK_AIG7.js → pivot-table-options.config-CFc7y0IT.js} +15 -24
- package/components/pivot-table-options.config-uZDAertf.cjs +20 -0
- package/components/{pyramid-chart-options.config-CcVMatYx.js → pyramid-chart-options.config-2Waxb11l.js} +29 -43
- package/components/pyramid-chart-options.config-DoGfEvzU.cjs +20 -0
- package/components/{radar-chart-options.config-CUZn_3Fd.js → radar-chart-options.config-CPN5fOl8.js} +11 -23
- package/components/radar-chart-options.config-CtNUMN1l.cjs +20 -0
- package/components/{regular-table-options.config-BoLZsBry.js → regular-table-options.config-CFKCJQK1.js} +17 -23
- package/components/{regular-table-options.config-DTx3RTnS.cjs → regular-table-options.config-YRuoijIk.cjs} +1 -1
- package/components/route-map-options.config-CVTk5RVL.cjs +20 -0
- package/components/{route-map-options.config-CN86T7c0.js → route-map-options.config-CyolTJfK.js} +87 -109
- package/components/{sankey-diagram-options.config-RFB83YLZ.cjs → sankey-diagram-options.config-D7OSvSqm.cjs} +1 -1
- package/components/{sankey-diagram-options.config-tVLKy_Zn.js → sankey-diagram-options.config-Ldjk84ro.js} +7 -10
- package/components/scatter-plot-options.config-5gN7pMTm.cjs +20 -0
- package/components/{scatter-plot-options.config-Corlzno1.js → scatter-plot-options.config-CfxEfkQ1.js} +56 -86
- package/components/{search-filter-options.config-BE3JhR-F.js → search-filter-options.config-C0syQmP4.js} +3 -6
- package/components/{search-filter-options.config-BCaDlYqZ.cjs → search-filter-options.config-Oqco9BKj.cjs} +1 -1
- package/components/{set-locale-B-Tz2sdI.js → set-locale-hKTMz37h.js} +7 -9
- package/components/slicer-filter-options.config-CrusP6a0.cjs +20 -0
- package/components/{slicer-filter-options.config-3JZZcw5C.js → slicer-filter-options.config-DmOe3440.js} +9 -18
- package/components/{slider-filter-options.config-DH4SS8wH.js → slider-filter-options.config-B1M8RcDs.js} +1 -1
- package/components/{slider-filter-options.config-_8Z2zKmU.cjs → slider-filter-options.config-k45I-t6G.cjs} +1 -1
- package/components/slot-contents-picker/index.cjs +33 -33
- package/components/slot-contents-picker/index.js +194 -205
- package/components/slot-menu/index.cjs +12 -12
- package/components/slot-menu/index.js +171 -184
- package/components/slot-menu-list/index.cjs +3 -3
- package/components/slot-menu-list/index.js +97 -103
- package/components/speedometer-chart-options.config-B4ceg_qI.cjs +20 -0
- package/components/{speedometer-chart-options.config-SL581yOa.js → speedometer-chart-options.config-CzOmuEF8.js} +31 -53
- package/components/spike-map-options.config-BkkDqb4g.cjs +20 -0
- package/components/{spike-map-options.config-C5KewecZ.js → spike-map-options.config-Cbt1YUw6.js} +91 -122
- package/components/{sunburst-chart-options.config-AbNjWS6t.cjs → sunburst-chart-options.config-Yrxc2i57.cjs} +1 -1
- package/components/{sunburst-chart-options.config-CNauGQJv.js → sunburst-chart-options.config-_dyLQxPJ.js} +9 -20
- package/components/{symbol-map-options.config-DdDA4aa7.js → symbol-map-options.config-BORL1NSU.js} +11 -20
- package/components/symbol-map-options.config-NpBKm64d.cjs +20 -0
- package/components/{treemap-chart-options.config-D5AJaF_u.js → treemap-chart-options.config-B9i9qIm_.js} +20 -37
- package/components/treemap-chart-options.config-x4J54WSw.cjs +20 -0
- package/components/utils.cjs +1 -1
- package/components/utils.js +64 -65
- package/components/{video-options.config-CGsDTwHc.cjs → video-options.config-B0asgYt8.cjs} +1 -1
- package/components/{video-options.config-Dk36zJ1B.js → video-options.config-UX-9MDfS.js} +7 -10
- package/components/{wordcloud-chart-options.config-vGfCW8kE.cjs → wordcloud-chart-options.config-BKtJT8Va.cjs} +1 -1
- package/components/{wordcloud-chart-options.config-w2NUIWVA.js → wordcloud-chart-options.config-BoB_KuhA.js} +4 -7
- package/custom-elements.json +20 -0
- package/package.json +3 -3
- package/components/area-chart-options.config-C7sMAHco.cjs +0 -20
- package/components/bar-chart-options.config-DcxEkOT5.cjs +0 -20
- package/components/box-plot-options.config-SrrbDEYW.cjs +0 -20
- package/components/bubble-chart-options.config-Ihn6eVQI.cjs +0 -20
- package/components/calculate-data-item-icon-DZDqb3xu.js +0 -139
- package/components/choropleth-map-options.config-ZW8yoZH2.cjs +0 -20
- package/components/circular-gauge-options.config-msZ4mfpN.cjs +0 -20
- package/components/color-B6LaL8qz.cjs +0 -20
- package/components/color-range-utils-C5yXW7ZC.cjs +0 -20
- package/components/column-chart-options.config-BjDvA7i9.cjs +0 -20
- package/components/conditional-number-options.config-DgzUo0xi.cjs +0 -20
- package/components/donut-chart-options.config-tNpqBZfR.cjs +0 -20
- package/components/en-BKBhKBXY.cjs +0 -20
- package/components/en-BOTjhwEc.js +0 -1488
- package/components/focusable-B3E_hQmm.cjs +0 -20
- package/components/funnel-chart-options.config-D7H7gFcx.cjs +0 -20
- package/components/heat-map-options.config-DVH-Bb5-.cjs +0 -20
- package/components/heat-table-options.config-B12JEYnp.cjs +0 -20
- package/components/helpers-DXQwEH1P.cjs +0 -20
- package/components/helpers-v1bPALRP.js +0 -91
- package/components/hexbin-map-options.config-DZERRhM8.cjs +0 -20
- package/components/index-BPN3bG9X.js +0 -1733
- package/components/index-CQ9ck-BO.cjs +0 -249
- package/components/index-CXn67vdn.cjs +0 -121
- package/components/index-cfj52IbK.cjs +0 -20
- package/components/line-chart-options.config-DSugoe0t.cjs +0 -20
- package/components/pivot-table-options.config-BiJXKSFR.cjs +0 -20
- package/components/pyramid-chart-options.config-C4zbFS26.cjs +0 -20
- package/components/radar-chart-options.config-EqQu6PTh.cjs +0 -20
- package/components/route-map-options.config-D7NJePTu.cjs +0 -20
- package/components/scatter-plot-options.config-CFfGJXsV.cjs +0 -20
- package/components/slicer-filter-options.config-DNI-XevE.cjs +0 -20
- package/components/speedometer-chart-options.config-BX9LTQBH.cjs +0 -20
- package/components/spike-map-options.config-DoBFXPmN.cjs +0 -20
- package/components/symbol-map-options.config-m-lwLTtu.cjs +0 -20
- package/components/treemap-chart-options.config-C0Q9aQ1Z.cjs +0 -20
|
@@ -17,41 +17,38 @@
|
|
|
17
17
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18
18
|
* SOFTWARE.
|
|
19
19
|
* */
|
|
20
|
-
|
|
21
|
-
var rr = (t, e, r) => e in t ? tr(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
|
|
22
|
-
var ve = (t, e, r) => rr(t, typeof e != "symbol" ? e + "" : e, r);
|
|
23
|
-
function L(t, e) {
|
|
20
|
+
function C(t, e) {
|
|
24
21
|
let r = t.length;
|
|
25
|
-
Array.isArray(t[0]) || (t = [t]), Array.isArray(e[0]) || (e = e.map((
|
|
26
|
-
let n = e[0].length, a = e[0].map((
|
|
22
|
+
Array.isArray(t[0]) || (t = [t]), Array.isArray(e[0]) || (e = e.map((o) => [o]));
|
|
23
|
+
let n = e[0].length, a = e[0].map((o, i) => e.map((l) => l[i])), s = t.map((o) => a.map((i) => {
|
|
27
24
|
let l = 0;
|
|
28
|
-
if (!Array.isArray(
|
|
29
|
-
for (let
|
|
30
|
-
l +=
|
|
25
|
+
if (!Array.isArray(o)) {
|
|
26
|
+
for (let f of i)
|
|
27
|
+
l += o * f;
|
|
31
28
|
return l;
|
|
32
29
|
}
|
|
33
|
-
for (let
|
|
34
|
-
l +=
|
|
30
|
+
for (let f = 0; f < o.length; f++)
|
|
31
|
+
l += o[f] * (i[f] || 0);
|
|
35
32
|
return l;
|
|
36
33
|
}));
|
|
37
|
-
return r === 1 && (s = s[0]), n === 1 ? s.map((
|
|
34
|
+
return r === 1 && (s = s[0]), n === 1 ? s.map((o) => o[0]) : s;
|
|
38
35
|
}
|
|
39
|
-
function
|
|
40
|
-
return
|
|
36
|
+
function ce(t) {
|
|
37
|
+
return Y(t) === "string";
|
|
41
38
|
}
|
|
42
|
-
function
|
|
39
|
+
function Y(t) {
|
|
43
40
|
return (Object.prototype.toString.call(t).match(/^\[object\s+(.*?)\]$/)[1] || "").toLowerCase();
|
|
44
41
|
}
|
|
45
|
-
function
|
|
46
|
-
return
|
|
42
|
+
function Se(t, { precision: e, unit: r }) {
|
|
43
|
+
return D(t) ? "none" : lr(t, e) + (r ?? "");
|
|
47
44
|
}
|
|
48
|
-
function
|
|
49
|
-
return Number.isNaN(t) || t instanceof Number &&
|
|
45
|
+
function D(t) {
|
|
46
|
+
return Number.isNaN(t) || t instanceof Number && t?.none;
|
|
50
47
|
}
|
|
51
|
-
function
|
|
52
|
-
return
|
|
48
|
+
function S(t) {
|
|
49
|
+
return D(t) ? 0 : t;
|
|
53
50
|
}
|
|
54
|
-
function
|
|
51
|
+
function lr(t, e) {
|
|
55
52
|
if (t === 0)
|
|
56
53
|
return 0;
|
|
57
54
|
let r = ~~t, n = 0;
|
|
@@ -59,50 +56,50 @@ function d0(t, e) {
|
|
|
59
56
|
const a = 10 ** (e - n);
|
|
60
57
|
return Math.floor(t * a + 0.5) / a;
|
|
61
58
|
}
|
|
62
|
-
const
|
|
59
|
+
const Qr = {
|
|
63
60
|
deg: 1,
|
|
64
61
|
grad: 0.9,
|
|
65
62
|
rad: 180 / Math.PI,
|
|
66
63
|
turn: 360
|
|
67
64
|
};
|
|
68
|
-
function
|
|
65
|
+
function cr(t) {
|
|
69
66
|
if (!t)
|
|
70
67
|
return;
|
|
71
68
|
t = t.trim();
|
|
72
69
|
const e = /^([a-z]+)\((.+?)\)$/i, r = /^-?[\d.]+$/, n = /%|deg|g?rad|turn$/, a = /\/?\s*(none|[-\w.]+(?:%|deg|g?rad|turn)?)/g;
|
|
73
70
|
let s = t.match(e);
|
|
74
71
|
if (s) {
|
|
75
|
-
let
|
|
76
|
-
return s[2].replace(a, (
|
|
77
|
-
let
|
|
78
|
-
if (
|
|
79
|
-
let
|
|
80
|
-
|
|
72
|
+
let o = [];
|
|
73
|
+
return s[2].replace(a, (i, l) => {
|
|
74
|
+
let f = l.match(n), u = l;
|
|
75
|
+
if (f) {
|
|
76
|
+
let c = f[0], h = u.slice(0, -c.length);
|
|
77
|
+
c === "%" ? (u = new Number(h / 100), u.type = "<percentage>") : (u = new Number(h * Qr[c]), u.type = "<angle>", u.unit = c);
|
|
81
78
|
} else r.test(u) ? (u = new Number(u), u.type = "<number>") : u === "none" && (u = new Number(NaN), u.none = !0);
|
|
82
|
-
|
|
79
|
+
i.startsWith("/") && (u = u instanceof Number ? u : new Number(u), u.alpha = !0), typeof u == "object" && u instanceof Number && (u.raw = l), o.push(u);
|
|
83
80
|
}), {
|
|
84
81
|
name: s[1].toLowerCase(),
|
|
85
82
|
rawName: s[1],
|
|
86
83
|
rawArgs: s[2],
|
|
87
84
|
// An argument could be (as of css-color-4):
|
|
88
85
|
// a number, percentage, degrees (hue), ident (in color())
|
|
89
|
-
args:
|
|
86
|
+
args: o
|
|
90
87
|
};
|
|
91
88
|
}
|
|
92
89
|
}
|
|
93
|
-
function
|
|
90
|
+
function ur(t) {
|
|
94
91
|
return t[t.length - 1];
|
|
95
92
|
}
|
|
96
93
|
function oe(t, e, r) {
|
|
97
94
|
return isNaN(t) ? e : isNaN(e) ? t : t + (e - t) * r;
|
|
98
95
|
}
|
|
99
|
-
function
|
|
96
|
+
function fr(t, e, r) {
|
|
100
97
|
return (r - t) / (e - t);
|
|
101
98
|
}
|
|
102
|
-
function
|
|
103
|
-
return oe(e[0], e[1],
|
|
99
|
+
function Ue(t, e, r) {
|
|
100
|
+
return oe(e[0], e[1], fr(t[0], t[1], r));
|
|
104
101
|
}
|
|
105
|
-
function
|
|
102
|
+
function hr(t) {
|
|
106
103
|
return t.map((e) => e.split("|").map((r) => {
|
|
107
104
|
r = r.trim();
|
|
108
105
|
let n = r.match(/^(<[a-z]+>)\[(-?[.\d]+),\s*(-?[.\d]+)\]?$/);
|
|
@@ -113,47 +110,47 @@ function b0(t) {
|
|
|
113
110
|
return r;
|
|
114
111
|
}));
|
|
115
112
|
}
|
|
116
|
-
function
|
|
113
|
+
function dr(t, e, r) {
|
|
117
114
|
return Math.max(Math.min(r, e), t);
|
|
118
115
|
}
|
|
119
|
-
function
|
|
116
|
+
function Be(t, e) {
|
|
120
117
|
return Math.sign(t) === Math.sign(e) ? t : -t;
|
|
121
118
|
}
|
|
122
|
-
function
|
|
123
|
-
return
|
|
119
|
+
function A(t, e) {
|
|
120
|
+
return Be(Math.abs(t) ** e, t);
|
|
124
121
|
}
|
|
125
|
-
function
|
|
122
|
+
function Ke(t, e) {
|
|
126
123
|
return e === 0 ? 0 : t / e;
|
|
127
124
|
}
|
|
128
|
-
function
|
|
125
|
+
function mr(t, e, r = 0, n = t.length) {
|
|
129
126
|
for (; r < n; ) {
|
|
130
127
|
const a = r + n >> 1;
|
|
131
128
|
t[a] < e ? r = a + 1 : n = a;
|
|
132
129
|
}
|
|
133
130
|
return r;
|
|
134
131
|
}
|
|
135
|
-
var
|
|
132
|
+
var Ur = /* @__PURE__ */ Object.freeze({
|
|
136
133
|
__proto__: null,
|
|
137
|
-
bisectLeft:
|
|
138
|
-
clamp:
|
|
139
|
-
copySign:
|
|
134
|
+
bisectLeft: mr,
|
|
135
|
+
clamp: dr,
|
|
136
|
+
copySign: Be,
|
|
140
137
|
interpolate: oe,
|
|
141
|
-
interpolateInv:
|
|
142
|
-
isNone:
|
|
143
|
-
isString:
|
|
144
|
-
last:
|
|
145
|
-
mapRange:
|
|
146
|
-
multiplyMatrices:
|
|
147
|
-
parseCoordGrammar:
|
|
148
|
-
parseFunction:
|
|
149
|
-
serializeNumber:
|
|
150
|
-
skipNone:
|
|
151
|
-
spow:
|
|
152
|
-
toPrecision:
|
|
153
|
-
type:
|
|
154
|
-
zdiv:
|
|
138
|
+
interpolateInv: fr,
|
|
139
|
+
isNone: D,
|
|
140
|
+
isString: ce,
|
|
141
|
+
last: ur,
|
|
142
|
+
mapRange: Ue,
|
|
143
|
+
multiplyMatrices: C,
|
|
144
|
+
parseCoordGrammar: hr,
|
|
145
|
+
parseFunction: cr,
|
|
146
|
+
serializeNumber: Se,
|
|
147
|
+
skipNone: S,
|
|
148
|
+
spow: A,
|
|
149
|
+
toPrecision: lr,
|
|
150
|
+
type: Y,
|
|
151
|
+
zdiv: Ke
|
|
155
152
|
});
|
|
156
|
-
class
|
|
153
|
+
class Kr {
|
|
157
154
|
add(e, r, n) {
|
|
158
155
|
if (typeof arguments[0] != "string") {
|
|
159
156
|
for (var e in arguments[0])
|
|
@@ -170,16 +167,15 @@ class sr {
|
|
|
170
167
|
});
|
|
171
168
|
}
|
|
172
169
|
}
|
|
173
|
-
const j = new
|
|
174
|
-
var
|
|
170
|
+
const j = new Kr();
|
|
171
|
+
var P = {
|
|
175
172
|
gamut_mapping: "css",
|
|
176
173
|
precision: 5,
|
|
177
174
|
deltaE: "76",
|
|
178
175
|
// Default deltaE method
|
|
179
|
-
verbose:
|
|
176
|
+
verbose: globalThis?.process?.env?.NODE_ENV?.toLowerCase() !== "test",
|
|
180
177
|
warn: function(e) {
|
|
181
|
-
|
|
182
|
-
this.verbose && ((n = (r = globalThis == null ? void 0 : globalThis.console) == null ? void 0 : r.warn) == null || n.call(r, e));
|
|
178
|
+
this.verbose && globalThis?.console?.warn?.(e);
|
|
183
179
|
}
|
|
184
180
|
};
|
|
185
181
|
const B = {
|
|
@@ -187,11 +183,11 @@ const B = {
|
|
|
187
183
|
D50: [0.3457 / 0.3585, 1, (1 - 0.3457 - 0.3585) / 0.3585],
|
|
188
184
|
D65: [0.3127 / 0.329, 1, (1 - 0.3127 - 0.329) / 0.329]
|
|
189
185
|
};
|
|
190
|
-
function
|
|
186
|
+
function Xe(t) {
|
|
191
187
|
return Array.isArray(t) ? t : B[t];
|
|
192
188
|
}
|
|
193
|
-
function
|
|
194
|
-
if (t =
|
|
189
|
+
function Re(t, e, r, n = {}) {
|
|
190
|
+
if (t = Xe(t), e = Xe(e), !t || !e)
|
|
195
191
|
throw new TypeError(`Missing white point to convert ${t ? "" : "from"}${!t && !e ? "/" : ""}${e ? "" : "to"}`);
|
|
196
192
|
if (t === e)
|
|
197
193
|
return r;
|
|
@@ -205,116 +201,115 @@ function xe(t, e, r, n = {}) {
|
|
|
205
201
|
[-0.0283697093338637, 1.0099953980813041, 0.021041441191917323],
|
|
206
202
|
[0.012314014864481998, -0.020507649298898964, 1.330365926242124]
|
|
207
203
|
])), j.run("chromatic-adaptation-end", a), a.M)
|
|
208
|
-
return
|
|
204
|
+
return C(a.M, a.XYZ);
|
|
209
205
|
throw new TypeError("Only Bradford CAT with white points D50 and D65 supported for now.");
|
|
210
206
|
}
|
|
211
|
-
const
|
|
212
|
-
function
|
|
213
|
-
return Object.entries(t.coords).map(([s,
|
|
214
|
-
let l = e.coordGrammar[
|
|
215
|
-
if (
|
|
216
|
-
let
|
|
217
|
-
throw new TypeError(`${u ??
|
|
207
|
+
const Vr = /* @__PURE__ */ new Set(["<number>", "<percentage>", "<angle>"]);
|
|
208
|
+
function ft(t, e, r, n) {
|
|
209
|
+
return Object.entries(t.coords).map(([s, o], i) => {
|
|
210
|
+
let l = e.coordGrammar[i], f = n[i], u = f?.type, c;
|
|
211
|
+
if (f.none ? c = l.find((m) => Vr.has(m)) : c = l.find((m) => m == u), !c) {
|
|
212
|
+
let m = o.name || s;
|
|
213
|
+
throw new TypeError(`${u ?? f.raw} not allowed for ${m} in ${r}()`);
|
|
218
214
|
}
|
|
219
|
-
let h =
|
|
220
|
-
u === "<percentage>" && (h
|
|
221
|
-
let p =
|
|
222
|
-
return h && p && (n[
|
|
215
|
+
let h = c.range;
|
|
216
|
+
u === "<percentage>" && (h ||= [0, 1]);
|
|
217
|
+
let p = o.range || o.refRange;
|
|
218
|
+
return h && p && (n[i] = Ue(h, p, n[i])), c;
|
|
223
219
|
});
|
|
224
220
|
}
|
|
225
|
-
function
|
|
226
|
-
|
|
227
|
-
let r = { str: (n = String(t)) == null ? void 0 : n.trim() };
|
|
221
|
+
function gr(t, { meta: e } = {}) {
|
|
222
|
+
let r = { str: String(t)?.trim() };
|
|
228
223
|
if (j.run("parse-start", r), r.color)
|
|
229
224
|
return r.color;
|
|
230
|
-
if (r.parsed =
|
|
231
|
-
let
|
|
232
|
-
if (
|
|
233
|
-
let
|
|
234
|
-
for (let
|
|
235
|
-
let
|
|
236
|
-
if (
|
|
237
|
-
const
|
|
238
|
-
let
|
|
239
|
-
return
|
|
225
|
+
if (r.parsed = cr(r.str), r.parsed) {
|
|
226
|
+
let n = r.parsed.name;
|
|
227
|
+
if (n === "color") {
|
|
228
|
+
let a = r.parsed.args.shift(), s = a.startsWith("--") ? a.substring(2) : `--${a}`, o = [a, s], i = r.parsed.rawArgs.indexOf("/") > 0 ? r.parsed.args.pop() : 1;
|
|
229
|
+
for (let u of d.all) {
|
|
230
|
+
let c = u.getFormat("color");
|
|
231
|
+
if (c && (o.includes(c.id) || c.ids?.filter((h) => o.includes(h)).length)) {
|
|
232
|
+
const h = Object.keys(u.coords).map((m, b) => r.parsed.args[b] || 0);
|
|
233
|
+
let p;
|
|
234
|
+
return c.coordGrammar && (p = ft(u, c, "color", h)), e && Object.assign(e, { formatId: "color", types: p }), c.id.startsWith("--") && !a.startsWith("--") && P.warn(`${u.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${c.id}) instead of color(${a}).`), a.startsWith("--") && !c.id.startsWith("--") && P.warn(`${u.name} is a standard space and supported in the CSS spec. Use color(${c.id}) instead of prefixed color(${a}).`), { spaceId: u.id, coords: h, alpha: i };
|
|
240
235
|
}
|
|
241
236
|
}
|
|
242
|
-
let
|
|
243
|
-
if (
|
|
244
|
-
let
|
|
245
|
-
|
|
237
|
+
let l = "", f = a in d.registry ? a : s;
|
|
238
|
+
if (f in d.registry) {
|
|
239
|
+
let u = d.registry[f].formats?.color?.id;
|
|
240
|
+
u && (l = `Did you mean color(${u})?`);
|
|
246
241
|
}
|
|
247
|
-
throw new TypeError(`Cannot parse color(${
|
|
242
|
+
throw new TypeError(`Cannot parse color(${a}). ` + (l || "Missing a plugin?"));
|
|
248
243
|
} else
|
|
249
|
-
for (let
|
|
250
|
-
let
|
|
251
|
-
if (
|
|
252
|
-
let
|
|
253
|
-
(
|
|
254
|
-
let
|
|
255
|
-
return
|
|
256
|
-
spaceId:
|
|
257
|
-
coords:
|
|
258
|
-
alpha:
|
|
244
|
+
for (let a of d.all) {
|
|
245
|
+
let s = a.getFormat(n);
|
|
246
|
+
if (s && s.type === "function") {
|
|
247
|
+
let o = 1;
|
|
248
|
+
(s.lastAlpha || ur(r.parsed.args).alpha) && (o = r.parsed.args.pop());
|
|
249
|
+
let i = r.parsed.args, l;
|
|
250
|
+
return s.coordGrammar && (l = ft(a, s, n, i)), e && Object.assign(e, { formatId: s.name, types: l }), {
|
|
251
|
+
spaceId: a.id,
|
|
252
|
+
coords: i,
|
|
253
|
+
alpha: o
|
|
259
254
|
};
|
|
260
255
|
}
|
|
261
256
|
}
|
|
262
257
|
} else
|
|
263
|
-
for (let
|
|
264
|
-
for (let
|
|
265
|
-
let
|
|
266
|
-
if (
|
|
258
|
+
for (let n of d.all)
|
|
259
|
+
for (let a in n.formats) {
|
|
260
|
+
let s = n.formats[a];
|
|
261
|
+
if (s.type !== "custom" || s.test && !s.test(r.str))
|
|
267
262
|
continue;
|
|
268
|
-
let
|
|
269
|
-
if (
|
|
270
|
-
return
|
|
263
|
+
let o = s.parse(r.str);
|
|
264
|
+
if (o)
|
|
265
|
+
return o.alpha ??= 1, e && (e.formatId = a), o;
|
|
271
266
|
}
|
|
272
267
|
throw new TypeError(`Could not parse ${t} as a color. Missing a plugin?`);
|
|
273
268
|
}
|
|
274
|
-
function
|
|
269
|
+
function g(t) {
|
|
275
270
|
if (Array.isArray(t))
|
|
276
|
-
return t.map(
|
|
271
|
+
return t.map(g);
|
|
277
272
|
if (!t)
|
|
278
273
|
throw new TypeError("Empty color reference");
|
|
279
|
-
|
|
274
|
+
ce(t) && (t = gr(t));
|
|
280
275
|
let e = t.space || t.spaceId;
|
|
281
|
-
return e instanceof
|
|
276
|
+
return e instanceof d || (t.space = d.get(e)), t.alpha === void 0 && (t.alpha = 1), t;
|
|
282
277
|
}
|
|
283
|
-
const
|
|
278
|
+
const en = 75e-6;
|
|
279
|
+
class d {
|
|
284
280
|
constructor(e) {
|
|
285
|
-
|
|
286
|
-
this.id = e.id, this.name = e.name, this.base = e.base ? I.get(e.base) : null, this.aliases = e.aliases, this.base && (this.fromBase = e.fromBase, this.toBase = e.toBase);
|
|
281
|
+
this.id = e.id, this.name = e.name, this.base = e.base ? d.get(e.base) : null, this.aliases = e.aliases, this.base && (this.fromBase = e.fromBase, this.toBase = e.toBase);
|
|
287
282
|
let r = e.coords ?? this.base.coords;
|
|
288
|
-
for (let
|
|
289
|
-
"name" in r[
|
|
283
|
+
for (let a in r)
|
|
284
|
+
"name" in r[a] || (r[a].name = a);
|
|
290
285
|
this.coords = r;
|
|
291
286
|
let n = e.white ?? this.base.white ?? "D65";
|
|
292
|
-
this.white =
|
|
293
|
-
for (let
|
|
294
|
-
let
|
|
295
|
-
|
|
287
|
+
this.white = Xe(n), this.formats = e.formats ?? {};
|
|
288
|
+
for (let a in this.formats) {
|
|
289
|
+
let s = this.formats[a];
|
|
290
|
+
s.type ||= "function", s.name ||= a;
|
|
296
291
|
}
|
|
297
|
-
|
|
292
|
+
this.formats.color?.id || (this.formats.color = {
|
|
298
293
|
...this.formats.color ?? {},
|
|
299
294
|
id: e.cssId || this.id
|
|
300
|
-
}), e.gamutSpace ? this.gamutSpace = e.gamutSpace === "self" ? this :
|
|
301
|
-
value:
|
|
295
|
+
}), e.gamutSpace ? this.gamutSpace = e.gamutSpace === "self" ? this : d.get(e.gamutSpace) : this.isPolar ? this.gamutSpace = this.base : this.gamutSpace = this, this.gamutSpace.isUnbounded && (this.inGamut = (a, s) => !0), this.referred = e.referred, Object.defineProperty(this, "path", {
|
|
296
|
+
value: tn(this).reverse(),
|
|
302
297
|
writable: !1,
|
|
303
298
|
enumerable: !0,
|
|
304
299
|
configurable: !0
|
|
305
300
|
}), j.run("colorspace-init-end", this);
|
|
306
301
|
}
|
|
307
|
-
inGamut(e, { epsilon: r =
|
|
302
|
+
inGamut(e, { epsilon: r = en } = {}) {
|
|
308
303
|
if (!this.equals(this.gamutSpace))
|
|
309
304
|
return e = this.to(this.gamutSpace, e), this.gamutSpace.inGamut(e, { epsilon: r });
|
|
310
305
|
let n = Object.values(this.coords);
|
|
311
306
|
return e.every((a, s) => {
|
|
312
|
-
let
|
|
313
|
-
if (
|
|
307
|
+
let o = n[s];
|
|
308
|
+
if (o.type !== "angle" && o.range) {
|
|
314
309
|
if (Number.isNaN(a))
|
|
315
310
|
return !0;
|
|
316
|
-
let [
|
|
317
|
-
return (
|
|
311
|
+
let [i, l] = o.range;
|
|
312
|
+
return (i === void 0 || a >= i - r) && (l === void 0 || a <= l + r);
|
|
318
313
|
}
|
|
319
314
|
return !0;
|
|
320
315
|
});
|
|
@@ -323,8 +318,7 @@ const or = 75e-6, I = class I {
|
|
|
323
318
|
return Object.values(this.coords).every((e) => !("range" in e));
|
|
324
319
|
}
|
|
325
320
|
get cssId() {
|
|
326
|
-
|
|
327
|
-
return ((r = (e = this.formats) == null ? void 0 : e.color) == null ? void 0 : r.id) || this.id;
|
|
321
|
+
return this.formats?.color?.id || this.id;
|
|
328
322
|
}
|
|
329
323
|
get isPolar() {
|
|
330
324
|
for (let e in this.coords)
|
|
@@ -334,9 +328,9 @@ const or = 75e-6, I = class I {
|
|
|
334
328
|
}
|
|
335
329
|
getFormat(e) {
|
|
336
330
|
if (typeof e == "object")
|
|
337
|
-
return e =
|
|
331
|
+
return e = ht(e, this), e;
|
|
338
332
|
let r;
|
|
339
|
-
return e === "default" ? r = Object.values(this.formats)[0] : r = this.formats[e], r ? (r =
|
|
333
|
+
return e === "default" ? r = Object.values(this.formats)[0] : r = this.formats[e], r ? (r = ht(r, this), r) : null;
|
|
340
334
|
}
|
|
341
335
|
/**
|
|
342
336
|
* Check if this color space is the same as another color space reference.
|
|
@@ -349,29 +343,29 @@ const or = 75e-6, I = class I {
|
|
|
349
343
|
}
|
|
350
344
|
to(e, r) {
|
|
351
345
|
if (arguments.length === 1) {
|
|
352
|
-
const
|
|
353
|
-
[e, r] = [
|
|
346
|
+
const i = g(e);
|
|
347
|
+
[e, r] = [i.space, i.coords];
|
|
354
348
|
}
|
|
355
|
-
if (e =
|
|
349
|
+
if (e = d.get(e), this.equals(e))
|
|
356
350
|
return r;
|
|
357
|
-
r = r.map((
|
|
358
|
-
let n = this.path, a = e.path, s,
|
|
359
|
-
for (let
|
|
360
|
-
s = n[
|
|
351
|
+
r = r.map((i) => Number.isNaN(i) ? 0 : i);
|
|
352
|
+
let n = this.path, a = e.path, s, o;
|
|
353
|
+
for (let i = 0; i < n.length && n[i].equals(a[i]); i++)
|
|
354
|
+
s = n[i], o = i;
|
|
361
355
|
if (!s)
|
|
362
356
|
throw new Error(`Cannot convert between color spaces ${this} and ${e}: no connection space was found`);
|
|
363
|
-
for (let
|
|
364
|
-
r = n[
|
|
365
|
-
for (let
|
|
366
|
-
r = a[
|
|
357
|
+
for (let i = n.length - 1; i > o; i--)
|
|
358
|
+
r = n[i].toBase(r);
|
|
359
|
+
for (let i = o + 1; i < a.length; i++)
|
|
360
|
+
r = a[i].fromBase(r);
|
|
367
361
|
return r;
|
|
368
362
|
}
|
|
369
363
|
from(e, r) {
|
|
370
364
|
if (arguments.length === 1) {
|
|
371
|
-
const n =
|
|
365
|
+
const n = g(e);
|
|
372
366
|
[e, r] = [n.space, n.coords];
|
|
373
367
|
}
|
|
374
|
-
return e =
|
|
368
|
+
return e = d.get(e), e.to(this, r);
|
|
375
369
|
}
|
|
376
370
|
toString() {
|
|
377
371
|
return `${this.name} (${this.id})`;
|
|
@@ -380,13 +374,14 @@ const or = 75e-6, I = class I {
|
|
|
380
374
|
let e = [];
|
|
381
375
|
for (let r in this.coords) {
|
|
382
376
|
let n = this.coords[r], a = n.range || n.refRange;
|
|
383
|
-
e.push(
|
|
377
|
+
e.push(a?.min ?? 0);
|
|
384
378
|
}
|
|
385
379
|
return e;
|
|
386
380
|
}
|
|
381
|
+
static registry = {};
|
|
387
382
|
// Returns array of unique color spaces
|
|
388
383
|
static get all() {
|
|
389
|
-
return [...new Set(Object.values(
|
|
384
|
+
return [...new Set(Object.values(d.registry))];
|
|
390
385
|
}
|
|
391
386
|
static register(e, r) {
|
|
392
387
|
if (arguments.length === 1 && (r = arguments[0], e = r.id), r = this.get(r), this.registry[e] && this.registry[e] !== r)
|
|
@@ -401,16 +396,16 @@ const or = 75e-6, I = class I {
|
|
|
401
396
|
* @param {ColorSpace | string} name
|
|
402
397
|
*/
|
|
403
398
|
static get(e, ...r) {
|
|
404
|
-
if (!e || e instanceof
|
|
399
|
+
if (!e || e instanceof d)
|
|
405
400
|
return e;
|
|
406
|
-
if (
|
|
407
|
-
let a =
|
|
401
|
+
if (Y(e) === "string") {
|
|
402
|
+
let a = d.registry[e.toLowerCase()];
|
|
408
403
|
if (!a)
|
|
409
404
|
throw new TypeError(`No color space found with id = "${e}"`);
|
|
410
405
|
return a;
|
|
411
406
|
}
|
|
412
407
|
if (r.length)
|
|
413
|
-
return
|
|
408
|
+
return d.get(...r);
|
|
414
409
|
throw new TypeError(`${e} is not a valid color space`);
|
|
415
410
|
}
|
|
416
411
|
/**
|
|
@@ -422,52 +417,50 @@ const or = 75e-6, I = class I {
|
|
|
422
417
|
* @return {Object}
|
|
423
418
|
*/
|
|
424
419
|
static resolveCoord(e, r) {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
if (n === "string" ? e.includes(".") ? [a, s] = e.split(".") : [a, s] = [, e] : Array.isArray(e) ? [a, s] = e : (a = e.space, s = e.coordId), a = I.get(a), a || (a = r), !a)
|
|
420
|
+
let n = Y(e), a, s;
|
|
421
|
+
if (n === "string" ? e.includes(".") ? [a, s] = e.split(".") : [a, s] = [, e] : Array.isArray(e) ? [a, s] = e : (a = e.space, s = e.coordId), a = d.get(a), a || (a = r), !a)
|
|
428
422
|
throw new TypeError(`Cannot resolve coordinate reference ${e}: No color space specified and relative references are not allowed here`);
|
|
429
|
-
if (n =
|
|
430
|
-
let
|
|
431
|
-
if (
|
|
432
|
-
return { space: a, id:
|
|
423
|
+
if (n = Y(s), n === "number" || n === "string" && s >= 0) {
|
|
424
|
+
let l = Object.entries(a.coords)[s];
|
|
425
|
+
if (l)
|
|
426
|
+
return { space: a, id: l[0], index: s, ...l[1] };
|
|
433
427
|
}
|
|
434
|
-
a =
|
|
435
|
-
let
|
|
436
|
-
for (let
|
|
437
|
-
let
|
|
438
|
-
if (
|
|
439
|
-
return { space: a, id:
|
|
440
|
-
|
|
428
|
+
a = d.get(a);
|
|
429
|
+
let o = s.toLowerCase(), i = 0;
|
|
430
|
+
for (let l in a.coords) {
|
|
431
|
+
let f = a.coords[l];
|
|
432
|
+
if (l.toLowerCase() === o || f.name?.toLowerCase() === o)
|
|
433
|
+
return { space: a, id: l, index: i, ...f };
|
|
434
|
+
i++;
|
|
441
435
|
}
|
|
442
436
|
throw new TypeError(`No "${s}" coordinate found in ${a.name}. Its coordinates are: ${Object.keys(a.coords).join(", ")}`);
|
|
443
437
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
function lr(t) {
|
|
438
|
+
static DEFAULT_FORMAT = {
|
|
439
|
+
type: "functions",
|
|
440
|
+
name: "color"
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
function tn(t) {
|
|
451
444
|
let e = [t];
|
|
452
445
|
for (let r = t; r = r.base; )
|
|
453
446
|
e.push(r);
|
|
454
447
|
return e;
|
|
455
448
|
}
|
|
456
|
-
function
|
|
449
|
+
function ht(t, { coords: e } = {}) {
|
|
457
450
|
if (t.coords && !t.coordGrammar) {
|
|
458
|
-
t.type
|
|
451
|
+
t.type ||= "function", t.name ||= "color", t.coordGrammar = hr(t.coords);
|
|
459
452
|
let r = Object.entries(e).map(([n, a], s) => {
|
|
460
|
-
let
|
|
461
|
-
return
|
|
453
|
+
let o = t.coordGrammar[s][0], i = a.range || a.refRange, l = o.range, f = "";
|
|
454
|
+
return o == "<percentage>" ? (l = [0, 100], f = "%") : o == "<angle>" && (f = "deg"), { fromRange: i, toRange: l, suffix: f };
|
|
462
455
|
});
|
|
463
|
-
t.serializeCoords = (n, a) => n.map((s,
|
|
464
|
-
let { fromRange:
|
|
465
|
-
return
|
|
456
|
+
t.serializeCoords = (n, a) => n.map((s, o) => {
|
|
457
|
+
let { fromRange: i, toRange: l, suffix: f } = r[o];
|
|
458
|
+
return i && l && (s = Ue(i, l, s)), s = Se(s, { precision: a, unit: f }), s;
|
|
466
459
|
});
|
|
467
460
|
}
|
|
468
461
|
return t;
|
|
469
462
|
}
|
|
470
|
-
var
|
|
463
|
+
var v = new d({
|
|
471
464
|
id: "xyz-d65",
|
|
472
465
|
name: "XYZ D65",
|
|
473
466
|
coords: {
|
|
@@ -483,7 +476,7 @@ var N = new m({
|
|
|
483
476
|
},
|
|
484
477
|
aliases: ["xyz"]
|
|
485
478
|
});
|
|
486
|
-
class
|
|
479
|
+
class N extends d {
|
|
487
480
|
/**
|
|
488
481
|
* Creates a new RGB ColorSpace.
|
|
489
482
|
* If coords are not specified, they will use the default RGB coords.
|
|
@@ -507,48 +500,48 @@ class z extends m {
|
|
|
507
500
|
range: [0, 1],
|
|
508
501
|
name: "Blue"
|
|
509
502
|
}
|
|
510
|
-
}), e.base || (e.base =
|
|
511
|
-
let n =
|
|
512
|
-
return this.white !== this.base.white && (n =
|
|
513
|
-
}
|
|
503
|
+
}), e.base || (e.base = v), e.toXYZ_M && e.fromXYZ_M && (e.toBase ??= (r) => {
|
|
504
|
+
let n = C(e.toXYZ_M, r);
|
|
505
|
+
return this.white !== this.base.white && (n = Re(this.white, this.base.white, n)), n;
|
|
506
|
+
}, e.fromBase ??= (r) => (r = Re(this.base.white, this.white, r), C(e.fromXYZ_M, r))), e.referred ??= "display", super(e);
|
|
514
507
|
}
|
|
515
508
|
}
|
|
516
|
-
function
|
|
517
|
-
return t =
|
|
509
|
+
function ue(t, e) {
|
|
510
|
+
return t = g(t), !e || t.space.equals(e) ? t.coords.slice() : (e = d.get(e), e.from(t));
|
|
518
511
|
}
|
|
519
|
-
function
|
|
520
|
-
t =
|
|
521
|
-
let { space: r, index: n } =
|
|
522
|
-
return
|
|
512
|
+
function $(t, e) {
|
|
513
|
+
t = g(t);
|
|
514
|
+
let { space: r, index: n } = d.resolveCoord(e, t.space);
|
|
515
|
+
return ue(t, r)[n];
|
|
523
516
|
}
|
|
524
|
-
function
|
|
525
|
-
return t =
|
|
517
|
+
function Ve(t, e, r) {
|
|
518
|
+
return t = g(t), e = d.get(e), t.coords = e.to(t.space, r), t;
|
|
526
519
|
}
|
|
527
|
-
|
|
528
|
-
function
|
|
529
|
-
if (t =
|
|
520
|
+
Ve.returns = "color";
|
|
521
|
+
function T(t, e, r) {
|
|
522
|
+
if (t = g(t), arguments.length === 2 && Y(arguments[1]) === "object") {
|
|
530
523
|
let n = arguments[1];
|
|
531
524
|
for (let a in n)
|
|
532
|
-
|
|
525
|
+
T(t, a, n[a]);
|
|
533
526
|
} else {
|
|
534
|
-
typeof r == "function" && (r = r(
|
|
535
|
-
let { space: n, index: a } =
|
|
536
|
-
s[a] = r,
|
|
527
|
+
typeof r == "function" && (r = r($(t, e)));
|
|
528
|
+
let { space: n, index: a } = d.resolveCoord(e, t.space), s = ue(t, n);
|
|
529
|
+
s[a] = r, Ve(t, n, s);
|
|
537
530
|
}
|
|
538
531
|
return t;
|
|
539
532
|
}
|
|
540
|
-
|
|
541
|
-
var
|
|
533
|
+
T.returns = "color";
|
|
534
|
+
var et = new d({
|
|
542
535
|
id: "xyz-d50",
|
|
543
536
|
name: "XYZ D50",
|
|
544
537
|
white: "D50",
|
|
545
|
-
base:
|
|
546
|
-
fromBase: (t) =>
|
|
547
|
-
toBase: (t) =>
|
|
538
|
+
base: v,
|
|
539
|
+
fromBase: (t) => Re(v.white, "D50", t),
|
|
540
|
+
toBase: (t) => Re("D50", v.white, t)
|
|
548
541
|
});
|
|
549
|
-
const
|
|
550
|
-
let
|
|
551
|
-
var
|
|
542
|
+
const rn = 216 / 24389, dt = 24 / 116, ge = 24389 / 27;
|
|
543
|
+
let Pe = B.D50;
|
|
544
|
+
var z = new d({
|
|
552
545
|
id: "lab",
|
|
553
546
|
name: "Lab",
|
|
554
547
|
coords: {
|
|
@@ -565,12 +558,12 @@ var E = new m({
|
|
|
565
558
|
},
|
|
566
559
|
// Assuming XYZ is relative to D50, convert to CIE Lab
|
|
567
560
|
// from CIE standard, which now defines these as a rational fraction
|
|
568
|
-
white:
|
|
569
|
-
base:
|
|
561
|
+
white: Pe,
|
|
562
|
+
base: et,
|
|
570
563
|
// Convert D50-adapted XYX to Lab
|
|
571
564
|
// CIE 15.3:2004 section 8.2.1.1
|
|
572
565
|
fromBase(t) {
|
|
573
|
-
let r = t.map((n, a) => n /
|
|
566
|
+
let r = t.map((n, a) => n / Pe[a]).map((n) => n > rn ? Math.cbrt(n) : (ge * n + 16) / 116);
|
|
574
567
|
return [
|
|
575
568
|
116 * r[1] - 16,
|
|
576
569
|
// L
|
|
@@ -586,10 +579,10 @@ var E = new m({
|
|
|
586
579
|
toBase(t) {
|
|
587
580
|
let e = [];
|
|
588
581
|
return e[1] = (t[0] + 16) / 116, e[0] = t[1] / 500 + e[1], e[2] = e[1] - t[2] / 200, [
|
|
589
|
-
e[0] >
|
|
590
|
-
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] /
|
|
591
|
-
e[2] >
|
|
592
|
-
].map((n, a) => n *
|
|
582
|
+
e[0] > dt ? Math.pow(e[0], 3) : (116 * e[0] - 16) / ge,
|
|
583
|
+
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] / ge,
|
|
584
|
+
e[2] > dt ? Math.pow(e[2], 3) : (116 * e[2] - 16) / ge
|
|
585
|
+
].map((n, a) => n * Pe[a]);
|
|
593
586
|
},
|
|
594
587
|
formats: {
|
|
595
588
|
lab: {
|
|
@@ -597,16 +590,16 @@ var E = new m({
|
|
|
597
590
|
}
|
|
598
591
|
}
|
|
599
592
|
});
|
|
600
|
-
function
|
|
593
|
+
function k(t) {
|
|
601
594
|
return (t % 360 + 360) % 360;
|
|
602
595
|
}
|
|
603
|
-
function
|
|
596
|
+
function nn(t, e) {
|
|
604
597
|
if (t === "raw")
|
|
605
598
|
return e;
|
|
606
|
-
let [r, n] = e.map(
|
|
599
|
+
let [r, n] = e.map(k), a = n - r;
|
|
607
600
|
return t === "increasing" ? a < 0 && (n += 360) : t === "decreasing" ? a > 0 && (r += 360) : t === "longer" ? -180 < a && a < 180 && (a > 0 ? r += 360 : n += 360) : t === "shorter" && (a > 180 ? r += 360 : a < -180 && (n += 360)), [r, n];
|
|
608
601
|
}
|
|
609
|
-
var
|
|
602
|
+
var ie = new d({
|
|
610
603
|
id: "lch",
|
|
611
604
|
name: "LCH",
|
|
612
605
|
coords: {
|
|
@@ -624,7 +617,7 @@ var le = new m({
|
|
|
624
617
|
name: "Hue"
|
|
625
618
|
}
|
|
626
619
|
},
|
|
627
|
-
base:
|
|
620
|
+
base: z,
|
|
628
621
|
fromBase(t) {
|
|
629
622
|
let [e, r, n] = t, a;
|
|
630
623
|
const s = 0.02;
|
|
@@ -633,7 +626,7 @@ var le = new m({
|
|
|
633
626
|
// L is still L
|
|
634
627
|
Math.sqrt(r ** 2 + n ** 2),
|
|
635
628
|
// Chroma
|
|
636
|
-
|
|
629
|
+
k(a)
|
|
637
630
|
// Hue, in degrees [0 to 360)
|
|
638
631
|
];
|
|
639
632
|
},
|
|
@@ -654,44 +647,44 @@ var le = new m({
|
|
|
654
647
|
}
|
|
655
648
|
}
|
|
656
649
|
});
|
|
657
|
-
const
|
|
658
|
-
function
|
|
650
|
+
const mt = 25 ** 7, xe = Math.PI, gt = 180 / xe, J = xe / 180;
|
|
651
|
+
function pt(t) {
|
|
659
652
|
const e = t * t;
|
|
660
653
|
return e * e * e * t;
|
|
661
654
|
}
|
|
662
|
-
function
|
|
663
|
-
[t, e] =
|
|
664
|
-
let [s,
|
|
655
|
+
function pr(t, e, { kL: r = 1, kC: n = 1, kH: a = 1 } = {}) {
|
|
656
|
+
[t, e] = g([t, e]);
|
|
657
|
+
let [s, o, i] = z.from(t), l = ie.from(z, [s, o, i])[1], [f, u, c] = z.from(e), h = ie.from(z, [f, u, c])[1];
|
|
665
658
|
l < 0 && (l = 0), h < 0 && (h = 0);
|
|
666
|
-
let p = (l + h) / 2,
|
|
667
|
-
|
|
668
|
-
let
|
|
669
|
-
|
|
670
|
-
let
|
|
671
|
-
|
|
672
|
-
let
|
|
673
|
-
|
|
674
|
-
let
|
|
675
|
-
return
|
|
676
|
-
}
|
|
677
|
-
const
|
|
659
|
+
let p = (l + h) / 2, m = pt(p), b = 0.5 * (1 - Math.sqrt(m / (m + mt))), M = (1 + b) * o, R = (1 + b) * u, _ = Math.sqrt(M ** 2 + i ** 2), L = Math.sqrt(R ** 2 + c ** 2), I = M === 0 && i === 0 ? 0 : Math.atan2(i, M), O = R === 0 && c === 0 ? 0 : Math.atan2(c, R);
|
|
660
|
+
I < 0 && (I += 2 * xe), O < 0 && (O += 2 * xe), I *= gt, O *= gt;
|
|
661
|
+
let he = f - s, de = L - _, E = O - I, te = I + O, st = Math.abs(E), re;
|
|
662
|
+
_ * L === 0 ? re = 0 : st <= 180 ? re = E : E > 180 ? re = E - 360 : E < -180 ? re = E + 360 : P.warn("the unthinkable has happened");
|
|
663
|
+
let ot = 2 * Math.sqrt(L * _) * Math.sin(re * J / 2), Zr = (s + f) / 2, ze = (_ + L) / 2, it = pt(ze), H;
|
|
664
|
+
_ * L === 0 ? H = te : st <= 180 ? H = te / 2 : te < 360 ? H = (te + 360) / 2 : H = (te - 360) / 2;
|
|
665
|
+
let lt = (Zr - 50) ** 2, Gr = 1 + 0.015 * lt / Math.sqrt(20 + lt), ct = 1 + 0.045 * ze, ne = 1;
|
|
666
|
+
ne -= 0.17 * Math.cos((H - 30) * J), ne += 0.24 * Math.cos(2 * H * J), ne += 0.32 * Math.cos((3 * H + 6) * J), ne -= 0.2 * Math.cos((4 * H - 63) * J);
|
|
667
|
+
let ut = 1 + 0.015 * ze * ne, Jr = 30 * Math.exp(-1 * ((H - 275) / 25) ** 2), Fr = 2 * Math.sqrt(it / (it + mt)), Wr = -1 * Math.sin(2 * Jr * J) * Fr, me = (he / (r * Gr)) ** 2;
|
|
668
|
+
return me += (de / (n * ct)) ** 2, me += (ot / (a * ut)) ** 2, me += Wr * (de / (n * ct)) * (ot / (a * ut)), Math.sqrt(me);
|
|
669
|
+
}
|
|
670
|
+
const an = [
|
|
678
671
|
[0.819022437996703, 0.3619062600528904, -0.1288737815209879],
|
|
679
672
|
[0.0329836539323885, 0.9292868615863434, 0.0361446663506424],
|
|
680
673
|
[0.0481771893596242, 0.2642395317527308, 0.6335478284694309]
|
|
681
|
-
],
|
|
674
|
+
], sn = [
|
|
682
675
|
[1.2268798758459243, -0.5578149944602171, 0.2813910456659647],
|
|
683
676
|
[-0.0405757452148008, 1.112286803280317, -0.0717110580655164],
|
|
684
677
|
[-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]
|
|
685
|
-
],
|
|
678
|
+
], on = [
|
|
686
679
|
[0.210454268309314, 0.7936177747023054, -0.0040720430116193],
|
|
687
680
|
[1.9779985324311684, -2.42859224204858, 0.450593709617411],
|
|
688
681
|
[0.0259040424655478, 0.7827717124575296, -0.8086757549230774]
|
|
689
|
-
],
|
|
682
|
+
], ln = [
|
|
690
683
|
[1, 0.3963377773761749, 0.2158037573099136],
|
|
691
684
|
[1, -0.1055613458156586, -0.0638541728258133],
|
|
692
685
|
[1, -0.0894841775298119, -1.2914855480194092]
|
|
693
686
|
];
|
|
694
|
-
var
|
|
687
|
+
var U = new d({
|
|
695
688
|
id: "oklab",
|
|
696
689
|
name: "Oklab",
|
|
697
690
|
coords: {
|
|
@@ -708,14 +701,14 @@ var K = new m({
|
|
|
708
701
|
},
|
|
709
702
|
// Note that XYZ is relative to D65
|
|
710
703
|
white: "D65",
|
|
711
|
-
base:
|
|
704
|
+
base: v,
|
|
712
705
|
fromBase(t) {
|
|
713
|
-
let r =
|
|
714
|
-
return
|
|
706
|
+
let r = C(an, t).map((n) => Math.cbrt(n));
|
|
707
|
+
return C(on, r);
|
|
715
708
|
},
|
|
716
709
|
toBase(t) {
|
|
717
|
-
let r =
|
|
718
|
-
return
|
|
710
|
+
let r = C(ln, t).map((n) => n ** 3);
|
|
711
|
+
return C(sn, r);
|
|
719
712
|
},
|
|
720
713
|
formats: {
|
|
721
714
|
oklab: {
|
|
@@ -723,49 +716,49 @@ var K = new m({
|
|
|
723
716
|
}
|
|
724
717
|
}
|
|
725
718
|
});
|
|
726
|
-
function
|
|
727
|
-
[t, e] =
|
|
728
|
-
let [r, n, a] =
|
|
729
|
-
return Math.sqrt(l ** 2 +
|
|
730
|
-
}
|
|
731
|
-
const
|
|
732
|
-
function
|
|
733
|
-
t =
|
|
719
|
+
function qe(t, e) {
|
|
720
|
+
[t, e] = g([t, e]);
|
|
721
|
+
let [r, n, a] = U.from(t), [s, o, i] = U.from(e), l = r - s, f = n - o, u = a - i;
|
|
722
|
+
return Math.sqrt(l ** 2 + f ** 2 + u ** 2);
|
|
723
|
+
}
|
|
724
|
+
const cn = 75e-6;
|
|
725
|
+
function G(t, e, { epsilon: r = cn } = {}) {
|
|
726
|
+
t = g(t), e || (e = t.space), e = d.get(e);
|
|
734
727
|
let n = t.coords;
|
|
735
728
|
return e !== t.space && (n = e.from(t)), e.inGamut(n, { epsilon: r });
|
|
736
729
|
}
|
|
737
|
-
function
|
|
730
|
+
function K(t) {
|
|
738
731
|
return {
|
|
739
732
|
space: t.space,
|
|
740
733
|
coords: t.coords.slice(),
|
|
741
734
|
alpha: t.alpha
|
|
742
735
|
};
|
|
743
736
|
}
|
|
744
|
-
function
|
|
745
|
-
r =
|
|
737
|
+
function br(t, e, r = "lab") {
|
|
738
|
+
r = d.get(r);
|
|
746
739
|
let n = r.from(t), a = r.from(e);
|
|
747
|
-
return Math.sqrt(n.reduce((s,
|
|
748
|
-
let l = a[
|
|
749
|
-
return isNaN(
|
|
740
|
+
return Math.sqrt(n.reduce((s, o, i) => {
|
|
741
|
+
let l = a[i];
|
|
742
|
+
return isNaN(o) || isNaN(l) ? s : s + (l - o) ** 2;
|
|
750
743
|
}, 0));
|
|
751
744
|
}
|
|
752
|
-
function
|
|
753
|
-
return
|
|
754
|
-
}
|
|
755
|
-
const
|
|
756
|
-
function
|
|
757
|
-
[t, e] =
|
|
758
|
-
let [a, s,
|
|
759
|
-
|
|
760
|
-
let p = a -
|
|
761
|
-
a >= 16 && (
|
|
762
|
-
let
|
|
763
|
-
Number.isNaN(l) && (l = 0), l >= 164 && l <= 345 ?
|
|
764
|
-
let
|
|
765
|
-
return
|
|
766
|
-
}
|
|
767
|
-
const
|
|
768
|
-
var
|
|
745
|
+
function un(t, e) {
|
|
746
|
+
return br(t, e, "lab");
|
|
747
|
+
}
|
|
748
|
+
const fn = Math.PI, bt = fn / 180;
|
|
749
|
+
function hn(t, e, { l: r = 2, c: n = 1 } = {}) {
|
|
750
|
+
[t, e] = g([t, e]);
|
|
751
|
+
let [a, s, o] = z.from(t), [, i, l] = ie.from(z, [a, s, o]), [f, u, c] = z.from(e), h = ie.from(z, [f, u, c])[1];
|
|
752
|
+
i < 0 && (i = 0), h < 0 && (h = 0);
|
|
753
|
+
let p = a - f, m = i - h, b = s - u, M = o - c, R = b ** 2 + M ** 2 - m ** 2, _ = 0.511;
|
|
754
|
+
a >= 16 && (_ = 0.040975 * a / (1 + 0.01765 * a));
|
|
755
|
+
let L = 0.0638 * i / (1 + 0.0131 * i) + 0.638, I;
|
|
756
|
+
Number.isNaN(l) && (l = 0), l >= 164 && l <= 345 ? I = 0.56 + Math.abs(0.2 * Math.cos((l + 168) * bt)) : I = 0.36 + Math.abs(0.4 * Math.cos((l + 35) * bt));
|
|
757
|
+
let O = Math.pow(i, 4), he = Math.sqrt(O / (O + 1900)), de = L * (he * I + 1 - he), E = (p / (r * _)) ** 2;
|
|
758
|
+
return E += (m / (n * L)) ** 2, E += R / de ** 2, Math.sqrt(E);
|
|
759
|
+
}
|
|
760
|
+
const Mt = 203;
|
|
761
|
+
var tt = new d({
|
|
769
762
|
// Absolute CIE XYZ, with a D65 whitepoint,
|
|
770
763
|
// as used in most HDR colorspaces as a starting point.
|
|
771
764
|
// SDR spaces are converted per BT.2048
|
|
@@ -787,32 +780,32 @@ var nt = new m({
|
|
|
787
780
|
name: "Za"
|
|
788
781
|
}
|
|
789
782
|
},
|
|
790
|
-
base:
|
|
783
|
+
base: v,
|
|
791
784
|
fromBase(t) {
|
|
792
|
-
return t.map((e) => Math.max(e *
|
|
785
|
+
return t.map((e) => Math.max(e * Mt, 0));
|
|
793
786
|
},
|
|
794
787
|
toBase(t) {
|
|
795
|
-
return t.map((e) => Math.max(e /
|
|
788
|
+
return t.map((e) => Math.max(e / Mt, 0));
|
|
796
789
|
}
|
|
797
790
|
});
|
|
798
|
-
const
|
|
791
|
+
const pe = 1.15, be = 0.66, wt = 2610 / 2 ** 14, dn = 2 ** 14 / 2610, yt = 3424 / 2 ** 12, Ct = 2413 / 2 ** 7, _t = 2392 / 2 ** 7, mn = 1.7 * 2523 / 2 ** 5, Lt = 2 ** 5 / (1.7 * 2523), Me = -0.56, Ee = 16295499532821565e-27, gn = [
|
|
799
792
|
[0.41478972, 0.579999, 0.014648],
|
|
800
793
|
[-0.20151, 1.120649, 0.0531008],
|
|
801
794
|
[-0.0166008, 0.2648, 0.6684799]
|
|
802
|
-
],
|
|
795
|
+
], pn = [
|
|
803
796
|
[1.9242264357876067, -1.0047923125953657, 0.037651404030618],
|
|
804
797
|
[0.35031676209499907, 0.7264811939316552, -0.06538442294808501],
|
|
805
798
|
[-0.09098281098284752, -0.3127282905230739, 1.5227665613052603]
|
|
806
|
-
],
|
|
799
|
+
], bn = [
|
|
807
800
|
[0.5, 0.5, 0],
|
|
808
801
|
[3.524, -4.066708, 0.542708],
|
|
809
802
|
[0.199076, 1.096799, -1.295875]
|
|
810
|
-
],
|
|
803
|
+
], Mn = [
|
|
811
804
|
[1, 0.1386050432715393, 0.05804731615611886],
|
|
812
805
|
[0.9999999999999999, -0.1386050432715393, -0.05804731615611886],
|
|
813
806
|
[0.9999999999999998, -0.09601924202631895, -0.8118918960560388]
|
|
814
807
|
];
|
|
815
|
-
var
|
|
808
|
+
var Mr = new d({
|
|
816
809
|
id: "jzazbz",
|
|
817
810
|
name: "Jzazbz",
|
|
818
811
|
coords: {
|
|
@@ -827,20 +820,20 @@ var S0 = new m({
|
|
|
827
820
|
refRange: [-0.5, 0.5]
|
|
828
821
|
}
|
|
829
822
|
},
|
|
830
|
-
base:
|
|
823
|
+
base: tt,
|
|
831
824
|
fromBase(t) {
|
|
832
|
-
let [e, r, n] = t, a =
|
|
833
|
-
let p =
|
|
834
|
-
return (p /
|
|
835
|
-
}), [l,
|
|
836
|
-
return [(1 +
|
|
825
|
+
let [e, r, n] = t, a = pe * e - (pe - 1) * n, s = be * r - (be - 1) * e, i = C(gn, [a, s, n]).map(function(h) {
|
|
826
|
+
let p = yt + Ct * (h / 1e4) ** wt, m = 1 + _t * (h / 1e4) ** wt;
|
|
827
|
+
return (p / m) ** mn;
|
|
828
|
+
}), [l, f, u] = C(bn, i);
|
|
829
|
+
return [(1 + Me) * l / (1 + Me * l) - Ee, f, u];
|
|
837
830
|
},
|
|
838
831
|
toBase(t) {
|
|
839
|
-
let [e, r, n] = t, a = (e +
|
|
840
|
-
let p =
|
|
841
|
-
return 1e4 * (p /
|
|
842
|
-
}), [
|
|
843
|
-
return [u,
|
|
832
|
+
let [e, r, n] = t, a = (e + Ee) / (1 + Me - Me * (e + Ee)), o = C(Mn, [a, r, n]).map(function(h) {
|
|
833
|
+
let p = yt - h ** Lt, m = _t * h ** Lt - Ct;
|
|
834
|
+
return 1e4 * (p / m) ** dn;
|
|
835
|
+
}), [i, l, f] = C(pn, o), u = (i + (pe - 1) * f) / pe, c = (l + (be - 1) * u) / be;
|
|
836
|
+
return [u, c, f];
|
|
844
837
|
},
|
|
845
838
|
formats: {
|
|
846
839
|
// https://drafts.csswg.org/css-color-hdr/#Jzazbz
|
|
@@ -848,7 +841,7 @@ var S0 = new m({
|
|
|
848
841
|
coords: ["<number> | <percentage>", "<number> | <percentage>[-1,1]", "<number> | <percentage>[-1,1]"]
|
|
849
842
|
}
|
|
850
843
|
}
|
|
851
|
-
}),
|
|
844
|
+
}), Ze = new d({
|
|
852
845
|
id: "jzczhz",
|
|
853
846
|
name: "JzCzHz",
|
|
854
847
|
coords: {
|
|
@@ -866,7 +859,7 @@ var S0 = new m({
|
|
|
866
859
|
name: "Hue"
|
|
867
860
|
}
|
|
868
861
|
},
|
|
869
|
-
base:
|
|
862
|
+
base: Mr,
|
|
870
863
|
fromBase(t) {
|
|
871
864
|
let [e, r, n] = t, a;
|
|
872
865
|
const s = 2e-4;
|
|
@@ -875,7 +868,7 @@ var S0 = new m({
|
|
|
875
868
|
// Jz is still Jz
|
|
876
869
|
Math.sqrt(r ** 2 + n ** 2),
|
|
877
870
|
// Chroma
|
|
878
|
-
|
|
871
|
+
k(a)
|
|
879
872
|
// Hue, in degrees [0 to 360)
|
|
880
873
|
];
|
|
881
874
|
},
|
|
@@ -890,31 +883,31 @@ var S0 = new m({
|
|
|
890
883
|
];
|
|
891
884
|
}
|
|
892
885
|
});
|
|
893
|
-
function
|
|
894
|
-
[t, e] =
|
|
895
|
-
let [r, n, a] =
|
|
896
|
-
Number.isNaN(a) && Number.isNaN(
|
|
897
|
-
let u = a -
|
|
898
|
-
return Math.sqrt(l ** 2 +
|
|
899
|
-
}
|
|
900
|
-
const
|
|
886
|
+
function wn(t, e) {
|
|
887
|
+
[t, e] = g([t, e]);
|
|
888
|
+
let [r, n, a] = Ze.from(t), [s, o, i] = Ze.from(e), l = r - s, f = n - o;
|
|
889
|
+
Number.isNaN(a) && Number.isNaN(i) ? (a = 0, i = 0) : Number.isNaN(a) ? a = i : Number.isNaN(i) && (i = a);
|
|
890
|
+
let u = a - i, c = 2 * Math.sqrt(n * o) * Math.sin(u / 2 * (Math.PI / 180));
|
|
891
|
+
return Math.sqrt(l ** 2 + f ** 2 + c ** 2);
|
|
892
|
+
}
|
|
893
|
+
const wr = 3424 / 4096, yr = 2413 / 128, Cr = 2392 / 128, St = 2610 / 16384, yn = 2523 / 32, Cn = 16384 / 2610, Rt = 32 / 2523, _n = [
|
|
901
894
|
[0.3592832590121217, 0.6976051147779502, -0.035891593232029],
|
|
902
895
|
[-0.1920808463704993, 1.100476797037432, 0.0753748658519118],
|
|
903
896
|
[0.0070797844607479, 0.0748396662186362, 0.8433265453898765]
|
|
904
|
-
],
|
|
897
|
+
], Ln = [
|
|
905
898
|
[2048 / 4096, 2048 / 4096, 0],
|
|
906
899
|
[6610 / 4096, -13613 / 4096, 7003 / 4096],
|
|
907
900
|
[17933 / 4096, -17390 / 4096, -543 / 4096]
|
|
908
|
-
],
|
|
901
|
+
], Sn = [
|
|
909
902
|
[0.9999999999999998, 0.0086090370379328, 0.111029625003026],
|
|
910
903
|
[0.9999999999999998, -0.0086090370379328, -0.1110296250030259],
|
|
911
904
|
[0.9999999999999998, 0.5600313357106791, -0.3206271749873188]
|
|
912
|
-
],
|
|
905
|
+
], Rn = [
|
|
913
906
|
[2.0701522183894223, -1.3263473389671563, 0.2066510476294053],
|
|
914
907
|
[0.3647385209748072, 0.6805660249472273, -0.0453045459220347],
|
|
915
908
|
[-0.0497472075358123, -0.0492609666966131, 1.1880659249923042]
|
|
916
909
|
];
|
|
917
|
-
var
|
|
910
|
+
var Ge = new d({
|
|
918
911
|
id: "ictcp",
|
|
919
912
|
name: "ICTCP",
|
|
920
913
|
// From BT.2100-2 page 7:
|
|
@@ -942,111 +935,111 @@ var Fe = new m({
|
|
|
942
935
|
name: "CP"
|
|
943
936
|
}
|
|
944
937
|
},
|
|
945
|
-
base:
|
|
938
|
+
base: tt,
|
|
946
939
|
fromBase(t) {
|
|
947
|
-
let e =
|
|
948
|
-
return
|
|
940
|
+
let e = C(_n, t);
|
|
941
|
+
return xn(e);
|
|
949
942
|
},
|
|
950
943
|
toBase(t) {
|
|
951
|
-
let e =
|
|
952
|
-
return
|
|
944
|
+
let e = vn(t);
|
|
945
|
+
return C(Rn, e);
|
|
953
946
|
}
|
|
954
947
|
});
|
|
955
|
-
function
|
|
948
|
+
function xn(t) {
|
|
956
949
|
let e = t.map(function(r) {
|
|
957
|
-
let n =
|
|
958
|
-
return (n / a) **
|
|
950
|
+
let n = wr + yr * (r / 1e4) ** St, a = 1 + Cr * (r / 1e4) ** St;
|
|
951
|
+
return (n / a) ** yn;
|
|
959
952
|
});
|
|
960
|
-
return
|
|
953
|
+
return C(Ln, e);
|
|
961
954
|
}
|
|
962
|
-
function
|
|
963
|
-
return
|
|
964
|
-
let a = Math.max(n **
|
|
965
|
-
return 1e4 * (a / s) **
|
|
955
|
+
function vn(t) {
|
|
956
|
+
return C(Sn, t).map(function(n) {
|
|
957
|
+
let a = Math.max(n ** Rt - wr, 0), s = yr - Cr * n ** Rt;
|
|
958
|
+
return 1e4 * (a / s) ** Cn;
|
|
966
959
|
});
|
|
967
960
|
}
|
|
968
|
-
function
|
|
969
|
-
[t, e] =
|
|
970
|
-
let [r, n, a] =
|
|
971
|
-
return 720 * Math.sqrt((r - s) ** 2 + 0.25 * (n -
|
|
961
|
+
function Bn(t, e) {
|
|
962
|
+
[t, e] = g([t, e]);
|
|
963
|
+
let [r, n, a] = Ge.from(t), [s, o, i] = Ge.from(e);
|
|
964
|
+
return 720 * Math.sqrt((r - s) ** 2 + 0.25 * (n - o) ** 2 + (a - i) ** 2);
|
|
972
965
|
}
|
|
973
|
-
const
|
|
966
|
+
const Nn = B.D65, _r = 0.42, xt = 1 / _r, Ae = 2 * Math.PI, Lr = [
|
|
974
967
|
[0.401288, 0.650173, -0.051461],
|
|
975
968
|
[-0.250268, 1.204414, 0.045854],
|
|
976
969
|
[-2079e-6, 0.048952, 0.953127]
|
|
977
|
-
],
|
|
970
|
+
], In = [
|
|
978
971
|
[1.8620678550872327, -1.0112546305316843, 0.14918677544445175],
|
|
979
972
|
[0.38752654323613717, 0.6214474419314753, -0.008973985167612518],
|
|
980
973
|
[-0.015841498849333856, -0.03412293802851557, 1.0499644368778496]
|
|
981
|
-
],
|
|
974
|
+
], $n = [
|
|
982
975
|
[460, 451, 288],
|
|
983
976
|
[460, -891, -261],
|
|
984
977
|
[460, -220, -6300]
|
|
985
|
-
],
|
|
978
|
+
], zn = {
|
|
986
979
|
dark: [0.8, 0.525, 0.8],
|
|
987
980
|
dim: [0.9, 0.59, 0.9],
|
|
988
981
|
average: [1, 0.69, 1]
|
|
989
|
-
},
|
|
982
|
+
}, Z = {
|
|
990
983
|
// Red, Yellow, Green, Blue, Red
|
|
991
984
|
h: [20.14, 90, 164.25, 237.53, 380.14],
|
|
992
985
|
e: [0.8, 0.7, 1, 1.2, 0.8],
|
|
993
986
|
H: [0, 100, 200, 300, 400]
|
|
994
|
-
},
|
|
995
|
-
function
|
|
987
|
+
}, Pn = 180 / Math.PI, vt = Math.PI / 180;
|
|
988
|
+
function Sr(t, e) {
|
|
996
989
|
return t.map((n) => {
|
|
997
|
-
const a =
|
|
998
|
-
return 400 *
|
|
990
|
+
const a = A(e * Math.abs(n) * 0.01, _r);
|
|
991
|
+
return 400 * Be(a, n) / (a + 27.13);
|
|
999
992
|
});
|
|
1000
993
|
}
|
|
1001
|
-
function
|
|
1002
|
-
const r = 100 / e * 27.13 **
|
|
994
|
+
function En(t, e) {
|
|
995
|
+
const r = 100 / e * 27.13 ** xt;
|
|
1003
996
|
return t.map((n) => {
|
|
1004
997
|
const a = Math.abs(n);
|
|
1005
|
-
return
|
|
998
|
+
return Be(r * A(a / (400 - a), xt), n);
|
|
1006
999
|
});
|
|
1007
1000
|
}
|
|
1008
|
-
function
|
|
1009
|
-
let e =
|
|
1010
|
-
e <=
|
|
1011
|
-
const r =
|
|
1012
|
-
return
|
|
1001
|
+
function An(t) {
|
|
1002
|
+
let e = k(t);
|
|
1003
|
+
e <= Z.h[0] && (e += 360);
|
|
1004
|
+
const r = mr(Z.h, e) - 1, [n, a] = Z.h.slice(r, r + 2), [s, o] = Z.e.slice(r, r + 2), i = Z.H[r], l = (e - n) / s;
|
|
1005
|
+
return i + 100 * l / (l + (a - e) / o);
|
|
1013
1006
|
}
|
|
1014
|
-
function
|
|
1007
|
+
function kn(t) {
|
|
1015
1008
|
let e = (t % 400 + 400) % 400;
|
|
1016
1009
|
const r = Math.floor(0.01 * e);
|
|
1017
1010
|
e = e % 100;
|
|
1018
|
-
const [n, a] =
|
|
1019
|
-
return
|
|
1020
|
-
(e * (
|
|
1011
|
+
const [n, a] = Z.h.slice(r, r + 2), [s, o] = Z.e.slice(r, r + 2);
|
|
1012
|
+
return k(
|
|
1013
|
+
(e * (o * n - s * a) - 100 * n * o) / (e * (o - s) - 100 * o)
|
|
1021
1014
|
);
|
|
1022
1015
|
}
|
|
1023
|
-
function
|
|
1016
|
+
function Rr(t, e, r, n, a) {
|
|
1024
1017
|
const s = {};
|
|
1025
1018
|
s.discounting = a, s.refWhite = t, s.surround = n;
|
|
1026
|
-
const
|
|
1019
|
+
const o = t.map((b) => b * 100);
|
|
1027
1020
|
s.la = e, s.yb = r;
|
|
1028
|
-
const
|
|
1029
|
-
n =
|
|
1030
|
-
const
|
|
1021
|
+
const i = o[1], l = C(Lr, o);
|
|
1022
|
+
n = zn[s.surround];
|
|
1023
|
+
const f = n[0];
|
|
1031
1024
|
s.c = n[1], s.nc = n[2];
|
|
1032
|
-
const
|
|
1033
|
-
s.fl =
|
|
1025
|
+
const c = (1 / (5 * s.la + 1)) ** 4;
|
|
1026
|
+
s.fl = c * s.la + 0.1 * (1 - c) * (1 - c) * Math.cbrt(5 * s.la), s.flRoot = s.fl ** 0.25, s.n = s.yb / i, s.z = 1.48 + Math.sqrt(s.n), s.nbb = 0.725 * s.n ** -0.2, s.ncb = s.nbb;
|
|
1034
1027
|
const h = Math.max(
|
|
1035
|
-
Math.min(
|
|
1028
|
+
Math.min(f * (1 - 1 / 3.6 * Math.exp((-s.la - 42) / 92)), 1),
|
|
1036
1029
|
0
|
|
1037
1030
|
);
|
|
1038
|
-
s.dRgb = l.map((
|
|
1039
|
-
const p = l.map((
|
|
1040
|
-
return s.aW = s.nbb * (2 *
|
|
1031
|
+
s.dRgb = l.map((b) => oe(1, i / b, h)), s.dRgbInv = s.dRgb.map((b) => 1 / b);
|
|
1032
|
+
const p = l.map((b, M) => b * s.dRgb[M]), m = Sr(p, s.fl);
|
|
1033
|
+
return s.aW = s.nbb * (2 * m[0] + m[1] + 0.05 * m[2]), s;
|
|
1041
1034
|
}
|
|
1042
|
-
const
|
|
1043
|
-
|
|
1035
|
+
const Bt = Rr(
|
|
1036
|
+
Nn,
|
|
1044
1037
|
64 / Math.PI * 0.2,
|
|
1045
1038
|
20,
|
|
1046
1039
|
"average",
|
|
1047
1040
|
!1
|
|
1048
1041
|
);
|
|
1049
|
-
function
|
|
1042
|
+
function Je(t, e) {
|
|
1050
1043
|
if (!(t.J !== void 0 ^ t.Q !== void 0))
|
|
1051
1044
|
throw new Error("Conversion requires one and only one: 'J' or 'Q'");
|
|
1052
1045
|
if (!(t.C !== void 0 ^ t.M !== void 0 ^ t.s !== void 0))
|
|
@@ -1056,35 +1049,35 @@ function We(t, e) {
|
|
|
1056
1049
|
if (t.J === 0 || t.Q === 0)
|
|
1057
1050
|
return [0, 0, 0];
|
|
1058
1051
|
let r = 0;
|
|
1059
|
-
t.h !== void 0 ? r =
|
|
1052
|
+
t.h !== void 0 ? r = k(t.h) * vt : r = kn(t.H) * vt;
|
|
1060
1053
|
const n = Math.cos(r), a = Math.sin(r);
|
|
1061
1054
|
let s = 0;
|
|
1062
|
-
t.J !== void 0 ? s =
|
|
1063
|
-
let
|
|
1064
|
-
t.C !== void 0 ?
|
|
1065
|
-
const
|
|
1066
|
-
|
|
1055
|
+
t.J !== void 0 ? s = A(t.J, 1 / 2) * 0.1 : t.Q !== void 0 && (s = 0.25 * e.c * t.Q / ((e.aW + 4) * e.flRoot));
|
|
1056
|
+
let o = 0;
|
|
1057
|
+
t.C !== void 0 ? o = t.C / s : t.M !== void 0 ? o = t.M / e.flRoot / s : t.s !== void 0 && (o = 4e-4 * t.s ** 2 * (e.aW + 4) / e.c);
|
|
1058
|
+
const i = A(
|
|
1059
|
+
o * Math.pow(1.64 - Math.pow(0.29, e.n), -0.73),
|
|
1067
1060
|
10 / 9
|
|
1068
|
-
), l = 0.25 * (Math.cos(r + 2) + 3.8),
|
|
1069
|
-
|
|
1061
|
+
), l = 0.25 * (Math.cos(r + 2) + 3.8), f = e.aW * A(s, 2 / e.c / e.z), u = 5e4 / 13 * e.nc * e.ncb * l, c = f / e.nbb, h = 23 * (c + 0.305) * Ke(i, 23 * u + i * (11 * n + 108 * a)), p = h * n, m = h * a, b = En(
|
|
1062
|
+
C($n, [c, p, m]).map((M) => M * 1 / 1403),
|
|
1070
1063
|
e.fl
|
|
1071
1064
|
);
|
|
1072
|
-
return
|
|
1073
|
-
|
|
1074
|
-
|
|
1065
|
+
return C(
|
|
1066
|
+
In,
|
|
1067
|
+
b.map((M, R) => M * e.dRgbInv[R])
|
|
1075
1068
|
).map((M) => M / 100);
|
|
1076
1069
|
}
|
|
1077
|
-
function
|
|
1078
|
-
const r = t.map((
|
|
1079
|
-
|
|
1070
|
+
function xr(t, e) {
|
|
1071
|
+
const r = t.map((L) => L * 100), n = Sr(
|
|
1072
|
+
C(Lr, r).map((L, I) => L * e.dRgb[I]),
|
|
1080
1073
|
e.fl
|
|
1081
|
-
), a = n[0] + (-12 * n[1] + n[2]) / 11, s = (n[0] + n[1] - 2 * n[2]) / 9,
|
|
1082
|
-
|
|
1074
|
+
), a = n[0] + (-12 * n[1] + n[2]) / 11, s = (n[0] + n[1] - 2 * n[2]) / 9, o = (Math.atan2(s, a) % Ae + Ae) % Ae, i = 0.25 * (Math.cos(o + 2) + 3.8), l = 5e4 / 13 * e.nc * e.ncb * Ke(
|
|
1075
|
+
i * Math.sqrt(a ** 2 + s ** 2),
|
|
1083
1076
|
n[0] + n[1] + 1.05 * n[2] + 0.305
|
|
1084
|
-
),
|
|
1085
|
-
return { J: h, C:
|
|
1077
|
+
), f = A(l, 0.9) * Math.pow(1.64 - Math.pow(0.29, e.n), 0.73), u = e.nbb * (2 * n[0] + n[1] + 0.05 * n[2]), c = A(u / e.aW, 0.5 * e.c * e.z), h = 100 * A(c, 2), p = 4 / e.c * c * (e.aW + 4) * e.flRoot, m = f * c, b = m * e.flRoot, M = k(o * Pn), R = An(M), _ = 50 * A(e.c * f / (e.aW + 4), 1 / 2);
|
|
1078
|
+
return { J: h, C: m, h: M, s: _, Q: p, M: b, H: R };
|
|
1086
1079
|
}
|
|
1087
|
-
var
|
|
1080
|
+
var Hn = new d({
|
|
1088
1081
|
id: "cam16-jmh",
|
|
1089
1082
|
cssId: "--cam16-jmh",
|
|
1090
1083
|
name: "CAM16-JMh",
|
|
@@ -1103,60 +1096,60 @@ var jr = new m({
|
|
|
1103
1096
|
name: "Hue"
|
|
1104
1097
|
}
|
|
1105
1098
|
},
|
|
1106
|
-
base:
|
|
1099
|
+
base: v,
|
|
1107
1100
|
fromBase(t) {
|
|
1108
|
-
const e =
|
|
1101
|
+
const e = xr(t, Bt);
|
|
1109
1102
|
return [e.J, e.M, e.h];
|
|
1110
1103
|
},
|
|
1111
1104
|
toBase(t) {
|
|
1112
|
-
return
|
|
1105
|
+
return Je(
|
|
1113
1106
|
{ J: t[0], M: t[1], h: t[2] },
|
|
1114
|
-
|
|
1107
|
+
Bt
|
|
1115
1108
|
);
|
|
1116
1109
|
}
|
|
1117
1110
|
});
|
|
1118
|
-
const
|
|
1119
|
-
function
|
|
1120
|
-
return 116 * (t >
|
|
1111
|
+
const Tn = B.D65, On = 216 / 24389, vr = 24389 / 27;
|
|
1112
|
+
function Yn(t) {
|
|
1113
|
+
return 116 * (t > On ? Math.cbrt(t) : (vr * t + 16) / 116) - 16;
|
|
1121
1114
|
}
|
|
1122
|
-
function
|
|
1123
|
-
return t > 8 ? Math.pow((t + 16) / 116, 3) : t /
|
|
1115
|
+
function Fe(t) {
|
|
1116
|
+
return t > 8 ? Math.pow((t + 16) / 116, 3) : t / vr;
|
|
1124
1117
|
}
|
|
1125
|
-
function
|
|
1126
|
-
let [r, n, a] = t, s = [],
|
|
1118
|
+
function Dn(t, e) {
|
|
1119
|
+
let [r, n, a] = t, s = [], o = 0;
|
|
1127
1120
|
if (a === 0)
|
|
1128
1121
|
return [0, 0, 0];
|
|
1129
|
-
let
|
|
1130
|
-
a > 0 ?
|
|
1131
|
-
const l = 2e-12,
|
|
1132
|
-
let u = 0,
|
|
1133
|
-
for (; u <=
|
|
1134
|
-
s =
|
|
1135
|
-
const h = Math.abs(s[1] -
|
|
1136
|
-
if (h <
|
|
1122
|
+
let i = Fe(a);
|
|
1123
|
+
a > 0 ? o = 0.00379058511492914 * a ** 2 + 0.608983189401032 * a + 0.9155088574762233 : o = 9514440756550361e-21 * a ** 2 + 0.08693057439788597 * a - 21.928975842194614;
|
|
1124
|
+
const l = 2e-12, f = 15;
|
|
1125
|
+
let u = 0, c = 1 / 0;
|
|
1126
|
+
for (; u <= f; ) {
|
|
1127
|
+
s = Je({ J: o, C: n, h: r }, e);
|
|
1128
|
+
const h = Math.abs(s[1] - i);
|
|
1129
|
+
if (h < c) {
|
|
1137
1130
|
if (h <= l)
|
|
1138
1131
|
return s;
|
|
1139
|
-
|
|
1132
|
+
c = h;
|
|
1140
1133
|
}
|
|
1141
|
-
|
|
1134
|
+
o = o - (s[1] - i) * o / (2 * s[1]), u += 1;
|
|
1142
1135
|
}
|
|
1143
|
-
return
|
|
1136
|
+
return Je({ J: o, C: n, h: r }, e);
|
|
1144
1137
|
}
|
|
1145
|
-
function
|
|
1146
|
-
const r =
|
|
1138
|
+
function jn(t, e) {
|
|
1139
|
+
const r = Yn(t[1]);
|
|
1147
1140
|
if (r === 0)
|
|
1148
1141
|
return [0, 0, 0];
|
|
1149
|
-
const n =
|
|
1150
|
-
return [
|
|
1142
|
+
const n = xr(t, rt);
|
|
1143
|
+
return [k(n.h), n.C, r];
|
|
1151
1144
|
}
|
|
1152
|
-
const
|
|
1153
|
-
|
|
1154
|
-
200 / Math.PI *
|
|
1155
|
-
|
|
1145
|
+
const rt = Rr(
|
|
1146
|
+
Tn,
|
|
1147
|
+
200 / Math.PI * Fe(50),
|
|
1148
|
+
Fe(50) * 100,
|
|
1156
1149
|
"average",
|
|
1157
1150
|
!1
|
|
1158
1151
|
);
|
|
1159
|
-
var
|
|
1152
|
+
var le = new d({
|
|
1160
1153
|
id: "hct",
|
|
1161
1154
|
name: "HCT",
|
|
1162
1155
|
coords: {
|
|
@@ -1174,12 +1167,12 @@ var ce = new m({
|
|
|
1174
1167
|
name: "Tone"
|
|
1175
1168
|
}
|
|
1176
1169
|
},
|
|
1177
|
-
base:
|
|
1170
|
+
base: v,
|
|
1178
1171
|
fromBase(t) {
|
|
1179
|
-
return
|
|
1172
|
+
return jn(t);
|
|
1180
1173
|
},
|
|
1181
1174
|
toBase(t) {
|
|
1182
|
-
return
|
|
1175
|
+
return Dn(t, rt);
|
|
1183
1176
|
},
|
|
1184
1177
|
formats: {
|
|
1185
1178
|
color: {
|
|
@@ -1188,31 +1181,31 @@ var ce = new m({
|
|
|
1188
1181
|
}
|
|
1189
1182
|
}
|
|
1190
1183
|
});
|
|
1191
|
-
const
|
|
1192
|
-
function
|
|
1193
|
-
t[1] < 0 && (t =
|
|
1194
|
-
const e = Math.log(Math.max(1 +
|
|
1184
|
+
const Xn = Math.PI / 180, Nt = [1, 7e-3, 0.0228];
|
|
1185
|
+
function It(t) {
|
|
1186
|
+
t[1] < 0 && (t = le.fromBase(le.toBase(t)));
|
|
1187
|
+
const e = Math.log(Math.max(1 + Nt[2] * t[1] * rt.flRoot, 1)) / Nt[2], r = t[0] * Xn, n = e * Math.cos(r), a = e * Math.sin(r);
|
|
1195
1188
|
return [t[2], n, a];
|
|
1196
1189
|
}
|
|
1197
|
-
function
|
|
1198
|
-
[t, e] =
|
|
1199
|
-
let [r, n, a] =
|
|
1200
|
-
return Math.sqrt((r - s) ** 2 + (n -
|
|
1201
|
-
}
|
|
1202
|
-
var
|
|
1203
|
-
deltaE76:
|
|
1204
|
-
deltaECMC:
|
|
1205
|
-
deltaE2000:
|
|
1206
|
-
deltaEJz:
|
|
1207
|
-
deltaEITP:
|
|
1208
|
-
deltaEOK:
|
|
1209
|
-
deltaEHCT:
|
|
1190
|
+
function qn(t, e) {
|
|
1191
|
+
[t, e] = g([t, e]);
|
|
1192
|
+
let [r, n, a] = It(le.from(t)), [s, o, i] = It(le.from(e));
|
|
1193
|
+
return Math.sqrt((r - s) ** 2 + (n - o) ** 2 + (a - i) ** 2);
|
|
1194
|
+
}
|
|
1195
|
+
var V = {
|
|
1196
|
+
deltaE76: un,
|
|
1197
|
+
deltaECMC: hn,
|
|
1198
|
+
deltaE2000: pr,
|
|
1199
|
+
deltaEJz: wn,
|
|
1200
|
+
deltaEITP: Bn,
|
|
1201
|
+
deltaEOK: qe,
|
|
1202
|
+
deltaEHCT: qn
|
|
1210
1203
|
};
|
|
1211
|
-
function
|
|
1204
|
+
function Zn(t) {
|
|
1212
1205
|
const e = t ? Math.floor(Math.log10(Math.abs(t))) : 0;
|
|
1213
1206
|
return Math.max(parseFloat(`1e${e - 2}`), 1e-6);
|
|
1214
1207
|
}
|
|
1215
|
-
const
|
|
1208
|
+
const $t = {
|
|
1216
1209
|
hct: {
|
|
1217
1210
|
method: "hct.c",
|
|
1218
1211
|
jnd: 2,
|
|
@@ -1226,200 +1219,199 @@ const Et = {
|
|
|
1226
1219
|
blackWhiteClamp: { channel: "hct.t", min: 0, max: 100 }
|
|
1227
1220
|
}
|
|
1228
1221
|
};
|
|
1229
|
-
function
|
|
1230
|
-
method: e =
|
|
1222
|
+
function X(t, {
|
|
1223
|
+
method: e = P.gamut_mapping,
|
|
1231
1224
|
space: r = void 0,
|
|
1232
1225
|
deltaEMethod: n = "",
|
|
1233
1226
|
jnd: a = 2,
|
|
1234
1227
|
blackWhiteClamp: s = {}
|
|
1235
1228
|
} = {}) {
|
|
1236
|
-
if (t =
|
|
1229
|
+
if (t = g(t), ce(arguments[1]) ? r = arguments[1] : r || (r = t.space), r = d.get(r), G(t, r, { epsilon: 0 }))
|
|
1237
1230
|
return t;
|
|
1238
|
-
let
|
|
1231
|
+
let o;
|
|
1239
1232
|
if (e === "css")
|
|
1240
|
-
|
|
1233
|
+
o = Gn(t, { space: r });
|
|
1241
1234
|
else {
|
|
1242
|
-
if (e !== "clip" && !
|
|
1243
|
-
Object.prototype.hasOwnProperty.call(
|
|
1244
|
-
let
|
|
1235
|
+
if (e !== "clip" && !G(t, r)) {
|
|
1236
|
+
Object.prototype.hasOwnProperty.call($t, e) && ({ method: e, jnd: a, deltaEMethod: n, blackWhiteClamp: s } = $t[e]);
|
|
1237
|
+
let i = pr;
|
|
1245
1238
|
if (n !== "") {
|
|
1246
|
-
for (let
|
|
1247
|
-
if ("deltae" + n.toLowerCase() ===
|
|
1248
|
-
|
|
1239
|
+
for (let f in V)
|
|
1240
|
+
if ("deltae" + n.toLowerCase() === f.toLowerCase()) {
|
|
1241
|
+
i = V[f];
|
|
1249
1242
|
break;
|
|
1250
1243
|
}
|
|
1251
1244
|
}
|
|
1252
|
-
let l =
|
|
1253
|
-
if (
|
|
1245
|
+
let l = X(y(t, r), { method: "clip", space: r });
|
|
1246
|
+
if (i(t, l) > a) {
|
|
1254
1247
|
if (Object.keys(s).length === 3) {
|
|
1255
|
-
let
|
|
1256
|
-
if (
|
|
1257
|
-
return
|
|
1258
|
-
if (
|
|
1259
|
-
return
|
|
1248
|
+
let _ = d.resolveCoord(s.channel), L = $(y(t, _.space), _.id);
|
|
1249
|
+
if (D(L) && (L = 0), L >= s.max)
|
|
1250
|
+
return y({ space: "xyz-d65", coords: B.D65 }, t.space);
|
|
1251
|
+
if (L <= s.min)
|
|
1252
|
+
return y({ space: "xyz-d65", coords: [0, 0, 0] }, t.space);
|
|
1260
1253
|
}
|
|
1261
|
-
let
|
|
1262
|
-
h.coords.forEach((
|
|
1263
|
-
|
|
1254
|
+
let f = d.resolveCoord(e), u = f.space, c = f.id, h = y(t, u);
|
|
1255
|
+
h.coords.forEach((_, L) => {
|
|
1256
|
+
D(_) && (h.coords[L] = 0);
|
|
1264
1257
|
});
|
|
1265
|
-
let
|
|
1266
|
-
for (;
|
|
1267
|
-
let
|
|
1268
|
-
|
|
1258
|
+
let m = (f.range || f.refRange)[0], b = Zn(a), M = m, R = $(h, c);
|
|
1259
|
+
for (; R - M > b; ) {
|
|
1260
|
+
let _ = K(h);
|
|
1261
|
+
_ = X(_, { space: r, method: "clip" }), i(h, _) - a < b ? M = $(h, c) : R = $(h, c), T(h, c, (M + R) / 2);
|
|
1269
1262
|
}
|
|
1270
|
-
|
|
1263
|
+
o = y(h, r);
|
|
1271
1264
|
} else
|
|
1272
|
-
|
|
1265
|
+
o = l;
|
|
1273
1266
|
} else
|
|
1274
|
-
|
|
1275
|
-
if (e === "clip" || !
|
|
1276
|
-
let
|
|
1277
|
-
|
|
1278
|
-
let [u,
|
|
1279
|
-
return u !== void 0 && (l = Math.max(u, l)),
|
|
1267
|
+
o = y(t, r);
|
|
1268
|
+
if (e === "clip" || !G(o, r, { epsilon: 0 })) {
|
|
1269
|
+
let i = Object.values(r.coords).map((l) => l.range || []);
|
|
1270
|
+
o.coords = o.coords.map((l, f) => {
|
|
1271
|
+
let [u, c] = i[f];
|
|
1272
|
+
return u !== void 0 && (l = Math.max(u, l)), c !== void 0 && (l = Math.min(l, c)), l;
|
|
1280
1273
|
});
|
|
1281
1274
|
}
|
|
1282
1275
|
}
|
|
1283
|
-
return r !== t.space && (
|
|
1276
|
+
return r !== t.space && (o = y(o, t.space)), t.coords = o.coords, t;
|
|
1284
1277
|
}
|
|
1285
|
-
|
|
1286
|
-
const
|
|
1287
|
-
WHITE: { space:
|
|
1288
|
-
BLACK: { space:
|
|
1278
|
+
X.returns = "color";
|
|
1279
|
+
const zt = {
|
|
1280
|
+
WHITE: { space: U, coords: [1, 0, 0] },
|
|
1281
|
+
BLACK: { space: U, coords: [0, 0, 0] }
|
|
1289
1282
|
};
|
|
1290
|
-
function
|
|
1291
|
-
t =
|
|
1292
|
-
const a =
|
|
1283
|
+
function Gn(t, { space: e } = {}) {
|
|
1284
|
+
t = g(t), e || (e = t.space), e = d.get(e);
|
|
1285
|
+
const a = d.get("oklch");
|
|
1293
1286
|
if (e.isUnbounded)
|
|
1294
|
-
return
|
|
1295
|
-
const s =
|
|
1296
|
-
let
|
|
1297
|
-
if (
|
|
1298
|
-
const
|
|
1299
|
-
return
|
|
1300
|
-
}
|
|
1301
|
-
if (
|
|
1302
|
-
const
|
|
1303
|
-
return
|
|
1304
|
-
}
|
|
1305
|
-
if (
|
|
1306
|
-
return
|
|
1307
|
-
function
|
|
1308
|
-
const
|
|
1309
|
-
return
|
|
1310
|
-
if ("range" in M[
|
|
1311
|
-
const [
|
|
1312
|
-
return
|
|
1287
|
+
return y(t, e);
|
|
1288
|
+
const s = y(t, a);
|
|
1289
|
+
let o = s.coords[0];
|
|
1290
|
+
if (o >= 1) {
|
|
1291
|
+
const m = y(zt.WHITE, e);
|
|
1292
|
+
return m.alpha = t.alpha, y(m, e);
|
|
1293
|
+
}
|
|
1294
|
+
if (o <= 0) {
|
|
1295
|
+
const m = y(zt.BLACK, e);
|
|
1296
|
+
return m.alpha = t.alpha, y(m, e);
|
|
1297
|
+
}
|
|
1298
|
+
if (G(s, e, { epsilon: 0 }))
|
|
1299
|
+
return y(s, e);
|
|
1300
|
+
function i(m) {
|
|
1301
|
+
const b = y(m, e), M = Object.values(e.coords);
|
|
1302
|
+
return b.coords = b.coords.map((R, _) => {
|
|
1303
|
+
if ("range" in M[_]) {
|
|
1304
|
+
const [L, I] = M[_].range;
|
|
1305
|
+
return dr(L, R, I);
|
|
1313
1306
|
}
|
|
1314
|
-
return
|
|
1315
|
-
}),
|
|
1307
|
+
return R;
|
|
1308
|
+
}), b;
|
|
1316
1309
|
}
|
|
1317
|
-
let l = 0,
|
|
1310
|
+
let l = 0, f = s.coords[1], u = !0, c = K(s), h = i(c), p = qe(h, c);
|
|
1318
1311
|
if (p < 0.02)
|
|
1319
1312
|
return h;
|
|
1320
|
-
for (;
|
|
1321
|
-
const
|
|
1322
|
-
if (
|
|
1323
|
-
l =
|
|
1324
|
-
else if (h =
|
|
1313
|
+
for (; f - l > 1e-4; ) {
|
|
1314
|
+
const m = (l + f) / 2;
|
|
1315
|
+
if (c.coords[1] = m, u && G(c, e, { epsilon: 0 }))
|
|
1316
|
+
l = m;
|
|
1317
|
+
else if (h = i(c), p = qe(h, c), p < 0.02) {
|
|
1325
1318
|
if (0.02 - p < 1e-4)
|
|
1326
1319
|
break;
|
|
1327
|
-
u = !1, l =
|
|
1320
|
+
u = !1, l = m;
|
|
1328
1321
|
} else
|
|
1329
|
-
|
|
1322
|
+
f = m;
|
|
1330
1323
|
}
|
|
1331
1324
|
return h;
|
|
1332
1325
|
}
|
|
1333
|
-
function
|
|
1334
|
-
t =
|
|
1326
|
+
function y(t, e, { inGamut: r } = {}) {
|
|
1327
|
+
t = g(t), e = d.get(e);
|
|
1335
1328
|
let n = e.from(t), a = { space: e, coords: n, alpha: t.alpha };
|
|
1336
|
-
return r && (a =
|
|
1329
|
+
return r && (a = X(a, r === !0 ? void 0 : r)), a;
|
|
1337
1330
|
}
|
|
1338
|
-
|
|
1339
|
-
function
|
|
1340
|
-
precision: e =
|
|
1331
|
+
y.returns = "color";
|
|
1332
|
+
function se(t, {
|
|
1333
|
+
precision: e = P.precision,
|
|
1341
1334
|
format: r = "default",
|
|
1342
1335
|
inGamut: n = !0,
|
|
1343
1336
|
...a
|
|
1344
1337
|
} = {}) {
|
|
1345
|
-
var l;
|
|
1346
1338
|
let s;
|
|
1347
|
-
t =
|
|
1348
|
-
let
|
|
1349
|
-
r = t.space.getFormat(r) ?? t.space.getFormat("default") ??
|
|
1350
|
-
let
|
|
1351
|
-
if (n
|
|
1339
|
+
t = g(t);
|
|
1340
|
+
let o = r;
|
|
1341
|
+
r = t.space.getFormat(r) ?? t.space.getFormat("default") ?? d.DEFAULT_FORMAT;
|
|
1342
|
+
let i = t.coords.slice();
|
|
1343
|
+
if (n ||= r.toGamut, n && !G(t) && (i = X(K(t), n === !0 ? void 0 : n).coords), r.type === "custom")
|
|
1352
1344
|
if (a.precision = e, r.serialize)
|
|
1353
|
-
s = r.serialize(
|
|
1345
|
+
s = r.serialize(i, t.alpha, a);
|
|
1354
1346
|
else
|
|
1355
|
-
throw new TypeError(`format ${
|
|
1347
|
+
throw new TypeError(`format ${o} can only be used to parse colors, not for serialization`);
|
|
1356
1348
|
else {
|
|
1357
|
-
let
|
|
1358
|
-
r.serializeCoords ?
|
|
1359
|
-
let
|
|
1360
|
-
if (
|
|
1361
|
-
let
|
|
1362
|
-
|
|
1349
|
+
let l = r.name || "color";
|
|
1350
|
+
r.serializeCoords ? i = r.serializeCoords(i, e) : e !== null && (i = i.map((h) => Se(h, { precision: e })));
|
|
1351
|
+
let f = [...i];
|
|
1352
|
+
if (l === "color") {
|
|
1353
|
+
let h = r.id || r.ids?.[0] || t.space.id;
|
|
1354
|
+
f.unshift(h);
|
|
1363
1355
|
}
|
|
1364
|
-
let
|
|
1365
|
-
e !== null && (
|
|
1366
|
-
let
|
|
1367
|
-
s = `${
|
|
1356
|
+
let u = t.alpha;
|
|
1357
|
+
e !== null && (u = Se(u, { precision: e }));
|
|
1358
|
+
let c = t.alpha >= 1 || r.noAlpha ? "" : `${r.commas ? "," : " /"} ${u}`;
|
|
1359
|
+
s = `${l}(${f.join(r.commas ? ", " : " ")}${c})`;
|
|
1368
1360
|
}
|
|
1369
1361
|
return s;
|
|
1370
1362
|
}
|
|
1371
|
-
const
|
|
1363
|
+
const Jn = [
|
|
1372
1364
|
[0.6369580483012914, 0.14461690358620832, 0.1688809751641721],
|
|
1373
1365
|
[0.2627002120112671, 0.6779980715188708, 0.05930171646986196],
|
|
1374
1366
|
[0, 0.028072693049087428, 1.060985057710791]
|
|
1375
|
-
],
|
|
1367
|
+
], Fn = [
|
|
1376
1368
|
[1.716651187971268, -0.355670783776392, -0.25336628137366],
|
|
1377
1369
|
[-0.666684351832489, 1.616481236634939, 0.0157685458139111],
|
|
1378
1370
|
[0.017639857445311, -0.042770613257809, 0.942103121235474]
|
|
1379
1371
|
];
|
|
1380
|
-
var
|
|
1372
|
+
var Ne = new N({
|
|
1381
1373
|
id: "rec2020-linear",
|
|
1382
1374
|
cssId: "--rec2020-linear",
|
|
1383
1375
|
name: "Linear REC.2020",
|
|
1384
1376
|
white: "D65",
|
|
1385
|
-
toXYZ_M:
|
|
1386
|
-
fromXYZ_M:
|
|
1377
|
+
toXYZ_M: Jn,
|
|
1378
|
+
fromXYZ_M: Fn
|
|
1387
1379
|
});
|
|
1388
|
-
const
|
|
1389
|
-
var
|
|
1380
|
+
const we = 1.09929682680944, Pt = 0.018053968510807;
|
|
1381
|
+
var Br = new N({
|
|
1390
1382
|
id: "rec2020",
|
|
1391
1383
|
name: "REC.2020",
|
|
1392
|
-
base:
|
|
1384
|
+
base: Ne,
|
|
1393
1385
|
// Non-linear transfer function from Rec. ITU-R BT.2020-2 table 4
|
|
1394
1386
|
toBase(t) {
|
|
1395
1387
|
return t.map(function(e) {
|
|
1396
|
-
return e <
|
|
1388
|
+
return e < Pt * 4.5 ? e / 4.5 : Math.pow((e + we - 1) / we, 1 / 0.45);
|
|
1397
1389
|
});
|
|
1398
1390
|
},
|
|
1399
1391
|
fromBase(t) {
|
|
1400
1392
|
return t.map(function(e) {
|
|
1401
|
-
return e >=
|
|
1393
|
+
return e >= Pt ? we * Math.pow(e, 0.45) - (we - 1) : 4.5 * e;
|
|
1402
1394
|
});
|
|
1403
1395
|
}
|
|
1404
1396
|
});
|
|
1405
|
-
const
|
|
1397
|
+
const Wn = [
|
|
1406
1398
|
[0.4865709486482162, 0.26566769316909306, 0.1982172852343625],
|
|
1407
1399
|
[0.2289745640697488, 0.6917385218365064, 0.079286914093745],
|
|
1408
1400
|
[0, 0.04511338185890264, 1.043944368900976]
|
|
1409
|
-
],
|
|
1401
|
+
], Qn = [
|
|
1410
1402
|
[2.493496911941425, -0.9313836179191239, -0.40271078445071684],
|
|
1411
1403
|
[-0.8294889695615747, 1.7626640603183463, 0.023624685841943577],
|
|
1412
1404
|
[0.03584583024378447, -0.07617238926804182, 0.9568845240076872]
|
|
1413
1405
|
];
|
|
1414
|
-
var
|
|
1406
|
+
var Nr = new N({
|
|
1415
1407
|
id: "p3-linear",
|
|
1416
1408
|
cssId: "--display-p3-linear",
|
|
1417
1409
|
name: "Linear P3",
|
|
1418
1410
|
white: "D65",
|
|
1419
|
-
toXYZ_M:
|
|
1420
|
-
fromXYZ_M:
|
|
1411
|
+
toXYZ_M: Wn,
|
|
1412
|
+
fromXYZ_M: Qn
|
|
1421
1413
|
});
|
|
1422
|
-
const
|
|
1414
|
+
const Un = [
|
|
1423
1415
|
[0.41239079926595934, 0.357584339383878, 0.1804807884018343],
|
|
1424
1416
|
[0.21263900587151027, 0.715168678767756, 0.07219231536073371],
|
|
1425
1417
|
[0.01933081871559182, 0.11919477979462598, 0.9505321522496607]
|
|
@@ -1428,13 +1420,13 @@ const nn = [
|
|
|
1428
1420
|
[-0.9692436362808796, 1.8759675015077202, 0.04155505740717559],
|
|
1429
1421
|
[0.05563007969699366, -0.20397695888897652, 1.0569715142428786]
|
|
1430
1422
|
];
|
|
1431
|
-
var
|
|
1423
|
+
var Ir = new N({
|
|
1432
1424
|
id: "srgb-linear",
|
|
1433
1425
|
name: "Linear sRGB",
|
|
1434
1426
|
white: "D65",
|
|
1435
|
-
toXYZ_M:
|
|
1427
|
+
toXYZ_M: Un,
|
|
1436
1428
|
fromXYZ_M: x
|
|
1437
|
-
}),
|
|
1429
|
+
}), Et = {
|
|
1438
1430
|
aliceblue: [240 / 255, 248 / 255, 1],
|
|
1439
1431
|
antiquewhite: [250 / 255, 235 / 255, 215 / 255],
|
|
1440
1432
|
aqua: [0, 1, 1],
|
|
@@ -1584,11 +1576,11 @@ var A0 = new z({
|
|
|
1584
1576
|
yellow: [1, 1, 0],
|
|
1585
1577
|
yellowgreen: [154 / 255, 205 / 255, 50 / 255]
|
|
1586
1578
|
};
|
|
1587
|
-
let
|
|
1588
|
-
var
|
|
1579
|
+
let At = Array(3).fill("<percentage> | <number>[0, 255]"), kt = Array(3).fill("<number>[0, 255]");
|
|
1580
|
+
var ee = new N({
|
|
1589
1581
|
id: "srgb",
|
|
1590
1582
|
name: "sRGB",
|
|
1591
|
-
base:
|
|
1583
|
+
base: Ir,
|
|
1592
1584
|
fromBase: (t) => t.map((e) => {
|
|
1593
1585
|
let r = e < 0 ? -1 : 1, n = e * r;
|
|
1594
1586
|
return n > 31308e-7 ? r * (1.055 * n ** (1 / 2.4) - 0.055) : 12.92 * e;
|
|
@@ -1599,26 +1591,26 @@ var te = new z({
|
|
|
1599
1591
|
}),
|
|
1600
1592
|
formats: {
|
|
1601
1593
|
rgb: {
|
|
1602
|
-
coords:
|
|
1594
|
+
coords: At
|
|
1603
1595
|
},
|
|
1604
1596
|
rgb_number: {
|
|
1605
1597
|
name: "rgb",
|
|
1606
1598
|
commas: !0,
|
|
1607
|
-
coords:
|
|
1599
|
+
coords: kt,
|
|
1608
1600
|
noAlpha: !0
|
|
1609
1601
|
},
|
|
1610
1602
|
color: {
|
|
1611
1603
|
/* use defaults */
|
|
1612
1604
|
},
|
|
1613
1605
|
rgba: {
|
|
1614
|
-
coords:
|
|
1606
|
+
coords: At,
|
|
1615
1607
|
commas: !0,
|
|
1616
1608
|
lastAlpha: !0
|
|
1617
1609
|
},
|
|
1618
1610
|
rgba_number: {
|
|
1619
1611
|
name: "rgba",
|
|
1620
1612
|
commas: !0,
|
|
1621
|
-
coords:
|
|
1613
|
+
coords: kt
|
|
1622
1614
|
},
|
|
1623
1615
|
hex: {
|
|
1624
1616
|
type: "custom",
|
|
@@ -1650,110 +1642,110 @@ var te = new z({
|
|
|
1650
1642
|
parse(t) {
|
|
1651
1643
|
t = t.toLowerCase();
|
|
1652
1644
|
let e = { spaceId: "srgb", coords: null, alpha: 1 };
|
|
1653
|
-
if (t === "transparent" ? (e.coords =
|
|
1645
|
+
if (t === "transparent" ? (e.coords = Et.black, e.alpha = 0) : e.coords = Et[t], e.coords)
|
|
1654
1646
|
return e;
|
|
1655
1647
|
}
|
|
1656
1648
|
}
|
|
1657
1649
|
}
|
|
1658
|
-
}),
|
|
1650
|
+
}), $r = new N({
|
|
1659
1651
|
id: "p3",
|
|
1660
1652
|
cssId: "display-p3",
|
|
1661
1653
|
name: "P3",
|
|
1662
|
-
base:
|
|
1654
|
+
base: Nr,
|
|
1663
1655
|
// Gamma encoding/decoding is the same as sRGB
|
|
1664
|
-
fromBase:
|
|
1665
|
-
toBase:
|
|
1656
|
+
fromBase: ee.fromBase,
|
|
1657
|
+
toBase: ee.toBase
|
|
1666
1658
|
});
|
|
1667
|
-
|
|
1668
|
-
let
|
|
1659
|
+
P.display_space = ee;
|
|
1660
|
+
let Kn;
|
|
1669
1661
|
if (typeof CSS < "u" && CSS.supports)
|
|
1670
|
-
for (let t of [
|
|
1671
|
-
let e = t.getMinCoords(), n =
|
|
1662
|
+
for (let t of [z, Br, $r]) {
|
|
1663
|
+
let e = t.getMinCoords(), n = se({ space: t, coords: e, alpha: 1 });
|
|
1672
1664
|
if (CSS.supports("color", n)) {
|
|
1673
|
-
|
|
1665
|
+
P.display_space = t;
|
|
1674
1666
|
break;
|
|
1675
1667
|
}
|
|
1676
1668
|
}
|
|
1677
|
-
function
|
|
1678
|
-
let n =
|
|
1679
|
-
if (typeof CSS > "u" || CSS.supports("color", n) || !
|
|
1669
|
+
function Vn(t, { space: e = P.display_space, ...r } = {}) {
|
|
1670
|
+
let n = se(t, r);
|
|
1671
|
+
if (typeof CSS > "u" || CSS.supports("color", n) || !P.display_space)
|
|
1680
1672
|
n = new String(n), n.color = t;
|
|
1681
1673
|
else {
|
|
1682
1674
|
let a = t;
|
|
1683
|
-
if ((t.coords.some(
|
|
1675
|
+
if ((t.coords.some(D) || D(t.alpha)) && !(Kn ??= CSS.supports("color", "hsl(none 50% 50%)")) && (a = K(t), a.coords = a.coords.map(S), a.alpha = S(a.alpha), n = se(a, r), CSS.supports("color", n)))
|
|
1684
1676
|
return n = new String(n), n.color = a, n;
|
|
1685
|
-
a =
|
|
1677
|
+
a = y(a, e), n = new String(se(a, r)), n.color = a;
|
|
1686
1678
|
}
|
|
1687
1679
|
return n;
|
|
1688
1680
|
}
|
|
1689
|
-
function
|
|
1690
|
-
return t =
|
|
1681
|
+
function e0(t, e) {
|
|
1682
|
+
return t = g(t), e = g(e), t.space === e.space && t.alpha === e.alpha && t.coords.every((r, n) => r === e.coords[n]);
|
|
1691
1683
|
}
|
|
1692
|
-
function
|
|
1693
|
-
return
|
|
1684
|
+
function q(t) {
|
|
1685
|
+
return $(t, [v, "y"]);
|
|
1694
1686
|
}
|
|
1695
|
-
function
|
|
1696
|
-
|
|
1687
|
+
function zr(t, e) {
|
|
1688
|
+
T(t, [v, "y"], e);
|
|
1697
1689
|
}
|
|
1698
|
-
function
|
|
1690
|
+
function t0(t) {
|
|
1699
1691
|
Object.defineProperty(t.prototype, "luminance", {
|
|
1700
1692
|
get() {
|
|
1701
|
-
return
|
|
1693
|
+
return q(this);
|
|
1702
1694
|
},
|
|
1703
1695
|
set(e) {
|
|
1704
|
-
|
|
1696
|
+
zr(this, e);
|
|
1705
1697
|
}
|
|
1706
1698
|
});
|
|
1707
1699
|
}
|
|
1708
|
-
var
|
|
1700
|
+
var r0 = /* @__PURE__ */ Object.freeze({
|
|
1709
1701
|
__proto__: null,
|
|
1710
|
-
getLuminance:
|
|
1711
|
-
register:
|
|
1712
|
-
setLuminance:
|
|
1702
|
+
getLuminance: q,
|
|
1703
|
+
register: t0,
|
|
1704
|
+
setLuminance: zr
|
|
1713
1705
|
});
|
|
1714
|
-
function
|
|
1715
|
-
t =
|
|
1716
|
-
let r = Math.max(
|
|
1706
|
+
function n0(t, e) {
|
|
1707
|
+
t = g(t), e = g(e);
|
|
1708
|
+
let r = Math.max(q(t), 0), n = Math.max(q(e), 0);
|
|
1717
1709
|
return n > r && ([r, n] = [n, r]), (r + 0.05) / (n + 0.05);
|
|
1718
1710
|
}
|
|
1719
|
-
const
|
|
1720
|
-
function
|
|
1721
|
-
return t >=
|
|
1711
|
+
const a0 = 0.56, s0 = 0.57, o0 = 0.62, i0 = 0.65, Ht = 0.022, l0 = 1.414, c0 = 0.1, u0 = 5e-4, f0 = 1.14, Tt = 0.027, h0 = 1.14;
|
|
1712
|
+
function Ot(t) {
|
|
1713
|
+
return t >= Ht ? t : t + (Ht - t) ** l0;
|
|
1722
1714
|
}
|
|
1723
|
-
function
|
|
1715
|
+
function F(t) {
|
|
1724
1716
|
let e = t < 0 ? -1 : 1, r = Math.abs(t);
|
|
1725
1717
|
return e * Math.pow(r, 2.4);
|
|
1726
1718
|
}
|
|
1727
|
-
function
|
|
1728
|
-
e =
|
|
1729
|
-
let r, n, a, s,
|
|
1730
|
-
e =
|
|
1731
|
-
let l =
|
|
1732
|
-
t =
|
|
1733
|
-
let
|
|
1734
|
-
return Math.abs(
|
|
1735
|
-
}
|
|
1736
|
-
function
|
|
1737
|
-
t =
|
|
1738
|
-
let r = Math.max(
|
|
1719
|
+
function d0(t, e) {
|
|
1720
|
+
e = g(e), t = g(t);
|
|
1721
|
+
let r, n, a, s, o, i;
|
|
1722
|
+
e = y(e, "srgb"), [s, o, i] = e.coords;
|
|
1723
|
+
let l = F(s) * 0.2126729 + F(o) * 0.7151522 + F(i) * 0.072175;
|
|
1724
|
+
t = y(t, "srgb"), [s, o, i] = t.coords;
|
|
1725
|
+
let f = F(s) * 0.2126729 + F(o) * 0.7151522 + F(i) * 0.072175, u = Ot(l), c = Ot(f), h = c > u;
|
|
1726
|
+
return Math.abs(c - u) < u0 ? n = 0 : h ? (r = c ** a0 - u ** s0, n = r * f0) : (r = c ** i0 - u ** o0, n = r * h0), Math.abs(n) < c0 ? a = 0 : n > 0 ? a = n - Tt : a = n + Tt, a * 100;
|
|
1727
|
+
}
|
|
1728
|
+
function m0(t, e) {
|
|
1729
|
+
t = g(t), e = g(e);
|
|
1730
|
+
let r = Math.max(q(t), 0), n = Math.max(q(e), 0);
|
|
1739
1731
|
n > r && ([r, n] = [n, r]);
|
|
1740
1732
|
let a = r + n;
|
|
1741
1733
|
return a === 0 ? 0 : (r - n) / a;
|
|
1742
1734
|
}
|
|
1743
|
-
const
|
|
1744
|
-
function
|
|
1745
|
-
t =
|
|
1746
|
-
let r = Math.max(
|
|
1747
|
-
return n > r && ([r, n] = [n, r]), n === 0 ?
|
|
1735
|
+
const g0 = 5e4;
|
|
1736
|
+
function p0(t, e) {
|
|
1737
|
+
t = g(t), e = g(e);
|
|
1738
|
+
let r = Math.max(q(t), 0), n = Math.max(q(e), 0);
|
|
1739
|
+
return n > r && ([r, n] = [n, r]), n === 0 ? g0 : (r - n) / n;
|
|
1748
1740
|
}
|
|
1749
|
-
function
|
|
1750
|
-
t =
|
|
1751
|
-
let r =
|
|
1741
|
+
function b0(t, e) {
|
|
1742
|
+
t = g(t), e = g(e);
|
|
1743
|
+
let r = $(t, [z, "l"]), n = $(e, [z, "l"]);
|
|
1752
1744
|
return Math.abs(r - n);
|
|
1753
1745
|
}
|
|
1754
|
-
const
|
|
1755
|
-
let
|
|
1756
|
-
var
|
|
1746
|
+
const M0 = 216 / 24389, Yt = 24 / 116, ye = 24389 / 27;
|
|
1747
|
+
let ke = B.D65;
|
|
1748
|
+
var We = new d({
|
|
1757
1749
|
id: "lab-d65",
|
|
1758
1750
|
name: "Lab D65",
|
|
1759
1751
|
coords: {
|
|
@@ -1770,12 +1762,12 @@ var Ue = new m({
|
|
|
1770
1762
|
},
|
|
1771
1763
|
// Assuming XYZ is relative to D65, convert to CIE Lab
|
|
1772
1764
|
// from CIE standard, which now defines these as a rational fraction
|
|
1773
|
-
white:
|
|
1774
|
-
base:
|
|
1765
|
+
white: ke,
|
|
1766
|
+
base: v,
|
|
1775
1767
|
// Convert D65-adapted XYZ to Lab
|
|
1776
1768
|
// CIE 15.3:2004 section 8.2.1.1
|
|
1777
1769
|
fromBase(t) {
|
|
1778
|
-
let r = t.map((n, a) => n /
|
|
1770
|
+
let r = t.map((n, a) => n / ke[a]).map((n) => n > M0 ? Math.cbrt(n) : (ye * n + 16) / 116);
|
|
1779
1771
|
return [
|
|
1780
1772
|
116 * r[1] - 16,
|
|
1781
1773
|
// L
|
|
@@ -1791,10 +1783,10 @@ var Ue = new m({
|
|
|
1791
1783
|
toBase(t) {
|
|
1792
1784
|
let e = [];
|
|
1793
1785
|
return e[1] = (t[0] + 16) / 116, e[0] = t[1] / 500 + e[1], e[2] = e[1] - t[2] / 200, [
|
|
1794
|
-
e[0] >
|
|
1795
|
-
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] /
|
|
1796
|
-
e[2] >
|
|
1797
|
-
].map((n, a) => n *
|
|
1786
|
+
e[0] > Yt ? Math.pow(e[0], 3) : (116 * e[0] - 16) / ye,
|
|
1787
|
+
t[0] > 8 ? Math.pow((t[0] + 16) / 116, 3) : t[0] / ye,
|
|
1788
|
+
e[2] > Yt ? Math.pow(e[2], 3) : (116 * e[2] - 16) / ye
|
|
1789
|
+
].map((n, a) => n * ke[a]);
|
|
1798
1790
|
},
|
|
1799
1791
|
formats: {
|
|
1800
1792
|
"lab-d65": {
|
|
@@ -1802,159 +1794,159 @@ var Ue = new m({
|
|
|
1802
1794
|
}
|
|
1803
1795
|
}
|
|
1804
1796
|
});
|
|
1805
|
-
const
|
|
1806
|
-
function
|
|
1807
|
-
t =
|
|
1808
|
-
let r =
|
|
1797
|
+
const He = Math.pow(5, 0.5) * 0.5 + 0.5;
|
|
1798
|
+
function w0(t, e) {
|
|
1799
|
+
t = g(t), e = g(e);
|
|
1800
|
+
let r = $(t, [We, "l"]), n = $(e, [We, "l"]), a = Math.abs(Math.pow(r, He) - Math.pow(n, He)), s = Math.pow(a, 1 / He) * Math.SQRT2 - 40;
|
|
1809
1801
|
return s < 7.5 ? 0 : s;
|
|
1810
1802
|
}
|
|
1811
|
-
var
|
|
1803
|
+
var Le = /* @__PURE__ */ Object.freeze({
|
|
1812
1804
|
__proto__: null,
|
|
1813
|
-
contrastAPCA:
|
|
1814
|
-
contrastDeltaPhi:
|
|
1815
|
-
contrastLstar:
|
|
1816
|
-
contrastMichelson:
|
|
1817
|
-
contrastWCAG21:
|
|
1818
|
-
contrastWeber:
|
|
1805
|
+
contrastAPCA: d0,
|
|
1806
|
+
contrastDeltaPhi: w0,
|
|
1807
|
+
contrastLstar: b0,
|
|
1808
|
+
contrastMichelson: m0,
|
|
1809
|
+
contrastWCAG21: n0,
|
|
1810
|
+
contrastWeber: p0
|
|
1819
1811
|
});
|
|
1820
|
-
function
|
|
1821
|
-
|
|
1812
|
+
function y0(t, e, r = {}) {
|
|
1813
|
+
ce(r) && (r = { algorithm: r });
|
|
1822
1814
|
let { algorithm: n, ...a } = r;
|
|
1823
1815
|
if (!n) {
|
|
1824
|
-
let s = Object.keys(
|
|
1816
|
+
let s = Object.keys(Le).map((o) => o.replace(/^contrast/, "")).join(", ");
|
|
1825
1817
|
throw new TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${s}`);
|
|
1826
1818
|
}
|
|
1827
|
-
t =
|
|
1828
|
-
for (let s in
|
|
1819
|
+
t = g(t), e = g(e);
|
|
1820
|
+
for (let s in Le)
|
|
1829
1821
|
if ("contrast" + n.toLowerCase() === s.toLowerCase())
|
|
1830
|
-
return
|
|
1822
|
+
return Le[s](t, e, a);
|
|
1831
1823
|
throw new TypeError(`Unknown contrast algorithm: ${n}`);
|
|
1832
1824
|
}
|
|
1833
|
-
function
|
|
1834
|
-
let [e, r, n] =
|
|
1825
|
+
function Ie(t) {
|
|
1826
|
+
let [e, r, n] = ue(t, v), a = e + 15 * r + 3 * n;
|
|
1835
1827
|
return [4 * e / a, 9 * r / a];
|
|
1836
1828
|
}
|
|
1837
|
-
function
|
|
1838
|
-
let [e, r, n] =
|
|
1829
|
+
function Pr(t) {
|
|
1830
|
+
let [e, r, n] = ue(t, v), a = e + r + n;
|
|
1839
1831
|
return [e / a, r / a];
|
|
1840
1832
|
}
|
|
1841
|
-
function
|
|
1833
|
+
function C0(t) {
|
|
1842
1834
|
Object.defineProperty(t.prototype, "uv", {
|
|
1843
1835
|
get() {
|
|
1844
|
-
return
|
|
1836
|
+
return Ie(this);
|
|
1845
1837
|
}
|
|
1846
1838
|
}), Object.defineProperty(t.prototype, "xy", {
|
|
1847
1839
|
get() {
|
|
1848
|
-
return
|
|
1840
|
+
return Pr(this);
|
|
1849
1841
|
}
|
|
1850
1842
|
});
|
|
1851
1843
|
}
|
|
1852
|
-
var
|
|
1844
|
+
var _0 = /* @__PURE__ */ Object.freeze({
|
|
1853
1845
|
__proto__: null,
|
|
1854
|
-
register:
|
|
1855
|
-
uv:
|
|
1856
|
-
xy:
|
|
1846
|
+
register: C0,
|
|
1847
|
+
uv: Ie,
|
|
1848
|
+
xy: Pr
|
|
1857
1849
|
});
|
|
1858
|
-
function
|
|
1859
|
-
|
|
1860
|
-
let { method: n =
|
|
1861
|
-
for (let s in
|
|
1850
|
+
function ae(t, e, r = {}) {
|
|
1851
|
+
ce(r) && (r = { method: r });
|
|
1852
|
+
let { method: n = P.deltaE, ...a } = r;
|
|
1853
|
+
for (let s in V)
|
|
1862
1854
|
if ("deltae" + n.toLowerCase() === s.toLowerCase())
|
|
1863
|
-
return
|
|
1855
|
+
return V[s](t, e, a);
|
|
1864
1856
|
throw new TypeError(`Unknown deltaE method: ${n}`);
|
|
1865
1857
|
}
|
|
1866
|
-
function
|
|
1867
|
-
let n = [
|
|
1868
|
-
return
|
|
1858
|
+
function L0(t, e = 0.25) {
|
|
1859
|
+
let n = [d.get("oklch", "lch"), "l"];
|
|
1860
|
+
return T(t, n, (a) => a * (1 + e));
|
|
1869
1861
|
}
|
|
1870
|
-
function
|
|
1871
|
-
let n = [
|
|
1872
|
-
return
|
|
1862
|
+
function S0(t, e = 0.25) {
|
|
1863
|
+
let n = [d.get("oklch", "lch"), "l"];
|
|
1864
|
+
return T(t, n, (a) => a * (1 - e));
|
|
1873
1865
|
}
|
|
1874
|
-
var
|
|
1866
|
+
var R0 = /* @__PURE__ */ Object.freeze({
|
|
1875
1867
|
__proto__: null,
|
|
1876
|
-
darken:
|
|
1877
|
-
lighten:
|
|
1868
|
+
darken: S0,
|
|
1869
|
+
lighten: L0
|
|
1878
1870
|
});
|
|
1879
|
-
function
|
|
1880
|
-
return [t, e] = [
|
|
1871
|
+
function Er(t, e, r = 0.5, n = {}) {
|
|
1872
|
+
return [t, e] = [g(t), g(e)], Y(r) === "object" && ([r, n] = [0.5, r]), fe(t, e, n)(r);
|
|
1881
1873
|
}
|
|
1882
|
-
function
|
|
1874
|
+
function Ar(t, e, r = {}) {
|
|
1883
1875
|
let n;
|
|
1884
|
-
|
|
1876
|
+
nt(t) && ([n, r] = [t, e], [t, e] = n.rangeArgs.colors);
|
|
1885
1877
|
let {
|
|
1886
1878
|
maxDeltaE: a,
|
|
1887
1879
|
deltaEMethod: s,
|
|
1888
|
-
steps:
|
|
1889
|
-
maxSteps:
|
|
1880
|
+
steps: o = 2,
|
|
1881
|
+
maxSteps: i = 1e3,
|
|
1890
1882
|
...l
|
|
1891
1883
|
} = r;
|
|
1892
|
-
n || ([t, e] = [
|
|
1893
|
-
let
|
|
1894
|
-
if (
|
|
1895
|
-
|
|
1884
|
+
n || ([t, e] = [g(t), g(e)], n = fe(t, e, l));
|
|
1885
|
+
let f = ae(t, e), u = a > 0 ? Math.max(o, Math.ceil(f / a) + 1) : o, c = [];
|
|
1886
|
+
if (i !== void 0 && (u = Math.min(u, i)), u === 1)
|
|
1887
|
+
c = [{ p: 0.5, color: n(0.5) }];
|
|
1896
1888
|
else {
|
|
1897
1889
|
let h = 1 / (u - 1);
|
|
1898
|
-
|
|
1899
|
-
let
|
|
1900
|
-
return { p:
|
|
1890
|
+
c = Array.from({ length: u }, (p, m) => {
|
|
1891
|
+
let b = m * h;
|
|
1892
|
+
return { p: b, color: n(b) };
|
|
1901
1893
|
});
|
|
1902
1894
|
}
|
|
1903
1895
|
if (a > 0) {
|
|
1904
|
-
let h =
|
|
1905
|
-
if (
|
|
1896
|
+
let h = c.reduce((p, m, b) => {
|
|
1897
|
+
if (b === 0)
|
|
1906
1898
|
return 0;
|
|
1907
|
-
let M =
|
|
1899
|
+
let M = ae(m.color, c[b - 1].color, s);
|
|
1908
1900
|
return Math.max(p, M);
|
|
1909
1901
|
}, 0);
|
|
1910
1902
|
for (; h > a; ) {
|
|
1911
1903
|
h = 0;
|
|
1912
|
-
for (let p = 1; p <
|
|
1913
|
-
let
|
|
1914
|
-
h = Math.max(h,
|
|
1904
|
+
for (let p = 1; p < c.length && c.length < i; p++) {
|
|
1905
|
+
let m = c[p - 1], b = c[p], M = (b.p + m.p) / 2, R = n(M);
|
|
1906
|
+
h = Math.max(h, ae(R, m.color), ae(R, b.color)), c.splice(p, 0, { p: M, color: n(M) }), p++;
|
|
1915
1907
|
}
|
|
1916
1908
|
}
|
|
1917
1909
|
}
|
|
1918
|
-
return
|
|
1910
|
+
return c = c.map((h) => h.color), c;
|
|
1919
1911
|
}
|
|
1920
|
-
function
|
|
1921
|
-
if (
|
|
1922
|
-
let [l,
|
|
1923
|
-
return
|
|
1912
|
+
function fe(t, e, r = {}) {
|
|
1913
|
+
if (nt(t)) {
|
|
1914
|
+
let [l, f] = [t, e];
|
|
1915
|
+
return fe(...l.rangeArgs.colors, { ...l.rangeArgs.options, ...f });
|
|
1924
1916
|
}
|
|
1925
|
-
let { space: n, outputSpace: a, progression: s, premultiplied:
|
|
1926
|
-
t =
|
|
1927
|
-
let
|
|
1928
|
-
if (n ? n =
|
|
1929
|
-
let l = r.hue = r.hue || "shorter",
|
|
1930
|
-
isNaN(u) && !isNaN(
|
|
1917
|
+
let { space: n, outputSpace: a, progression: s, premultiplied: o } = r;
|
|
1918
|
+
t = g(t), e = g(e), t = K(t), e = K(e);
|
|
1919
|
+
let i = { colors: [t, e], options: r };
|
|
1920
|
+
if (n ? n = d.get(n) : n = d.registry[P.interpolationSpace] || t.space, a = a ? d.get(a) : n, t = y(t, n), e = y(e, n), t = X(t), e = X(e), n.coords.h && n.coords.h.type === "angle") {
|
|
1921
|
+
let l = r.hue = r.hue || "shorter", f = [n, "h"], [u, c] = [$(t, f), $(e, f)];
|
|
1922
|
+
isNaN(u) && !isNaN(c) ? u = c : isNaN(c) && !isNaN(u) && (c = u), [u, c] = nn(l, [u, c]), T(t, f, u), T(e, f, c);
|
|
1931
1923
|
}
|
|
1932
|
-
return
|
|
1924
|
+
return o && (t.coords = t.coords.map((l) => l * t.alpha), e.coords = e.coords.map((l) => l * e.alpha)), Object.assign((l) => {
|
|
1933
1925
|
l = s ? s(l) : l;
|
|
1934
|
-
let
|
|
1935
|
-
let
|
|
1936
|
-
return oe(h,
|
|
1937
|
-
}), u = oe(t.alpha, e.alpha, l),
|
|
1938
|
-
return
|
|
1926
|
+
let f = t.coords.map((h, p) => {
|
|
1927
|
+
let m = e.coords[p];
|
|
1928
|
+
return oe(h, m, l);
|
|
1929
|
+
}), u = oe(t.alpha, e.alpha, l), c = { space: n, coords: f, alpha: u };
|
|
1930
|
+
return o && (c.coords = c.coords.map((h) => h / u)), a !== n && (c = y(c, a)), c;
|
|
1939
1931
|
}, {
|
|
1940
|
-
rangeArgs:
|
|
1932
|
+
rangeArgs: i
|
|
1941
1933
|
});
|
|
1942
1934
|
}
|
|
1943
|
-
function
|
|
1944
|
-
return
|
|
1935
|
+
function nt(t) {
|
|
1936
|
+
return Y(t) === "function" && !!t.rangeArgs;
|
|
1945
1937
|
}
|
|
1946
|
-
|
|
1947
|
-
function
|
|
1948
|
-
t.defineFunction("mix",
|
|
1938
|
+
P.interpolationSpace = "lab";
|
|
1939
|
+
function x0(t) {
|
|
1940
|
+
t.defineFunction("mix", Er, { returns: "color" }), t.defineFunction("range", fe, { returns: "function<color>" }), t.defineFunction("steps", Ar, { returns: "array<color>" });
|
|
1949
1941
|
}
|
|
1950
|
-
var
|
|
1942
|
+
var v0 = /* @__PURE__ */ Object.freeze({
|
|
1951
1943
|
__proto__: null,
|
|
1952
|
-
isRange:
|
|
1953
|
-
mix:
|
|
1954
|
-
range:
|
|
1955
|
-
register:
|
|
1956
|
-
steps:
|
|
1957
|
-
}),
|
|
1944
|
+
isRange: nt,
|
|
1945
|
+
mix: Er,
|
|
1946
|
+
range: fe,
|
|
1947
|
+
register: x0,
|
|
1948
|
+
steps: Ar
|
|
1949
|
+
}), kr = new d({
|
|
1958
1950
|
id: "hsl",
|
|
1959
1951
|
name: "HSL",
|
|
1960
1952
|
coords: {
|
|
@@ -1972,32 +1964,32 @@ var vn = /* @__PURE__ */ Object.freeze({
|
|
|
1972
1964
|
name: "Lightness"
|
|
1973
1965
|
}
|
|
1974
1966
|
},
|
|
1975
|
-
base:
|
|
1967
|
+
base: ee,
|
|
1976
1968
|
// Adapted from https://drafts.csswg.org/css-color-4/better-rgbToHsl.js
|
|
1977
1969
|
fromBase: (t) => {
|
|
1978
|
-
let e = Math.max(...t), r = Math.min(...t), [n, a, s] = t, [
|
|
1979
|
-
if (
|
|
1980
|
-
switch (
|
|
1970
|
+
let e = Math.max(...t), r = Math.min(...t), [n, a, s] = t, [o, i, l] = [NaN, 0, (r + e) / 2], f = e - r;
|
|
1971
|
+
if (f !== 0) {
|
|
1972
|
+
switch (i = l === 0 || l === 1 ? 0 : (e - l) / Math.min(l, 1 - l), e) {
|
|
1981
1973
|
case n:
|
|
1982
|
-
|
|
1974
|
+
o = (a - s) / f + (a < s ? 6 : 0);
|
|
1983
1975
|
break;
|
|
1984
1976
|
case a:
|
|
1985
|
-
|
|
1977
|
+
o = (s - n) / f + 2;
|
|
1986
1978
|
break;
|
|
1987
1979
|
case s:
|
|
1988
|
-
|
|
1980
|
+
o = (n - a) / f + 4;
|
|
1989
1981
|
}
|
|
1990
|
-
|
|
1982
|
+
o = o * 60;
|
|
1991
1983
|
}
|
|
1992
|
-
return
|
|
1984
|
+
return i < 0 && (o += 180, i = Math.abs(i)), o >= 360 && (o -= 360), [o, i * 100, l * 100];
|
|
1993
1985
|
},
|
|
1994
1986
|
// Adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative
|
|
1995
1987
|
toBase: (t) => {
|
|
1996
1988
|
let [e, r, n] = t;
|
|
1997
1989
|
e = e % 360, e < 0 && (e += 360), r /= 100, n /= 100;
|
|
1998
1990
|
function a(s) {
|
|
1999
|
-
let
|
|
2000
|
-
return n -
|
|
1991
|
+
let o = (s + e / 30) % 12, i = r * Math.min(n, 1 - n);
|
|
1992
|
+
return n - i * Math.max(-1, Math.min(o - 3, 9 - o, 1));
|
|
2001
1993
|
}
|
|
2002
1994
|
return [a(0), a(8), a(4)];
|
|
2003
1995
|
},
|
|
@@ -2011,7 +2003,7 @@ var vn = /* @__PURE__ */ Object.freeze({
|
|
|
2011
2003
|
lastAlpha: !0
|
|
2012
2004
|
}
|
|
2013
2005
|
}
|
|
2014
|
-
}),
|
|
2006
|
+
}), Hr = new d({
|
|
2015
2007
|
id: "hsv",
|
|
2016
2008
|
name: "HSV",
|
|
2017
2009
|
coords: {
|
|
@@ -2029,7 +2021,7 @@ var vn = /* @__PURE__ */ Object.freeze({
|
|
|
2029
2021
|
name: "Value"
|
|
2030
2022
|
}
|
|
2031
2023
|
},
|
|
2032
|
-
base:
|
|
2024
|
+
base: kr,
|
|
2033
2025
|
// https://en.wikipedia.org/wiki/HSL_and_HSV#Interconversion
|
|
2034
2026
|
fromBase(t) {
|
|
2035
2027
|
let [e, r, n] = t;
|
|
@@ -2061,7 +2053,7 @@ var vn = /* @__PURE__ */ Object.freeze({
|
|
|
2061
2053
|
coords: ["<number> | <angle>", "<percentage> | <number>", "<percentage> | <number>"]
|
|
2062
2054
|
}
|
|
2063
2055
|
}
|
|
2064
|
-
}),
|
|
2056
|
+
}), B0 = new d({
|
|
2065
2057
|
id: "hwb",
|
|
2066
2058
|
name: "HWB",
|
|
2067
2059
|
coords: {
|
|
@@ -2079,7 +2071,7 @@ var vn = /* @__PURE__ */ Object.freeze({
|
|
|
2079
2071
|
name: "Blackness"
|
|
2080
2072
|
}
|
|
2081
2073
|
},
|
|
2082
|
-
base:
|
|
2074
|
+
base: Hr,
|
|
2083
2075
|
fromBase(t) {
|
|
2084
2076
|
let [e, r, n] = t;
|
|
2085
2077
|
return [e, n * (100 - r) / 100, 100 - n];
|
|
@@ -2089,11 +2081,11 @@ var vn = /* @__PURE__ */ Object.freeze({
|
|
|
2089
2081
|
r /= 100, n /= 100;
|
|
2090
2082
|
let a = r + n;
|
|
2091
2083
|
if (a >= 1) {
|
|
2092
|
-
let
|
|
2093
|
-
return [e, 0,
|
|
2084
|
+
let i = r / a;
|
|
2085
|
+
return [e, 0, i * 100];
|
|
2094
2086
|
}
|
|
2095
|
-
let s = 1 - n,
|
|
2096
|
-
return [e,
|
|
2087
|
+
let s = 1 - n, o = s === 0 ? 0 : 1 - r / s;
|
|
2088
|
+
return [e, o * 100, s * 100];
|
|
2097
2089
|
},
|
|
2098
2090
|
formats: {
|
|
2099
2091
|
hwb: {
|
|
@@ -2101,61 +2093,61 @@ var vn = /* @__PURE__ */ Object.freeze({
|
|
|
2101
2093
|
}
|
|
2102
2094
|
}
|
|
2103
2095
|
});
|
|
2104
|
-
const
|
|
2096
|
+
const N0 = [
|
|
2105
2097
|
[0.5766690429101305, 0.1855582379065463, 0.1882286462349947],
|
|
2106
2098
|
[0.29734497525053605, 0.6273635662554661, 0.07529145849399788],
|
|
2107
2099
|
[0.02703136138641234, 0.07068885253582723, 0.9913375368376388]
|
|
2108
|
-
],
|
|
2100
|
+
], I0 = [
|
|
2109
2101
|
[2.0415879038107465, -0.5650069742788596, -0.34473135077832956],
|
|
2110
2102
|
[-0.9692436362808795, 1.8759675015077202, 0.04155505740717557],
|
|
2111
2103
|
[0.013444280632031142, -0.11836239223101838, 1.0151749943912054]
|
|
2112
2104
|
];
|
|
2113
|
-
var
|
|
2105
|
+
var Tr = new N({
|
|
2114
2106
|
id: "a98rgb-linear",
|
|
2115
2107
|
cssId: "--a98-rgb-linear",
|
|
2116
2108
|
name: "Linear Adobe® 98 RGB compatible",
|
|
2117
2109
|
white: "D65",
|
|
2118
|
-
toXYZ_M:
|
|
2119
|
-
fromXYZ_M:
|
|
2120
|
-
}),
|
|
2110
|
+
toXYZ_M: N0,
|
|
2111
|
+
fromXYZ_M: I0
|
|
2112
|
+
}), $0 = new N({
|
|
2121
2113
|
id: "a98rgb",
|
|
2122
2114
|
cssId: "a98-rgb",
|
|
2123
2115
|
name: "Adobe® 98 RGB compatible",
|
|
2124
|
-
base:
|
|
2116
|
+
base: Tr,
|
|
2125
2117
|
toBase: (t) => t.map((e) => Math.pow(Math.abs(e), 563 / 256) * Math.sign(e)),
|
|
2126
2118
|
fromBase: (t) => t.map((e) => Math.pow(Math.abs(e), 256 / 563) * Math.sign(e))
|
|
2127
2119
|
});
|
|
2128
|
-
const
|
|
2120
|
+
const z0 = [
|
|
2129
2121
|
[0.7977666449006423, 0.13518129740053308, 0.0313477341283922],
|
|
2130
2122
|
[0.2880748288194013, 0.711835234241873, 8993693872564e-17],
|
|
2131
2123
|
[0, 0, 0.8251046025104602]
|
|
2132
|
-
],
|
|
2124
|
+
], P0 = [
|
|
2133
2125
|
[1.3457868816471583, -0.25557208737979464, -0.05110186497554526],
|
|
2134
2126
|
[-0.5446307051249019, 1.5082477428451468, 0.02052744743642139],
|
|
2135
2127
|
[0, 0, 1.2119675456389452]
|
|
2136
2128
|
];
|
|
2137
|
-
var
|
|
2129
|
+
var Or = new N({
|
|
2138
2130
|
id: "prophoto-linear",
|
|
2139
2131
|
cssId: "--prophoto-rgb-linear",
|
|
2140
2132
|
name: "Linear ProPhoto",
|
|
2141
2133
|
white: "D50",
|
|
2142
|
-
base:
|
|
2143
|
-
toXYZ_M:
|
|
2144
|
-
fromXYZ_M:
|
|
2134
|
+
base: et,
|
|
2135
|
+
toXYZ_M: z0,
|
|
2136
|
+
fromXYZ_M: P0
|
|
2145
2137
|
});
|
|
2146
|
-
const
|
|
2147
|
-
var
|
|
2138
|
+
const E0 = 1 / 512, A0 = 16 / 512;
|
|
2139
|
+
var k0 = new N({
|
|
2148
2140
|
id: "prophoto",
|
|
2149
2141
|
cssId: "prophoto-rgb",
|
|
2150
2142
|
name: "ProPhoto",
|
|
2151
|
-
base:
|
|
2143
|
+
base: Or,
|
|
2152
2144
|
toBase(t) {
|
|
2153
|
-
return t.map((e) => e <
|
|
2145
|
+
return t.map((e) => e < A0 ? e / 16 : e ** 1.8);
|
|
2154
2146
|
},
|
|
2155
2147
|
fromBase(t) {
|
|
2156
|
-
return t.map((e) => e >=
|
|
2148
|
+
return t.map((e) => e >= E0 ? e ** (1 / 1.8) : 16 * e);
|
|
2157
2149
|
}
|
|
2158
|
-
}),
|
|
2150
|
+
}), H0 = new d({
|
|
2159
2151
|
id: "oklch",
|
|
2160
2152
|
name: "Oklch",
|
|
2161
2153
|
coords: {
|
|
@@ -2174,7 +2166,7 @@ var jn = new z({
|
|
|
2174
2166
|
}
|
|
2175
2167
|
},
|
|
2176
2168
|
white: "D65",
|
|
2177
|
-
base:
|
|
2169
|
+
base: U,
|
|
2178
2170
|
fromBase(t) {
|
|
2179
2171
|
let [e, r, n] = t, a;
|
|
2180
2172
|
const s = 2e-4;
|
|
@@ -2183,7 +2175,7 @@ var jn = new z({
|
|
|
2183
2175
|
// OKLab L is still L
|
|
2184
2176
|
Math.sqrt(r ** 2 + n ** 2),
|
|
2185
2177
|
// Chroma
|
|
2186
|
-
|
|
2178
|
+
k(a)
|
|
2187
2179
|
// Hue, in degrees [0 to 360)
|
|
2188
2180
|
];
|
|
2189
2181
|
},
|
|
@@ -2198,9 +2190,9 @@ var jn = new z({
|
|
|
2198
2190
|
}
|
|
2199
2191
|
}
|
|
2200
2192
|
});
|
|
2201
|
-
let
|
|
2202
|
-
const
|
|
2203
|
-
var
|
|
2193
|
+
let Yr = B.D65;
|
|
2194
|
+
const T0 = 216 / 24389, Dt = 24389 / 27, [jt, Xt] = Ie({ space: v, coords: Yr });
|
|
2195
|
+
var Dr = new d({
|
|
2204
2196
|
id: "luv",
|
|
2205
2197
|
name: "Luv",
|
|
2206
2198
|
coords: {
|
|
@@ -2216,33 +2208,33 @@ var G0 = new m({
|
|
|
2216
2208
|
refRange: [-215, 215]
|
|
2217
2209
|
}
|
|
2218
2210
|
},
|
|
2219
|
-
white:
|
|
2220
|
-
base:
|
|
2211
|
+
white: Yr,
|
|
2212
|
+
base: v,
|
|
2221
2213
|
// Convert D65-adapted XYZ to Luv
|
|
2222
2214
|
// https://en.wikipedia.org/wiki/CIELUV#The_forward_transformation
|
|
2223
2215
|
fromBase(t) {
|
|
2224
|
-
let e = [
|
|
2216
|
+
let e = [S(t[0]), S(t[1]), S(t[2])], r = e[1], [n, a] = Ie({ space: v, coords: e });
|
|
2225
2217
|
if (!Number.isFinite(n) || !Number.isFinite(a))
|
|
2226
2218
|
return [0, 0, 0];
|
|
2227
|
-
let s = r <=
|
|
2219
|
+
let s = r <= T0 ? Dt * r : 116 * Math.cbrt(r) - 16;
|
|
2228
2220
|
return [
|
|
2229
2221
|
s,
|
|
2230
|
-
13 * s * (n -
|
|
2231
|
-
13 * s * (a -
|
|
2222
|
+
13 * s * (n - jt),
|
|
2223
|
+
13 * s * (a - Xt)
|
|
2232
2224
|
];
|
|
2233
2225
|
},
|
|
2234
2226
|
// Convert Luv to D65-adapted XYZ
|
|
2235
2227
|
// https://en.wikipedia.org/wiki/CIELUV#The_reverse_transformation
|
|
2236
2228
|
toBase(t) {
|
|
2237
2229
|
let [e, r, n] = t;
|
|
2238
|
-
if (e === 0 ||
|
|
2230
|
+
if (e === 0 || D(e))
|
|
2239
2231
|
return [0, 0, 0];
|
|
2240
|
-
r =
|
|
2241
|
-
let a = r / (13 * e) +
|
|
2232
|
+
r = S(r), n = S(n);
|
|
2233
|
+
let a = r / (13 * e) + jt, s = n / (13 * e) + Xt, o = e <= 8 ? e / Dt : Math.pow((e + 16) / 116, 3);
|
|
2242
2234
|
return [
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2235
|
+
o * (9 * a / (4 * s)),
|
|
2236
|
+
o,
|
|
2237
|
+
o * ((12 - 3 * a - 20 * s) / (4 * s))
|
|
2246
2238
|
];
|
|
2247
2239
|
},
|
|
2248
2240
|
formats: {
|
|
@@ -2251,7 +2243,7 @@ var G0 = new m({
|
|
|
2251
2243
|
coords: ["<number> | <percentage>", "<number> | <percentage>[-1,1]", "<number> | <percentage>[-1,1]"]
|
|
2252
2244
|
}
|
|
2253
2245
|
}
|
|
2254
|
-
}),
|
|
2246
|
+
}), at = new d({
|
|
2255
2247
|
id: "lchuv",
|
|
2256
2248
|
name: "LChuv",
|
|
2257
2249
|
coords: {
|
|
@@ -2269,7 +2261,7 @@ var G0 = new m({
|
|
|
2269
2261
|
name: "Hue"
|
|
2270
2262
|
}
|
|
2271
2263
|
},
|
|
2272
|
-
base:
|
|
2264
|
+
base: Dr,
|
|
2273
2265
|
fromBase(t) {
|
|
2274
2266
|
let [e, r, n] = t, a;
|
|
2275
2267
|
const s = 0.02;
|
|
@@ -2278,7 +2270,7 @@ var G0 = new m({
|
|
|
2278
2270
|
// L is still L
|
|
2279
2271
|
Math.sqrt(r ** 2 + n ** 2),
|
|
2280
2272
|
// Chroma
|
|
2281
|
-
|
|
2273
|
+
k(a)
|
|
2282
2274
|
// Hue, in degrees [0 to 360)
|
|
2283
2275
|
];
|
|
2284
2276
|
},
|
|
@@ -2300,33 +2292,33 @@ var G0 = new m({
|
|
|
2300
2292
|
}
|
|
2301
2293
|
}
|
|
2302
2294
|
});
|
|
2303
|
-
const
|
|
2304
|
-
function
|
|
2295
|
+
const O0 = 216 / 24389, Y0 = 24389 / 27, qt = x[0][0], Zt = x[0][1], Te = x[0][2], Gt = x[1][0], Jt = x[1][1], Oe = x[1][2], Ft = x[2][0], Wt = x[2][1], Ye = x[2][2];
|
|
2296
|
+
function W(t, e, r) {
|
|
2305
2297
|
const n = e / (Math.sin(r) - t * Math.cos(r));
|
|
2306
2298
|
return n < 0 ? 1 / 0 : n;
|
|
2307
2299
|
}
|
|
2308
|
-
function
|
|
2309
|
-
const e = Math.pow(t + 16, 3) / 1560896, r = e >
|
|
2300
|
+
function ve(t) {
|
|
2301
|
+
const e = Math.pow(t + 16, 3) / 1560896, r = e > O0 ? e : t / Y0, n = r * (284517 * qt - 94839 * Te), a = r * (838422 * Te + 769860 * Zt + 731718 * qt), s = r * (632260 * Te - 126452 * Zt), o = r * (284517 * Gt - 94839 * Oe), i = r * (838422 * Oe + 769860 * Jt + 731718 * Gt), l = r * (632260 * Oe - 126452 * Jt), f = r * (284517 * Ft - 94839 * Ye), u = r * (838422 * Ye + 769860 * Wt + 731718 * Ft), c = r * (632260 * Ye - 126452 * Wt);
|
|
2310
2302
|
return {
|
|
2311
2303
|
r0s: n / s,
|
|
2312
2304
|
r0i: a * t / s,
|
|
2313
2305
|
r1s: n / (s + 126452),
|
|
2314
2306
|
r1i: (a - 769860) * t / (s + 126452),
|
|
2315
|
-
g0s:
|
|
2316
|
-
g0i:
|
|
2317
|
-
g1s:
|
|
2318
|
-
g1i: (
|
|
2319
|
-
b0s:
|
|
2320
|
-
b0i: u * t /
|
|
2321
|
-
b1s:
|
|
2322
|
-
b1i: (u - 769860) * t / (
|
|
2307
|
+
g0s: o / l,
|
|
2308
|
+
g0i: i * t / l,
|
|
2309
|
+
g1s: o / (l + 126452),
|
|
2310
|
+
g1i: (i - 769860) * t / (l + 126452),
|
|
2311
|
+
b0s: f / c,
|
|
2312
|
+
b0i: u * t / c,
|
|
2313
|
+
b1s: f / (c + 126452),
|
|
2314
|
+
b1i: (u - 769860) * t / (c + 126452)
|
|
2323
2315
|
};
|
|
2324
2316
|
}
|
|
2325
|
-
function
|
|
2326
|
-
const r = e / 360 * Math.PI * 2, n =
|
|
2327
|
-
return Math.min(n, a, s,
|
|
2317
|
+
function Qt(t, e) {
|
|
2318
|
+
const r = e / 360 * Math.PI * 2, n = W(t.r0s, t.r0i, r), a = W(t.r1s, t.r1i, r), s = W(t.g0s, t.g0i, r), o = W(t.g1s, t.g1i, r), i = W(t.b0s, t.b0i, r), l = W(t.b1s, t.b1i, r);
|
|
2319
|
+
return Math.min(n, a, s, o, i, l);
|
|
2328
2320
|
}
|
|
2329
|
-
var
|
|
2321
|
+
var D0 = new d({
|
|
2330
2322
|
id: "hsluv",
|
|
2331
2323
|
name: "HSLuv",
|
|
2332
2324
|
coords: {
|
|
@@ -2344,31 +2336,31 @@ var Fn = new m({
|
|
|
2344
2336
|
name: "Lightness"
|
|
2345
2337
|
}
|
|
2346
2338
|
},
|
|
2347
|
-
base:
|
|
2348
|
-
gamutSpace:
|
|
2339
|
+
base: at,
|
|
2340
|
+
gamutSpace: ee,
|
|
2349
2341
|
// Convert LCHuv to HSLuv
|
|
2350
2342
|
fromBase(t) {
|
|
2351
|
-
let [e, r, n] = [
|
|
2343
|
+
let [e, r, n] = [S(t[0]), S(t[1]), S(t[2])], a;
|
|
2352
2344
|
if (e > 99.9999999)
|
|
2353
2345
|
a = 0, e = 100;
|
|
2354
2346
|
else if (e < 1e-8)
|
|
2355
2347
|
a = 0, e = 0;
|
|
2356
2348
|
else {
|
|
2357
|
-
let s =
|
|
2358
|
-
a = r /
|
|
2349
|
+
let s = ve(e), o = Qt(s, n);
|
|
2350
|
+
a = r / o * 100;
|
|
2359
2351
|
}
|
|
2360
2352
|
return [n, a, e];
|
|
2361
2353
|
},
|
|
2362
2354
|
// Convert HSLuv to LCHuv
|
|
2363
2355
|
toBase(t) {
|
|
2364
|
-
let [e, r, n] = [
|
|
2356
|
+
let [e, r, n] = [S(t[0]), S(t[1]), S(t[2])], a;
|
|
2365
2357
|
if (n > 99.9999999)
|
|
2366
2358
|
n = 100, a = 0;
|
|
2367
2359
|
else if (n < 1e-8)
|
|
2368
2360
|
n = 0, a = 0;
|
|
2369
2361
|
else {
|
|
2370
|
-
let s =
|
|
2371
|
-
a =
|
|
2362
|
+
let s = ve(n);
|
|
2363
|
+
a = Qt(s, e) / 100 * r;
|
|
2372
2364
|
}
|
|
2373
2365
|
return [n, a, e];
|
|
2374
2366
|
},
|
|
@@ -2388,14 +2380,14 @@ x[1][2];
|
|
|
2388
2380
|
x[2][0];
|
|
2389
2381
|
x[2][1];
|
|
2390
2382
|
x[2][2];
|
|
2391
|
-
function
|
|
2383
|
+
function Q(t, e) {
|
|
2392
2384
|
return Math.abs(e) / Math.sqrt(Math.pow(t, 2) + 1);
|
|
2393
2385
|
}
|
|
2394
|
-
function
|
|
2395
|
-
let e =
|
|
2396
|
-
return Math.min(e, r, n, a, s,
|
|
2386
|
+
function Ut(t) {
|
|
2387
|
+
let e = Q(t.r0s, t.r0i), r = Q(t.r1s, t.r1i), n = Q(t.g0s, t.g0i), a = Q(t.g1s, t.g1i), s = Q(t.b0s, t.b0i), o = Q(t.b1s, t.b1i);
|
|
2388
|
+
return Math.min(e, r, n, a, s, o);
|
|
2397
2389
|
}
|
|
2398
|
-
var
|
|
2390
|
+
var j0 = new d({
|
|
2399
2391
|
id: "hpluv",
|
|
2400
2392
|
name: "HPLuv",
|
|
2401
2393
|
coords: {
|
|
@@ -2413,31 +2405,31 @@ var Wn = new m({
|
|
|
2413
2405
|
name: "Lightness"
|
|
2414
2406
|
}
|
|
2415
2407
|
},
|
|
2416
|
-
base:
|
|
2408
|
+
base: at,
|
|
2417
2409
|
gamutSpace: "self",
|
|
2418
2410
|
// Convert LCHuv to HPLuv
|
|
2419
2411
|
fromBase(t) {
|
|
2420
|
-
let [e, r, n] = [
|
|
2412
|
+
let [e, r, n] = [S(t[0]), S(t[1]), S(t[2])], a;
|
|
2421
2413
|
if (e > 99.9999999)
|
|
2422
2414
|
a = 0, e = 100;
|
|
2423
2415
|
else if (e < 1e-8)
|
|
2424
2416
|
a = 0, e = 0;
|
|
2425
2417
|
else {
|
|
2426
|
-
let s =
|
|
2427
|
-
a = r /
|
|
2418
|
+
let s = ve(e), o = Ut(s);
|
|
2419
|
+
a = r / o * 100;
|
|
2428
2420
|
}
|
|
2429
2421
|
return [n, a, e];
|
|
2430
2422
|
},
|
|
2431
2423
|
// Convert HPLuv to LCHuv
|
|
2432
2424
|
toBase(t) {
|
|
2433
|
-
let [e, r, n] = [
|
|
2425
|
+
let [e, r, n] = [S(t[0]), S(t[1]), S(t[2])], a;
|
|
2434
2426
|
if (n > 99.9999999)
|
|
2435
2427
|
n = 100, a = 0;
|
|
2436
2428
|
else if (n < 1e-8)
|
|
2437
2429
|
n = 0, a = 0;
|
|
2438
2430
|
else {
|
|
2439
|
-
let s =
|
|
2440
|
-
a =
|
|
2431
|
+
let s = ve(n);
|
|
2432
|
+
a = Ut(s) / 100 * r;
|
|
2441
2433
|
}
|
|
2442
2434
|
return [n, a, e];
|
|
2443
2435
|
},
|
|
@@ -2448,61 +2440,61 @@ var Wn = new m({
|
|
|
2448
2440
|
}
|
|
2449
2441
|
}
|
|
2450
2442
|
});
|
|
2451
|
-
const
|
|
2452
|
-
var
|
|
2443
|
+
const Kt = 203, Vt = 2610 / 2 ** 14, X0 = 2 ** 14 / 2610, q0 = 2523 / 2 ** 5, er = 2 ** 5 / 2523, tr = 3424 / 2 ** 12, rr = 2413 / 2 ** 7, nr = 2392 / 2 ** 7;
|
|
2444
|
+
var Z0 = new N({
|
|
2453
2445
|
id: "rec2100pq",
|
|
2454
2446
|
cssId: "rec2100-pq",
|
|
2455
2447
|
name: "REC.2100-PQ",
|
|
2456
|
-
base:
|
|
2448
|
+
base: Ne,
|
|
2457
2449
|
toBase(t) {
|
|
2458
2450
|
return t.map(function(e) {
|
|
2459
|
-
return (Math.max(e **
|
|
2451
|
+
return (Math.max(e ** er - tr, 0) / (rr - nr * e ** er)) ** X0 * 1e4 / Kt;
|
|
2460
2452
|
});
|
|
2461
2453
|
},
|
|
2462
2454
|
fromBase(t) {
|
|
2463
2455
|
return t.map(function(e) {
|
|
2464
|
-
let r = Math.max(e *
|
|
2465
|
-
return (n / a) **
|
|
2456
|
+
let r = Math.max(e * Kt / 1e4, 0), n = tr + rr * r ** Vt, a = 1 + nr * r ** Vt;
|
|
2457
|
+
return (n / a) ** q0;
|
|
2466
2458
|
});
|
|
2467
2459
|
}
|
|
2468
2460
|
});
|
|
2469
|
-
const
|
|
2470
|
-
var
|
|
2461
|
+
const ar = 0.17883277, sr = 0.28466892, or = 0.55991073, De = 3.7743;
|
|
2462
|
+
var G0 = new N({
|
|
2471
2463
|
id: "rec2100hlg",
|
|
2472
2464
|
cssId: "rec2100-hlg",
|
|
2473
2465
|
name: "REC.2100-HLG",
|
|
2474
2466
|
referred: "scene",
|
|
2475
|
-
base:
|
|
2467
|
+
base: Ne,
|
|
2476
2468
|
toBase(t) {
|
|
2477
2469
|
return t.map(function(e) {
|
|
2478
|
-
return e <= 0.5 ? e ** 2 / 3 *
|
|
2470
|
+
return e <= 0.5 ? e ** 2 / 3 * De : (Math.exp((e - or) / ar) + sr) / 12 * De;
|
|
2479
2471
|
});
|
|
2480
2472
|
},
|
|
2481
2473
|
fromBase(t) {
|
|
2482
2474
|
return t.map(function(e) {
|
|
2483
|
-
return e /=
|
|
2475
|
+
return e /= De, e <= 1 / 12 ? Math.sqrt(3 * e) : ar * Math.log(12 * e - sr) + or;
|
|
2484
2476
|
});
|
|
2485
2477
|
}
|
|
2486
2478
|
});
|
|
2487
|
-
const
|
|
2479
|
+
const jr = {};
|
|
2488
2480
|
j.add("chromatic-adaptation-start", (t) => {
|
|
2489
|
-
t.options.method && (t.M =
|
|
2481
|
+
t.options.method && (t.M = Xr(t.W1, t.W2, t.options.method));
|
|
2490
2482
|
});
|
|
2491
2483
|
j.add("chromatic-adaptation-end", (t) => {
|
|
2492
|
-
t.M || (t.M =
|
|
2484
|
+
t.M || (t.M = Xr(t.W1, t.W2, t.options.method));
|
|
2493
2485
|
});
|
|
2494
|
-
function
|
|
2495
|
-
|
|
2486
|
+
function $e({ id: t, toCone_M: e, fromCone_M: r }) {
|
|
2487
|
+
jr[t] = arguments[0];
|
|
2496
2488
|
}
|
|
2497
|
-
function
|
|
2498
|
-
let n =
|
|
2499
|
-
[
|
|
2489
|
+
function Xr(t, e, r = "Bradford") {
|
|
2490
|
+
let n = jr[r], [a, s, o] = C(n.toCone_M, t), [i, l, f] = C(n.toCone_M, e), u = [
|
|
2491
|
+
[i / a, 0, 0],
|
|
2500
2492
|
[0, l / s, 0],
|
|
2501
|
-
[0, 0,
|
|
2502
|
-
],
|
|
2503
|
-
return
|
|
2493
|
+
[0, 0, f / o]
|
|
2494
|
+
], c = C(u, n.toCone_M);
|
|
2495
|
+
return C(n.fromCone_M, c);
|
|
2504
2496
|
}
|
|
2505
|
-
|
|
2497
|
+
$e({
|
|
2506
2498
|
id: "von Kries",
|
|
2507
2499
|
toCone_M: [
|
|
2508
2500
|
[0.40024, 0.7076, -0.08081],
|
|
@@ -2515,7 +2507,7 @@ Pe({
|
|
|
2515
2507
|
[0, 0, 1.0890636230968613]
|
|
2516
2508
|
]
|
|
2517
2509
|
});
|
|
2518
|
-
|
|
2510
|
+
$e({
|
|
2519
2511
|
id: "Bradford",
|
|
2520
2512
|
// Convert an array of XYZ values in the range 0.0 - 1.0
|
|
2521
2513
|
// to cone fundamentals
|
|
@@ -2531,7 +2523,7 @@ Pe({
|
|
|
2531
2523
|
[-0.00852866457517732, 0.04004282165408486, 0.96848669578755]
|
|
2532
2524
|
]
|
|
2533
2525
|
});
|
|
2534
|
-
|
|
2526
|
+
$e({
|
|
2535
2527
|
id: "CAT02",
|
|
2536
2528
|
// with complete chromatic adaptation to W2, so D = 1.0
|
|
2537
2529
|
toCone_M: [
|
|
@@ -2545,7 +2537,7 @@ Pe({
|
|
|
2545
2537
|
[-0.009627608738429355, -0.00569803121611342, 1.0153256399545427]
|
|
2546
2538
|
]
|
|
2547
2539
|
});
|
|
2548
|
-
|
|
2540
|
+
$e({
|
|
2549
2541
|
id: "CAT16",
|
|
2550
2542
|
toCone_M: [
|
|
2551
2543
|
[0.401288, 0.650173, -0.051461],
|
|
@@ -2579,16 +2571,16 @@ Object.assign(B, {
|
|
|
2579
2571
|
F11: [1.00962, 1, 0.6435]
|
|
2580
2572
|
});
|
|
2581
2573
|
B.ACES = [0.32168 / 0.33767, 1, (1 - 0.32168 - 0.33767) / 0.33767];
|
|
2582
|
-
const
|
|
2574
|
+
const J0 = [
|
|
2583
2575
|
[0.6624541811085053, 0.13400420645643313, 0.1561876870049078],
|
|
2584
2576
|
[0.27222871678091454, 0.6740817658111484, 0.05368951740793705],
|
|
2585
2577
|
[-0.005574649490394108, 0.004060733528982826, 1.0103391003129971]
|
|
2586
|
-
],
|
|
2578
|
+
], F0 = [
|
|
2587
2579
|
[1.6410233796943257, -0.32480329418479, -0.23642469523761225],
|
|
2588
2580
|
[-0.6636628587229829, 1.6153315916573379, 0.016756347685530137],
|
|
2589
2581
|
[0.011721894328375376, -0.008284441996237409, 0.9883948585390215]
|
|
2590
2582
|
];
|
|
2591
|
-
var
|
|
2583
|
+
var qr = new N({
|
|
2592
2584
|
id: "acescg",
|
|
2593
2585
|
cssId: "--acescg",
|
|
2594
2586
|
name: "ACEScg",
|
|
@@ -2611,11 +2603,11 @@ var W0 = new z({
|
|
|
2611
2603
|
},
|
|
2612
2604
|
referred: "scene",
|
|
2613
2605
|
white: B.ACES,
|
|
2614
|
-
toXYZ_M:
|
|
2615
|
-
fromXYZ_M:
|
|
2606
|
+
toXYZ_M: J0,
|
|
2607
|
+
fromXYZ_M: F0
|
|
2616
2608
|
});
|
|
2617
|
-
const
|
|
2618
|
-
var
|
|
2609
|
+
const Ce = 2 ** -16, je = -0.35828683, _e = (Math.log2(65504) + 9.72) / 17.52;
|
|
2610
|
+
var W0 = new N({
|
|
2619
2611
|
id: "acescc",
|
|
2620
2612
|
cssId: "--acescc",
|
|
2621
2613
|
name: "ACEScc",
|
|
@@ -2628,71 +2620,71 @@ var ra = new z({
|
|
|
2628
2620
|
// so that all positive ACES values are maintained."
|
|
2629
2621
|
coords: {
|
|
2630
2622
|
r: {
|
|
2631
|
-
range: [
|
|
2623
|
+
range: [je, _e],
|
|
2632
2624
|
name: "Red"
|
|
2633
2625
|
},
|
|
2634
2626
|
g: {
|
|
2635
|
-
range: [
|
|
2627
|
+
range: [je, _e],
|
|
2636
2628
|
name: "Green"
|
|
2637
2629
|
},
|
|
2638
2630
|
b: {
|
|
2639
|
-
range: [
|
|
2631
|
+
range: [je, _e],
|
|
2640
2632
|
name: "Blue"
|
|
2641
2633
|
}
|
|
2642
2634
|
},
|
|
2643
2635
|
referred: "scene",
|
|
2644
|
-
base:
|
|
2636
|
+
base: qr,
|
|
2645
2637
|
// from section 4.4.2 Decoding Function
|
|
2646
2638
|
toBase(t) {
|
|
2647
2639
|
const e = -0.3013698630136986;
|
|
2648
2640
|
return t.map(function(r) {
|
|
2649
|
-
return r <= e ? (2 ** (r * 17.52 - 9.72) -
|
|
2641
|
+
return r <= e ? (2 ** (r * 17.52 - 9.72) - Ce) * 2 : r < _e ? 2 ** (r * 17.52 - 9.72) : 65504;
|
|
2650
2642
|
});
|
|
2651
2643
|
},
|
|
2652
2644
|
// Non-linear encoding function from S-2014-003, section 4.4.1 Encoding Function
|
|
2653
2645
|
fromBase(t) {
|
|
2654
2646
|
return t.map(function(e) {
|
|
2655
|
-
return e <= 0 ? (Math.log2(
|
|
2647
|
+
return e <= 0 ? (Math.log2(Ce) + 9.72) / 17.52 : e < Ce ? (Math.log2(Ce + e * 0.5) + 9.72) / 17.52 : (Math.log2(e) + 9.72) / 17.52;
|
|
2656
2648
|
});
|
|
2657
2649
|
}
|
|
2658
2650
|
// encoded media white (rgb 1,1,1) => linear [ 222.861, 222.861, 222.861 ]
|
|
2659
2651
|
// encoded media black (rgb 0,0,0) => linear [ 0.0011857, 0.0011857, 0.0011857]
|
|
2660
|
-
}),
|
|
2652
|
+
}), ir = /* @__PURE__ */ Object.freeze({
|
|
2661
2653
|
__proto__: null,
|
|
2662
|
-
A98RGB:
|
|
2663
|
-
A98RGB_Linear:
|
|
2664
|
-
ACEScc:
|
|
2665
|
-
ACEScg:
|
|
2666
|
-
CAM16_JMh:
|
|
2667
|
-
HCT:
|
|
2668
|
-
HPLuv:
|
|
2669
|
-
HSL:
|
|
2670
|
-
HSLuv:
|
|
2671
|
-
HSV:
|
|
2672
|
-
HWB:
|
|
2673
|
-
ICTCP:
|
|
2674
|
-
JzCzHz:
|
|
2675
|
-
Jzazbz:
|
|
2676
|
-
LCH:
|
|
2677
|
-
LCHuv:
|
|
2678
|
-
Lab:
|
|
2679
|
-
Lab_D65:
|
|
2680
|
-
Luv:
|
|
2681
|
-
OKLCH:
|
|
2682
|
-
OKLab:
|
|
2683
|
-
P3:
|
|
2684
|
-
P3_Linear:
|
|
2685
|
-
ProPhoto:
|
|
2686
|
-
ProPhoto_Linear:
|
|
2687
|
-
REC_2020:
|
|
2688
|
-
REC_2020_Linear:
|
|
2689
|
-
REC_2100_HLG:
|
|
2690
|
-
REC_2100_PQ:
|
|
2691
|
-
XYZ_ABS_D65:
|
|
2692
|
-
XYZ_D50:
|
|
2693
|
-
XYZ_D65:
|
|
2694
|
-
sRGB:
|
|
2695
|
-
sRGB_Linear:
|
|
2654
|
+
A98RGB: $0,
|
|
2655
|
+
A98RGB_Linear: Tr,
|
|
2656
|
+
ACEScc: W0,
|
|
2657
|
+
ACEScg: qr,
|
|
2658
|
+
CAM16_JMh: Hn,
|
|
2659
|
+
HCT: le,
|
|
2660
|
+
HPLuv: j0,
|
|
2661
|
+
HSL: kr,
|
|
2662
|
+
HSLuv: D0,
|
|
2663
|
+
HSV: Hr,
|
|
2664
|
+
HWB: B0,
|
|
2665
|
+
ICTCP: Ge,
|
|
2666
|
+
JzCzHz: Ze,
|
|
2667
|
+
Jzazbz: Mr,
|
|
2668
|
+
LCH: ie,
|
|
2669
|
+
LCHuv: at,
|
|
2670
|
+
Lab: z,
|
|
2671
|
+
Lab_D65: We,
|
|
2672
|
+
Luv: Dr,
|
|
2673
|
+
OKLCH: H0,
|
|
2674
|
+
OKLab: U,
|
|
2675
|
+
P3: $r,
|
|
2676
|
+
P3_Linear: Nr,
|
|
2677
|
+
ProPhoto: k0,
|
|
2678
|
+
ProPhoto_Linear: Or,
|
|
2679
|
+
REC_2020: Br,
|
|
2680
|
+
REC_2020_Linear: Ne,
|
|
2681
|
+
REC_2100_HLG: G0,
|
|
2682
|
+
REC_2100_PQ: Z0,
|
|
2683
|
+
XYZ_ABS_D65: tt,
|
|
2684
|
+
XYZ_D50: et,
|
|
2685
|
+
XYZ_D65: v,
|
|
2686
|
+
sRGB: ee,
|
|
2687
|
+
sRGB_Linear: Ir
|
|
2696
2688
|
});
|
|
2697
2689
|
class w {
|
|
2698
2690
|
/**
|
|
@@ -2706,21 +2698,21 @@ class w {
|
|
|
2706
2698
|
*/
|
|
2707
2699
|
constructor(...e) {
|
|
2708
2700
|
let r;
|
|
2709
|
-
e.length === 1 && (r =
|
|
2701
|
+
e.length === 1 && (r = g(e[0]));
|
|
2710
2702
|
let n, a, s;
|
|
2711
2703
|
r ? (n = r.space || r.spaceId, a = r.coords, s = r.alpha) : [n, a, s] = e, Object.defineProperty(this, "space", {
|
|
2712
|
-
value:
|
|
2704
|
+
value: d.get(n),
|
|
2713
2705
|
writable: !1,
|
|
2714
2706
|
enumerable: !0,
|
|
2715
2707
|
configurable: !0
|
|
2716
2708
|
// see note in https://262.ecma-international.org/8.0/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver
|
|
2717
2709
|
}), this.coords = a ? a.slice() : [0, 0, 0], this.alpha = s > 1 || s === void 0 ? 1 : s < 0 ? 0 : s;
|
|
2718
|
-
for (let
|
|
2719
|
-
this.coords[
|
|
2720
|
-
for (let
|
|
2721
|
-
Object.defineProperty(this,
|
|
2722
|
-
get: () => this.get(
|
|
2723
|
-
set: (
|
|
2710
|
+
for (let o = 0; o < this.coords.length; o++)
|
|
2711
|
+
this.coords[o] === "NaN" && (this.coords[o] = NaN);
|
|
2712
|
+
for (let o in this.space.coords)
|
|
2713
|
+
Object.defineProperty(this, o, {
|
|
2714
|
+
get: () => this.get(o),
|
|
2715
|
+
set: (i) => this.set(o, i)
|
|
2724
2716
|
});
|
|
2725
2717
|
}
|
|
2726
2718
|
get spaceId() {
|
|
@@ -2737,7 +2729,7 @@ class w {
|
|
|
2737
2729
|
};
|
|
2738
2730
|
}
|
|
2739
2731
|
display(...e) {
|
|
2740
|
-
let r =
|
|
2732
|
+
let r = Vn(this, ...e);
|
|
2741
2733
|
return r.color = new w(r.color), r;
|
|
2742
2734
|
}
|
|
2743
2735
|
/**
|
|
@@ -2748,21 +2740,21 @@ class w {
|
|
|
2748
2740
|
return e instanceof w ? e : new w(e, ...r);
|
|
2749
2741
|
}
|
|
2750
2742
|
static defineFunction(e, r, n = r) {
|
|
2751
|
-
let { instance: a = !0, returns: s } = n,
|
|
2752
|
-
let l = r(...
|
|
2743
|
+
let { instance: a = !0, returns: s } = n, o = function(...i) {
|
|
2744
|
+
let l = r(...i);
|
|
2753
2745
|
if (s === "color")
|
|
2754
2746
|
l = w.get(l);
|
|
2755
2747
|
else if (s === "function<color>") {
|
|
2756
|
-
let
|
|
2748
|
+
let f = l;
|
|
2757
2749
|
l = function(...u) {
|
|
2758
|
-
let
|
|
2759
|
-
return w.get(
|
|
2760
|
-
}, Object.assign(l,
|
|
2761
|
-
} else s === "array<color>" && (l = l.map((
|
|
2750
|
+
let c = f(...u);
|
|
2751
|
+
return w.get(c);
|
|
2752
|
+
}, Object.assign(l, f);
|
|
2753
|
+
} else s === "array<color>" && (l = l.map((f) => w.get(f)));
|
|
2762
2754
|
return l;
|
|
2763
2755
|
};
|
|
2764
|
-
e in w || (w[e] =
|
|
2765
|
-
return
|
|
2756
|
+
e in w || (w[e] = o), a && (w.prototype[e] = function(...i) {
|
|
2757
|
+
return o(this, ...i);
|
|
2766
2758
|
});
|
|
2767
2759
|
}
|
|
2768
2760
|
static defineFunctions(e) {
|
|
@@ -2778,38 +2770,37 @@ class w {
|
|
|
2778
2770
|
}
|
|
2779
2771
|
}
|
|
2780
2772
|
w.defineFunctions({
|
|
2781
|
-
get:
|
|
2782
|
-
getAll:
|
|
2783
|
-
set:
|
|
2784
|
-
setAll:
|
|
2785
|
-
to:
|
|
2786
|
-
equals:
|
|
2787
|
-
inGamut:
|
|
2788
|
-
toGamut:
|
|
2789
|
-
distance:
|
|
2790
|
-
toString:
|
|
2773
|
+
get: $,
|
|
2774
|
+
getAll: ue,
|
|
2775
|
+
set: T,
|
|
2776
|
+
setAll: Ve,
|
|
2777
|
+
to: y,
|
|
2778
|
+
equals: e0,
|
|
2779
|
+
inGamut: G,
|
|
2780
|
+
toGamut: X,
|
|
2781
|
+
distance: br,
|
|
2782
|
+
toString: se
|
|
2791
2783
|
});
|
|
2792
2784
|
Object.assign(w, {
|
|
2793
|
-
util:
|
|
2785
|
+
util: Ur,
|
|
2794
2786
|
hooks: j,
|
|
2795
2787
|
WHITES: B,
|
|
2796
|
-
Space:
|
|
2797
|
-
spaces:
|
|
2798
|
-
parse:
|
|
2788
|
+
Space: d,
|
|
2789
|
+
spaces: d.registry,
|
|
2790
|
+
parse: gr,
|
|
2799
2791
|
// Global defaults one may want to configure
|
|
2800
|
-
defaults:
|
|
2792
|
+
defaults: P
|
|
2801
2793
|
});
|
|
2802
|
-
for (let t of Object.keys(
|
|
2803
|
-
|
|
2804
|
-
for (let t in
|
|
2805
|
-
|
|
2794
|
+
for (let t of Object.keys(ir))
|
|
2795
|
+
d.register(ir[t]);
|
|
2796
|
+
for (let t in d.registry)
|
|
2797
|
+
Qe(t, d.registry[t]);
|
|
2806
2798
|
j.add("colorspace-init-end", (t) => {
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
Ke(r, t);
|
|
2799
|
+
Qe(t.id, t), t.aliases?.forEach((e) => {
|
|
2800
|
+
Qe(e, t);
|
|
2810
2801
|
});
|
|
2811
2802
|
});
|
|
2812
|
-
function
|
|
2803
|
+
function Qe(t, e) {
|
|
2813
2804
|
let r = t.replace(/-/g, "_");
|
|
2814
2805
|
Object.defineProperty(w.prototype, r, {
|
|
2815
2806
|
// Convert coords to coords in another colorspace and return them
|
|
@@ -2820,26 +2811,26 @@ function Ke(t, e) {
|
|
|
2820
2811
|
return typeof Proxy > "u" ? n : new Proxy(n, {
|
|
2821
2812
|
has: (a, s) => {
|
|
2822
2813
|
try {
|
|
2823
|
-
return
|
|
2814
|
+
return d.resolveCoord([e, s]), !0;
|
|
2824
2815
|
} catch {
|
|
2825
2816
|
}
|
|
2826
2817
|
return Reflect.has(a, s);
|
|
2827
2818
|
},
|
|
2828
|
-
get: (a, s,
|
|
2819
|
+
get: (a, s, o) => {
|
|
2829
2820
|
if (s && typeof s != "symbol" && !(s in a)) {
|
|
2830
|
-
let { index:
|
|
2831
|
-
if (
|
|
2832
|
-
return a[
|
|
2821
|
+
let { index: i } = d.resolveCoord([e, s]);
|
|
2822
|
+
if (i >= 0)
|
|
2823
|
+
return a[i];
|
|
2833
2824
|
}
|
|
2834
|
-
return Reflect.get(a, s,
|
|
2825
|
+
return Reflect.get(a, s, o);
|
|
2835
2826
|
},
|
|
2836
|
-
set: (a, s,
|
|
2827
|
+
set: (a, s, o, i) => {
|
|
2837
2828
|
if (s && typeof s != "symbol" && !(s in a) || s >= 0) {
|
|
2838
|
-
let { index: l } =
|
|
2829
|
+
let { index: l } = d.resolveCoord([e, s]);
|
|
2839
2830
|
if (l >= 0)
|
|
2840
|
-
return a[l] =
|
|
2831
|
+
return a[l] = o, this.setAll(t, a), !0;
|
|
2841
2832
|
}
|
|
2842
|
-
return Reflect.set(a, s,
|
|
2833
|
+
return Reflect.set(a, s, o, i);
|
|
2843
2834
|
}
|
|
2844
2835
|
});
|
|
2845
2836
|
},
|
|
@@ -2853,15 +2844,15 @@ function Ke(t, e) {
|
|
|
2853
2844
|
enumerable: !0
|
|
2854
2845
|
});
|
|
2855
2846
|
}
|
|
2856
|
-
w.extend(
|
|
2857
|
-
w.extend({ deltaE:
|
|
2858
|
-
Object.assign(w, { deltaEMethods:
|
|
2859
|
-
w.extend(
|
|
2860
|
-
w.extend({ contrast:
|
|
2861
|
-
w.extend(
|
|
2862
|
-
w.extend(
|
|
2863
|
-
w.extend(
|
|
2864
|
-
w.extend(
|
|
2847
|
+
w.extend(V);
|
|
2848
|
+
w.extend({ deltaE: ae });
|
|
2849
|
+
Object.assign(w, { deltaEMethods: V });
|
|
2850
|
+
w.extend(R0);
|
|
2851
|
+
w.extend({ contrast: y0 });
|
|
2852
|
+
w.extend(_0);
|
|
2853
|
+
w.extend(r0);
|
|
2854
|
+
w.extend(v0);
|
|
2855
|
+
w.extend(Le);
|
|
2865
2856
|
export {
|
|
2866
2857
|
w as C
|
|
2867
2858
|
};
|