UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

6 lines 2.61 kB
/*! * All material copyright ESRI, All Rights Reserved, unless otherwise specified. * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details. * v1.5.0-next.4 */ const n=/^[0-9A-F]$/i,r=/^#[0-9A-F]{3}$/i,t=/^#[0-9A-F]{6}$/i,e=/^#[0-9A-F]{4}$/i,s=/^#[0-9A-F]{8}$/i,u=n=>Number((100*n).toFixed()),a=n=>Number((n/100).toFixed(2));function i(n,r=!1){return c(n,r)||o(n,r)}function f(n,r,t){return!!n&&n.length===r&&t.test(n)}function c(n,t=!1){return f(n,t?5:4,t?e:r)}function o(n,r=!1){return f(n,r?9:7,r?s:t)}function $(n,r=!1,t=!1){return(n=n.toLowerCase()).startsWith("#")||(n=`#${n}`),c(n,r)?h(S(n,r)):r&&t&&i(n,!1)?h(S(`${n}${c(n,!1)?"f":"ff"}`,!0)):n}function l(n,r=!1){return r?n.hexa():n.hex()}function h(n){const{r,g:t,b:e}=n;return`#${b(r)}${b(t)}${b(e)}${"a"in n?b(255*n.a):""}`.toLowerCase()}function b(n){return n.toString(16).padStart(2,"0")}function g(n){const r={...n,a:n.alpha??1};return delete r.alpha,r}function p(n){const r={...n,alpha:n.a??1};return delete r.a,r}function S(n,r=!1){if(!i(n,r))return null;let t,e,s,u;if(3===(n=n.replace("#","")).length||4===n.length){const[r,a,i,f]=n.split("");t=parseInt(`${r}${r}`,16),e=parseInt(`${a}${a}`,16),s=parseInt(`${i}${i}`,16),u=parseInt(`${f}${f}`,16)/255}else t=parseInt(n.slice(0,2),16),e=parseInt(n.slice(2,4),16),s=parseInt(n.slice(4,6),16),u=parseInt(n.slice(6,8),16)/255;return isNaN(u)?{r:t,g:e,b:s}:{r:t,g:e,b:s,a:u}}const A={HEX:"hex",HEXA:"hexa",RGB_CSS:"rgb-css",RGBA_CSS:"rgba-css",HSL_CSS:"hsl-css",HSLA_CSS:"hsla-css"},I="rgb",C="rgba",F="hsl",H="hsla",N="hsv",_="hsva";function d(n){if("string"==typeof n){if(n.startsWith("#")){const{length:r}=n;if(4===r||7===r)return A.HEX;if(5===r||9===r)return A.HEXA}if(n.startsWith("rgba("))return A.RGBA_CSS;if(n.startsWith("rgb("))return A.RGB_CSS;if(n.startsWith("hsl("))return A.HSL_CSS;if(n.startsWith("hsla("))return A.HSLA_CSS}if("object"==typeof n){if(v(n,"r","g","b"))return v(n,"a")?C:I;if(v(n,"h","s","l"))return v(n,"a")?H:F;if(v(n,"h","s","v"))return v(n,"a")?_:N}return null}function v(n,...r){return r.every((r=>r&&n&&`${r}`in n))}function x(n,r){return n?.rgb().array().toString()===r?.rgb().array().toString()}function j(n){return n===A.HEXA||n===A.RGBA_CSS||n===A.HSLA_CSS||n===C||n===H||n===_}function m(n){return n===A.HEX?A.HEXA:n===A.RGB_CSS?A.RGBA_CSS:n===A.HSL_CSS?A.HSLA_CSS:n===I?C:n===F?H:n===N?_:n}function y(n){return n===A.HEXA?A.HEX:n===A.RGBA_CSS?A.RGB_CSS:n===A.HSLA_CSS?A.HSL_CSS:n===C?I:n===H?F:n===_?N:n}export{A as C,l as a,u as b,j as c,x as d,g as e,m as f,p as g,S as h,i,o as j,n as k,$ as n,a as o,d as p,h as r,y as t}