@cas-smartdesign/element-utils 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/colorcontrastcalculator.d.ts +4 -0
- package/dist/docs/color-contrast-calculator.js +1 -0
- package/dist/docs/doc.mjs +55 -17
- package/dist/element-utils-with-externals.js +1 -1
- package/dist/element-utils-with-externals.js.map +4 -4
- package/dist/element-utils.d.ts +2 -12
- package/dist/element-utils.mjs +36 -20
- package/dist/element-utils.mjs.map +1 -1
- package/dist/keydowndelegator.d.ts +12 -0
- package/npm-third-party-licenses.json +46 -36
- package/package.json +7 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var window;(window||={})["@cas-smartdesign/element-utils"]=(()=>{var
|
|
1
|
+
var window;(window||={})["@cas-smartdesign/element-utils"]=(()=>{var N=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var r in t)N(e,r,{get:t[r],enumerable:!0})},B=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of S(t))!U.call(e,n)&&n!==r&&N(e,n,{get:()=>t[n],enumerable:!(a=j(t,n))||a.enumerable});return e};var G=e=>B(N({},"__esModule",{value:!0}),e);var ne={};z(ne,{ColorContrastCalculator:()=>A,KeyDownDelegator:()=>M});function w(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function E(e,t){var r=Object.create(e.prototype);for(var a in t)r[a]=t[a];return r}function b(){}var u=.7,v=1/u,h="\\s*([+-]?\\d+)\\s*",g="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",x="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",J=/^#([0-9a-f]{3,8})$/,Q=new RegExp(`^rgb\\(${h},${h},${h}\\)$`),V=new RegExp(`^rgb\\(${x},${x},${x}\\)$`),W=new RegExp(`^rgba\\(${h},${h},${h},${g}\\)$`),X=new RegExp(`^rgba\\(${x},${x},${x},${g}\\)$`),Y=new RegExp(`^hsl\\(${g},${x},${x}\\)$`),Z=new RegExp(`^hsla\\(${g},${x},${x},${g}\\)$`),T={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};w(b,p,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:C,formatHex:C,formatHex8:ee,formatHsl:te,formatRgb:q,toString:q});function C(){return this.rgb().formatHex()}function ee(){return this.rgb().formatHex8()}function te(){return I(this).formatHsl()}function q(){return this.rgb().formatRgb()}function p(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=J.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?F(t):r===3?new i(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?y(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?y(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Q.exec(e))?new i(t[1],t[2],t[3],1):(t=V.exec(e))?new i(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=W.exec(e))?y(t[1],t[2],t[3],t[4]):(t=X.exec(e))?y(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Y.exec(e))?P(t[1],t[2]/100,t[3]/100,1):(t=Z.exec(e))?P(t[1],t[2]/100,t[3]/100,t[4]):T.hasOwnProperty(e)?F(T[e]):e==="transparent"?new i(NaN,NaN,NaN,0):null}function F(e){return new i(e>>16&255,e>>8&255,e&255,1)}function y(e,t,r,a){return a<=0&&(e=t=r=NaN),new i(e,t,r,a)}function re(e){return e instanceof b||(e=p(e)),e?(e=e.rgb(),new i(e.r,e.g,e.b,e.opacity)):new i}function H(e,t,r,a){return arguments.length===1?re(e):new i(e,t,r,a??1)}function i(e,t,r,a){this.r=+e,this.g=+t,this.b=+r,this.opacity=+a}w(i,H,E(b,{brighter(e){return e=e==null?v:Math.pow(v,e),new i(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?u:Math.pow(u,e),new i(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new i(d(this.r),d(this.g),d(this.b),k(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:L,formatHex:L,formatHex8:ae,formatRgb:D,toString:D}));function L(){return`#${c(this.r)}${c(this.g)}${c(this.b)}`}function ae(){return`#${c(this.r)}${c(this.g)}${c(this.b)}${c((isNaN(this.opacity)?1:this.opacity)*255)}`}function D(){let e=k(this.opacity);return`${e===1?"rgb(":"rgba("}${d(this.r)}, ${d(this.g)}, ${d(this.b)}${e===1?")":`, ${e})`}`}function k(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function d(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function c(e){return e=d(e),(e<16?"0":"")+e.toString(16)}function P(e,t,r,a){return a<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new o(e,t,r,a)}function I(e){if(e instanceof o)return new o(e.h,e.s,e.l,e.opacity);if(e instanceof b||(e=p(e)),!e)return new o;if(e instanceof o)return e;e=e.rgb();var t=e.r/255,r=e.g/255,a=e.b/255,n=Math.min(t,r,a),f=Math.max(t,r,a),s=NaN,l=f-n,m=(f+n)/2;return l?(t===f?s=(r-a)/l+(r<a)*6:r===f?s=(a-t)/l+2:s=(t-r)/l+4,l/=m<.5?f+n:2-f-n,s*=60):l=m>0&&m<1?0:s,new o(s,l,m,e.opacity)}function O(e,t,r,a){return arguments.length===1?I(e):new o(e,t,r,a??1)}function o(e,t,r,a){this.h=+e,this.s=+t,this.l=+r,this.opacity=+a}w(o,O,E(b,{brighter(e){return e=e==null?v:Math.pow(v,e),new o(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?u:Math.pow(u,e),new o(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,a=r+(r<.5?r:1-r)*t,n=2*r-a;return new i(R(e>=240?e-240:e+120,n,a),R(e,n,a),R(e<120?e+240:e-120,n,a),this.opacity)},clamp(){return new o(K(this.h),$(this.s),$(this.l),k(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=k(this.opacity);return`${e===1?"hsl(":"hsla("}${K(this.h)}, ${$(this.s)*100}%, ${$(this.l)*100}%${e===1?")":`, ${e})`}`}}));function K(e){return e=(e||0)%360,e<0?e+360:e}function $(e){return Math.max(0,Math.min(1,e||0))}function R(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}var M=class e{constructor(t,r){this.eventTarget=t,this.keydownHandler=r,this.catchedKeys=["Down","ArrowDown","Up","ArrowUp","Enter"],this.markAsFocusTargetHandler=()=>this.eventTarget.setAttribute("focus-target",""),this.unmarkAsFocusTargetHandler=()=>this.eventTarget.removeAttribute("focus-target"),this.delegateKeyDownEvent=a=>{if(this.catchedKeys.indexOf(a.key)!==-1){let n=a.key.toLocaleLowerCase(),f=0,s=n.includes("enter");s||(f=n.includes("down")?1:-1),this.keydownHandler(a,f,s),a.preventDefault(),a.stopPropagation(),a.stopImmediatePropagation()}}}static delegateTo(t){return new e(t,r=>t.dispatchEvent(new KeyboardEvent(r.type,r)))}connect(t){if(t!=null){t.addEventListener("keydown",this.delegateKeyDownEvent),t.addEventListener("focus",this.markAsFocusTargetHandler),t.addEventListener("blur",this.unmarkAsFocusTargetHandler);let r=document.activeElement;(t.contains(r)||t.shadowRoot?.activeElement?.contains(r))&&this.markAsFocusTargetHandler()}}disconnect(t){t!=null&&(t.removeEventListener("keydown",this.delegateKeyDownEvent),t.removeEventListener("focus",this.markAsFocusTargetHandler),t.removeEventListener("blur",this.unmarkAsFocusTargetHandler),this.unmarkAsFocusTargetHandler())}},A=class e{static getContrast(t,r){let a=_(t)+.05,n=_(r)+.05;return a>n?a/n:n/a}static shouldUseBrightForeground(t,r,a){let n=e.getContrast(t,r),f=e.getContrast(t,a);return n>4.5?!0:n>f}};function _(e){let t=H(e),r=t.r/255,a=t.g/255,n=t.b/255,f=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4),s=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4),l=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4);return .2126*f+.7152*s+.0722*l}return G(ne);})();
|
|
2
2
|
//# sourceMappingURL=element-utils-with-externals.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["export class KeyDownDelegator {\n private readonly catchedKeys = [\"Down\", \"ArrowDown\", \"Up\", \"ArrowUp\", \"Enter\"];\n\n static delegateTo(eventTarget: HTMLElement): KeyDownDelegator {\n return new KeyDownDelegator(eventTarget, (event) =>\n eventTarget.dispatchEvent(new KeyboardEvent(event.type, event)),\n );\n }\n\n constructor(\n private eventTarget: HTMLElement,\n private keydownHandler: (event: KeyboardEvent, offset: number, toggleSelection: boolean) => void,\n ) {}\n\n private markAsFocusTargetHandler = () => this.eventTarget.setAttribute(\"focus-target\", \"\");\n private unmarkAsFocusTargetHandler = () => this.eventTarget.removeAttribute(\"focus-target\");\n\n private delegateKeyDownEvent = (event: KeyboardEvent) => {\n if (this.catchedKeys.indexOf(event.key) !== -1) {\n const lowercaseKey = event.key.toLocaleLowerCase();\n let offset = 0;\n const toggleSelection = lowercaseKey.includes(\"enter\");\n if (!toggleSelection) {\n offset = lowercaseKey.includes(\"down\") ? 1 : -1;\n }\n this.keydownHandler(event, offset, toggleSelection);\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n };\n\n public connect(sourceElement?: HTMLElement): void {\n if (sourceElement != null) {\n sourceElement.addEventListener(\"keydown\", this.delegateKeyDownEvent);\n sourceElement.addEventListener(\"focus\", this.markAsFocusTargetHandler);\n sourceElement.addEventListener(\"blur\", this.unmarkAsFocusTargetHandler);\n const activeElement = document.activeElement;\n if (\n sourceElement.contains(activeElement) ||\n sourceElement.shadowRoot?.activeElement?.contains(activeElement)\n ) {\n this.markAsFocusTargetHandler();\n }\n }\n }\n\n public disconnect(sourceElement?: HTMLElement): void {\n if (sourceElement != null) {\n sourceElement.removeEventListener(\"keydown\", this.delegateKeyDownEvent);\n sourceElement.removeEventListener(\"focus\", this.markAsFocusTargetHandler);\n sourceElement.removeEventListener(\"blur\", this.unmarkAsFocusTargetHandler);\n this.unmarkAsFocusTargetHandler();\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "6dAAO,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAME,EAAN,MAAMA,CAAiB,CAS1B,YACYC,EACAC,EACV,CAFU,KAAA,YAAAD,EACA,KAAA,eAAAC,EAVZ,KAAiB,YAAc,CAAC,OAAQ,YAAa,KAAM,UAAW,OAAO,EAa7E,KAAQ,yBAA2B,IAAM,KAAK,YAAY,aAAa,eAAgB,EAAE,EACzF,KAAQ,2BAA6B,IAAM,KAAK,YAAY,gBAAgB,cAAc,EAE1F,KAAQ,qBAAwBC,GAAyB,CACrD,GAAI,KAAK,YAAY,QAAQA,EAAM,GAAG,IAAM,GAAI,CAC5C,IAAMC,EAAeD,EAAM,IAAI,kBAAA,EAC3BE,EAAS,EACPC,EAAkBF,EAAa,SAAS,OAAO,EAChDE,IACDD,EAASD,EAAa,SAAS,MAAM,EAAI,EAAI,IAEjD,KAAK,eAAeD,EAAOE,EAAQC,CAAe,EAClDH,EAAM,eAAA,EACNA,EAAM,gBAAA,EACNA,EAAM,yBAAA,CACV,CACJ,CAlBG,CATH,OAAO,WAAWF,EAA4C,CAC1D,OAAO,IAAID,EAAiBC,EAAcE,GACtCF,EAAY,cAAc,IAAI,cAAcE,EAAM,KAAMA,CAAK,CAAC,CAAA,CAEtE,CAyBO,QAAQI,EAAmC,CAC9C,GAAIA,GAAiB,KAAM,CACvBA,EAAc,iBAAiB,UAAW,KAAK,oBAAoB,EACnEA,EAAc,iBAAiB,QAAS,KAAK,wBAAwB,EACrEA,EAAc,iBAAiB,OAAQ,KAAK,0BAA0B,EACtE,IAAMC,EAAgB,SAAS,eAE3BD,EAAc,SAASC,CAAa,GACpCD,EAAc,YAAY,eAAe,SAASC,CAAa,IAE/D,KAAK,yBAAA,CAEb,CACJ,CAEO,WAAWD,EAAmC,CAC7CA,GAAiB,OACjBA,EAAc,oBAAoB,UAAW,KAAK,oBAAoB,EACtEA,EAAc,oBAAoB,QAAS,KAAK,wBAAwB,EACxEA,EAAc,oBAAoB,OAAQ,KAAK,0BAA0B,EACzE,KAAK,2BAAA,EAEb,CACJ",
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js", "../../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js", "../keydowndelegator.ts", "../colorcontrastcalculator.ts"],
|
|
4
|
+
"sourcesContent": ["export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n", "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n", "export class KeyDownDelegator {\n private readonly catchedKeys = [\"Down\", \"ArrowDown\", \"Up\", \"ArrowUp\", \"Enter\"];\n\n static delegateTo(eventTarget: HTMLElement): KeyDownDelegator {\n return new KeyDownDelegator(eventTarget, (event) =>\n eventTarget.dispatchEvent(new KeyboardEvent(event.type, event)),\n );\n }\n\n constructor(\n private eventTarget: HTMLElement,\n private keydownHandler: (event: KeyboardEvent, offset: number, toggleSelection: boolean) => void,\n ) {}\n\n private markAsFocusTargetHandler = () => this.eventTarget.setAttribute(\"focus-target\", \"\");\n private unmarkAsFocusTargetHandler = () => this.eventTarget.removeAttribute(\"focus-target\");\n\n private delegateKeyDownEvent = (event: KeyboardEvent) => {\n if (this.catchedKeys.indexOf(event.key) !== -1) {\n const lowercaseKey = event.key.toLocaleLowerCase();\n let offset = 0;\n const toggleSelection = lowercaseKey.includes(\"enter\");\n if (!toggleSelection) {\n offset = lowercaseKey.includes(\"down\") ? 1 : -1;\n }\n this.keydownHandler(event, offset, toggleSelection);\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n };\n\n public connect(sourceElement?: HTMLElement): void {\n if (sourceElement != null) {\n sourceElement.addEventListener(\"keydown\", this.delegateKeyDownEvent);\n sourceElement.addEventListener(\"focus\", this.markAsFocusTargetHandler);\n sourceElement.addEventListener(\"blur\", this.unmarkAsFocusTargetHandler);\n const activeElement = document.activeElement;\n if (\n sourceElement.contains(activeElement) ||\n sourceElement.shadowRoot?.activeElement?.contains(activeElement)\n ) {\n this.markAsFocusTargetHandler();\n }\n }\n }\n\n public disconnect(sourceElement?: HTMLElement): void {\n if (sourceElement != null) {\n sourceElement.removeEventListener(\"keydown\", this.delegateKeyDownEvent);\n sourceElement.removeEventListener(\"focus\", this.markAsFocusTargetHandler);\n sourceElement.removeEventListener(\"blur\", this.unmarkAsFocusTargetHandler);\n this.unmarkAsFocusTargetHandler();\n }\n }\n}\n", "import { rgb as d3rgb } from \"d3-color\";\n\nexport class ColorContrastCalculator {\n public static getContrast(color1: string, color2: string): number {\n const luminance1 = relativeLuminanceW3C(color1) + 0.05;\n const luminance2 = relativeLuminanceW3C(color2) + 0.05;\n return luminance1 > luminance2 ? luminance1 / luminance2 : luminance2 / luminance1;\n }\n\n public static shouldUseBrightForeground(base: string, brightColor: string, darkColor: string) {\n const brightColorContrast = ColorContrastCalculator.getContrast(base, brightColor);\n const darkColorContrast = ColorContrastCalculator.getContrast(base, darkColor);\n if (brightColorContrast > 4.5) {\n return true;\n }\n return brightColorContrast > darkColorContrast;\n }\n}\n\n// from http://www.w3.org/TR/WCAG20/#relativeluminancedef\nfunction relativeLuminanceW3C(color: string) {\n const rgb = d3rgb(color);\n const RsRGB = rgb.r / 255;\n const GsRGB = rgb.g / 255;\n const BsRGB = rgb.b / 255;\n\n const R = RsRGB <= 0.03928 ? RsRGB / 12.92 : Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n const G = GsRGB <= 0.03928 ? GsRGB / 12.92 : Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n const B = BsRGB <= 0.03928 ? BsRGB / 12.92 : Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n\n // For the sRGB colorspace, the relative luminance of a color is defined as:\n const L = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n\n return L;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["define_default", "constructor", "factory", "prototype", "extend", "parent", "definition", "key", "Color", "darker", "brighter", "reI", "reN", "reP", "reHex", "reRgbInteger", "reRgbPercent", "reRgbaInteger", "reRgbaPercent", "reHslPercent", "reHslaPercent", "named", "define_default", "color", "channels", "color_formatHex", "color_formatHex8", "color_formatHsl", "color_formatRgb", "hslConvert", "format", "m", "l", "rgbn", "Rgb", "rgba", "hsla", "n", "r", "g", "b", "rgbConvert", "o", "rgb", "opacity", "extend", "k", "clampi", "clampa", "rgb_formatHex", "rgb_formatHex8", "rgb_formatRgb", "hex", "a", "value", "h", "s", "Hsl", "min", "max", "hsl", "m2", "m1", "hsl2rgb", "clamph", "clampt", "KeyDownDelegator", "eventTarget", "keydownHandler", "event", "lowercaseKey", "offset", "toggleSelection", "sourceElement", "activeElement", "ColorContrastCalculator", "color1", "color2", "luminance1", "relativeLuminanceW3C", "luminance2", "base", "brightColor", "darkColor", "brightColorContrast", "darkColorContrast", "color", "rgb", "d3rgb", "RsRGB", "GsRGB", "BsRGB", "R", "G", "B"]
|
|
7
7
|
}
|
package/dist/element-utils.d.ts
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
private keydownHandler;
|
|
4
|
-
private readonly catchedKeys;
|
|
5
|
-
static delegateTo(eventTarget: HTMLElement): KeyDownDelegator;
|
|
6
|
-
constructor(eventTarget: HTMLElement, keydownHandler: (event: KeyboardEvent, offset: number, toggleSelection: boolean) => void);
|
|
7
|
-
private markAsFocusTargetHandler;
|
|
8
|
-
private unmarkAsFocusTargetHandler;
|
|
9
|
-
private delegateKeyDownEvent;
|
|
10
|
-
connect(sourceElement?: HTMLElement): void;
|
|
11
|
-
disconnect(sourceElement?: HTMLElement): void;
|
|
12
|
-
}
|
|
1
|
+
export * from "./keydowndelegator";
|
|
2
|
+
export * from "./colorcontrastcalculator";
|
package/dist/element-utils.mjs
CHANGED
|
@@ -1,32 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { rgb as g } from "d3-color";
|
|
2
|
+
class c {
|
|
3
|
+
constructor(t, n) {
|
|
4
|
+
this.eventTarget = t, this.keydownHandler = n, this.catchedKeys = ["Down", "ArrowDown", "Up", "ArrowUp", "Enter"], this.markAsFocusTargetHandler = () => this.eventTarget.setAttribute("focus-target", ""), this.unmarkAsFocusTargetHandler = () => this.eventTarget.removeAttribute("focus-target"), this.delegateKeyDownEvent = (e) => {
|
|
5
|
+
if (this.catchedKeys.indexOf(e.key) !== -1) {
|
|
6
|
+
const s = e.key.toLocaleLowerCase();
|
|
7
|
+
let r = 0;
|
|
8
|
+
const o = s.includes("enter");
|
|
9
|
+
o || (r = s.includes("down") ? 1 : -1), this.keydownHandler(e, r, o), e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation();
|
|
9
10
|
}
|
|
10
11
|
};
|
|
11
12
|
}
|
|
12
|
-
static delegateTo(
|
|
13
|
-
return new
|
|
14
|
-
|
|
15
|
-
(
|
|
13
|
+
static delegateTo(t) {
|
|
14
|
+
return new c(
|
|
15
|
+
t,
|
|
16
|
+
(n) => t.dispatchEvent(new KeyboardEvent(n.type, n))
|
|
16
17
|
);
|
|
17
18
|
}
|
|
18
|
-
connect(
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
(
|
|
19
|
+
connect(t) {
|
|
20
|
+
if (t != null) {
|
|
21
|
+
t.addEventListener("keydown", this.delegateKeyDownEvent), t.addEventListener("focus", this.markAsFocusTargetHandler), t.addEventListener("blur", this.unmarkAsFocusTargetHandler);
|
|
22
|
+
const n = document.activeElement;
|
|
23
|
+
(t.contains(n) || t.shadowRoot?.activeElement?.contains(n)) && this.markAsFocusTargetHandler();
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
disconnect(
|
|
26
|
-
|
|
26
|
+
disconnect(t) {
|
|
27
|
+
t != null && (t.removeEventListener("keydown", this.delegateKeyDownEvent), t.removeEventListener("focus", this.markAsFocusTargetHandler), t.removeEventListener("blur", this.unmarkAsFocusTargetHandler), this.unmarkAsFocusTargetHandler());
|
|
27
28
|
}
|
|
28
29
|
}
|
|
30
|
+
class a {
|
|
31
|
+
static getContrast(t, n) {
|
|
32
|
+
const e = i(t) + 0.05, s = i(n) + 0.05;
|
|
33
|
+
return e > s ? e / s : s / e;
|
|
34
|
+
}
|
|
35
|
+
static shouldUseBrightForeground(t, n, e) {
|
|
36
|
+
const s = a.getContrast(t, n), r = a.getContrast(t, e);
|
|
37
|
+
return s > 4.5 ? !0 : s > r;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function i(d) {
|
|
41
|
+
const t = g(d), n = t.r / 255, e = t.g / 255, s = t.b / 255, r = n <= 0.03928 ? n / 12.92 : Math.pow((n + 0.055) / 1.055, 2.4), o = e <= 0.03928 ? e / 12.92 : Math.pow((e + 0.055) / 1.055, 2.4), u = s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
|
|
42
|
+
return 0.2126 * r + 0.7152 * o + 0.0722 * u;
|
|
43
|
+
}
|
|
29
44
|
export {
|
|
30
|
-
|
|
45
|
+
a as ColorContrastCalculator,
|
|
46
|
+
c as KeyDownDelegator
|
|
31
47
|
};
|
|
32
48
|
//# sourceMappingURL=element-utils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-utils.mjs","sources":["../
|
|
1
|
+
{"version":3,"file":"element-utils.mjs","sources":["../keydowndelegator.ts","../colorcontrastcalculator.ts"],"sourcesContent":["export class KeyDownDelegator {\n private readonly catchedKeys = [\"Down\", \"ArrowDown\", \"Up\", \"ArrowUp\", \"Enter\"];\n\n static delegateTo(eventTarget: HTMLElement): KeyDownDelegator {\n return new KeyDownDelegator(eventTarget, (event) =>\n eventTarget.dispatchEvent(new KeyboardEvent(event.type, event)),\n );\n }\n\n constructor(\n private eventTarget: HTMLElement,\n private keydownHandler: (event: KeyboardEvent, offset: number, toggleSelection: boolean) => void,\n ) {}\n\n private markAsFocusTargetHandler = () => this.eventTarget.setAttribute(\"focus-target\", \"\");\n private unmarkAsFocusTargetHandler = () => this.eventTarget.removeAttribute(\"focus-target\");\n\n private delegateKeyDownEvent = (event: KeyboardEvent) => {\n if (this.catchedKeys.indexOf(event.key) !== -1) {\n const lowercaseKey = event.key.toLocaleLowerCase();\n let offset = 0;\n const toggleSelection = lowercaseKey.includes(\"enter\");\n if (!toggleSelection) {\n offset = lowercaseKey.includes(\"down\") ? 1 : -1;\n }\n this.keydownHandler(event, offset, toggleSelection);\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n };\n\n public connect(sourceElement?: HTMLElement): void {\n if (sourceElement != null) {\n sourceElement.addEventListener(\"keydown\", this.delegateKeyDownEvent);\n sourceElement.addEventListener(\"focus\", this.markAsFocusTargetHandler);\n sourceElement.addEventListener(\"blur\", this.unmarkAsFocusTargetHandler);\n const activeElement = document.activeElement;\n if (\n sourceElement.contains(activeElement) ||\n sourceElement.shadowRoot?.activeElement?.contains(activeElement)\n ) {\n this.markAsFocusTargetHandler();\n }\n }\n }\n\n public disconnect(sourceElement?: HTMLElement): void {\n if (sourceElement != null) {\n sourceElement.removeEventListener(\"keydown\", this.delegateKeyDownEvent);\n sourceElement.removeEventListener(\"focus\", this.markAsFocusTargetHandler);\n sourceElement.removeEventListener(\"blur\", this.unmarkAsFocusTargetHandler);\n this.unmarkAsFocusTargetHandler();\n }\n }\n}\n","import { rgb as d3rgb } from \"d3-color\";\n\nexport class ColorContrastCalculator {\n public static getContrast(color1: string, color2: string): number {\n const luminance1 = relativeLuminanceW3C(color1) + 0.05;\n const luminance2 = relativeLuminanceW3C(color2) + 0.05;\n return luminance1 > luminance2 ? luminance1 / luminance2 : luminance2 / luminance1;\n }\n\n public static shouldUseBrightForeground(base: string, brightColor: string, darkColor: string) {\n const brightColorContrast = ColorContrastCalculator.getContrast(base, brightColor);\n const darkColorContrast = ColorContrastCalculator.getContrast(base, darkColor);\n if (brightColorContrast > 4.5) {\n return true;\n }\n return brightColorContrast > darkColorContrast;\n }\n}\n\n// from http://www.w3.org/TR/WCAG20/#relativeluminancedef\nfunction relativeLuminanceW3C(color: string) {\n const rgb = d3rgb(color);\n const RsRGB = rgb.r / 255;\n const GsRGB = rgb.g / 255;\n const BsRGB = rgb.b / 255;\n\n const R = RsRGB <= 0.03928 ? RsRGB / 12.92 : Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n const G = GsRGB <= 0.03928 ? GsRGB / 12.92 : Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n const B = BsRGB <= 0.03928 ? BsRGB / 12.92 : Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n\n // For the sRGB colorspace, the relative luminance of a color is defined as:\n const L = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n\n return L;\n}\n"],"names":["KeyDownDelegator","eventTarget","keydownHandler","event","lowercaseKey","offset","toggleSelection","sourceElement","activeElement","ColorContrastCalculator","color1","color2","luminance1","relativeLuminanceW3C","luminance2","base","brightColor","darkColor","brightColorContrast","darkColorContrast","color","rgb","d3rgb","RsRGB","GsRGB","BsRGB","R","G","B"],"mappings":";AAAO,MAAMA,EAAiB;AAAA,EAS1B,YACYC,GACAC,GACV;AAFU,SAAA,cAAAD,GACA,KAAA,iBAAAC,GAVZ,KAAiB,cAAc,CAAC,QAAQ,aAAa,MAAM,WAAW,OAAO,GAa7E,KAAQ,2BAA2B,MAAM,KAAK,YAAY,aAAa,gBAAgB,EAAE,GACzF,KAAQ,6BAA6B,MAAM,KAAK,YAAY,gBAAgB,cAAc,GAE1F,KAAQ,uBAAuB,CAACC,MAAyB;AACrD,UAAI,KAAK,YAAY,QAAQA,EAAM,GAAG,MAAM,IAAI;AAC5C,cAAMC,IAAeD,EAAM,IAAI,kBAAA;AAC/B,YAAIE,IAAS;AACb,cAAMC,IAAkBF,EAAa,SAAS,OAAO;AACrD,QAAKE,MACDD,IAASD,EAAa,SAAS,MAAM,IAAI,IAAI,KAEjD,KAAK,eAAeD,GAAOE,GAAQC,CAAe,GAClDH,EAAM,eAAA,GACNA,EAAM,gBAAA,GACNA,EAAM,yBAAA;AAAA,MACV;AAAA,IACJ;AAAA,EAlBG;AAAA,EATH,OAAO,WAAWF,GAA4C;AAC1D,WAAO,IAAID;AAAA,MAAiBC;AAAA,MAAa,CAACE,MACtCF,EAAY,cAAc,IAAI,cAAcE,EAAM,MAAMA,CAAK,CAAC;AAAA,IAAA;AAAA,EAEtE;AAAA,EAyBO,QAAQI,GAAmC;AAC9C,QAAIA,KAAiB,MAAM;AACvB,MAAAA,EAAc,iBAAiB,WAAW,KAAK,oBAAoB,GACnEA,EAAc,iBAAiB,SAAS,KAAK,wBAAwB,GACrEA,EAAc,iBAAiB,QAAQ,KAAK,0BAA0B;AACtE,YAAMC,IAAgB,SAAS;AAC/B,OACID,EAAc,SAASC,CAAa,KACpCD,EAAc,YAAY,eAAe,SAASC,CAAa,MAE/D,KAAK,yBAAA;AAAA,IAEb;AAAA,EACJ;AAAA,EAEO,WAAWD,GAAmC;AACjD,IAAIA,KAAiB,SACjBA,EAAc,oBAAoB,WAAW,KAAK,oBAAoB,GACtEA,EAAc,oBAAoB,SAAS,KAAK,wBAAwB,GACxEA,EAAc,oBAAoB,QAAQ,KAAK,0BAA0B,GACzE,KAAK,2BAAA;AAAA,EAEb;AACJ;ACrDO,MAAME,EAAwB;AAAA,EACjC,OAAc,YAAYC,GAAgBC,GAAwB;AAC9D,UAAMC,IAAaC,EAAqBH,CAAM,IAAI,MAC5CI,IAAaD,EAAqBF,CAAM,IAAI;AAClD,WAAOC,IAAaE,IAAaF,IAAaE,IAAaA,IAAaF;AAAA,EAC5E;AAAA,EAEA,OAAc,0BAA0BG,GAAcC,GAAqBC,GAAmB;AAC1F,UAAMC,IAAsBT,EAAwB,YAAYM,GAAMC,CAAW,GAC3EG,IAAoBV,EAAwB,YAAYM,GAAME,CAAS;AAC7E,WAAIC,IAAsB,MACf,KAEJA,IAAsBC;AAAA,EACjC;AACJ;AAGA,SAASN,EAAqBO,GAAe;AACzC,QAAMC,IAAMC,EAAMF,CAAK,GACjBG,IAAQF,EAAI,IAAI,KAChBG,IAAQH,EAAI,IAAI,KAChBI,IAAQJ,EAAI,IAAI,KAEhBK,IAAIH,KAAS,UAAUA,IAAQ,QAAQ,KAAK,KAAKA,IAAQ,SAAS,OAAO,GAAG,GAC5EI,IAAIH,KAAS,UAAUA,IAAQ,QAAQ,KAAK,KAAKA,IAAQ,SAAS,OAAO,GAAG,GAC5EI,IAAIH,KAAS,UAAUA,IAAQ,QAAQ,KAAK,KAAKA,IAAQ,SAAS,OAAO,GAAG;AAKlF,SAFU,SAASC,IAAI,SAASC,IAAI,SAASC;AAGjD;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class KeyDownDelegator {
|
|
2
|
+
private eventTarget;
|
|
3
|
+
private keydownHandler;
|
|
4
|
+
private readonly catchedKeys;
|
|
5
|
+
static delegateTo(eventTarget: HTMLElement): KeyDownDelegator;
|
|
6
|
+
constructor(eventTarget: HTMLElement, keydownHandler: (event: KeyboardEvent, offset: number, toggleSelection: boolean) => void);
|
|
7
|
+
private markAsFocusTargetHandler;
|
|
8
|
+
private unmarkAsFocusTargetHandler;
|
|
9
|
+
private delegateKeyDownEvent;
|
|
10
|
+
connect(sourceElement?: HTMLElement): void;
|
|
11
|
+
disconnect(sourceElement?: HTMLElement): void;
|
|
12
|
+
}
|
|
@@ -7,186 +7,196 @@
|
|
|
7
7
|
"@eslint/js@9.34.0": {
|
|
8
8
|
"licenses": "MIT",
|
|
9
9
|
"repository": "https://github.com/eslint/eslint",
|
|
10
|
-
"licenseUrl": "https://
|
|
10
|
+
"licenseUrl": "https://unpkg.com/@eslint/js@9.34.0/LICENSE"
|
|
11
11
|
},
|
|
12
12
|
"@rollup/plugin-node-resolve@16.0.1": {
|
|
13
13
|
"licenses": "MIT",
|
|
14
14
|
"repository": "https://github.com/rollup/plugins",
|
|
15
|
-
"licenseUrl": "https://
|
|
15
|
+
"licenseUrl": "https://unpkg.com/@rollup/plugin-node-resolve@16.0.1/LICENSE"
|
|
16
|
+
},
|
|
17
|
+
"@types/d3-color@3.1.3": {
|
|
18
|
+
"licenses": "MIT",
|
|
19
|
+
"repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
|
|
20
|
+
"licenseUrl": "https://unpkg.com/@types/d3-color@3.1.3/LICENSE"
|
|
16
21
|
},
|
|
17
22
|
"@types/node@24.3.0": {
|
|
18
23
|
"licenses": "MIT",
|
|
19
24
|
"repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
|
|
20
|
-
"licenseUrl": "https://
|
|
25
|
+
"licenseUrl": "https://unpkg.com/@types/node@24.3.0/LICENSE"
|
|
21
26
|
},
|
|
22
27
|
"@types/postcss-prefix-selector@1.16.3": {
|
|
23
28
|
"licenses": "MIT",
|
|
24
29
|
"repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
|
|
25
|
-
"licenseUrl": "https://
|
|
30
|
+
"licenseUrl": "https://unpkg.com/@types/postcss-prefix-selector@1.16.3/LICENSE"
|
|
26
31
|
},
|
|
27
32
|
"@typescript-eslint/eslint-plugin@8.41.0": {
|
|
28
33
|
"licenses": "MIT",
|
|
29
34
|
"repository": "https://github.com/typescript-eslint/typescript-eslint",
|
|
30
|
-
"licenseUrl": "https://
|
|
35
|
+
"licenseUrl": "https://unpkg.com/@typescript-eslint/eslint-plugin@8.41.0/LICENSE"
|
|
31
36
|
},
|
|
32
37
|
"@typescript-eslint/parser@8.41.0": {
|
|
33
38
|
"licenses": "MIT",
|
|
34
39
|
"repository": "https://github.com/typescript-eslint/typescript-eslint",
|
|
35
|
-
"licenseUrl": "https://
|
|
40
|
+
"licenseUrl": "https://unpkg.com/@typescript-eslint/parser@8.41.0/LICENSE"
|
|
36
41
|
},
|
|
37
42
|
"@vitest/coverage-v8@3.2.4": {
|
|
38
43
|
"licenses": "MIT",
|
|
39
44
|
"repository": "https://github.com/vitest-dev/vitest",
|
|
40
|
-
"licenseUrl": "https://
|
|
45
|
+
"licenseUrl": "https://unpkg.com/@vitest/coverage-v8@3.2.4/LICENSE"
|
|
41
46
|
},
|
|
42
47
|
"@vitest/ui@3.2.4": {
|
|
43
48
|
"licenses": "MIT",
|
|
44
49
|
"repository": "https://github.com/vitest-dev/vitest",
|
|
45
|
-
"licenseUrl": "https://
|
|
50
|
+
"licenseUrl": "https://unpkg.com/@vitest/ui@3.2.4/LICENSE"
|
|
46
51
|
},
|
|
47
52
|
"axe-core@4.10.3": {
|
|
48
53
|
"licenses": "MPL-2.0",
|
|
49
54
|
"repository": "https://github.com/dequelabs/axe-core",
|
|
50
|
-
"licenseUrl": "https://
|
|
55
|
+
"licenseUrl": "https://unpkg.com/axe-core@4.10.3/LICENSE"
|
|
51
56
|
},
|
|
52
57
|
"cypress-axe@1.7.0": {
|
|
53
58
|
"licenses": "MIT",
|
|
54
59
|
"repository": "https://github.com/component-driven/cypress-axe",
|
|
55
|
-
"licenseUrl": "https://
|
|
60
|
+
"licenseUrl": "https://unpkg.com/cypress-axe@1.7.0/License.md"
|
|
56
61
|
},
|
|
57
62
|
"cypress@15.0.0": {
|
|
58
63
|
"licenses": "MIT",
|
|
59
64
|
"repository": "https://github.com/cypress-io/cypress",
|
|
60
65
|
"licenseUrl": "https://cypress.io"
|
|
61
66
|
},
|
|
67
|
+
"d3-color@3.1.0": {
|
|
68
|
+
"licenses": "ISC",
|
|
69
|
+
"repository": "https://github.com/d3/d3-color",
|
|
70
|
+
"licenseUrl": "https://unpkg.com/d3-color@3.1.0/LICENSE"
|
|
71
|
+
},
|
|
62
72
|
"esbuild@0.25.9": {
|
|
63
73
|
"licenses": "MIT",
|
|
64
74
|
"repository": "https://github.com/evanw/esbuild",
|
|
65
|
-
"licenseUrl": "https://
|
|
75
|
+
"licenseUrl": "https://unpkg.com/esbuild@0.25.9/LICENSE.md"
|
|
66
76
|
},
|
|
67
77
|
"eslint-config-google@0.14.0": {
|
|
68
78
|
"licenses": "Apache-2.0",
|
|
69
79
|
"repository": "https://github.com/google/eslint-config-google",
|
|
70
|
-
"licenseUrl": "https://
|
|
80
|
+
"licenseUrl": "https://unpkg.com/eslint-config-google@0.14.0/LICENSE"
|
|
71
81
|
},
|
|
72
82
|
"eslint-config-prettier@10.1.8": {
|
|
73
83
|
"licenses": "MIT",
|
|
74
84
|
"repository": "https://github.com/prettier/eslint-config-prettier",
|
|
75
|
-
"licenseUrl": "https://
|
|
85
|
+
"licenseUrl": "https://unpkg.com/eslint-config-prettier@10.1.8/LICENSE"
|
|
76
86
|
},
|
|
77
87
|
"eslint@9.34.0": {
|
|
78
88
|
"licenses": "MIT",
|
|
79
89
|
"repository": "https://github.com/eslint/eslint",
|
|
80
|
-
"licenseUrl": "https://
|
|
90
|
+
"licenseUrl": "https://unpkg.com/eslint@9.34.0/LICENSE"
|
|
81
91
|
},
|
|
82
92
|
"github-markdown-css@5.8.1": {
|
|
83
93
|
"licenses": "MIT",
|
|
84
94
|
"repository": "https://github.com/sindresorhus/github-markdown-css",
|
|
85
|
-
"licenseUrl": "https://
|
|
95
|
+
"licenseUrl": "https://unpkg.com/github-markdown-css@5.8.1/license"
|
|
86
96
|
},
|
|
87
97
|
"highlight.js@11.11.1": {
|
|
88
98
|
"licenses": "BSD-3-Clause",
|
|
89
99
|
"repository": "https://github.com/highlightjs/highlight.js",
|
|
90
|
-
"licenseUrl": "https://
|
|
100
|
+
"licenseUrl": "https://unpkg.com/highlight.js@11.11.1/LICENSE"
|
|
91
101
|
},
|
|
92
102
|
"junit-report-builder@5.1.1": {
|
|
93
103
|
"licenses": "MIT",
|
|
94
104
|
"repository": "https://github.com/davidparsson/junit-report-builder",
|
|
95
|
-
"licenseUrl": "https://
|
|
105
|
+
"licenseUrl": "https://unpkg.com/junit-report-builder@5.1.1/LICENSE"
|
|
96
106
|
},
|
|
97
107
|
"lint-staged@16.1.5": {
|
|
98
108
|
"licenses": "MIT",
|
|
99
109
|
"repository": "https://github.com/lint-staged/lint-staged",
|
|
100
|
-
"licenseUrl": "https://
|
|
110
|
+
"licenseUrl": "https://unpkg.com/lint-staged@16.1.5/LICENSE"
|
|
101
111
|
},
|
|
102
112
|
"marked@16.2.1": {
|
|
103
113
|
"licenses": "MIT",
|
|
104
114
|
"repository": "https://github.com/markedjs/marked",
|
|
105
|
-
"licenseUrl": "https://
|
|
115
|
+
"licenseUrl": "https://unpkg.com/marked@16.2.1/LICENSE.md"
|
|
106
116
|
},
|
|
107
117
|
"postcss-prefix-selector@2.1.1": {
|
|
108
118
|
"licenses": "MIT",
|
|
109
119
|
"repository": "https://github.com/RadValentin/postcss-prefix-selector",
|
|
110
|
-
"licenseUrl": "https://
|
|
120
|
+
"licenseUrl": "https://unpkg.com/postcss-prefix-selector@2.1.1/LICENSE"
|
|
111
121
|
},
|
|
112
122
|
"postcss@8.5.6": {
|
|
113
123
|
"licenses": "MIT",
|
|
114
124
|
"repository": "https://github.com/postcss/postcss",
|
|
115
|
-
"licenseUrl": "https://
|
|
125
|
+
"licenseUrl": "https://unpkg.com/postcss@8.5.6/LICENSE"
|
|
116
126
|
},
|
|
117
127
|
"prettier@3.6.2": {
|
|
118
128
|
"licenses": "MIT",
|
|
119
129
|
"repository": "https://github.com/prettier/prettier",
|
|
120
|
-
"licenseUrl": "https://
|
|
130
|
+
"licenseUrl": "https://unpkg.com/prettier@3.6.2/LICENSE"
|
|
121
131
|
},
|
|
122
132
|
"resolve-pkg@2.0.0": {
|
|
123
133
|
"licenses": "MIT",
|
|
124
134
|
"repository": "https://github.com/sindresorhus/resolve-pkg",
|
|
125
|
-
"licenseUrl": "https://
|
|
135
|
+
"licenseUrl": "https://unpkg.com/resolve-pkg@2.0.0/license"
|
|
126
136
|
},
|
|
127
137
|
"sass@1.91.0": {
|
|
128
138
|
"licenses": "MIT",
|
|
129
139
|
"repository": "https://github.com/sass/dart-sass",
|
|
130
|
-
"licenseUrl": "https://
|
|
140
|
+
"licenseUrl": "https://unpkg.com/sass@1.91.0/LICENSE"
|
|
131
141
|
},
|
|
132
142
|
"stylelint-config-recommended-scss@16.0.0": {
|
|
133
143
|
"licenses": "MIT",
|
|
134
144
|
"repository": "https://github.com/stylelint-scss/stylelint-config-recommended-scss",
|
|
135
|
-
"licenseUrl": "https://
|
|
145
|
+
"licenseUrl": "https://unpkg.com/stylelint-config-recommended-scss@16.0.0/LICENSE"
|
|
136
146
|
},
|
|
137
147
|
"stylelint-config-standard@39.0.0": {
|
|
138
148
|
"licenses": "MIT",
|
|
139
149
|
"repository": "https://github.com/stylelint/stylelint-config-standard",
|
|
140
|
-
"licenseUrl": "https://
|
|
150
|
+
"licenseUrl": "https://unpkg.com/stylelint-config-standard@39.0.0/LICENSE"
|
|
141
151
|
},
|
|
142
152
|
"stylelint-scss@6.12.1": {
|
|
143
153
|
"licenses": "MIT",
|
|
144
154
|
"repository": "https://github.com/stylelint-scss/stylelint-scss",
|
|
145
|
-
"licenseUrl": "https://
|
|
155
|
+
"licenseUrl": "https://unpkg.com/stylelint-scss@6.12.1/LICENSE"
|
|
146
156
|
},
|
|
147
157
|
"stylelint@16.23.1": {
|
|
148
158
|
"licenses": "MIT",
|
|
149
159
|
"repository": "https://github.com/stylelint/stylelint",
|
|
150
|
-
"licenseUrl": "https://
|
|
160
|
+
"licenseUrl": "https://unpkg.com/stylelint@16.23.1/LICENSE"
|
|
151
161
|
},
|
|
152
162
|
"tsup@8.5.0": {
|
|
153
163
|
"licenses": "MIT",
|
|
154
164
|
"repository": "https://github.com/egoist/tsup",
|
|
155
|
-
"licenseUrl": "https://
|
|
165
|
+
"licenseUrl": "https://unpkg.com/tsup@8.5.0/LICENSE"
|
|
156
166
|
},
|
|
157
167
|
"turbo@2.5.6": {
|
|
158
168
|
"licenses": "MIT",
|
|
159
169
|
"repository": "https://github.com/vercel/turborepo",
|
|
160
|
-
"licenseUrl": "https://
|
|
170
|
+
"licenseUrl": "https://unpkg.com/turbo@2.5.6/LICENSE"
|
|
161
171
|
},
|
|
162
172
|
"typescript-eslint@8.41.0": {
|
|
163
173
|
"licenses": "MIT",
|
|
164
174
|
"repository": "https://github.com/typescript-eslint/typescript-eslint",
|
|
165
|
-
"licenseUrl": "https://
|
|
175
|
+
"licenseUrl": "https://unpkg.com/typescript-eslint@8.41.0/LICENSE"
|
|
166
176
|
},
|
|
167
177
|
"typescript@5.9.2": {
|
|
168
178
|
"licenses": "Apache-2.0",
|
|
169
179
|
"repository": "https://github.com/microsoft/TypeScript",
|
|
170
|
-
"licenseUrl": "https://
|
|
180
|
+
"licenseUrl": "https://unpkg.com/typescript@5.9.2/LICENSE.txt"
|
|
171
181
|
},
|
|
172
182
|
"vite-tsconfig-paths@5.1.4": {
|
|
173
183
|
"licenses": "MIT",
|
|
174
184
|
"repository": "https://github.com/aleclarson/vite-tsconfig-paths",
|
|
175
|
-
"licenseUrl": "https://
|
|
185
|
+
"licenseUrl": "https://unpkg.com/vite-tsconfig-paths@5.1.4/LICENSE"
|
|
176
186
|
},
|
|
177
187
|
"vite@7.1.3": {
|
|
178
188
|
"licenses": "MIT",
|
|
179
189
|
"repository": "https://github.com/vitejs/vite",
|
|
180
|
-
"licenseUrl": "https://
|
|
190
|
+
"licenseUrl": "https://unpkg.com/vite@7.1.3/LICENSE.md"
|
|
181
191
|
},
|
|
182
192
|
"vitest@3.2.4": {
|
|
183
193
|
"licenses": "MIT",
|
|
184
194
|
"repository": "https://github.com/vitest-dev/vitest",
|
|
185
|
-
"licenseUrl": "https://
|
|
195
|
+
"licenseUrl": "https://unpkg.com/vitest@3.2.4/LICENSE.md"
|
|
186
196
|
},
|
|
187
197
|
"yargs@18.0.0": {
|
|
188
198
|
"licenses": "MIT",
|
|
189
199
|
"repository": "https://github.com/yargs/yargs",
|
|
190
|
-
"licenseUrl": "https://
|
|
200
|
+
"licenseUrl": "https://unpkg.com/yargs@18.0.0/LICENSE"
|
|
191
201
|
}
|
|
192
202
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cas-smartdesign/element-utils",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "A utility collection for @cas-smartdesign elements.",
|
|
5
5
|
"main": "dist/element-utils-with-externals.js",
|
|
6
6
|
"module": "dist/element-utils.mjs",
|
|
@@ -15,8 +15,12 @@
|
|
|
15
15
|
"access": "public"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@
|
|
19
|
-
"@cas-smartdesign/element-preview": "^0.3.
|
|
18
|
+
"@types/d3-color": "^3.1.3",
|
|
19
|
+
"@cas-smartdesign/element-preview": "^0.3.1",
|
|
20
|
+
"@cas-smartdesign/license-generator": "^1.8.1"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"d3-color": "^3.1.0"
|
|
20
24
|
},
|
|
21
25
|
"scripts": {
|
|
22
26
|
"version": "pnpm version",
|