dynamic-html-helpers 1.5.4 → 1.5.6
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../Resource/Common/TypeofAnything.js", "../Resource/Common/EmbedResources.js", "../Resource/Common/tinyDOM.js", "../Resource/Common/LifeCSS.js", "../Resource/Common/HTMLTags.js", "../Resource/Common/DOMCleanup.js", "../Resource/Common/DOM.js", "../Resource/Common/Popup.js", "../Resource/Common/HandlerFactory.js", "../Resource/Common/Utilities.js", "../src/JQxUtilities.js", "../src/JQxInstanceMethods.js", "../src/JQxCreatorFactory.js", "../src/JQxConstructorFactory.js", "../index.js"],
|
|
4
|
-
"sourcesContent": ["const { IS, isOnly, maybe, $Wrap, isNothing, addSymbolicExtensions, detectableProxy } =\r\n TOAFactory({useSymbolicExtensions: false});\r\n\r\nexport { IS as default, maybe, isOnly, $Wrap, detectableProxy as proxyWrapper, isNothing, addSymbolicExtensions };\r\n\r\nfunction TOAFactory(specs = {}) {\r\n const { useSymbolicExtensions } = specs;\r\n const isJust = typeCheckFactory();\r\n const { shouldbeIsSingleObject, ISOneOf, isExcept, verifyNothingness, determineType,\r\n addSymbolicExtensions, maybe, $Wrap, detectableProxy } = TOAHelpers(IS, useSymbolicExtensions);\r\n \r\n if (!!useSymbolicExtensions) { addSymbolicExtensions(); }\r\n \r\n return {IS, isOnly, maybe, $Wrap, isNothing: verifyNothingness, addSymbolicExtensions, detectableProxy};\r\n \r\n function IS(anything, ...shouldBe) {\r\n const unChained = Object.getOwnPropertySymbols(anything || {})?.some(v => v === Symbol.justME) && shouldBe.length > 0;\r\n const single = anything?.[Symbol.justME];\r\n const input = unChained ? single : typeof anything === `symbol` ? Symbol.isSymbol : anything;\r\n switch(true) {\r\n case unChained: return isJust(single, ...shouldBe);\r\n case !!maybe({trial: _ => `isTypes` in (shouldBe?.[0] ?? {})}):\r\n return shouldbeIsSingleObject(anything, shouldBe[0]);\r\n default: return shouldBe.length > 1 ? ISOneOf(input, ...shouldBe) : determineType(anything, ...shouldBe);\r\n }\r\n }\r\n \r\n function isOnly(anything, ...shouldBe) {\r\n return IS({[Symbol.justME]: anything}, ...shouldBe);\r\n }\r\n}\r\n\r\nfunction TOAHelpers(IS, useSymbolicExtensions) {\r\n const { SymbolAndCustomProxyFactory, maybeFactory, WrapAnyFactory,\r\n verifyNothingness, determineType, detectableProxy } = AUXHelperFactory(IS, typeOf);\r\n const {addSymbolicExtensions} = SymbolAndCustomProxyFactory(IS, typeOf, useSymbolicExtensions);\r\n const [maybe, $Wrap] = [maybeFactory(), WrapAnyFactory(IS, typeOf)];\r\n \r\n return Object.freeze({\r\n shouldbeIsSingleObject, ISOneOf, isExcept, verifyNothingness,\r\n determineType, detectableProxy, addSymbolicExtensions, maybe, $Wrap });\r\n \r\n function typeOf(anything) {\r\n return anything?.[Symbol.proxy] || IS(anything);\r\n }\r\n \r\n function shouldbeIsSingleObject(anything, isTypeObj) {\r\n switch(true) {\r\n case `defaultValue` in isTypeObj: return isOrDefault(anything, isTypeObj);\r\n case `notTypes` in isTypeObj: return isExcept(anything, isTypeObj);\r\n default: return IS(anything, ...[isTypeObj.isTypes].flat());\r\n }\r\n }\r\n \r\n function ISOneOf(obj, ...params) {\r\n return params.some(param => IS(obj, param));\r\n }\r\n \r\n function isOrDefault(input, {defaultValue, isTypes = [undefined], notTypes} = {}) {\r\n isTypes = isTypes?.constructor !== Array ? [isTypes] : isTypes;\r\n notTypes = notTypes && notTypes?.constructor !== Array ? [notTypes] : [];\r\n return notTypes.length < 1\r\n ? IS(input, ...isTypes) ? input : defaultValue\r\n : isExcept(input, {isTypes, notTypes}) ? input : defaultValue;\r\n }\r\n \r\n function isExcept(input, {isTypes = [undefined], notTypes = [undefined]} = {}) {\r\n isTypes = isTypes?.constructor !== Array ? [isTypes] : isTypes;\r\n notTypes = notTypes?.constructor !== Array ? [notTypes] : notTypes;\r\n return IS(input, ...isTypes) && !IS(input, ...notTypes);\r\n }\r\n}\r\n\r\nfunction AUXHelperFactory() {\r\n const SYMBOL_KEYS = {\r\n IS: 'toa.is',\r\n TYPE: 'toa.type',\r\n IS_SYMBOL: 'toa.isASymbol',\r\n PROXY: 'toa.proxyFor',\r\n TARGET: 'toa.target',\r\n };\r\n \r\n const TYPE_STRINGS = {\r\n NAN: 'NaN',\r\n INFINITY: 'Infinity',\r\n BOOLEAN: 'Boolean',\r\n OBJECT: 'Object',\r\n PROXY_PREFIX: 'Proxy for',\r\n JUSTME: 'justME',\r\n \r\n };\r\n const detectableProxy = detectableProxyFactory();\r\n \r\n return Object.freeze({\r\n SymbolAndCustomProxyFactory: addSymbolsFactory, maybeFactory, WrapAnyFactory,\r\n verifyNothingness, determineType, detectableProxy,\r\n }\r\n );\r\n \r\n function detectableProxyFactory() {\r\n const trapped = type => ({\r\n get(target, key) {\r\n return key === Symbol.proxy\r\n ? `Proxy for ${type}`\r\n : key === Symbol.target\r\n ? target : Reflect.get(target, key);\r\n },\r\n has(target, key) { return key === Symbol.proxy ? true : key in target; }\r\n });\r\n \r\n function wrapProxy(proxy2Wrap) {\r\n const type = proxy2Wrap.name || proxy2Wrap.constructor.name;\r\n return new Proxy( proxy2Wrap, trapped(type) );\r\n }\r\n \r\n function createDetectableProxy(target, traps) {\r\n traps = IS(traps, Object) ? traps : {};\r\n return wrapProxy(new Proxy(target, traps));\r\n }\r\n \r\n return {\r\n wrap: wrapProxy,\r\n create: createDetectableProxy\r\n };\r\n }\r\n \r\n function addSymbols2Anything(IS, typeOf) {\r\n if (!Symbol.is) {\r\n Symbol.is = Symbol.for(SYMBOL_KEYS.IS);\r\n Symbol.type = Symbol.for(SYMBOL_KEYS.TYPE);\r\n \r\n Object.defineProperties(Object.prototype, {\r\n [Symbol.type]: { get() { return typeOf(this); }, enumerable: false, configurable: true },\r\n [Symbol.is]: { value: function (...args) { return IS(this, ...args); }, enumerable: false, configurable: false },\r\n });\r\n Object.defineProperties(Object, {\r\n [Symbol.type]: { value(obj) { return typeOf(obj); }, enumerable: false, configurable: false },\r\n [Symbol.is]: { value: function (obj, ...args) { return IS(obj, ...args); }, enumerable: false, configurable: false },\r\n });\r\n }\r\n }\r\n \r\n function addSymbolsFactory(IS, typeOf, useSymbolicExtension) {\r\n if (!Symbol.isSymbol) {\r\n Symbol.isSymbol = Symbol.for(SYMBOL_KEYS.IS_SYMBOL);\r\n Symbol.proxy = Symbol.for(SYMBOL_KEYS.PROXY);\r\n Symbol.target = Symbol.for(SYMBOL_KEYS.target);\r\n Symbol.justME = Symbol.for(SYMBOL_KEYS.JUSTME);\r\n }\r\n return {addSymbolicExtensions: () => addSymbols2Anything(IS, typeOf)};\r\n }\r\n \r\n function constructor2String(obj) {\r\n const ctor = !isNothing(obj, true) ? Object.getPrototypeOf(obj)?.constructor : {name: `unknown`};\r\n return ctor.name;\r\n }\r\n \r\n function processInput(input, ...shouldBe) {\r\n const noShouldbe = shouldBe.length < 1;\r\n const noInput = input === undefined || input === null;\r\n \r\n return {\r\n noInput,\r\n noShouldbe,\r\n compareTo: !noShouldbe && shouldBe[0],\r\n inputCTOR: !noInput && (input?.constructor || Object.getPrototypeOf(input)?.constructor),\r\n isNaN: Number.isNaN(input) || maybe({trial: _ => String(input) === TYPE_STRINGS.NAN}),\r\n isInfinity: maybe({trial: _ => String(input)}) === TYPE_STRINGS.INFINITY,\r\n shouldBeFirstElementIsNothing: !noShouldbe && verifyNothingness(shouldBe[0])\r\n };\r\n }\r\n \r\n function determineType(input, ...shouldBe) {\r\n let { noInput, noShouldbe, compareTo, inputCTOR, isNaN, isInfinity, shouldBeFirstElementIsNothing } =\r\n processInput(input, ...shouldBe);\r\n shouldBe = shouldBe.length && shouldBe[0];\r\n \r\n switch (true) {\r\n case shouldBeFirstElementIsNothing: return String(input) === String(compareTo);\r\n case input?.[Symbol.proxy] && noShouldbe: return input[Symbol.proxy];\r\n case input?.[Symbol.proxy] && typeof shouldBe === `string`:\r\n return input[Symbol.proxy].toLowerCase() === shouldBe.toLowerCase();\r\n case isNaN: return noShouldbe ? TYPE_STRINGS.NAN : String(compareTo) === String(input);\r\n case isInfinity: return noShouldbe ? TYPE_STRINGS.INFINITY : String(compareTo) === String(input);\r\n case noInput: return noShouldbe ? String(input) : String(compareTo) === String(input);\r\n case inputCTOR === Boolean: return noShouldbe ? TYPE_STRINGS.BOOLEAN : inputCTOR === shouldBe;\r\n default: return getResult(input, shouldBe, noShouldbe, finalInputResolver(input, inputCTOR));\r\n }\r\n }\r\n \r\n function finalInputResolver(input, inputCTOR) {\r\n switch(true) {\r\n case input === 0: return Number;\r\n case input === ``: return String;\r\n case !input: return {name: String(input)};\r\n default: return inputCTOR;\r\n }\r\n }\r\n \r\n function getResult(input, compareWith, noShouldbe, maybeResult) {\r\n switch (true) {\r\n case (!noShouldbe && compareWith === input) || (input?.[Symbol.proxy] && compareWith === Proxy):\r\n return true;\r\n case String(compareWith) === TYPE_STRINGS.NAN:\r\n return String(input) === TYPE_STRINGS.NAN;\r\n case input?.[Symbol.toStringTag] && typeof compareWith === `string`:\r\n return String(compareWith) === input[Symbol.toStringTag];\r\n default:\r\n return compareWith ?\r\n resultWithComparison(input, compareWith, maybeResult) : resultWithoutComparison(input, maybeResult);\r\n }\r\n }\r\n \r\n function resultWithoutComparison(input, maybeResult) {\r\n const toStringTag = input?.[Symbol.toStringTag] ?? input?.prototype?.[Symbol.toStringTag];\r\n return toStringTag || maybeResult?.name || String(maybeResult);\r\n }\r\n \r\n function resultWithComparison(input, compareWith, maybeResult) {\r\n return maybe({trial: _ =>\r\n input instanceof compareWith}) ||\r\n compareWith === maybeResult ||\r\n compareWith === Object.getPrototypeOf(maybeResult) ||\r\n `${compareWith?.name}` === maybeResult?.name;\r\n }\r\n \r\n function WrapAnyFactory(IS, typeOf) {\r\n return function (someObj) {\r\n const wrapper = {\r\n get value() { return someObj; },\r\n is(...args) { return IS(someObj, ...args); },\r\n get type() { return typeOf(someObj); },\r\n };\r\n \r\n if (Object[Symbol.type]) {\r\n Object.defineProperties(wrapper, {\r\n [Symbol.type]: { get() { return typeOf(someObj);} },\r\n [Symbol.is]: { value(...args) { return IS(someObj, ...args); }}\r\n });\r\n }\r\n return Object.freeze(wrapper);\r\n }\r\n }\r\n \r\n function maybeFactory() {\r\n const errFn = err => undefined;\r\n return function({trial, whenError = errFn } = {}) {\r\n try { return trial(); } catch (err) { return whenError(err); }\r\n };\r\n }\r\n \r\n function verifyNothingness(maybeNothing, all = false) {\r\n let nada = maybeNothing === null || maybeNothing === undefined;\r\n nada = all ? nada || IS(maybeNothing, Infinity) || IS(maybeNothing, NaN) : nada;\r\n return nada;\r\n }\r\n}\r\n\r\nfunction typeCheckFactory() {\r\n const collate = new Intl.Collator(`en`, {sensitivity: 'base'});\r\n const nameOf = type2Check => {\r\n return typeof type2Check?.constructor === `function`\r\n ? type2Check?.name || type2Check?.constructor?.name\r\n : typeof type2Check === `string` ? type2Check : typeof type2Check;\r\n };\r\n const isNothing = obj => [null, undefined, Infinity, NaN].some(v => v === obj);\r\n \r\n function checkSingleType(obj, type2Check) {\r\n if (\r\n type2Check !== obj &&\r\n ( isNothing(obj) || type2Check === Number && (Number.isNaN(obj) || !Number.isFinite(obj)) )\r\n ) { return false; }\r\n const [objName, typeName] = [nameOf(obj), nameOf(type2Check)];\r\n \r\n return obj?.[Symbol.proxy] === type2Check ||\r\n type2Check === obj?.name ||\r\n 0 === collate.compare(objName, typeName) ||\r\n 0 === collate.compare(obj.constructor?.name, type2Check?.name) ||\r\n obj.constructor?.name === type2Check ||\r\n objName === type2Check ||\r\n 0 === collate.compare( Object.prototype.toString.call(obj), `[object ${typeName}]` );\r\n }\r\n \r\n return function checkType(obj, ...type2Check) {\r\n if (Array.isArray(type2Check) && type2Check.length > 1) {\r\n for (const chkType of type2Check) {\r\n if (checkSingleType(obj, chkType)) { return true; }\r\n }\r\n \r\n return false;\r\n }\r\n \r\n return checkSingleType(obj, type2Check?.[0]);\r\n }\r\n}\r\n", "let popupStyling = getPopupStyling();\r\nconst ATTRS = getAttrs();\r\nconst allTags = getPermissions();\r\nexport {popupStyling, ATTRS, allTags};\r\n\r\nfunction getAttrs() {\r\n return {\r\n html: Object.freeze(`accept,action,align,alt,autocapitalize,autocomplete,autopictureinpicture,autoplay,background,bgcolor,border,capture,cellpadding,cellspacing,checked,cite,class,clear,contenteditable,color,cols,colspan,controls,controlslist,coords,crossorigin,datetime,decoding,default,dir,disabled,disablepictureinpicture,disableremoteplayback,download,draggable,enctype,enterkeyhint,face,for,headers,height,hidden,high,href,hreflang,id,inputmode,integrity,is,ismap,kind,label,lang,list,loading,loop,low,max,maxlength,media,method,min,minlength,multiple,muted,name,nonce,noshade,novalidate,nowrap,open,optimum,pattern,placeholder,playsinline,poster,preload,pubdate,radiogroup,readonly,rel,required,rev,reversed,role,rows,rowspan,spellcheck,scope,selected,shape,size,sizes,span,srclang,start,src,srcset,step,style,summary,tabindex,target,title,translate,type,usemap,valign,value,width,xmlns,slot`\r\n .split(`,`)),\r\n svg: Object.freeze(`accent-height,accumulate,additive,alignment-baseline,ascent,attributename,attributetype,azimuth,basefrequency,baseline-shift,begin,bias,by,class,clip,clippathunits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,cx,cy,d,dx,dy,diffuseconstant,direction,display,divisor,dur,edgemode,elevation,end,fill,fill-opacity,fill-rule,filter,filterunits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,fx,fy,g1,g2,glyph-name,glyphref,gradientunits,gradienttransform,height,href,id,image-rendering,in,in2,k,k1,k2,k3,k4,kerning,keypoints,keysplines,keytimes,lang,lengthadjust,letter-spacing,kernelmatrix,kernelunitlength,lighting-color,local,marker-end,marker-mid,marker-start,markerheight,markerunits,markerwidth,maskcontentunits,maskunits,max,mask,media,method,mode,min,name,numoctaves,offset,operator,opacity,order,orient,orientation,origin,overflow,paint-order,path,pathlength,patterncontentunits,patterntransform,patternunits,points,preservealpha,preserveaspectratio,primitiveunits,r,rx,ry,radius,refx,refy,repeatcount,repeatdur,restart,result,rotate,scale,seed,shape-rendering,specularconstant,specularexponent,spreadmethod,startoffset,stddeviation,stitchtiles,stop-color,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke,stroke-width,style,surfacescale,systemlanguage,tabindex,targetx,targety,transform,text-anchor,text-decoration,text-rendering,textlength,type,u1,u2,unicode,values,viewbox,visibility,version,vert-adv-y,vert-origin-x,vert-origin-y,width,word-spacing,wrap,writing-mode,xchannelselector,ychannelselector,x,x1,x2,xmlns,y,y1,y2,z,zoomandpan`\r\n .split(`,`)),\r\n };\r\n}\r\n\r\nfunction getPermissions() {\r\n return {a:true,area:true,audio:false,br:true,base:true,body:true,button:true,canvas:true,comment:true,dl:true,data:true,datalist:true,div:true,em:true, embed:false,fieldset:true,font:true,footer:true,form:false,hr:true,head:true,header:true,output:true,iframe:false,frameset:false,img:true,input:true,li:true,label:true,legend:true,link:true,map:true,mark:true,menu:true,media:true,meta:true,nav:true,meter:true,ol:true,object:false,optgroup:true,option:true,p:true,param:true,picture:true,pre:true,progress:false,quote:true,script:false,select:true,source:true,span:true,style:true,caption:true,td:true,col:true,table:true,tr:true,template:false,textarea:true,time:true,title:true,track:true,details:true,ul:true,video:true,del:true,ins:true,slot:true,blockquote:true,svg:true,dialog:true,summary:true,main:true,address:true,colgroup:true,tbody:true,tfoot:true,thead:true,th:true,dd:true,dt:true,figcaption:true,figure:true,i:true,b:true,code:true,h1:true,h2:true,h3:true,h4:true,abbr:true,bdo:true,dfn:true,kbd:true,q:true,rb:true,rp:true,rt:true,ruby:true,s:true,strike:true,samp:true,small:true,strong:true,sup:true,sub:true,u:true,var:true,wbr:true,nobr:true,tt:true,noscript:true};\r\n}\r\n\r\nfunction getPopupStyling() {\r\n return [\r\n \"::backdrop{background-color:grey;opacity:0.2;}\",\r\n \"#jqxPopup{overflow:hidden;background-color:transparent;outline:none;border:none;inset:0;animation:fade-out 0.5s ease-out;&[open]{display:flex;align-items:center;justify-content:center;animation:fade-in 0.5s ease;}#jqxPopupContent{background-color:white;border:solid 1px #eee;box-shadow:1px 2px 8px #999;border-radius:4px;padding:12px;vertical-align:middle;max-height:40vh;max-width:50vw;overflow:auto;margin:0 auto;div:not(#closeHandleIcon){clear:both;}@media (width <= 640px){max-width:80vw;max-height:60vh;}#closeHandleIcon{cursor:pointer;width:24px;height:24px;display:inline;position:absolute;top:4px;right:4px;justify-content:right;background-image:url(\\\"data:image/svg+xml;utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20id%3D%22Layer_1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20128%20128%22%20style%3D%22enable-background%3Anew%200%200%20128%20128%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Crect%20x%3D%22-368%22%20y%3D%226%22%20style%3D%22display%3Anone%3Bfill%3A%23E0E0E0%3B%22%20width%3D%22866%22%20height%3D%221018%22%2F%3E%3Ccircle%20style%3D%22fill%3A%23FFFFFF%3B%22%20cx%3D%2264%22%20cy%3D%2264%22%20r%3D%2248%22%2F%3E%3Ccircle%20style%3D%22fill%3A%238CCFB9%3B%22%20cx%3D%2264%22%20cy%3D%2264%22%20r%3D%2239%22%2F%3E%3Ccircle%20style%3D%22fill%3Anone%3Bstroke%3A%23444B54%3Bstroke-width%3A6%3Bstroke-miterlimit%3A10%3B%22%20cx%3D%2264%22%20cy%3D%2264%22%20r%3D%2248%22%2F%3E%3Cpolyline%20style%3D%22fill%3Anone%3Bstroke%3A%23FFFFFF%3Bstroke-width%3A6%3Bstroke-linecap%3Around%3Bstroke-miterlimit%3A10%3B%22%20points%3D%2242%2C69%2055.55%2C81%20%20%2086%2C46%20%22%2F%3E%3C%2Fsvg%3E\\\");@media (width <= 640px){background-image:none;position:relative;margin:-15px -15px 4px 0;float:right;vertical-align:middle;border:1px solid #AAA;padding:2px;border-radius:50%;width:12px;height:12px;font-size:12px;line-height:12px;font-weight:bold;text-align:center;&:after{content:'\\\\2714';color:green;}}}.warn{display:none;text-align:center;color:red;border-top:1px solid #999;margin-top:1em;padding-top:3px;animation:warn-fade-out 0.2s ease-out;}.warn.active{opacity:1;display:block;animation:warn-fade-in 0.2s ease-in;}}}\",\r\n \"@keyframes fade-in{0%{opacity:0;transform:scale(0, 0);display:none;}100%{opacity:1;transform:scale(1, 1);display:flex;}}\",\r\n \"@keyframes fade-out{0%{opacity:1;transform:scale(1, 1);display:flex;}100%{opacity:0;transform:scale(0, 0);display:none;}}\",\r\n \"@keyframes warn-fade-in{0%{opacity:0;transform:scale(0, 0);display:none;}100%{opacity:1;transform:scale(1,1 );display:block;}}\",\r\n \"@keyframes warn-fade-out{0%{opacity:1;transform:scale(1, 1);display:block;}100%{opacity:0;transform:scale(0, 0);display:none;}}\"\r\n ];\r\n}\r\n", "const converts = { html: `innerHTML`, text: `textContent`, class: `className` };\r\nconst maybe = maybeFactory();\r\nlet elementFunctionCollection = {};\r\nconst customElementRegistry = {};\r\nconst checkType = typeCheckFactory();\r\nlet tagFunctionError = tag => {\r\n console.error(`tinyDOM error: \"${tag}\" is not a valid HTML tag`);\r\n return undefined;\r\n};\r\n\r\nexport default tinyDOM();\r\n\r\nfunction tinyDOM() {\r\n return Object.seal(new Proxy(elementFunctionCollection, proxyTraps()));\r\n}\r\n\r\nfunction proxyTraps() {\r\n return {\r\n get(tagFns, key) {\r\n const tag = String(key);\r\n \r\n switch(true) {\r\n case tag in tagFns: return tagFns[tag];\r\n case validateTag(tag): return createTagFunctionProperty({tag, key});\r\n default: return createTagFunctionProperty({tag, key, isError: true});\r\n }\r\n },\r\n set(tagFns, key, value) {\r\n if (key === `setError` && typeof value === 'function') { tagFunctionError = value; }\r\n return true;\r\n },\r\n enumerable: false, configurable: false\r\n };\r\n}\r\n\r\nfunction createTagFunctionProperty({tag, key, custom, debug = false, isError = false} = {}) {\r\n let unsealedElementFunctionCollection = cloneExact();\r\n \r\n if (isError) {\r\n Object.defineProperty(unsealedElementFunctionCollection, tag, {\r\n get() { return _ => tagFunctionError(key) ?? ``; }\r\n } );\r\n \r\n return reSeal(unsealedElementFunctionCollection, tag);\r\n }\r\n \r\n if (tag.includes(`-`)) {\r\n const [dashed, camel] = tag.includes(`-`) ? [tag, toCamelcase(tag)] : [toDashedNotation(tag), tag];\r\n customElementRegistry[dashed] = dashed;\r\n customElementRegistry[camel] = dashed;\r\n custom = camel;\r\n }\r\n \r\n if (!!custom) {\r\n Object.defineProperty(unsealedElementFunctionCollection, custom, {\r\n get() { return tag2FN(tag); }\r\n });\r\n }\r\n \r\n Object.defineProperty(unsealedElementFunctionCollection, tag, {\r\n get() { return tag2FN(tag); }\r\n } );\r\n \r\n return reSeal(unsealedElementFunctionCollection, tag);\r\n}\r\n\r\nfunction reSeal(unsealedCollection, tag) {\r\n elementFunctionCollection = Object.seal(new Proxy(unsealedCollection, proxyTraps()));\r\n return elementFunctionCollection[tag];\r\n}\r\n\r\nfunction cloneExact() {\r\n return Object.fromEntries(\r\n Object.entries(Object.getOwnPropertyDescriptors(elementFunctionCollection))\r\n );\r\n}\r\n\r\nfunction processNext(root, next, tagName) {\r\n next = next?.isJQx && next.node || (checkType(next, Number) ? String(next) : next);\r\n \r\n return maybe({\r\n trial: _ => containsHTML(next) ? root.insertAdjacentHTML(`beforeend`, next) : root.append(next),\r\n whenError: err => console.info(`${tagName} not created, reason\\n`, err)\r\n });\r\n}\r\n\r\nfunction tagFN(tagName, initial, ...nested) {\r\n const elem = retrieveElementFromInitial(initial, tagName);\r\n nested?.forEach(arg => processNext(elem, arg, tagName));\r\n return elem;\r\n}\r\n\r\nfunction retrieveElementFromInitial(initial, tag) {\r\n initial = isComment(tag) ? cleanupComment(initial) : initial?.isJQx ? initial.node : initial;\r\n \r\n switch(true) {\r\n case checkType(initial, String): return createElement(tag, containsHTML(initial, tag) ? {html: initial} : {text: initial});\r\n case initial instanceof Node: return createElementAndAppend(tag, initial);\r\n default: return createElement(tag, initial);\r\n }\r\n}\r\n\r\nfunction createElementAndAppend(tag, element2Append) {\r\n const elem = createElement(tag);\r\n elem.append(element2Append);\r\n return elem;\r\n}\r\n\r\nfunction cleanupProps(props) {\r\n if ( Object.keys(props).length < 1 ) { return {assignable: {}, specials: [...Array(3)] }; }\r\n \r\n const specials = retrieveSpecialProps(props);\r\n Object.keys(props).forEach( key => {\r\n const keyCI = key.toLowerCase();\r\n keyCI in converts && (props[converts[keyCI]] = props[key]) && delete props[key]; } );\r\n \r\n return { assignable: props, specials };\r\n}\r\n\r\nfunction retrieveSpecialProps(props) {\r\n props = checkType(props, Object) && props || undefined;\r\n \r\n if (!props) { return Array(3); }\r\n \r\n const data = Object.entries(props.data ?? {});\r\n const attributes = Object.entries(props.attributes ?? {});\r\n const classList = props.class?.split(/[ ,]/).map(v => v.trim()).filter(v => v.length > 1);\r\n delete props.data;\r\n delete props.attributes;\r\n delete props.class;\r\n \r\n return [data, attributes, classList];\r\n}\r\n\r\nfunction assignSpecialProps(specialProps, element) {\r\n const [data, attributes, classList] = specialProps;\r\n \r\n data?.length && data.forEach(([key, value]) => element.dataset[key] = value);\r\n attributes?.length && attributes.forEach( ([key, value]) => element.setAttribute(key, value) );\r\n classList?.forEach( value => element.classList.add(value));\r\n}\r\n\r\nfunction createElement(tagName, props) {\r\n props = props || {};\r\n const {assignable, specials} = cleanupProps(props);\r\n const elem = Object.assign(\r\n isComment(tagName) ? new Comment() : document.createElement(tagName),\r\n assignable\r\n );\r\n assignSpecialProps(specials, elem);\r\n \r\n return elem;\r\n}\r\n\r\nfunction cleanupComment(initial) {\r\n return initial?.constructor === Comment ? initial?.textContent : String(initial);\r\n}\r\n\r\nfunction containsHTML(str, tag) {\r\n return !isComment(tag) && checkType(str, String) && /<.*>|&[#|0-9a-z]+[^;];/i.test(str);\r\n}\r\n\r\nfunction isComment(tag) { return /comment/i.test(tag); }\r\n\r\nfunction validateTag(name) {\r\n return validateElementTagName(name) &&\r\n (name in customElementRegistry || !checkType(createElement(name), HTMLUnknownElement));\r\n}\r\n\r\nfunction validateElementTagName(tagName) {\r\n tagName = tagName.toLowerCase();\r\n \r\n return typeof tagName === `string` &&\r\n tagName.length > 0 &&\r\n /^[a-z]/.test(tagName) &&\r\n /^[a-z0-9-]+$/gi.test(tagName);\r\n}\r\n\r\nfunction tag2FN(tagName) {\r\n tagName = tagName in customElementRegistry ? customElementRegistry[tagName] : tagName;\r\n return (initial, ...args) => tagFN(tagName, initial, ...args);\r\n}\r\n\r\nfunction ucFirst([first, ...theRest]) { return `${first.toUpperCase()}${theRest.join(``)}`; }\r\n\r\nfunction toDashedNotation(str2Convert) {\r\n return str2Convert.replace(/[A-Z]/g, a => `-${a.toLowerCase()}`).replace(/^-|-$/, ``);\r\n}\r\n\r\nfunction toCamelcase(str2Convert) {\r\n return checkType(str2Convert, String)\r\n ? str2Convert.toLowerCase()\r\n .split(`-`)\r\n .map( (str, i) => i && `${ucFirst(str)}` || str)\r\n .join(``)\r\n : str2Convert;\r\n}\r\n\r\nfunction maybeFactory() {\r\n const errFn = err => undefined;\r\n return function({trial, whenError = errFn } = {}) {\r\n try { return trial(); } catch (err) { return whenError(err); }\r\n };\r\n}\r\n\r\nfunction typeCheckFactory() {\r\n const collate = new Intl.Collator(`en`, {sensitivity: 'base'});\r\n const nameOf = type2Check => {\r\n return typeof type2Check?.constructor === `function`\r\n ? type2Check?.name || type2Check?.constructor?.name\r\n : typeof type2Check === `string` ? type2Check : typeof type2Check;\r\n };\r\n const isNothing = obj => [null, undefined, Infinity, NaN].some(v => v === obj);\r\n \r\n function checkSingleType(obj, type2Check) {\r\n if (\r\n type2Check !== obj &&\r\n ( isNothing(obj) || type2Check === Number && (Number.isNaN(obj) || !Number.isFinite(obj)) )\r\n ) { return false; }\r\n const [objName, typeName] = [nameOf(obj), nameOf(type2Check)];\r\n \r\n return obj?.[Symbol.proxy] === type2Check ||\r\n type2Check === obj?.name ||\r\n 0 === collate.compare(objName, typeName) ||\r\n 0 === collate.compare(obj.constructor?.name, type2Check?.name) ||\r\n obj.constructor?.name === type2Check ||\r\n objName === type2Check ||\r\n 0 === collate.compare( Object.prototype.toString.call(obj), `[object ${typeName}]` );\r\n }\r\n \r\n return function checkType(obj, ...type2Check) {\r\n if (Array.isArray(type2Check) && type2Check.length > 1) {\r\n for (const chkType of type2Check) {\r\n if (checkSingleType(obj, chkType)) { return true; }\r\n }\r\n \r\n return false;\r\n }\r\n \r\n return checkSingleType(obj, type2Check?.[0]);\r\n }\r\n}\r\n", "import {default as IS} from \"./TypeofAnything.js\";\r\nexport default LifeStyleFactory;\r\n\r\n/* region factory */\r\nfunction LifeStyleFactory({styleSheet, createWithId} = {}) {\r\n const { tryParseAtOrNestedRules, ruleExists, checkParams,\r\n sheet, removeRules, consider, currentSheetID } = sheetHelpers({styleSheet, createWithId});\r\n\r\n function setRules4Selector(rule, properties) {\r\n if (rule && properties.removeProperties) {\r\n Object.keys(properties.removeProperties)\r\n .forEach( prop => rule.style.removeProperty(toDashedNotation(prop)) );\r\n return;\r\n }\r\n\r\n Object.entries(properties)\r\n .forEach( ([prop, value]) => {\r\n prop = toDashedNotation(prop.trim());\r\n value = value.trim();\r\n\r\n let priority;\r\n\r\n if (/!important/.test(value)) {\r\n value = value.slice(0, value.indexOf(`!important`)).trim();\r\n priority = `important`;\r\n }\r\n\r\n if (!CSS.supports(prop, value)) {\r\n return console.error(`StylingFactory ${currentSheetID} error: '${\r\n prop}' with value '${value}' not supported (yet)`);\r\n }\r\n\r\n tryAndCatch( () => rule.style.setProperty(prop, value, priority),\r\n `StylingFactory ${currentSheetID} (setRule4Selector) failed`);\r\n });\r\n }\r\n\r\n function setRules(selector, styleRules, sheetOrMediaRules = sheet) {\r\n selector = selector?.trim?.();\r\n if (!IS(selector, String) || !selector.length || /[;,]$/g.test(selector)) {\r\n return console.error(`StylingFactory ${currentSheetID} (setRules): [${\r\n selector || `[no selector given]` }] is not a valid selector`);\r\n }\r\n\r\n if (styleRules.removeRule) {\r\n return removeRules(selector);\r\n }\r\n\r\n const exists = ruleExists(selector, true);\r\n const rule4Selector = exists\r\n || sheetOrMediaRules.cssRules[sheetOrMediaRules.insertRule(`${selector} {}`, sheetOrMediaRules.cssRules.length || 0)];\r\n\r\n return consider( () => setRules4Selector(rule4Selector, styleRules), selector, exists );\r\n }\r\n\r\n function doParse(cssDeclarationString) {\r\n const rule = cssDeclarationString.trim().split(/{/, 2);\r\n const selector = rule.shift().trim();\r\n\r\n if (!IS(selector, String) || !selector?.trim()?.length) {\r\n return console.error(`StylingFactory ${currentSheetID} (doParse): no (valid) selector could be extracted from rule ${\r\n shortenRule(cssDeclarationString)}`);\r\n }\r\n\r\n const cssRules = cssRuleFromText(rule.shift());\r\n\r\n return tryAndCatch( () => setRules(selector, cssRules), `StylingFactory ${currentSheetID} (setRules) failed` );\r\n }\r\n\r\n function styleFromString(cssDeclarationString) {\r\n const checkAts = tryParseAtOrNestedRules(cssDeclarationString);\r\n return checkAts.done ? checkAts.existing : doParse(cssDeclarationString);\r\n }\r\n\r\n function styleFromObject(selector, rulesObj) {\r\n if (selector.trim().startsWith(`@media`)) {\r\n return styleFromString(atMedia2String(selector, rulesObj));\r\n }\r\n return setRules(selector, rulesObj);\r\n }\r\n\r\n return function(cssBlockOrSelector, rulesObj = {}) {\r\n const checksOk = checkParams(cssBlockOrSelector, rulesObj);\r\n\r\n return checksOk && (\r\n Object.keys(rulesObj).length ?\r\n styleFromObject(cssBlockOrSelector, rulesObj) :\r\n styleFromString(cssBlockOrSelector) );\r\n };\r\n}\r\n/* endregion factory */\r\n\r\n/* region helpers */\r\nfunction sheetHelpers({styleSheet, createWithId}) {\r\n const notification = `Note: The rule or some of its properties may not be supported by your browser (yet)`;\r\n const currentSheetID = `for style#${createWithId}`;\r\n styleSheet = createWithId ? retrieveOrCreateSheet(createWithId) : styleSheet;\r\n\r\n function retrieveOrCreateSheet(id) {\r\n const existingSheet = document.querySelector(`#${id}`)?.sheet;\r\n\r\n if (existingSheet) { return existingSheet; }\r\n\r\n const newSheet = Object.assign(document.createElement(`style`), { id });\r\n document.head.insertAdjacentElement(`beforeend`, newSheet);\r\n return newSheet.sheet;\r\n }\r\n\r\n function notSupported(rule) {\r\n console.error(`StylingFactory ${currentSheetID} [rule: ${rule}]\r\n => @charset, @namespace and @import are not supported here`);\r\n return {done: true};\r\n }\r\n\r\n function ruleExists(ruleFragOrSelector, isSelector) {\r\n return [...styleSheet.rules].find( r =>\r\n isSelector ?\r\n compareSelectors((r.selectorText || ``), ruleFragOrSelector) :\r\n createRE`${escape4RegExp(ruleFragOrSelector)}${[...`gim`]}`.test(r.cssText));\r\n }\r\n\r\n function tryParseAtOrNestedRules(cssDeclarationString) {\r\n if (/^@charset|@import|namespace/i.test(cssDeclarationString.trim())) {\r\n return notSupported(cssDeclarationString);\r\n }\r\n\r\n if (cssDeclarationString.match(/}/g)?.length > 1) {\r\n return {existing: tryParse(cssDeclarationString, 1), done: true}\r\n }\r\n\r\n return { done: false };\r\n }\r\n\r\n function removeRules(selector) {\r\n const rulesAt = [...styleSheet.cssRules].reduce( (acc, v, i) =>\r\n compareSelectors(v.selectorText || ``, selector) && acc.concat(i) || acc, [] );\r\n const len = rulesAt.length;\r\n rulesAt.forEach(idx => styleSheet.deleteRule(idx));\r\n\r\n return len > 0\r\n ? console.info(`\u2714 Removed ${len} instance${len > 1 ? `s` : ``} of selector ${\r\n selector} from ${currentSheetID.slice(4)}`)\r\n : console.info(`\u2714 Remove rule: selector ${selector} does not exist in ${\r\n currentSheetID.slice(4)}`);\r\n }\r\n\r\n function checkParams(cssBlockOrSelector, rulesObj) {\r\n return cssBlockOrSelector\r\n && IS(cssBlockOrSelector, String)\r\n && cssBlockOrSelector.trim().length > 0\r\n && IS(rulesObj, Object) ||\r\n (console.error(`StylingFactory ${currentSheetID} called with invalid parameters`), false);\r\n }\r\n\r\n function tryParse(cssDeclarationString) {\r\n cssDeclarationString = cssDeclarationString.trim();\r\n const rule = cssDeclarationString.slice(0, cssDeclarationString.indexOf(`{`)).trim();\r\n const exists = !!ruleExists(rule);\r\n\r\n try {\r\n return (styleSheet.insertRule(`${cssDeclarationString}`, styleSheet.cssRules.length), exists);\r\n } catch(err) {\r\n return (console.error(`StylingFactory ${currentSheetID} (tryParse) ${err.name} Error:\\n${\r\n err.message}\\nRule: ${\r\n shortenRule(cssDeclarationString)}\\n${\r\n notification}`),\r\n exists);\r\n }\r\n }\r\n\r\n function consider(fn, rule, existing) {\r\n try {\r\n return (fn(), existing);\r\n } catch(err) {\r\n return (\r\n console.error(`StylingFactory ${currentSheetID} (tryAddOrModify) ${err.name} Error:\\n${\r\n err.message}\\nRule: ${shortenRule(rule)}\\n${notification}`),\r\n existing\r\n );\r\n }\r\n }\r\n\r\n return {\r\n sheet: styleSheet, removeRules, tryParseAtOrNestedRules,\r\n ruleExists, checkParams, tryParse, consider,\r\n currentSheetID };\r\n}\r\n/* endregion helpers */\r\n\r\n/* region globalOrShared */\r\nfunction atMedia2String(selector, rulesObj) {\r\n return `${selector.trim()} ${\r\n Object.entries(rulesObj).map( ( [ selectr, rule] ) =>\r\n `${selectr}: { ${stringifyMediaRule(rule) }` ) }`;\r\n}\r\n\r\nfunction shortenRule(rule) {\r\n const shortRule = (rule || `NO RULE`).trim().slice(0, 50).replace(/\\n/g, `\\\\n`).replace(/\\s{2,}/g, ` `);\r\n return rule.length > shortRule.length ? `${shortRule.trim()}...truncated` : shortRule;\r\n}\r\n\r\nfunction stringifyMediaRule(mediaObj) {\r\n return Object.entries(mediaObj)\r\n .map( ([key, value]) => `${key}: ${value.trim()}`).join(`;\\n`);\r\n}\r\n\r\nfunction escape4RegExp(str) {\r\n return str.replace(/([*\\[\\]()-+{}.$?\\\\])/g, a => `\\\\${a}`);\r\n}\r\n\r\nfunction createRE(regexStr, ...args) {\r\n const flags = args.length && Array.isArray(args.slice(-1)) ? args.pop().join(``) : ``;\r\n\r\n return new RegExp(\r\n (args.length &&\r\n regexStr.raw.reduce( (a, v, i ) => a.concat(args[i-1] || ``).concat(v), ``) ||\r\n regexStr.raw.join(``))\r\n .split(`\\n`)\r\n .map( line => line.replace(/\\s|\\/\\/.*$/g, ``).trim().replace(/(@s!)/g, ` `) )\r\n .join(``), flags);\r\n}\r\n\r\nfunction toDashedNotation(str2Convert) {\r\n return str2Convert.replace(/[A-Z]/g, a => `-${a.toLowerCase()}`).replace(/[^--]^-|-$/, ``);\r\n}\r\n\r\nfunction tryAndCatch(fn, msg) {\r\n try { return fn(); }\r\n catch(err) { console.error( `${msg || `an error occured`}: ${err.message}` ); }\r\n}\r\n\r\nfunction prepareCssRuleFromText(rule) {\r\n return rule\r\n .replace(/\\/\\*.+?\\*\\//gm, ``)\r\n .replace(/[}{\\r\\n]/g, ``)\r\n .replace(/(data:.+?);/g, (_,b) => `${b}\\\\3b`)\r\n .split(`;`)\r\n .map(l => l.trim())\r\n .join(`;\\n`)\r\n .replaceAll(`\\\\3b`, `;`)\r\n .split(`\\n`);\r\n}\r\n\r\nfunction toRuleObject(preparedRule) {\r\n return preparedRule\r\n .reduce( (acc, v) => {\r\n const [key, value] = [\r\n v.slice(0, v.indexOf(`:`)).trim(),\r\n v.slice(v.indexOf(`:`) + 1).trim().replace(/;$|;.+(?=\\/*).+\\/$/, ``)];\r\n return key && value ? {...acc, [key]: value} : acc; }, {} );\r\n}\r\n\r\nfunction cssRuleFromText(rule) {\r\n return toRuleObject(prepareCssRuleFromText(rule));\r\n}\r\n\r\nfunction compareSelectors(s1, s2) {\r\n return s1?.replace(`::`, `:`) === s2?.replace(`::`, `:`);\r\n}\r\n/* endregion globalOrShared */\r\n", "import { allTags } from \"./EmbedResources.js\";\r\nimport { IS } from \"./Utilities.js\";\r\nlet lenient = false;\r\nconst allowUnknownHtmlTags = {\r\n on: () => lenient = true,\r\n off: () => lenient = false,\r\n};\r\nexport default {\r\n tagsRaw: allTags,\r\n allowUnknownHtmlTags,\r\n isAllowed(elem) {\r\n if (lenient) { return true; }\r\n const nodeName = IS(elem, String) ? elem.toLowerCase() : elem?.nodeName.toLowerCase() || `none`;\r\n return nodeName === `#text` || !!allTags[nodeName];\r\n },\r\n allowTag: tag2Allow => allTags[tag2Allow.toLowerCase()] = true,\r\n prohibitTag: tag2Prohibit => allTags[tag2Prohibit.toLowerCase()] = false,\r\n};\r\n", "import cleanupTagInfo from \"./HTMLTags.js\";\r\nimport {ATTRS, IS, truncate2SingleStr, escHtml, systemLog} from \"./Utilities.js\";\r\n\r\nlet logElementCreationErrors2Console = true;\r\nconst attrRegExpStore = {\r\n data: /data-[\\-\\w.\\p{L}]/ui, // data-* minimal 1 character after dash\r\n validURL: /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i,\r\n whiteSpace: /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g,\r\n notAllowedValues: /^javascript|injected|noreferrer|alert|DataURL/gi\r\n};\r\n\r\nfunction logContingentErrors(elCreationInfo) {\r\n if (logElementCreationErrors2Console && Object.keys(elCreationInfo.removed).length) {\r\n const msgs = Object.entries(elCreationInfo.removed)\r\n .reduce( (acc, [k, v]) => [...acc, `${escHtml(k)} => ${v}`], [])\r\n .join(`\\\\000A`);\r\n systemLog.error(`JQx: HTML creation error(s): ${msgs}`);\r\n }\r\n}\r\n\r\nfunction elementCheck(child) {\r\n const name = child.nodeName.toLowerCase();\r\n const notAllowedCustomElementNames = [\r\n `annotation-xml`, `color-profile`, `font-face`, `font-face-src`,\r\n `font-face-uri`, `font-face-format`, `font-face-name`, `missing-glyph` ];\r\n return /-/.test(name) && !notAllowedCustomElementNames.find(v => v === name) || cleanupTagInfo.isAllowed(name);\r\n}\r\n\r\nfunction cleanupHtml(el2Clean) {\r\n const elCreationInfo = {\r\n rawHTML: el2Clean?.parentElement?.getHTML() ?? `no html`,\r\n removed: { },\r\n }\r\n\r\n if (IS(el2Clean, HTMLElement)) {\r\n [...el2Clean.childNodes].forEach(child => {\r\n if (child?.children?.length) {\r\n cleanupHtml(child);\r\n }\r\n if (child?.attributes) {\r\n const attrStore = IS(child, SVGElement) ? ATTRS.svg : ATTRS.html;\r\n\r\n [...(child ?? {attributes: []}).attributes]\r\n .forEach(attr => {\r\n const name = attr.name.trim().toLowerCase();\r\n const value = attr.value.trim().toLowerCase().replace(attrRegExpStore.whiteSpace, ``);\r\n const evilValue = name === \"href\"\r\n ? !attrRegExpStore.validURL.test(value)\r\n : attrRegExpStore.notAllowedValues.test(value);\r\n const evilAttrib = name.startsWith(`data`) ? !attrRegExpStore.data.test(name) : !!attrStore[name];\r\n\r\n if (evilValue || evilAttrib) {\r\n let val = truncate2SingleStr(attr.value || `none`, 60);\r\n val += val.length === 60 ? `...` : ``;\r\n elCreationInfo.removed[`${attr.name}`] = `attribute/property/value not allowed, removed. Value: ${\r\n val}`;\r\n child.removeAttribute(attr.name);\r\n }\r\n });\r\n }\r\n\r\n const allowed = elementCheck(child) ||\r\n child.constructor === CharacterData ||\r\n child.constructor === Comment;\r\n\r\n if (!allowed) {\r\n const tag = (child?.outerHTML || child?.textContent).trim();\r\n let tagValue = truncate2SingleStr(tag, 60) ?? `EMPTY`;\r\n tagValue += tagValue.length === 60 ? `...` : ``;\r\n elCreationInfo.removed[`<${child.nodeName?.toLowerCase()}>`] = `not allowed, not rendered. Value: ${\r\n tagValue}`;\r\n child.remove();\r\n }\r\n });\r\n }\r\n logContingentErrors(elCreationInfo);\r\n\r\n return el2Clean;\r\n}\r\nconst emphasize = str => `***${str}***`;\r\nconst getRestricted = emphasizeTag =>\r\n Object.entries(cleanupTagInfo)\r\n .reduce((acc, [key, value]) =>\r\n !value.allowed &&\r\n [...acc, (emphasizeTag && key === emphasizeTag ? emphasize(key) : key)] ||\r\n acc, []);\r\n\r\nexport { cleanupHtml, getRestricted, ATTRS};\r\n", "import { cleanupHtml, getRestricted, } from \"./DOMCleanup.js\";\r\nimport {ATTRS, IS, insertPositions, isNode, truncateHtmlStr} from \"./Utilities.js\";\r\n\r\nexport {\r\n getRestricted, createElementFromHtmlString, element2DOM,\r\n cleanupHtml, inject2DOMTree, ATTRS\r\n};\r\n\r\nfunction htmlToVirtualElement(htmlString) {\r\n const placeholderNode = document.createElement(\"div\");\r\n placeholderNode.insertAdjacentHTML(insertPositions.end, htmlString);\r\n return placeholderNode.childNodes.length\r\n ? cleanupHtml(placeholderNode)\r\n : undefined;\r\n}\r\n\r\nfunction characterDataElement2DOM(elem, root, position) {\r\n switch(true) {\r\n case IS(elem, Comment): return root.insertAdjacentHTML(position, `<!--${elem.data}-->`);\r\n case IS(elem, Text): return root.insertAdjacentText(position, elem.data || elem.textContent);\r\n default: return;\r\n }\r\n}\r\n\r\nfunction inject2DOMTree( collection = [], root = document.body, position = insertPositions.BeforeEnd ) {\r\n position = position || insertPositions.BeforeEnd;\r\n root = root?.isJQx ? root.node : root || document.body;\r\n return collection.reduce( (acc, elem) => {\r\n const created = isNode(elem) && element2DOM(elem, root, position);\r\n return created ? [...acc, created] : acc;\r\n }, []);\r\n}\r\n\r\nfunction element2DOM(elem, root = document.body, position = insertPositions.BeforeEnd) {\r\n position = position || insertPositions.BeforeEnd;\r\n root = root?.isJQx ? root?.[0] : root;\r\n\r\n return IS(elem, Comment, Text)\r\n ? characterDataElement2DOM(elem, root, position)\r\n : IS(elem, HTMLElement) ? root.insertAdjacentElement(position, elem) : undefined;\r\n}\r\n\r\nfunction createElementFromHtmlString(htmlStrOrText) {\r\n if (IS(htmlStrOrText, Text, Comment)) {\r\n return htmlStrOrText;\r\n }\r\n \r\n const testStr = htmlStrOrText?.trim();\r\n let text = testStr?.split(/<text>|<\\/text>/i) ?? [];\r\n\r\n if (text?.length) {\r\n text = text.length > 1 ? text.filter(v => v.length).shift() : undefined;\r\n }\r\n\r\n if (testStr.startsWith(`<!--`) && testStr.endsWith(`-->`)) {\r\n return document.createComment(htmlStrOrText.replace(/<!--|-->$/g, ''));\r\n }\r\n \r\n if (!!text || (IS(testStr, String) && !/^<(.+)[^>]+>/m.test(testStr))) {\r\n return document.createTextNode(text ?? testStr);\r\n }\r\n\r\n const nwElem = htmlToVirtualElement(htmlStrOrText);\r\n\r\n if (nwElem.childNodes.length < 1) {\r\n return createElementFromHtmlString(`<span data-jqxcreationerror=\"1\">${truncateHtmlStr(htmlStrOrText, 60)}</span>`);\r\n }\r\n\r\n return nwElem.children[0];\r\n}\r\n", "import { popupStyling as styleRules } from \"./EmbedResources.js\";\r\n\r\nexport default function($) {\r\n if ($.node(`#jqxPopup`)) { return; }\r\n $.logger.log(`JQx: [JQx].Popup first call. Dialog element created.`);\r\n $.dialog({id: `jqxPopup`}, $.div({ id: \"jqxPopupContent\" })).render;\r\n $.editCssRules(...styleRules);\r\n let timers = [];\r\n const [popupContent, popupNode] = [$(`#jqxPopupContent`), $.node(`#jqxPopup`)];\r\n let currentProps = {};\r\n $.handle( {\r\n type: `click, cancel`,\r\n handlers: genericPopupCloseHandler,\r\n name: \"genericPopupCloseHandler\",\r\n capture: true,\r\n about: \"A generic handler for JQx popups\"} );\r\n return Object.freeze({show: initPopup, remove: initHidePopup, removeModal});\r\n\r\n function initPopup(props) {\r\n if (popupNode.open) {\r\n switch(true) {\r\n case isCurrent(props): return;\r\n default:\r\n initHidePopup();\r\n return setTimeout(() => initPopup(props), 200);\r\n }\r\n }\r\n \r\n currentProps = {...props};\r\n let {content} = currentProps;\r\n return !($.IS(content, String, HTMLElement) || content?.isJQx) ? true : showPopup();\r\n }\r\n\r\n function initHidePopup() {\r\n if (currentProps.modal) {\r\n return failModalClose(currentProps.warnMessage);\r\n }\r\n\r\n return hidePopup();\r\n }\r\n \r\n function isCurrent(props) {\r\n for (const [key, value] of Object.entries(currentProps)) {\r\n if (value !== props[key]) { return false; }\r\n }\r\n return true;\r\n }\r\n \r\n function showPopup() {\r\n popupContent.clear();\r\n let {content, modal, closeAfter} = currentProps;\r\n modal = $.IS(modal, Boolean) ? modal : false;\r\n const closerIcon = modal ? \"\" : $.div({ id: \"closeHandleIcon\"});\r\n popupContent.append(closerIcon, $.IS(content, String) ? $.div(content) : content);\r\n popupNode.showModal();\r\n if (!modal && $.IS(closeAfter, Number)) { createTimer(initHidePopup, closeAfter); }\r\n }\r\n\r\n function hidePopup() {\r\n popupNode.close(currentProps.returnValue);\r\n clearTimers();\r\n if ($.IS(currentProps.callback, Function)) {\r\n return timers.push(setTimeout(() => currentProps.callback(currentProps.returnValue), 200));\r\n }\r\n currentProps = {};\r\n }\r\n \r\n function clearTimers() {\r\n timers.forEach(timer => clearTimeout(timer));\r\n timers = [];\r\n }\r\n\r\n function removeModal({callback, value} = {}) {\r\n currentProps.returnValue = value;\r\n currentProps.modal = false;\r\n currentProps.callback = callback || currentProps.callback;\r\n initHidePopup();\r\n }\r\n\r\n function genericPopupCloseHandler({evt}) {\r\n if ( Object.keys(currentProps).length < 1 || !popupNode.open ) { return; }\r\n \r\n if (evt.type === `cancel` && currentProps.modal) { evt.preventDefault(); }\r\n \r\n if (evt.target.closest(`#closeHandleIcon`) || !evt.target.closest(`#jqxPopupContent`)) {\r\n currentProps.activeTimer && clearTimeout(currentProps.activeTimer);\r\n return initHidePopup();\r\n }\r\n }\r\n\r\n function createTimer(callback, seconds) {\r\n if ($.IS(callback, Function) && $.IS(seconds, Number) && seconds > 0) {\r\n clearTimers();\r\n timers.push(setTimeout(callback, seconds * 1000));\r\n }\r\n }\r\n\r\n function failModalClose(warnMessage) {\r\n if (!$.IS(warnMessage, String, HTMLElement) && !warnMessage.isJQx) { return; }\r\n let modalWarningBox = popupContent.find$(`.warn`);\r\n // note: fall through is intentional.\r\n switch(true) {\r\n case modalWarningBox.is.empty: modalWarningBox = $.div({class: `warn`}, warnMessage);\r\n default: popupContent.append(modalWarningBox.addClass(`active`));\r\n createTimer(() => popupContent.find$(`.warn`).removeClass(`active`), 2);\r\n }\r\n }\r\n}\r\n", "import {IS, isNonEmptyString, getCaptureValue, getHandlerName, handlerIdCache, systemLog} from \"./Utilities.js\";\r\n\r\nexport { HandlerFactory };\r\n\r\nfunction HandlerFactory(jqx) {\r\n const store = {};\r\n const anon = `anonymous_`;\r\n \r\n function setListener(listener) {\r\n if (listener) {\r\n const {handler, capture, type} = listener;\r\n document.addEventListener(type, handler, {capture});\r\n }\r\n }\r\n \r\n function removeListener(listener) {\r\n if (listener) {\r\n const {type, handler, capture} = listener;\r\n document.removeEventListener(type, handler, {capture});\r\n }\r\n }\r\n \r\n function wrapFn4Selector(fn, selector, once, handlerName) {\r\n return function(evt) {\r\n if (!isNonEmptyString(selector)) {\r\n return fn({evt});\r\n }\r\n \r\n const elemFound = evt.target.closest(selector);\r\n if (elemFound) {\r\n const me = jqx(elemFound);\r\n fn({self: me, me, evt}); // self is legacy\r\n // to avoid listener removal on capturing/bubbling,\r\n // once is handled manually\r\n if (once) { remove(evt.type, handlerName); }\r\n }\r\n return true;\r\n }\r\n }\r\n \r\n function storedEventType(eventType) {\r\n store[eventType] = store[eventType] || {};\r\n return store[eventType];\r\n }\r\n \r\n function retrieve(eventType, name) {\r\n return Object.entries(storedEventType(eventType))\r\n .find( ([key, ]) => key === name );\r\n }\r\n \r\n function remove(eventType, name) {\r\n const listener = retrieve(eventType, name);\r\n if (listener) {\r\n removeListener(listener[1]);\r\n delete store[eventType][name];\r\n delete handlerIdCache[name];\r\n \r\n systemLog.warn(`Removed listener [${name}] for event type [${eventType}].`);\r\n }\r\n }\r\n \r\n function storeHandler(spec) {\r\n let { type, handler, name, capture, once, selector, node, about } = spec;\r\n store[type] = store[type] || {};\r\n const handlerName = getHandlerName(name || handler.name);\r\n const initialHandler = handler;\r\n if (node instanceof HTMLElement) {\r\n // Note: for multiple event types dataset.hid may be defined already\r\n const handlerID = node.dataset.hid || handlerName;\r\n node.dataset.hid = handlerID;\r\n selector = `[data-hid=${handlerID}]`;\r\n }\r\n \r\n switch(true) {\r\n case !store[type][handlerName]:\r\n systemLog.log(`JQx: created listener for event type ${type}, with handler name ${handlerName}`);\r\n store[type][handlerName] = {\r\n name: handlerName,\r\n handler: wrapFn4Selector(handler, selector, once, handlerName),\r\n capture: getCaptureValue(type, capture),\r\n once: !!once,\r\n type: type,\r\n initialHandler,\r\n selector: !!selector && selector || false,\r\n about: !!about && about || false,\r\n unListen() { remove(type, handlerName); },\r\n };\r\n return store[type][handlerName];\r\n default: return console.warn(`The listener [${handlerName}] for [${\r\n type}] exists, it is not re-assigned.`);\r\n }\r\n }\r\n // todo: maybe enable a custom unListen handler\r\n return {\r\n remove(...args) { return remove(...args); },\r\n listen: function(spec) {\r\n const { type, handler } = spec;\r\n if ( !isNonEmptyString(type) || !IS(handler, Function) ) { return; }\r\n const nwHandler = storeHandler(spec);\r\n \r\n if (nwHandler) {\r\n setListener(nwHandler);\r\n return {\r\n type,\r\n name: nwHandler.name,\r\n unListen() { remove(type, nwHandler.name); },\r\n };\r\n }\r\n },\r\n get ListenerStore() { return Object.freeze({...store}); }\r\n };\r\n}\r\n", "import {default as IS, maybe, proxyWrapper, addSymbolicExtensions} from \"./TypeofAnything.js\";\r\nimport {ATTRS} from \"./EmbedResources.js\";\r\nimport {default as tagFNFactory} from \"./tinyDOM.js\";\r\nimport styleFactory from \"./LifeCSS.js\";\r\nimport {createElementFromHtmlString, inject2DOMTree, cleanupHtml} from \"./DOM.js\";\r\nimport PopupFactory from \"./Popup.js\";\r\nimport { HandlerFactory } from \"./HandlerFactory.js\";\r\nimport tagLib from \"./HTMLTags.js\";\r\naddSymbolicExtensions();\r\nconst systemLog = systemLogFactory();\r\nconst allwaysCaptureEventTypes = [\r\n `load`, `unload`, `scroll`, `focus`, `blur`, `DOMNodeRemovedFromDocument`,\r\n `DOMNodeInsertedIntoDocument`, `loadstart`, `progress`, `error`, `abort`,\r\n `load`, `loadend`, `pointerenter`, `pointerleave`, `readystatechange`];\r\nconst insertPositions = Object.freeze(new Proxy({\r\n start: \"afterbegin\", afterbegin: \"afterbegin\",\r\n end: \"beforeend\", beforeend: \"beforeend\",\r\n before: \"beforebegin\", beforebegin: \"beforebegin\",\r\n after: \"afterend\", afterend: \"afterend\" }, {\r\n get(obj, key) { return obj[String(key).toLowerCase()] ?? obj[key]; }\r\n}));\r\nconst characters4RandomString = [...Array(26)]\r\n .map((x, i) => String.fromCharCode(i + 65))\r\n .concat([...Array(26)].map((x, i) => String.fromCharCode(i + 97)))\r\n .concat([...Array(10)].map((x, i) => `${i}`));\r\nconst datasetKeyProxy = Object.freeze({\r\n get(obj, key) { return obj[toCamelcase(key)] || obj[key]; },\r\n enumerable: false,\r\n configurable: false\r\n});\r\nconst handlerIdCache = {};\r\n\r\nexport {\r\n after, applyStyle, assignAttrValues, ATTRS, beforeOrAfter, checkProp, cleanupHtml, clearAllTimers,\r\n cloneAndDestroy, convert2Bool, createElementFromHtmlString, datasetKeyProxy, ElemArray2HtmlString, emptyElement,\r\n escHtml, findParentScrollDistance, getAttributesForLogging, getCaptureValue, getHandlerName, HandlerFactory,\r\n handlerIdCache, inject2DOMTree, input2Collection, insertPositions, IS, isArrayOfHtmlElements, isArrayOfHtmlStrings,\r\n isComment, isCommentOrTextNode, isHtmlString, isModal, isNode, isNonEmptyString, isText, isVisible, isWritable,\r\n logTime, maybe, pad0,PopupFactory, proxyWrapper, randomNr, randomString, resolveEventTypeParameter, setData,\r\n styleFactory, systemLog, tagFNFactory, tagLib, toCamelcase, toDashedNotation, truncate2SingleStr, truncateHtmlStr,\r\n ucFirst,\r\n};\r\n\r\nfunction clearAllTimers() {\r\n let id = setTimeout(() => {});\r\n while (id >= 0) { clearTimeout(id--); }\r\n}\r\n\r\nfunction getHandlerName(name) {\r\n const validName = isNonEmptyString(name) && !/^handler|handlers$/gi.test(name.trim())\r\n return validName ? name.trim() : uniqueHandlerID();\r\n}\r\n\r\nfunction getAttributesForLogging(instance) {\r\n const isElem = !!instance.node && !IS(instance, Text, Comment);\r\n switch(true) {\r\n case isElem:\r\n const dataset = instance.node.dataset ? Object.keys(instance.node.dataset)\r\n .map(v => `[data-${v}]`) : [];\r\n const relevantAttrs = [\r\n instance.attr(`id`) && `#${instance?.attr(`id`)}` || undefined,\r\n instance.attr(`class`) && instance?.attr(`class`).split(` `).map(v => `.${v}`).join(', ') || undefined,\r\n dataset.length > 0 && dataset.join(`, `) || undefined,\r\n ];\r\n const attrs = relevantAttrs.filter(v => !!v).join(`, `) || [];\r\n return attrs.length ? `(${attrs})` : ``;\r\n default: return ``;\r\n }\r\n}\r\n\r\nfunction uniqueHandlerID(idCache) {\r\n const anonID = `anonymous_${Math.random().toString(36).slice(2)}`;\r\n \r\n if (!handlerIdCache[anonID]) {\r\n handlerIdCache[anonID] = anonID;\r\n return anonID;\r\n }\r\n \r\n return uniqueHandlerID();\r\n}\r\n\r\nfunction getCaptureValue(eventType, captureValue) {\r\n return !!(allwaysCaptureEventTypes.find(t => t === eventType)) || !!captureValue;\r\n}\r\n\r\nfunction checkProp(prop) {\r\n return prop.startsWith(`data`) || ATTRS.html.find(attr => prop.toLowerCase() === attr);\r\n}\r\n\r\nfunction emptyElement(el) {\r\n return el && (el.textContent = \"\");\r\n}\r\n\r\nfunction findParentScrollDistance(node, distance = 0, top = true) {\r\n node = node?.parentElement;\r\n const what = top ? `scrollTop` : `scrollLeft`;\r\n distance += node ? node[what] : 0;\r\n return !node ? distance : findParentScrollDistance(node, distance, top);\r\n}\r\n\r\nfunction isNonEmptyString(str, minlen = 1) {\r\n minlen = IS(minlen, Number) && minlen || 1;\r\n return IS(str, String) && str.length >= minlen;\r\n}\r\n\r\nfunction truncate2SingleStr(str, maxLength = 120) {\r\n return truncateHtmlStr(str, maxLength).replace(/</g, `<`);\r\n}\r\n\r\nfunction truncateHtmlStr(str, maxLength = 120) {\r\n return `${str}`\r\n .trim()\r\n .slice(0, maxLength)\r\n .replace(/>\\s+</g, `><`)\r\n .replace(/</g, `<`)\r\n .replace(/\\s{2,}/g, ` `)\r\n .replace(/\\n/g, `\\\\n`) + (str.length > maxLength ? ` …` : ``).trim();\r\n}\r\n\r\nfunction escHtml(html) {\r\n switch(true) {\r\n case IS(html, String):\r\n const tmpDiv = document.createElement(\"div\");\r\n tmpDiv.append(html);\r\n return tmpDiv.innerHTML;\r\n default: return html;\r\n }\r\n}\r\n\r\n/* private */\r\nfunction decodeForConsole(something) {\r\n return IS(something, String) &&\r\n Object.assign(\r\n document.createElement(`textarea`),\r\n {innerHTML: something}).textContent || something;\r\n}\r\n\r\nfunction systemLogFactory() {\r\n let [on, disabled] = [false, true];\r\n \r\n const backLog = [];\r\n const systemLogger = {\r\n get on() { on = true; return systemLogger; },\r\n get off() { on = false; return systemLogger; },\r\n get disable() { disabled = true; return systemLogger; },\r\n get enable() { disabled = false; return systemLogger; },\r\n get backLog() { return backLog; },\r\n };\r\n \r\n function disable() {\r\n disabled = true;\r\n }\r\n \r\n function enable() {\r\n disabled = false;\r\n }\r\n \r\n function error(...args) {\r\n backLog.unshift(...args.map(arg => `${logTime()} \u2A3B ${decodeForConsole(arg)}`));\r\n console.error(backLog.slice(0, args.length).join(`\\n`));\r\n return systemLogger;\r\n }\r\n \r\n function warn(...args) {\r\n backLog.unshift(...args.map(arg => `${logTime()} \u26A0 ${decodeForConsole(arg)}`));\r\n console.warn(backLog.slice(0, args.length).join(`\\n`));\r\n return systemLogger;\r\n }\r\n \r\n function log(...args) {\r\n const entryTxt = args.map(arg => `${logTime()} \u2714 ${decodeForConsole(arg)}`);\r\n !disabled && backLog.unshift(...entryTxt);\r\n switch(on) {\r\n case true: console.log(entryTxt.join(`\\n`));\r\n default: return systemLogger;\r\n }\r\n }\r\n \r\n Object.defineProperties(systemLogger, {\r\n log: {value: log, enumerable: false},\r\n error: {value: error, enumerable: false},\r\n warn: {value: warn, enumerable: false},\r\n });\r\n \r\n return Object.freeze(systemLogger);\r\n}\r\n\r\nfunction logTime() {\r\n return ((d) =>\r\n `[${pad0(d.getHours())}:${pad0(d.getMinutes())}:${\r\n pad0(d.getSeconds())}.${pad0(d.getMilliseconds(), 3)}]`)(new Date());\r\n}\r\n\r\nfunction assignAttrValues(el, keyValuePairs) {\r\n if (el) {\r\n for (let [key, value] of Object.entries(keyValuePairs)) {\r\n key = toDashedNotation(key);\r\n if (key.startsWith(`data`)) {\r\n return setData(el, value);\r\n }\r\n \r\n if (IS(value, String) && checkProp(key)) {\r\n el.setAttribute(key, value.split(/[, ]/)?.join(` `));\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setData(el, keyValuePairs) {\r\n if (el && IS(keyValuePairs, Object)) {\r\n for (const [key, value] of Object.entries(keyValuePairs)) {\r\n el.setAttribute(`data-${toDashedNotation(key)}`, value);\r\n }\r\n }\r\n}\r\n\r\nfunction input2Collection(input) {\r\n return !input ? []\r\n : input.EL ? [input.EL]\r\n : IS(input, NodeList) ? [...input]\r\n : isNode(input) ? [input]\r\n : isArrayOfHtmlElements(input) ? input\r\n : input.isJQx ? input.collection : undefined;\r\n}\r\n\r\n\r\n\r\nfunction after(instance, elem2AddAfter) {\r\n return instance.andThen(elem2AddAfter);\r\n}\r\n\r\nfunction beforeOrAfter(instance, jqx, after = true, ...toAdd) {\r\n if (instance.is.empty) {\r\n systemLog.log(`[JQx instance].[before(Me) | after(Me) | andThen]: instance is empty.`, );\r\n return instance;\r\n }\r\n \r\n toAdd = toAdd.map(elem => elem.isJQx ? elem.node : IS(elem, String) ? jqx(elem).node ?? elem : elem );\r\n const noCando = toAdd.find(elem => !IS(elem, String, Element));\r\n \r\n if (noCando) {\r\n const bOrA = after ? `after` : `before`;\r\n systemLog.log(`[JQx instance].[${bOrA}(Me)]: invalid/-sufficient input.`, );\r\n return instance;\r\n }\r\n \r\n instance.node[after ? `after` : `before`](...toAdd);\r\n \r\n return instance;\r\n}\r\n\r\nfunction before(instance, elem2AddBefore) {\r\n return instance.andThen(elem2AddBefore, true);\r\n}\r\n\r\nfunction isNode(input) {\r\n return IS(input, Text, HTMLElement, Comment)\r\n}\r\n\r\nfunction applyStyle(el, rules) {\r\n if (IS(rules, Object)) {\r\n for (let [key, value] of Object.entries(rules)) {\r\n let priority;\r\n if (/!important/i.test(value)) {\r\n value = value.slice(0, value.indexOf(`!`)).trim();\r\n priority = 'important';\r\n }\r\n \r\n el.style.setProperty(toDashedNotation(key), value, priority)\r\n }\r\n }\r\n}\r\n\r\nfunction cloneAndDestroy(elem) {\r\n const cloned = elem.cloneNode(true)\r\n cloned.removeAttribute && cloned.removeAttribute(`id`);\r\n elem.isConnected ? elem.remove() : elem = null;\r\n return cloned;\r\n}\r\n\r\n\r\nfunction isVisible(el) {\r\n if (!IS(el, HTMLElement)) { return undefined; }\r\n const elStyle = el.style;\r\n const computedStyle = getComputedStyle(el);\r\n const invisible = !![elStyle.visibility, computedStyle.visibility].includes(\"hidden\");\r\n const noDisplay = !![elStyle.display, computedStyle.display].includes(\"none\");\r\n const hidden = !!el.hidden;\r\n const zeroHeightOrWidth = parseInt(computedStyle.height) < 1 || parseInt(computedStyle.width) < 1;\r\n const offscreen = el.offsetTop < 0 || (el.offsetLeft + el.offsetWidth) < 0\r\n || el.offsetLeft > document.body.offsetWidth;\r\n const noOpacity = +computedStyle.opacity === 0 || +(elStyle.opacity || 1) === 0;\r\n return !(hidden || offscreen || noOpacity || noDisplay || invisible || zeroHeightOrWidth);\r\n}\r\n\r\nfunction isWritable(elem) {\r\n if (elem?.isConnected) {\r\n return !![...document.querySelectorAll(`:is(:read-write)`)]\r\n .find(el => el === elem);\r\n }\r\n \r\n return false;\r\n}\r\n\r\nfunction ElemArray2HtmlString(elems) {\r\n return elems?.filter(el => el).reduce((acc, el) =>\r\n acc.concat(isComment(el) ? `<!--${el.data}-->`\r\n : isCommentOrTextNode(el) ? el.textContent\r\n : el.outerHTML), ``);\r\n}\r\n\r\n/* private */\r\nfunction pad0(nr, n=2) {\r\n return `${nr}`.padStart(n, `0`);\r\n}\r\n\r\nfunction randomNr(max, min = 0) {\r\n [max, min] = [Math.floor(max), Math.ceil(min)];\r\n return Math.floor( ([...crypto.getRandomValues(new Uint32Array(1))].shift() / 2 ** 32 ) * (max - min + 1) + min );\r\n}\r\n\r\nfunction randomString() {\r\n return `_${shuffle(characters4RandomString).slice(0, 8).join(``)}`;\r\n}\r\n\r\nfunction resolveEventTypeParameter (maybeTypes) {\r\n maybeTypes = IS(maybeTypes, String) && /,/.test(maybeTypes)\r\n ? maybeTypes\r\n .split(`,`)\r\n .map(t => t.trim().toLowerCase())\r\n .filter( t => t.length > 0)\r\n : maybeTypes;\r\n return IS(maybeTypes, Array)\r\n ? maybeTypes\r\n : IS(maybeTypes, String) && maybeTypes?.trim().toLowerCase() || ``;\r\n}\r\n\r\nfunction isModal(elem) {\r\n if (elem?.isConnected) {\r\n return !![...document.querySelectorAll(`:is(:modal)`)]\r\n .find(el => el === elem) ? true : false;\r\n }\r\n \r\n return false;\r\n}\r\n\r\nfunction convert2Bool(value, defaultValue) {\r\n // Valid input values: 0|false|f|1|true|t (case insensitive)\r\n value = String(value).trim();\r\n switch (true) {\r\n case /^(0|false|f)$/i.test(value):\r\n return false;\r\n case /^(1|true|t)$/i.test(value):\r\n return true;\r\n default:\r\n return defaultValue;\r\n }\r\n}\r\n\r\n/* private */\r\nfunction shuffle(array) {\r\n let i = array.length;\r\n while (i--) {\r\n const ri = randomNr(i);\r\n [array[i], array[ri]] = [array[ri], array[i]];\r\n }\r\n return array;\r\n}\r\n\r\nfunction toCamelcase(str2Convert) {\r\n return IS(str2Convert, String)\r\n ? str2Convert.toLowerCase()\r\n .split(`-`)\r\n .map( (str, i) => i && `${ucFirst(str)}` || str)\r\n .join(``)\r\n : str2Convert;\r\n}\r\n\r\nfunction toDashedNotation(str2Convert) {\r\n return str2Convert.replace(/[A-Z]/g, a => `-${a.toLowerCase()}`).replace(/^-|-$/, ``);\r\n}\r\n\r\nfunction ucFirst([first, ...theRest]) {\r\n return `${first.toUpperCase()}${theRest.join(``)}`;\r\n}\r\n\r\nfunction isCommentOrTextNode(node) {\r\n return IS(node, Comment, Text);\r\n}\r\n\r\nfunction isComment(input) {\r\n IS(input, Comment);\r\n}\r\n\r\nfunction isText(input) {\r\n return IS(input, Text);\r\n}\r\n\r\nfunction isHtmlString(input) {\r\n return IS(input, String) && /^<|>$/.test(`${input}`.trim());\r\n}\r\n\r\nfunction isArrayOfHtmlElements(input) {\r\n return IS(input, Array) && !input?.find(el => !isNode(el));\r\n}\r\n\r\nfunction isArrayOfHtmlStrings(input) {\r\n return IS(input, Array) && !input?.find(s => !isHtmlString(s));\r\n}\r\n", "import {\r\n after, applyStyle, assignAttrValues, beforeOrAfter, checkProp, cleanupHtml, clearAllTimers, cloneAndDestroy,\r\n convert2Bool, createElementFromHtmlString, datasetKeyProxy, ElemArray2HtmlString, emptyElement, escHtml,\r\n findParentScrollDistance, getAttributesForLogging, getHandlerName, HandlerFactory, inject2DOMTree, input2Collection,\r\n insertPositions, IS,isArrayOfHtmlElements, isArrayOfHtmlStrings, isComment, isCommentOrTextNode, isHtmlString, isModal,\r\n isNode, isNonEmptyString, isText, isVisible, isWritable, logTime, maybe, PopupFactory, proxyWrapper,\r\n randomNr, randomString, resolveEventTypeParameter, setData, styleFactory, systemLog, tagFNFactory, tagLib,\r\n toCamelcase, toDashedNotation, truncate2SingleStr, truncateHtmlStr,\r\n} from \"../Resource/Common/Utilities.js\"\r\n\r\nexport {\r\n after, applyStyle, assignAttrValues, beforeOrAfter, checkProp, cleanupHtml, clearAllTimers, cloneAndDestroy,\r\n convert2Bool, createElementFromHtmlString, css, datasetKeyProxy, ElemArray2HtmlString, emptyElement, escHtml,\r\n ExamineElementFeatureFactory, findParentScrollDistance, getAttributesForLogging, getHandlerName, getNodeContentForLog,\r\n HandlerFactory, inject2DOMTree, input2Collection, insertPositions, IS, isArrayOfHtmlElements, isArrayOfHtmlStrings,\r\n isCommentOrTextNode, isHtmlString, isNode, isNonEmptyString, logTime, loop, maybe, PopupFactory, proxyWrapper,\r\n randomNr, randomString, resolveEventTypeParameter, selectedFactoryHelpers, setCollectionFromCssSelector, setData,\r\n styleFactory, systemLog, tagFNFactory, tagLib, toCamelcase, toDashedNotation, truncate2SingleStr, truncateHtmlStr,\r\n};\r\n\r\nfunction loop(instance, callback) {\r\n const cleanCollection = instance.collection.filter(el => !isCommentOrTextNode(el));\r\n for (let i = 0; i < cleanCollection.length; i += 1) {\r\n callback(cleanCollection[i], i);\r\n }\r\n\r\n return instance;\r\n}\r\n\r\nfunction getNodeContentForLog(instance) {\r\n if (instance.node) {\r\n return IS(instance.node, Comment)\r\n ? `<!--${instance.node.textContent}-->`\r\n : instance.HTML.get(1).split(`>`)[0] + `>...`\r\n }\r\n return ``;\r\n}\r\n\r\nfunction setCollectionFromCssSelector(input, root, self) {\r\n const selectorRoot = root !== document.body && (IS(input, String) && input.toLowerCase() !== \"body\") ? root : document;\r\n if (!IS(input, String) || input.trim().length < 1) { return; }\r\n try { self.collection = [...selectorRoot.querySelectorAll(input)]; }\r\n catch (err) { systemLog.warn(`JQx: Invalid CSS querySelector. [${!IS(input, String) ? `Not a string!` : input}]`); }\r\n}\r\n\r\nfunction selectedFactoryHelpers() {\r\n return {\r\n isCommentOrTextNode, isNode, isComment, isText, isHtmlString, isArrayOfHtmlElements,\r\n isArrayOfHtmlStrings, ElemArray2HtmlString, input2Collection, setCollectionFromCssSelector,\r\n cssRuleEdit: styleFactory({createWithId: `JQxStylesheet`}) };\r\n}\r\n\r\nfunction ExamineElementFeatureFactory() {\r\n const notApplicable = `n/a`;\r\n const noElements = Object.freeze({\r\n notInDOM: notApplicable, writable: notApplicable, modal: notApplicable, empty: true,\r\n open: notApplicable, visible: notApplicable, });\r\n\r\n return self => {\r\n const firstElem = self.node;\r\n\r\n return IS(firstElem, Node)\r\n ? Object.freeze({\r\n get writable() {\r\n return isWritable(firstElem);\r\n },\r\n get modal() {\r\n return isModal(firstElem);\r\n },\r\n get inDOM() {\r\n return firstElem.isConnected;\r\n },\r\n get open() {\r\n return firstElem.open ?? false;\r\n },\r\n get visible() {\r\n return isVisible(firstElem);\r\n },\r\n get disabled() {\r\n return firstElem.hasAttribute(\"readonly\") || firstElem.hasAttribute(\"disabled\");\r\n },\r\n get empty() {\r\n return self.collection.length < 1;\r\n },\r\n get virtual() {\r\n return self.isVirtual;\r\n }\r\n })\r\n : noElements;\r\n };\r\n}\r\n\r\nfunction css(el, keyOrKvPairs, value, jqx) {\r\n if (value && IS(keyOrKvPairs, String)) {\r\n keyOrKvPairs = {[keyOrKvPairs]: value === \"-\" ? \"\" : value};\r\n }\r\n\r\n let nwClass = undefined;\r\n\r\n if (keyOrKvPairs.className) {\r\n nwClass = keyOrKvPairs.className;\r\n delete keyOrKvPairs.className;\r\n }\r\n\r\n const classExists = ([...el.classList].find(c => c.startsWith(`JQxClass-`) || nwClass && c === nwClass));\r\n nwClass = classExists || nwClass || `JQxClass-${randomString().slice(1)}`;\r\n jqx.editCssRule(`.${nwClass}`, keyOrKvPairs);\r\n el.classList.add(nwClass);\r\n}\r\n", "import {\r\n IS, isNode, ExamineElementFeatureFactory, beforeOrAfter,\r\n isNonEmptyString, toDashedNotation, escHtml, systemLog, insertPositions,\r\n datasetKeyProxy, loop, cloneAndDestroy, setData,\r\n findParentScrollDistance, emptyElement, checkProp, css, assignAttrValues,\r\n applyStyle, createElementFromHtmlString, inject2DOMTree,\r\n} from \"./JQxUtilities.js\";\r\n\r\nconst instanceIs = ExamineElementFeatureFactory();\r\n\r\nexport default function(jqx) {\r\n return {\r\n factoryExtensions: factoryExtensionsFactory(jqx),\r\n instanceExtensions: instanceExtensionsFactory(jqx),\r\n }\r\n};\r\n\r\nfunction factoryExtensionsFactory(jqx) {\r\n return {\r\n data(instance) {\r\n return {\r\n get all() {\r\n return new Proxy(instance[0]?.dataset ?? {}, datasetKeyProxy);\r\n },\r\n set(valuesObj = {}) {\r\n if (!instance.is.empty && IS(valuesObj, Object)) {\r\n for (const [key, value] of Object.entries(valuesObj)) {\r\n instance.setData({[key]: value});\r\n }\r\n }\r\n return instance;\r\n },\r\n get(key, whenUndefined) {\r\n return instance.data.all[key] ?? whenUndefined;\r\n },\r\n add(valuesObj = {}) {\r\n if (!instance.is.empty && IS(valuesObj, Object)) {\r\n for (const [key, value] of Object.entries(valuesObj)) {\r\n instance.setData({[key]: value});\r\n }\r\n }\r\n return instance;\r\n },\r\n remove(key) {\r\n instance[0]?.removeAttribute(`data-${toDashedNotation(key)}`);\r\n return instance;\r\n },\r\n };\r\n },\r\n dimensions(instance) {\r\n if (instance.is.empty) {\r\n systemLog.error(`[JQx instance].dimensions called on empty instance`);\r\n return { error: `[JQx instance].dimensions: NO ELEMENTS` };\r\n }\r\n let {node} = instance;\r\n const boundingRect = node.getBoundingClientRect().toJSON();\r\n boundingRect.scrollTopDistance = findParentScrollDistance(node, 0);\r\n boundingRect.scrollLeftDistance = findParentScrollDistance(node, 0, false);\r\n return boundingRect;\r\n },\r\n node(instance) { return instance[0]; },\r\n HTML(instance) {\r\n return {\r\n get(outer, escaped) {\r\n if (instance.is.empty) {\r\n return `NO ELEMENTS IN COLLECTION`;\r\n }\r\n const html = outer ? instance.outerHtml : instance.html();\r\n return escaped ? escHtml(html) : html;\r\n },\r\n set(content, append = false, escape = false) {\r\n content = content.isJQx ? content.HTML.get(1) : content;\r\n const isString = IS(content, String);\r\n content = isString && escape ? escHtml(content) : content;\r\n if (isString && (content || ``).trim().length) { instance.html(content, append); }\r\n return instance;\r\n },\r\n replace(content, escape = false) {\r\n return instance.HTML.set(content, false, escape);\r\n },\r\n append(content, escape = false) {\r\n content = IS(content, HTMLElement)\r\n ? jqx(content).HTML.get(1) : content.isJQx ? content.HTML.get(1) : content;\r\n return instance.HTML.set(content, true, escape);\r\n },\r\n insert(content, escape = false) {\r\n content = IS(content, HTMLElement)\r\n ? jqx(content).HTML.get(1) : content.isJQx ? content.HTML.get(1) : content;\r\n return instance.HTML.set(content + instance.HTML.get(), false, escape);\r\n },\r\n };\r\n },\r\n is(instance) { return instanceIs(instance); },\r\n length(instance) { return instance.collection.length; },\r\n outerHtml(instance) { return (instance.first() || {outerHTML: undefined}).outerHTML; },\r\n parent(instance) {\r\n const maybeParent = jqx(instance[0]?.parentNode);\r\n return !maybeParent.is.empty ? maybeParent : instance;\r\n },\r\n render(instance) {\r\n switch(true) {\r\n case !instance.is.empty: return instance.toDOM();\r\n default:\r\n jqx.logger.warn(`[JQx.render]: empty collection`);\r\n return instance;\r\n }\r\n },\r\n Style(instance) {\r\n return {\r\n get computed() { return !instance.is.empty ? getComputedStyle(instance[0]) : {}; },\r\n inline(styleObj) {\r\n return instance.style(styleObj);\r\n },\r\n inSheet(styleObj) {\r\n return instance.css(styleObj)\r\n },\r\n valueOf(key) {\r\n return !instance.is.empty ? getComputedStyle(instance[0])[toDashedNotation(key)] : undefined;\r\n },\r\n nwRule(rule) {\r\n return instance.Style.byRule({rules: rule})\r\n },\r\n byRule({classes2Apply = [], rules = []} = {}) {\r\n const isSingleRule = IS(rules, String);\r\n const addClassNameOrID = isSingleRule && !classes2Apply.length ? rules.split(`{`)[0].trim() : ``;\r\n rules = rules && IS(rules, String) ? [rules] : rules;\r\n classes2Apply = classes2Apply && IS(classes2Apply, String) ? [classes2Apply] : classes2Apply;\r\n \r\n if (rules?.length || classes2Apply?.length) {\r\n rules?.length && jqx.editCssRules(...rules);\r\n \r\n if (classes2Apply) {\r\n for(const selector of classes2Apply) { instance.addClass(selector); }\r\n }\r\n }\r\n \r\n if (addClassNameOrID?.startsWith(`.`)) {\r\n instance.addClass(addClassNameOrID.slice(1));\r\n }\r\n \r\n if (addClassNameOrID?.startsWith(`#`) && !instance.attr(`id`)) {\r\n instance.prop({id: addClassNameOrID.slice(1)});\r\n }\r\n \r\n return instance;\r\n },\r\n };\r\n }\r\n }\r\n}\r\n\r\nfunction instanceExtensionsFactory(jqx) {\r\n return {\r\n addClass(instance, ...classNames) {\r\n return loop(instance, el => el && classNames.forEach(cn => el.classList.add(cn)));\r\n },\r\n after(instance, ...elems) { return beforeOrAfter(instance, jqx, true, ...elems); },\r\n afterMe(instance, ...elems) { return beforeOrAfter(instance, jqx, true, ...elems); },\r\n andThen(instance, ...elems) { return beforeOrAfter(instance, jqx, true, ...elems); },\r\n append(instance, ...elems2Append) {\r\n if (instance.is.empty || elems2Append.length < 1) { return instance;}\r\n const shouldMove = instance.length === 1;\r\n for (let elem2Append of elems2Append) {\r\n if (!elem2Append.isJQx && isNonEmptyString(elem2Append)) {\r\n const elem2Append4Test = elem2Append.trim();\r\n const isPlainString = !/^<(.+)[^>]+>$/m.test(elem2Append4Test);\r\n let toAppend = isPlainString ? jqx.text(elem2Append) : createElementFromHtmlString(elem2Append);\r\n loop(instance, el => el.append(shouldMove ? toAppend : cloneAndDestroy(toAppend)));\r\n }\r\n\r\n if (isNode(elem2Append)) {\r\n loop(instance, el => el.append(shouldMove ? elem2Append : cloneAndDestroy(elem2Append)));\r\n }\r\n\r\n if (elem2Append.isJQx && !elem2Append.is.empty) {\r\n loop(instance, el =>\r\n elem2Append.collection.forEach(elem =>\r\n el.append(shouldMove ? elem : cloneAndDestroy(elem)))\r\n );\r\n }\r\n }\r\n return instance;\r\n },\r\n appendTo(instance, appendTo) {\r\n appendTo = typeof appendTo === `string` ? jqx(appendTo) : appendTo;\r\n switch(true) {\r\n case !appendTo?.isJQx && !IS(appendTo, HTMLElement) || appendTo?.collection?.length < 1:\r\n jqx.warn(`[JQx instance].appendTo: invalid input`);\r\n return instance;\r\n default:\r\n (!appendTo.isJQx ? jqx(appendTo) : appendTo).append(instance);\r\n return instance;\r\n }\r\n },\r\n attr(instance, keyOrObj, value) {\r\n if (!instance.node || IS(instance.node, Text, Comment)) { return instance }\r\n\r\n if (!value && isNonEmptyString(keyOrObj)) {\r\n keyOrObj = toDashedNotation(keyOrObj);\r\n\r\n if (keyOrObj === `class`) {\r\n return [...instance.node.classList]?.join(` `);\r\n }\r\n \r\n return instance.node.getAttribute(keyOrObj);\r\n }\r\n\r\n if (isNonEmptyString(keyOrObj) && value) {\r\n keyOrObj = toDashedNotation(keyOrObj);\r\n\r\n switch(true) {\r\n case keyOrObj.startsWith(`data-`):\r\n keyOrObj = { data: {[keyOrObj.replace(`data-`, ``)]: value } };\r\n break;\r\n default: keyOrObj = { [keyOrObj]: value };\r\n }\r\n }\r\n\r\n if (IS(keyOrObj, Object) && !instance.is.empty) {\r\n assignAttrValues(instance.node, keyOrObj);\r\n }\r\n\r\n return instance;\r\n },\r\n before(instance, ...elems) {\r\n return beforeOrAfter(instance, jqx, false, ...elems);\r\n },\r\n beforeMe(instance, ...elems) {\r\n beforeOrAfter(instance, jqx, false, ...elems)\r\n },\r\n clear(instance) { return loop(instance, emptyElement); },\r\n closest(instance, selector) {\r\n const theClosest = isNonEmptyString(selector) ? instance.node?.closest(selector) : undefined;\r\n return theClosest ? jqx(theClosest) : instance;\r\n },\r\n computedStyle(instance, property) {\r\n const {node} = instance;\r\n return node && getComputedStyle(node)[property];\r\n },\r\n css(instance, keyOrKvPairs, value) {\r\n return loop(instance, el => css(el, keyOrKvPairs, value, jqx));\r\n },\r\n duplicate(instance, toDOM = false, root = document.body) {\r\n switch(true) {\r\n case instance.is.empty:\r\n systemLog.error(`Duplicating an empty JQx instance is not possible`)\r\n return instance;\r\n default:\r\n const clone = instance.collection[0].cloneNode(true);\r\n clone.childNodes.forEach((node) => { node.removeAttribute && node?.removeAttribute(`id`) });\r\n return toDOM ? jqx(clone).toDOM(root) : jqx.virtual(clone);\r\n }\r\n },\r\n each(instance, cb) { return loop(instance, cb); },\r\n empty(instance) { return loop(instance, emptyElement); },\r\n find(instance, selector) {\r\n return instance.collection.length > 0 ? [...instance.first()?.querySelectorAll(selector)] : [];\r\n },\r\n find$(instance, selector) {\r\n return instance.collection.length > 0 ? jqx(selector, instance) : instance;\r\n },\r\n first(instance, asJQxInstance = false) {\r\n return instance.collection.length > 0\r\n ? asJQxInstance ? instance.single() : instance.collection[0]\r\n : undefined;\r\n },\r\n first$(instance, indexOrSelector) {\r\n return instance.single(indexOrSelector);\r\n },\r\n getData(instance, dataAttribute, valueWhenFalsy) {\r\n return instance.node?.dataset?.[dataAttribute] || valueWhenFalsy;\r\n },\r\n hasClass(instance, ...classNames) {\r\n return instance.is.empty || !instance.node.classList.length\r\n ? false\r\n : classNames.find(cn => instance.node.classList.contains(cn)) && true || false;\r\n },\r\n hide(instance) { return loop(instance, el => applyStyle(el, {display: `none !important`})); },\r\n html(instance, htmlValue, append) {\r\n switch(true) {\r\n case instance.is.empty && !isNonEmptyString(htmlValue): return \"\";\r\n case !isNonEmptyString(htmlValue): return instance.node?.getHTML() ?? ``;\r\n default:\r\n const nwElement = createElementFromHtmlString(\r\n `<div>${htmlValue.isJQx ? htmlValue.HTML.get(true) : htmlValue}</div>` );\r\n const cb = el => {\r\n el.textContent = !append ? `` : el.textContent;\r\n return el.insertAdjacentHTML(jqx.at.end, nwElement.getHTML());\r\n }\r\n return loop(instance, cb);\r\n }\r\n },\r\n htmlFor(instance, forSelector, htmlString = \"\", append = false) {\r\n if (instance.is.empty || !isNonEmptyString(forSelector) || !isNonEmptyString(htmlString)) { return instance; }\r\n const el2Change = instance.find$(forSelector);\r\n if (el2Change.length < 1) { return instance; }\r\n const nwElement = createElementFromHtmlString(`<span>${htmlString}</span>`);\r\n el2Change.each(el => {\r\n if (!append) { el.textContent = ``; }\r\n el.insertAdjacentHTML(jqx.at.end, nwElement?.getHTML());\r\n });\r\n\r\n return instance;\r\n },\r\n isEmpty(instance) { return !!!instance.node; },\r\n nth$(instance, indexOrSelector) { return instance.single(indexOrSelector); },\r\n on(instance, type, ...callback) {\r\n switch(true) {\r\n case instance.is.empty || !IS(type, String, Array) || !isNonEmptyString(type) || callback.length < 1:\r\n return instance;\r\n default: jqx.handle({type, node: instance.node, handler: callback});\r\n return instance;\r\n }\r\n },\r\n once(instance, type, ...callback) {\r\n switch(true) {\r\n case instance.is.empty || !IS(type, String, Array) || !isNonEmptyString(type) || callback.length < 1:\r\n return instance;\r\n default:\r\n jqx.handle({type, once: true, node: instance.node, handler: callback});\r\n return instance\r\n }\r\n },\r\n prepend(instance, ...elems2Prepend) {\r\n if (instance.is.empty || !elems2Prepend) { return; }\r\n const shouldMove = instance.length === 1;\r\n\r\n for (let elem2Prepend of elems2Prepend) {\r\n if (isNonEmptyString(elem2Prepend)) {\r\n elem2Prepend = elem2Prepend.trim();\r\n const isPlainString = !/^<(.+)[^>]+>$/m.test(elem2Prepend);\r\n let toPrepend = isPlainString ? jqx.text(elem2Prepend) : createElementFromHtmlString(elem2Prepend);\r\n toPrepend = shouldMove ? toPrepend : cloneAndDestroy(toPrepend);\r\n loop(instance, el => el.prepend(toPrepend.cloneNode(true)));\r\n }\r\n\r\n if (isNode(elem2Prepend)) {\r\n loop(instance, el => el.prepend(shouldMove ? elem2Prepend : cloneAndDestroy(elem2Prepend)));\r\n }\r\n\r\n if (elem2Prepend.isJQx && !elem2Prepend.is.empty) {\r\n elem2Prepend.collection.length > 1 && elem2Prepend.collection.reverse();\r\n loop(instance, el => loop( elem2Prepend, elem => el.prepend(shouldMove ? elem : cloneAndDestroy(elem)) ) );\r\n elem2Prepend.collection.reverse();\r\n }\r\n }\r\n \r\n return instance;\r\n },\r\n prependTo(instance, prependTo) {\r\n prependTo = typeof prependTo === `string` ? jqx(prependTo) : prependTo;\r\n switch(true) {\r\n case !prependTo?.isJQx && !IS(prependTo, HTMLElement) || prependTo?.collection?.length < 1:\r\n jqx.warn(`[JQx instance].appendTo: invalid input`);\r\n return instance;\r\n default:\r\n (!prependTo.isJQx ? jqx(prependTo) : prependTo).prepend(instance);\r\n return instance;\r\n }\r\n },\r\n prop(instance, nameOrProperties, value) {\r\n if (IS(nameOrProperties, String) && !value) {\r\n return nameOrProperties.startsWith(`data`)\r\n ? instance[0]?.dataset[nameOrProperties.slice(nameOrProperties.indexOf(`-`)+1)]\r\n : instance[0]?.[nameOrProperties];\r\n }\r\n\r\n const props = !IS(nameOrProperties, Object) ? { [nameOrProperties]: value } : nameOrProperties;\r\n for (let [propName, propValue] of Object.entries(props)) {\r\n propName = propName.trim();\r\n\r\n if (propValue && !checkProp(propName) || !propValue) {\r\n return false;\r\n }\r\n\r\n const isId = propName.toLowerCase() === `id`;\r\n\r\n if (isId) { return instance[0].id = propValue; }\r\n\r\n loop(instance, el => {\r\n if (propName.startsWith(`data`)) {\r\n return el.dataset[propName.slice(propName.indexOf(`-`)+1)] = propValue;\r\n }\r\n\r\n el[propName] = propValue;\r\n });\r\n }\r\n\r\n return instance;\r\n },\r\n remove(instance, selector) {\r\n const remover = el => el.remove();\r\n const removeFromCollection = () =>\r\n instance.collection = instance.collection.filter(el => document.documentElement.contains(el));\r\n\r\n if (selector) {\r\n const selectedElements = instance.find$(selector);\r\n if (!selectedElements.is.empty) {\r\n loop(selectedElements, remover);\r\n removeFromCollection();\r\n }\r\n return instance;\r\n }\r\n loop(instance, remover);\r\n removeFromCollection();\r\n return instance;\r\n },\r\n rmAttr(instance, ...attrNames) {\r\n for (const attr of attrNames) { instance.node.removeAttribute(attr); }\r\n return instance;\r\n },\r\n removeClass(instance, ...classNames) {\r\n return loop(instance, el => { if (el) { for (const cn of classNames) { el.classList.remove(cn); } } });\r\n },\r\n renderTo(instance, root, position) {\r\n root = IS(root, HTMLElement) || root.isJQx ? root : document.body;\r\n position = IS(position, String) && jqx.at[position] ? position : jqx.at.end;\r\n instance.first$().toDOM(root, position);\r\n return instance;\r\n },\r\n replace(instance, oldChild, newChild) {\r\n const firstElem = instance.node;\r\n\r\n if (!oldChild || (!IS(newChild, HTMLElement) && !newChild?.isJQx)) {\r\n jqx.logger.error(`JQx replace: invalid replacement value`);\r\n return instance;\r\n }\r\n\r\n if (newChild.isJQx || IS(newChild, NodeList)) {\r\n newChild = newChild[0];\r\n }\r\n\r\n if (firstElem && oldChild) {\r\n oldChild = IS(oldChild, String)\r\n ? firstElem.querySelectorAll(oldChild)\r\n : oldChild.isJQx\r\n ? oldChild.collection\r\n : oldChild;\r\n\r\n if (IS(oldChild, HTMLElement, NodeList, Array) && IS(newChild, HTMLElement)) {\r\n (IS(oldChild, HTMLElement) ? [oldChild] : [...oldChild])\r\n .forEach(chld => chld.replaceWith(newChild.cloneNode(true)));\r\n }\r\n }\r\n\r\n return instance;\r\n },\r\n replaceClass(instance, className, ...nwClassNames) {\r\n return loop( instance, el => {\r\n el.classList.remove(className);\r\n for (const name of nwClassNames) { el.classList.add(name); }\r\n } )\r\n },\r\n replaceMe(instance, newChild) {\r\n /*NODOC*/ return instance.replaceWith(newChild);\r\n },\r\n replaceWith(instance, newChild) {\r\n newChild = IS(newChild, Element) ? newChild : newChild.isJQx ? newChild[0] : undefined;\r\n\r\n if (newChild) {\r\n instance[0].replaceWith(newChild);\r\n instance = jqx.virtual(newChild);\r\n }\r\n\r\n return instance;\r\n },\r\n setData(instance, spec) {\r\n return loop(instance, el => setData(el, spec));\r\n },\r\n show(instance) {\r\n return loop(instance, el => applyStyle(el, {display: `revert-layer !important`}));\r\n },\r\n single(instance, indexOrSelector) {\r\n const hasNodes = instance.collection.length > 0;\r\n indexOrSelector = indexOrSelector ?? 0;\r\n \r\n switch(true) {\r\n case hasNodes && IS(indexOrSelector, String):\r\n return instance.find$(indexOrSelector);\r\n case hasNodes && IS(indexOrSelector, Number):\r\n return jqx(instance.collection[indexOrSelector]);\r\n case hasNodes: return instance.collection[0];\r\n default: return instance;\r\n }\r\n },\r\n style(instance, keyOrKvPairs, value) {\r\n const loopCollectionLambda = el => {\r\n if (value && IS(keyOrKvPairs, String)) {\r\n keyOrKvPairs = { [keyOrKvPairs]: value || `none` };\r\n }\r\n applyStyle(el, keyOrKvPairs);\r\n };\r\n return loop(instance, loopCollectionLambda);\r\n },\r\n text(instance, textValue, append = false) {\r\n switch(true) {\r\n case instance.isEmpty(): return instance;\r\n case !IS(textValue, String): return instance.node.textContent;\r\n default: return loop(instance, el => el.textContent = append ? el.textContent + textValue : textValue);\r\n }\r\n },\r\n toDOM(instance, root = document.body, position = insertPositions.BeforeEnd) {\r\n instance.isVirtual = false;\r\n inject2DOMTree(instance.collection, root, position);\r\n return instance;\r\n },\r\n toggleClass(instance, className) {\r\n return loop(instance, el => el.classList.toggle(className));\r\n },\r\n toNodeList(instance) {\r\n return [...instance.collection].map(el => document.importNode(el, true));\r\n },\r\n trigger(instance, evtType, SpecifiedEvent, options) {\r\n SpecifiedEvent = IS(SpecifiedEvent, Function) ? SpecifiedEvent : Event;\r\n options = IS(options, Object) ? { ...options, bubbles: options.bubbles??true} : {bubbles: true};\r\n const evObj = new SpecifiedEvent( evtType, options );\r\n \r\n if (!instance.is.empty) {\r\n instance.each(el => el.dispatchEvent(evObj));\r\n }\r\n \r\n return instance;\r\n },\r\n val(instance, newValue) {\r\n switch(true) {\r\n case instance.is.empty || !IS(instance.node, HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement):\r\n return instance;\r\n case !IS(newValue, String):\r\n return instance.node.value;\r\n default:\r\n instance.node.value = !IS(newValue, String) ? \"\" : newValue;\r\n return instance;\r\n }\r\n },\r\n };\r\n}\r\n", "import {\r\n cleanupHtml,\r\n clearAllTimers,\r\n convert2Bool,\r\n escHtml,\r\n getAttributesForLogging,\r\n HandlerFactory,\r\n insertPositions,\r\n IS,\r\n isNonEmptyString,\r\n maybe,\r\n PopupFactory,\r\n proxyWrapper,\r\n randomString,\r\n resolveEventTypeParameter,\r\n selectedFactoryHelpers,\r\n styleFactory,\r\n systemLog,\r\n tagFNFactory as $T,\r\n tagLib,\r\n toCamelcase,\r\n toDashedNotation,\r\n} from \"./JQxUtilities.js\";\r\nimport allMethodsFactory from \"./JQxInstanceMethods.js\";\r\n\r\nlet instanceGetters, instanceMethods;\r\nconst {\r\n isComment, isText, isHtmlString, isArrayOfHtmlElements, isArrayOfHtmlStrings,\r\n ElemArray2HtmlString, cssRuleEdit, addFn\r\n} = selectedUtilitiesFactory();\r\n\r\nexport { proxify, addJQxStaticMethods };\r\n\r\nfunction selectedUtilitiesFactory() {\r\n return {\r\n ...selectedFactoryHelpers(),\r\n addFn: addFnMethod };\r\n}\r\n\r\nfunction addFnMethod(name, extensionMethod) {\r\n name = name?.trim();\r\n \r\n if (!isNonEmptyString(name) || !IS(extensionMethod, Function) ) {\r\n return systemLog.error(\"JQx.fn: method invalid parameter(s)\");\r\n }\r\n \r\n instanceMethods[name] = (self, ...params) => extensionMethod(self, ...params);\r\n return systemLog.log(`JQx: added extension function [${name}]`);\r\n}\r\n\r\nfunction staticFNMethodFactory(jqx) {\r\n return function(name, extensionMethod, isGetter){\r\n name = name?.trim();\r\n if (!isNonEmptyString(name) || !IS(extensionMethod, Function) ) {\r\n return jqx.error(\"JQx.staticFn: invalid parameter(s)\");\r\n }\r\n const ext = isGetter\r\n ? { get() { return extensionMethod(); } }\r\n : { value(...args) { return extensionMethod(...args); } };\r\n \r\n try { Object.defineProperty(jqx, name, ext); }\r\n catch(err) {\r\n return jqx.warn(`JQx.staticFn: extension [${name}] already exists`);\r\n }\r\n \r\n return systemLog.log(`JQx: added static extension function [${name}]`);\r\n }\r\n}\r\n\r\nfunction proxify(instance) {\r\n return new Proxy(\r\n instance, { get: (target, key) => proxyTrapFactory(target, key, instance) }\r\n );\r\n}\r\n\r\nfunction maybeReProxify(method, instance, isGetter = false) {\r\n instance = !!instance[Symbol.proxy] ? instance : proxify(instance);\r\n const returnValue = function(...args) { return method(instance, ...args); }\r\n return isGetter ? returnValue() : returnValue;\r\n}\r\n\r\nfunction proxyReporter(instance) {\r\n return `Proxy for JQx${instance.collection.length < 1 ? ` (empty)` : ``} instance`;\r\n}\r\n\r\nfunction proxyTrapFactory(JQxtarget, key, instance) {\r\n switch(true) {\r\n case key === Symbol.proxy: return proxyReporter(instance);\r\n case typeof key === `symbol`: return maybe({trial: () => JQxtarget[key], whenError: () => JQxtarget });\r\n case !Number.isNaN(+key) && typeof +key === `number`: return JQxtarget.collection?.[key] || undefined;\r\n case (key in instanceGetters): return maybeReProxify(instanceGetters[key], instance, true);\r\n case (key in instanceMethods): return maybeReProxify(instanceMethods[key], instance);\r\n default: return Reflect.get(JQxtarget, key);\r\n }\r\n}\r\n\r\nfunction addJQxStaticMethods(jqx) {\r\n const staticMethods = defaultStaticMethodsFactory(jqx);\r\n\r\n for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(staticMethods))) {\r\n Object.defineProperty(jqx, key, descriptor);\r\n }\r\n\r\n return jqx;\r\n}\r\n\r\nfunction allowances(jqx) {\r\n return {\r\n allow(tagName) {\r\n const isWebComponent = /-/.test(tagName);\r\n const webComponentTagName = isWebComponent && tagName;\r\n tagName = isWebComponent ? toCamelcase(tagName) : tagName.toLowerCase();\r\n tagLib.allowTag(tagName);\r\n Object.defineProperties( jqx, addGetters(tagName, true, jqx, webComponentTagName) );\r\n },\r\n prohibit(tagName) {\r\n tagName = tagName.toLowerCase();\r\n tagLib.prohibitTag(tagName);\r\n Object.defineProperties( jqx, addGetters(tagName, false, jqx) );\r\n }\r\n }\r\n}\r\n\r\nfunction cssRemove(...rules) {\r\n if (rules.length === 1) {\r\n const ruleStr = String(rules.shift().trim());\r\n rules = !ruleStr.startsWith(`!`)\r\n ? ruleStr.split(`,`).map(v => v.trim())\r\n : [ruleStr.slice(1, -1)];\r\n }\r\n\r\n for (const rule of rules.map(rule => rule.startsWith(`!`) ? rule.slice(1, -1) : rule)) {\r\n cssRuleEdit(rule, {removeRule: 1});\r\n }\r\n}\r\n\r\nfunction virtualFactory(jqx) {\r\n return function(html, root, position) {\r\n root = root?.isJQx ? root?.[0] : root;\r\n position = position && Object.values(insertPositions).find(pos => position === pos);\r\n const virtualElem = jqx(html, document.createElement(`br`));\r\n if (root && !IS(root, HTMLBRElement)) {\r\n for (const elem of virtualElem.collection) {\r\n position ? root.insertAdjacentElement(position, elem) : root.append(elem);\r\n }\r\n }\r\n return virtualElem;\r\n }\r\n}\r\n\r\nfunction combineObjectSources(...sources) {\r\n const result = {};\r\n for (const source of sources) {\r\n const descriptors = Object.getOwnPropertyDescriptors(source);\r\n for (const [key, descriptor] of Object.entries(descriptors)) {\r\n !(key in result) && Object.defineProperty(result, key, {...descriptor, enumerable: false});\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nfunction tagGetterFactory(tagName, cando, jqx, webComponentTagName) {\r\n tagName = toDashedNotation(webComponentTagName || tagName.toLowerCase());\r\n return {\r\n get() {\r\n return (...args) => {\r\n const instance = cando && jqx.virtual(cleanupHtml($T[tagName](...args))) || undefined;\r\n const isElem = !IS(instance?.node, Comment, Text, undefined);\r\n let reportIdOrClass = isElem ? getAttributesForLogging(instance) : ``;\r\n \r\n systemLog.log( cando\r\n ? `JQx: created (virtual) instance from [JQx].${tagName} ${reportIdOrClass}`\r\n : `JQx: ${tagName.toUpperCase()} is prohibited. Use [JQx].allowTag if necessary.`);\r\n return instance;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true,\r\n }\r\n}\r\n\r\nfunction addGetters(tag, cando, jqx, webComponentTagName) {\r\n tag = tag.toLowerCase();\r\n const jqxGetterForThisTag = tagGetterFactory(tag, cando, jqx, webComponentTagName);\r\n return webComponentTagName\r\n ? { [webComponentTagName]: jqxGetterForThisTag, [toCamelcase(webComponentTagName)]: jqxGetterForThisTag, }\r\n : { [tag]: jqxGetterForThisTag, [tag.toUpperCase()]: jqxGetterForThisTag, };\r\n}\r\n\r\nfunction defaultStaticMethodsFactory(jqx) {\r\n return combineObjectSources(\r\n Object.entries(tagLib.tagsRaw).reduce(staticTagsLambda(jqx), {}),\r\n staticMethodsFactory(jqx));\r\n}\r\n\r\nfunction staticTagsLambda(jqx) {\r\n return function(acc, [tag, cando]) {\r\n Object.defineProperties( acc, addGetters(tag, cando, jqx) );\r\n return acc;\r\n }\r\n}\r\n\r\nfunction delegateFactory(listen) {\r\n return function(type, selector, ...listeners) {\r\n if (IS(selector, Function)) {\r\n listeners.push(selector);\r\n selector = undefined;\r\n }\r\n\r\n listen({type, selector: selector, handlers: listeners});\r\n }\r\n}\r\n\r\nfunction delegateCaptureFactory(handlerWrapper) {\r\n return function(spec) {\r\n let {type, types, origin, selector, handler, handlers, node, name, capture, once, about} = spec;\r\n // <legacy>\r\n handler = handlers || handler;\r\n type = types || type;\r\n selector = origin || selector;\r\n // </legacy>\r\n const typesResolved = resolveEventTypeParameter(type);\r\n const specifiedName = name;\r\n handler = IS(handler, Function) ? [handler] : handler;\r\n const params = {\r\n type: typesResolved, selector: selector || origin, capture,\r\n name: specifiedName, once, node, about };\r\n \r\n switch(true) {\r\n case IS(typesResolved, Array) && typesResolved.length > 0:\r\n for (const type of typesResolved) {\r\n params.type = type;\r\n assignListeners(handler, params, handlerWrapper);\r\n }\r\n break;\r\n default: return assignListeners(handler, params, handlerWrapper);\r\n }\r\n }\r\n}\r\n\r\nfunction assignListeners(handlerFns, params, handlerWrapper) {\r\n for (const handler of handlerFns) {\r\n handlerWrapper.listen({...params, handler});\r\n }\r\n}\r\n\r\nfunction getNamedListenerFactory(jqx) {\r\n return function(type, name) {\r\n name = isNonEmptyString(name) && name;\r\n type = isNonEmptyString(type) && type;\r\n return name && type && jqx.listenerStore[type][name];\r\n };\r\n}\r\n\r\nfunction popupGetter(jqx) {\r\n if (!jqx.activePopup) {\r\n Object.defineProperty(\r\n jqx, `activePopup`, {\r\n value: PopupFactory(jqx),\r\n enumerable: false\r\n } );\r\n }\r\n return jqx.activePopup;\r\n}\r\n\r\nfunction getSelectedStaticMethods(jqx) {\r\n const editCssRule = (ruleOrSelector, ruleObject) => cssRuleEdit(ruleOrSelector, ruleObject);\r\n const createStyle = function(id) {return styleFactory({createWithId: id || `jqx${randomString()}`}); };\r\n const editCssRules = function(...rules) { for (const rule of rules) { cssRuleEdit(rule); } };\r\n const allowProhibit = allowances(jqx);\r\n const handlerWrapper = HandlerFactory(jqx);\r\n const capturedHandling = delegateCaptureFactory(handlerWrapper);\r\n const log = (...line) => systemLog.on.log(...line).off;\r\n const warn = (...line) => systemLog.on.warn(...line).off;\r\n const error = (...line) => systemLog.on.error(...line).off;\r\n return {\r\n editCssRule, createStyle, editCssRules, allowProhibit, handle: capturedHandling, capturedHandling,\r\n log, warn, error, handlerWrapper};\r\n}\r\n\r\nfunction staticMethodsFactory(jqx) {\r\n const { factoryExtensions, instanceExtensions } = allMethodsFactory(jqx);\r\n instanceGetters = factoryExtensions;\r\n instanceMethods = instanceExtensions;\r\n const { editCssRule, createStyle, editCssRules, allowProhibit, handle,\r\n capturedHandling, log, warn, error, handlerWrapper } = getSelectedStaticMethods(jqx);\r\n const getNamedListener = getNamedListenerFactory(jqx);\r\n const staticFN = staticFNMethodFactory(jqx);\r\n $T.setError = key => {\r\n error(`JQx direct element creation error: [${key}] is not a valid tag`);\r\n return jqx.br();\r\n }\r\n return {\r\n log,\r\n warn,\r\n error,\r\n editCssRules,\r\n createStyle,\r\n editStylesheet: createStyle,\r\n editCssRule,\r\n escHtml,\r\n logger: systemLog,\r\n proxyWrapper,\r\n text(str, isComment = false) { return isComment ? jqx.comment(str) : document.createTextNode(str); },\r\n node(selector, root = document) { return root.querySelector(selector, root); },\r\n nodes(selector, root = document) { return [...root.querySelectorAll(selector, root)]; },\r\n clearAllTimers,\r\n get staticFn() { return function(name, method, isGetter) { return staticFN(name, method, isGetter); } },\r\n get toBool() { return convert2Bool; },\r\n get getNamedListener() { return getNamedListener; },\r\n get virtual() { return virtualFactory(jqx); },\r\n get allowTag() { return allowProhibit.allow; },\r\n get prohibitTag() { return allowProhibit.prohibit; },\r\n get removeCssRule() { return cssRemove; },\r\n get removeCssRules() { return cssRemove; },\r\n get delegate() { return delegateFactory(capturedHandling); },\r\n get delegateCaptured() { return capturedHandling; } ,\r\n get handle() { return capturedHandling; },\r\n get listen() { return handlerWrapper.listen; },\r\n get at() { return insertPositions; },\r\n get setStyle() { /*deprecated*/return editCssRule; },\r\n get fn() { return addFn; },\r\n get lenient() { return tagLib.allowUnknownHtmlTags; },\r\n get IS() { return IS; },\r\n get Popup() { return popupGetter(jqx); },\r\n get listenerStore() { return handlerWrapper.ListenerStore; },\r\n };\r\n}\r\n", "import { proxify, addJQxStaticMethods } from \"./JQxCreatorFactory.js\";\r\nimport {\r\n isHtmlString, isArrayOfHtmlStrings, isArrayOfHtmlElements,\r\n input2Collection, setCollectionFromCssSelector, IS, systemLog,\r\n insertPositions, inject2DOMTree, createElementFromHtmlString,\r\n getNodeContentForLog,\r\n} from \"./JQxUtilities.js\";\r\n\r\nexport default JQxMainFactory();\r\n\r\nfunction JQxMainFactory() {\r\n const logLineLength = 70;\r\n \r\n return addJQxStaticMethods(\r\n function(input, root, position = insertPositions.BeforeEnd) {\r\n if (input?.isJQx) { return input; }\r\n const isVirtual = IS(root, HTMLBRElement);\r\n root = (!isVirtual && root && root.isJQx ? root[0] : root) || document.body;\r\n position = position && Object.values(insertPositions).find(pos => position === pos) ? position : undefined;\r\n const isRawHtml = isHtmlString(input);\r\n const isRawHtmlArray = !isRawHtml && isArrayOfHtmlStrings(input);\r\n const shouldCreateElements = isRawHtmlArray || isRawHtml;\r\n \r\n let instance = {\r\n collection: input2Collection(input) ?? [],\r\n isVirtual,\r\n isJQx: true,\r\n };\r\n \r\n const isRawElemCollection = isArrayOfHtmlElements(instance.collection);\r\n \r\n switch(true) {\r\n case instance.collection.length && isRawElemCollection && !isVirtual:\r\n for (const el of instance.collection) {\r\n if (!root.contains(el)) {\r\n inject2DOMTree([el], root, position);\r\n }\r\n }\r\n break;\r\n case shouldCreateElements:\r\n for (const htmlStringOrComment of [input].flat()) {\r\n instance.collection.push(createElementFromHtmlString(htmlStringOrComment));\r\n }\r\n \r\n if (instance.collection.length > 0) {\r\n const errors = instance.collection.filter( el => el?.dataset?.jqxcreationerror );\r\n instance.collection = instance.collection.filter(el => !el?.dataset?.jqxcreationerror);\r\n const elemsCreated = instance.collection.map(el => `${String(el.constructor).split(/function|\\(/)[1].trim()}`);\r\n const multiple = elemsCreated.length > 1;\r\n instance = proxify(instance);\r\n const collectionLog = instance.collection.length > 0\r\n ? getNodeContentForLog(instance)\r\n : \"sanitized: no elements remaining\";\r\n \r\n systemLog.log(`JQx: created ${instance.isVirtual ? `(virtual)` : ``} instance from ` +\r\n `${multiple ? `array of ` : ``}HTML string${multiple ? `s` : ``} ${collectionLog}`);\r\n \r\n if (!instance.isVirtual) {\r\n inject2DOMTree(instance.collection, root, position);\r\n }\r\n }\r\n break;\r\n default: setCollectionFromCssSelector(input, root, instance);\r\n \r\n }\r\n \r\n return proxify(instance);\r\n })\r\n}\r\n", "/**\r\n This code is classfree object oriented. No this. No prototype. No class.\r\n Inspired by Douglas Crockford (see https://youtu.be/XFTOG895C7c?t=2562)\r\n*/\r\nimport JQx from \"./src/JQxConstructorFactory.js\";\r\nexport default JQx;\r\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["IS", "isOnly", "maybe", "$Wrap", "isNothing", "addSymbolicExtensions", "detectableProxy", "TOAFactory", "TOAFactory", "specs", "useSymbolicExtensions", "isJust", "typeCheckFactory", "shouldbeIsSingleObject", "ISOneOf", "isExcept", "verifyNothingness", "determineType", "addSymbolicExtensions", "maybe", "$Wrap", "detectableProxy", "TOAHelpers", "IS", "isOnly", "anything", "shouldBe", "unChained", "v", "single", "input", "_", "SymbolAndCustomProxyFactory", "maybeFactory", "WrapAnyFactory", "AUXHelperFactory", "typeOf", "isTypeObj", "isOrDefault", "obj", "params", "param", "defaultValue", "isTypes", "notTypes", "SYMBOL_KEYS", "TYPE_STRINGS", "detectableProxyFactory", "addSymbolsFactory", "trapped", "type", "target", "key", "wrapProxy", "proxy2Wrap", "createDetectableProxy", "traps", "addSymbols2Anything", "args", "useSymbolicExtension", "constructor2String", "isNothing", "processInput", "noShouldbe", "noInput", "compareTo", "inputCTOR", "isNaN", "isInfinity", "shouldBeFirstElementIsNothing", "getResult", "finalInputResolver", "compareWith", "maybeResult", "resultWithComparison", "resultWithoutComparison", "someObj", "wrapper", "errFn", "err", "trial", "whenError", "maybeNothing", "all", "nada", "collate", "nameOf", "type2Check", "checkSingleType", "objName", "typeName", "chkType", "popupStyling", "getPopupStyling", "ATTRS", "getAttrs", "allTags", "getPermissions", "getAttrs", "getPermissions", "getPopupStyling", "converts", "maybe", "maybeFactory", "elementFunctionCollection", "customElementRegistry", "checkType", "typeCheckFactory", "tagFunctionError", "tag", "tinyDOM_default", "tinyDOM", "proxyTraps", "tagFns", "key", "validateTag", "createTagFunctionProperty", "value", "custom", "debug", "isError", "unsealedElementFunctionCollection", "cloneExact", "_", "reSeal", "dashed", "camel", "toCamelcase", "toDashedNotation", "tag2FN", "unsealedCollection", "processNext", "root", "next", "tagName", "containsHTML", "err", "tagFN", "initial", "nested", "elem", "retrieveElementFromInitial", "arg", "isComment", "cleanupComment", "createElement", "createElementAndAppend", "element2Append", "cleanupProps", "props", "specials", "retrieveSpecialProps", "keyCI", "data", "attributes", "classList", "v", "assignSpecialProps", "specialProps", "element", "assignable", "str", "name", "validateElementTagName", "args", "ucFirst", "first", "theRest", "str2Convert", "a", "i", "errFn", "trial", "whenError", "collate", "nameOf", "type2Check", "isNothing", "obj", "checkSingleType", "objName", "typeName", "chkType", "LifeCSS_default", "LifeStyleFactory", "styleSheet", "createWithId", "tryParseAtOrNestedRules", "ruleExists", "checkParams", "sheet", "removeRules", "consider", "currentSheetID", "sheetHelpers", "setRules4Selector", "rule", "properties", "prop", "toDashedNotation", "value", "priority", "tryAndCatch", "setRules", "selector", "styleRules", "sheetOrMediaRules", "IS", "exists", "rule4Selector", "doParse", "cssDeclarationString", "shortenRule", "cssRules", "cssRuleFromText", "styleFromString", "checkAts", "styleFromObject", "rulesObj", "atMedia2String", "cssBlockOrSelector", "notification", "retrieveOrCreateSheet", "id", "existingSheet", "newSheet", "notSupported", "ruleFragOrSelector", "isSelector", "r", "compareSelectors", "createRE", "escape4RegExp", "tryParse", "rulesAt", "acc", "v", "i", "len", "idx", "err", "fn", "existing", "selectr", "stringifyMediaRule", "shortRule", "mediaObj", "key", "str", "a", "regexStr", "args", "flags", "line", "str2Convert", "msg", "prepareCssRuleFromText", "_", "b", "l", "toRuleObject", "preparedRule", "s1", "s2", "lenient", "allowUnknownHtmlTags", "HTMLTags_default", "allTags", "elem", "nodeName", "IS", "tag2Allow", "tag2Prohibit", "logElementCreationErrors2Console", "attrRegExpStore", "logContingentErrors", "elCreationInfo", "msgs", "acc", "k", "v", "escHtml", "systemLog", "elementCheck", "child", "name", "notAllowedCustomElementNames", "HTMLTags_default", "cleanupHtml", "el2Clean", "IS", "attrStore", "ATTRS", "attr", "value", "evilValue", "evilAttrib", "val", "truncate2SingleStr", "tag", "tagValue", "htmlToVirtualElement", "htmlString", "placeholderNode", "insertPositions", "cleanupHtml", "characterDataElement2DOM", "elem", "root", "position", "IS", "inject2DOMTree", "collection", "acc", "created", "isNode", "element2DOM", "createElementFromHtmlString", "htmlStrOrText", "testStr", "text", "v", "nwElem", "truncateHtmlStr", "Popup_default", "$", "popupStyling", "timers", "popupContent", "popupNode", "currentProps", "genericPopupCloseHandler", "initPopup", "initHidePopup", "removeModal", "props", "isCurrent", "content", "showPopup", "failModalClose", "hidePopup", "key", "value", "modal", "closeAfter", "closerIcon", "createTimer", "clearTimers", "timer", "callback", "evt", "seconds", "warnMessage", "modalWarningBox", "HandlerFactory", "jqx", "store", "anon", "setListener", "listener", "handler", "capture", "type", "removeListener", "wrapFn4Selector", "fn", "selector", "once", "handlerName", "evt", "isNonEmptyString", "elemFound", "me", "remove", "storedEventType", "eventType", "retrieve", "name", "key", "handlerIdCache", "systemLog", "storeHandler", "spec", "node", "about", "getHandlerName", "initialHandler", "handlerID", "getCaptureValue", "args", "IS", "nwHandler", "addSymbolicExtensions", "systemLog", "systemLogFactory", "allwaysCaptureEventTypes", "insertPositions", "obj", "key", "characters4RandomString", "x", "i", "datasetKeyProxy", "toCamelcase", "handlerIdCache", "clearAllTimers", "id", "getHandlerName", "name", "isNonEmptyString", "uniqueHandlerID", "getAttributesForLogging", "instance", "isElem", "IS", "dataset", "v", "attrs", "idCache", "anonID", "handlerIdCache", "getCaptureValue", "eventType", "captureValue", "allwaysCaptureEventTypes", "t", "checkProp", "prop", "ATTRS", "attr", "emptyElement", "el", "findParentScrollDistance", "node", "distance", "top", "str", "minlen", "truncate2SingleStr", "maxLength", "truncateHtmlStr", "escHtml", "html", "tmpDiv", "decodeForConsole", "something", "systemLogFactory", "on", "disabled", "backLog", "systemLogger", "disable", "enable", "error", "args", "arg", "logTime", "warn", "log", "entryTxt", "d", "pad0", "assignAttrValues", "keyValuePairs", "key", "value", "toDashedNotation", "setData", "input2Collection", "input", "isNode", "isArrayOfHtmlElements", "beforeOrAfter", "instance", "jqx", "after", "toAdd", "systemLog", "elem", "IS", "bOrA", "isNode", "input", "IS", "applyStyle", "el", "rules", "key", "value", "priority", "toDashedNotation", "cloneAndDestroy", "elem", "cloned", "isVisible", "elStyle", "computedStyle", "invisible", "noDisplay", "hidden", "zeroHeightOrWidth", "offscreen", "noOpacity", "isWritable", "ElemArray2HtmlString", "elems", "acc", "isComment", "isCommentOrTextNode", "pad0", "nr", "n", "randomNr", "max", "min", "randomString", "shuffle", "characters4RandomString", "resolveEventTypeParameter", "maybeTypes", "t", "isModal", "convert2Bool", "defaultValue", "array", "i", "ri", "toCamelcase", "str2Convert", "str", "ucFirst", "a", "first", "theRest", "node", "isText", "isHtmlString", "isArrayOfHtmlElements", "isArrayOfHtmlStrings", "s", "loop", "instance", "callback", "cleanCollection", "el", "isCommentOrTextNode", "i", "getNodeContentForLog", "IS", "setCollectionFromCssSelector", "input", "root", "self", "selectorRoot", "systemLog", "selectedFactoryHelpers", "isNode", "isComment", "isText", "isHtmlString", "isArrayOfHtmlElements", "isArrayOfHtmlStrings", "ElemArray2HtmlString", "input2Collection", "LifeCSS_default", "ExamineElementFeatureFactory", "noElements", "firstElem", "isWritable", "isModal", "isVisible", "css", "keyOrKvPairs", "value", "jqx", "nwClass", "c", "randomString", "instanceIs", "ExamineElementFeatureFactory", "JQxInstanceMethods_default", "jqx", "factoryExtensionsFactory", "instanceExtensionsFactory", "instance", "datasetKeyProxy", "valuesObj", "IS", "key", "value", "whenUndefined", "toDashedNotation", "systemLog", "node", "boundingRect", "findParentScrollDistance", "outer", "escaped", "html", "escHtml", "content", "append", "escape", "isString", "maybeParent", "styleObj", "rule", "classes2Apply", "rules", "addClassNameOrID", "selector", "classNames", "loop", "el", "cn", "elems", "beforeOrAfter", "elems2Append", "shouldMove", "elem2Append", "isNonEmptyString", "elem2Append4Test", "toAppend", "createElementFromHtmlString", "cloneAndDestroy", "isNode", "elem", "appendTo", "keyOrObj", "assignAttrValues", "emptyElement", "theClosest", "property", "keyOrKvPairs", "css", "toDOM", "root", "clone", "cb", "asJQxInstance", "indexOrSelector", "dataAttribute", "valueWhenFalsy", "applyStyle", "htmlValue", "nwElement", "forSelector", "htmlString", "el2Change", "type", "callback", "elems2Prepend", "elem2Prepend", "toPrepend", "prependTo", "nameOrProperties", "props", "propName", "propValue", "checkProp", "remover", "removeFromCollection", "selectedElements", "attrNames", "attr", "position", "oldChild", "newChild", "firstElem", "chld", "className", "nwClassNames", "name", "spec", "setData", "hasNodes", "textValue", "insertPositions", "inject2DOMTree", "evtType", "SpecifiedEvent", "options", "evObj", "newValue", "instanceGetters", "instanceMethods", "isComment", "isText", "isHtmlString", "isArrayOfHtmlElements", "isArrayOfHtmlStrings", "ElemArray2HtmlString", "cssRuleEdit", "addFn", "selectedUtilitiesFactory", "selectedUtilitiesFactory", "selectedFactoryHelpers", "addFnMethod", "name", "extensionMethod", "isNonEmptyString", "IS", "systemLog", "instanceMethods", "self", "params", "staticFNMethodFactory", "jqx", "isGetter", "ext", "args", "proxify", "instance", "target", "key", "proxyTrapFactory", "maybeReProxify", "method", "returnValue", "proxyReporter", "JQxtarget", "maybe", "instanceGetters", "addJQxStaticMethods", "staticMethods", "defaultStaticMethodsFactory", "descriptor", "allowances", "tagName", "isWebComponent", "webComponentTagName", "toCamelcase", "HTMLTags_default", "addGetters", "cssRemove", "rules", "ruleStr", "v", "rule", "cssRuleEdit", "virtualFactory", "html", "root", "position", "insertPositions", "pos", "virtualElem", "elem", "combineObjectSources", "sources", "result", "source", "descriptors", "tagGetterFactory", "cando", "toDashedNotation", "cleanupHtml", "tinyDOM_default", "reportIdOrClass", "getAttributesForLogging", "tag", "jqxGetterForThisTag", "staticTagsLambda", "staticMethodsFactory", "acc", "delegateFactory", "listen", "type", "selector", "listeners", "delegateCaptureFactory", "handlerWrapper", "spec", "types", "origin", "handler", "handlers", "node", "capture", "once", "about", "typesResolved", "resolveEventTypeParameter", "specifiedName", "assignListeners", "handlerFns", "getNamedListenerFactory", "popupGetter", "Popup_default", "getSelectedStaticMethods", "editCssRule", "ruleOrSelector", "ruleObject", "createStyle", "id", "LifeCSS_default", "randomString", "editCssRules", "allowProhibit", "HandlerFactory", "capturedHandling", "line", "factoryExtensions", "instanceExtensions", "JQxInstanceMethods_default", "handle", "log", "warn", "error", "getNamedListener", "staticFN", "escHtml", "detectableProxy", "str", "isComment", "clearAllTimers", "convert2Bool", "addFn", "JQxConstructorFactory_default", "JQxMainFactory", "addJQxStaticMethods", "input", "root", "position", "insertPositions", "isVirtual", "IS", "pos", "isRawHtml", "isHtmlString", "shouldCreateElements", "isArrayOfHtmlStrings", "instance", "input2Collection", "isRawElemCollection", "isArrayOfHtmlElements", "el", "inject2DOMTree", "htmlStringOrComment", "createElementFromHtmlString", "errors", "multiple", "proxify", "collectionLog", "getNodeContentForLog", "systemLog", "setCollectionFromCssSelector", "index_default", "JQxConstructorFactory_default"]
|
|
4
|
+
"sourcesContent": ["const { IS, isOnly, maybe, $Wrap, isNothing, addSymbolicExtensions, detectableProxy } =\r\n TOAFactory({useSymbolicExtensions: false});\r\n\r\nexport { IS as default, maybe, isOnly, $Wrap, detectableProxy as proxyWrapper, isNothing, addSymbolicExtensions };\r\n\r\nfunction TOAFactory(specs = {}) {\r\n const { useSymbolicExtensions } = specs;\r\n const isJust = typeCheckFactory();\r\n const { shouldbeIsSingleObject, ISOneOf, isExcept, verifyNothingness, determineType,\r\n addSymbolicExtensions, maybe, $Wrap, detectableProxy } = TOAHelpers(IS, useSymbolicExtensions);\r\n \r\n if (!!useSymbolicExtensions) { addSymbolicExtensions(); }\r\n \r\n return {IS, isOnly, maybe, $Wrap, isNothing: verifyNothingness, addSymbolicExtensions, detectableProxy};\r\n \r\n function IS(anything, ...shouldBe) {\r\n const unChained = Object.getOwnPropertySymbols(anything || {})?.some(v => v === Symbol.justME) && shouldBe.length > 0;\r\n const single = anything?.[Symbol.justME];\r\n const input = unChained ? single : typeof anything === `symbol` ? Symbol.isSymbol : anything;\r\n switch(true) {\r\n case unChained: return isJust(single, ...shouldBe);\r\n case !!maybe({trial: _ => `isTypes` in (shouldBe?.[0] ?? {})}):\r\n return shouldbeIsSingleObject(anything, shouldBe[0]);\r\n default: return shouldBe.length > 1 ? ISOneOf(input, ...shouldBe) : determineType(anything, ...shouldBe);\r\n }\r\n }\r\n \r\n function isOnly(anything, ...shouldBe) {\r\n return IS({[Symbol.justME]: anything}, ...shouldBe);\r\n }\r\n}\r\n\r\nfunction TOAHelpers(IS, useSymbolicExtensions) {\r\n const { SymbolAndCustomProxyFactory, maybeFactory, WrapAnyFactory,\r\n verifyNothingness, determineType, detectableProxy } = AUXHelperFactory(IS, typeOf);\r\n const {addSymbolicExtensions} = SymbolAndCustomProxyFactory(IS, typeOf, useSymbolicExtensions);\r\n const [maybe, $Wrap] = [maybeFactory(), WrapAnyFactory(IS, typeOf)];\r\n \r\n return Object.freeze({\r\n shouldbeIsSingleObject, ISOneOf, isExcept, verifyNothingness,\r\n determineType, detectableProxy, addSymbolicExtensions, maybe, $Wrap });\r\n \r\n function typeOf(anything) {\r\n return anything?.[Symbol.proxy] || IS(anything);\r\n }\r\n \r\n function shouldbeIsSingleObject(anything, isTypeObj) {\r\n switch(true) {\r\n case `defaultValue` in isTypeObj: return isOrDefault(anything, isTypeObj);\r\n case `notTypes` in isTypeObj: return isExcept(anything, isTypeObj);\r\n default: return IS(anything, ...[isTypeObj.isTypes].flat());\r\n }\r\n }\r\n \r\n function ISOneOf(obj, ...params) {\r\n return params.some(param => IS(obj, param));\r\n }\r\n \r\n function isOrDefault(input, {defaultValue, isTypes = [undefined], notTypes} = {}) {\r\n isTypes = isTypes?.constructor !== Array ? [isTypes] : isTypes;\r\n notTypes = notTypes && notTypes?.constructor !== Array ? [notTypes] : [];\r\n return notTypes.length < 1\r\n ? IS(input, ...isTypes) ? input : defaultValue\r\n : isExcept(input, {isTypes, notTypes}) ? input : defaultValue;\r\n }\r\n \r\n function isExcept(input, {isTypes = [undefined], notTypes = [undefined]} = {}) {\r\n isTypes = isTypes?.constructor !== Array ? [isTypes] : isTypes;\r\n notTypes = notTypes?.constructor !== Array ? [notTypes] : notTypes;\r\n return IS(input, ...isTypes) && !IS(input, ...notTypes);\r\n }\r\n}\r\n\r\nfunction AUXHelperFactory() {\r\n const SYMBOL_KEYS = {\r\n IS: 'toa.is',\r\n TYPE: 'toa.type',\r\n IS_SYMBOL: 'toa.isASymbol',\r\n PROXY: 'toa.proxyFor',\r\n TARGET: 'toa.target',\r\n };\r\n \r\n const TYPE_STRINGS = {\r\n NAN: 'NaN',\r\n INFINITY: 'Infinity',\r\n BOOLEAN: 'Boolean',\r\n OBJECT: 'Object',\r\n PROXY_PREFIX: 'Proxy for',\r\n JUSTME: 'justME',\r\n \r\n };\r\n const detectableProxy = detectableProxyFactory();\r\n \r\n return Object.freeze({\r\n SymbolAndCustomProxyFactory: addSymbolsFactory, maybeFactory, WrapAnyFactory,\r\n verifyNothingness, determineType, detectableProxy,\r\n }\r\n );\r\n \r\n function detectableProxyFactory() {\r\n const trapped = type => ({\r\n get(target, key) {\r\n return key === Symbol.proxy\r\n ? `Proxy for ${type}`\r\n : key === Symbol.target\r\n ? target : Reflect.get(target, key);\r\n },\r\n has(target, key) { return key === Symbol.proxy ? true : key in target; }\r\n });\r\n \r\n function wrapProxy(proxy2Wrap) {\r\n const type = proxy2Wrap.name || proxy2Wrap.constructor.name;\r\n return new Proxy( proxy2Wrap, trapped(type) );\r\n }\r\n \r\n function createDetectableProxy(target, traps) {\r\n traps = IS(traps, Object) ? traps : {};\r\n return wrapProxy(new Proxy(target, traps));\r\n }\r\n \r\n return {\r\n wrap: wrapProxy,\r\n create: createDetectableProxy\r\n };\r\n }\r\n \r\n function addSymbols2Anything(IS, typeOf) {\r\n if (!Symbol.is) {\r\n Symbol.is = Symbol.for(SYMBOL_KEYS.IS);\r\n Symbol.type = Symbol.for(SYMBOL_KEYS.TYPE);\r\n \r\n Object.defineProperties(Object.prototype, {\r\n [Symbol.type]: { get() { return typeOf(this); }, enumerable: false, configurable: true },\r\n [Symbol.is]: { value: function (...args) { return IS(this, ...args); }, enumerable: false, configurable: false },\r\n });\r\n Object.defineProperties(Object, {\r\n [Symbol.type]: { value(obj) { return typeOf(obj); }, enumerable: false, configurable: false },\r\n [Symbol.is]: { value: function (obj, ...args) { return IS(obj, ...args); }, enumerable: false, configurable: false },\r\n });\r\n }\r\n }\r\n \r\n function addSymbolsFactory(IS, typeOf, useSymbolicExtension) {\r\n if (!Symbol.isSymbol) {\r\n Symbol.isSymbol = Symbol.for(SYMBOL_KEYS.IS_SYMBOL);\r\n Symbol.proxy = Symbol.for(SYMBOL_KEYS.PROXY);\r\n Symbol.target = Symbol.for(SYMBOL_KEYS.target);\r\n Symbol.justME = Symbol.for(SYMBOL_KEYS.JUSTME);\r\n }\r\n return {addSymbolicExtensions: () => addSymbols2Anything(IS, typeOf)};\r\n }\r\n \r\n function constructor2String(obj) {\r\n const ctor = !isNothing(obj, true) ? Object.getPrototypeOf(obj)?.constructor : {name: `unknown`};\r\n return ctor.name;\r\n }\r\n \r\n function processInput(input, ...shouldBe) {\r\n const noShouldbe = shouldBe.length < 1;\r\n const noInput = input === undefined || input === null;\r\n \r\n return {\r\n noInput,\r\n noShouldbe,\r\n compareTo: !noShouldbe && shouldBe[0],\r\n inputCTOR: !noInput && (input?.constructor || Object.getPrototypeOf(input)?.constructor),\r\n isNaN: Number.isNaN(input) || maybe({trial: _ => String(input) === TYPE_STRINGS.NAN}),\r\n isInfinity: maybe({trial: _ => String(input)}) === TYPE_STRINGS.INFINITY,\r\n shouldBeFirstElementIsNothing: !noShouldbe && verifyNothingness(shouldBe[0])\r\n };\r\n }\r\n \r\n function determineType(input, ...shouldBe) {\r\n let { noInput, noShouldbe, compareTo, inputCTOR, isNaN, isInfinity, shouldBeFirstElementIsNothing } =\r\n processInput(input, ...shouldBe);\r\n shouldBe = shouldBe.length && shouldBe[0];\r\n \r\n switch (true) {\r\n case shouldBeFirstElementIsNothing: return String(input) === String(compareTo);\r\n case input?.[Symbol.proxy] && noShouldbe: return input[Symbol.proxy];\r\n case input?.[Symbol.proxy] && typeof shouldBe === `string`:\r\n return input[Symbol.proxy].toLowerCase() === shouldBe.toLowerCase();\r\n case isNaN: return noShouldbe ? TYPE_STRINGS.NAN : String(compareTo) === String(input);\r\n case isInfinity: return noShouldbe ? TYPE_STRINGS.INFINITY : String(compareTo) === String(input);\r\n case noInput: return noShouldbe ? String(input) : String(compareTo) === String(input);\r\n case inputCTOR === Boolean: return noShouldbe ? TYPE_STRINGS.BOOLEAN : inputCTOR === shouldBe;\r\n default: return getResult(input, shouldBe, noShouldbe, finalInputResolver(input, inputCTOR));\r\n }\r\n }\r\n \r\n function finalInputResolver(input, inputCTOR) {\r\n switch(true) {\r\n case input === 0: return Number;\r\n case input === ``: return String;\r\n case !input: return {name: String(input)};\r\n default: return inputCTOR;\r\n }\r\n }\r\n \r\n function getResult(input, compareWith, noShouldbe, maybeResult) {\r\n switch (true) {\r\n case (!noShouldbe && compareWith === input) || (input?.[Symbol.proxy] && compareWith === Proxy):\r\n return true;\r\n case String(compareWith) === TYPE_STRINGS.NAN:\r\n return String(input) === TYPE_STRINGS.NAN;\r\n case input?.[Symbol.toStringTag] && typeof compareWith === `string`:\r\n return String(compareWith) === input[Symbol.toStringTag];\r\n default:\r\n return compareWith ?\r\n resultWithComparison(input, compareWith, maybeResult) : resultWithoutComparison(input, maybeResult);\r\n }\r\n }\r\n \r\n function resultWithoutComparison(input, maybeResult) {\r\n const toStringTag = input?.[Symbol.toStringTag] ?? input?.prototype?.[Symbol.toStringTag];\r\n return toStringTag || maybeResult?.name || String(maybeResult);\r\n }\r\n \r\n function resultWithComparison(input, compareWith, maybeResult) {\r\n return maybe({trial: _ =>\r\n input instanceof compareWith}) ||\r\n compareWith === maybeResult ||\r\n compareWith === Object.getPrototypeOf(maybeResult) ||\r\n `${compareWith?.name}` === maybeResult?.name;\r\n }\r\n \r\n function WrapAnyFactory(IS, typeOf) {\r\n return function (someObj) {\r\n const wrapper = {\r\n get value() { return someObj; },\r\n is(...args) { return IS(someObj, ...args); },\r\n get type() { return typeOf(someObj); },\r\n };\r\n \r\n if (Object[Symbol.type]) {\r\n Object.defineProperties(wrapper, {\r\n [Symbol.type]: { get() { return typeOf(someObj);} },\r\n [Symbol.is]: { value(...args) { return IS(someObj, ...args); }}\r\n });\r\n }\r\n return Object.freeze(wrapper);\r\n }\r\n }\r\n \r\n function maybeFactory() {\r\n const errFn = err => undefined;\r\n return function({trial, whenError = errFn } = {}) {\r\n try { return trial(); } catch (err) { return whenError(err); }\r\n };\r\n }\r\n \r\n function verifyNothingness(maybeNothing, all = false) {\r\n let nada = maybeNothing === null || maybeNothing === undefined;\r\n nada = all ? nada || IS(maybeNothing, Infinity) || IS(maybeNothing, NaN) : nada;\r\n return nada;\r\n }\r\n}\r\n\r\nfunction typeCheckFactory() {\r\n const collate = new Intl.Collator(`en`, {sensitivity: 'base'});\r\n const nameOf = type2Check => {\r\n return typeof type2Check?.constructor === `function`\r\n ? type2Check?.name || type2Check?.constructor?.name\r\n : typeof type2Check === `string` ? type2Check : typeof type2Check;\r\n };\r\n const isNothing = obj => [null, undefined, Infinity, NaN].some(v => v === obj);\r\n \r\n function checkSingleType(obj, type2Check) {\r\n if (\r\n type2Check !== obj &&\r\n ( isNothing(obj) || type2Check === Number && (Number.isNaN(obj) || !Number.isFinite(obj)) )\r\n ) { return false; }\r\n const [objName, typeName] = [nameOf(obj), nameOf(type2Check)];\r\n \r\n return obj?.[Symbol.proxy] === type2Check ||\r\n type2Check === obj?.name ||\r\n 0 === collate.compare(objName, typeName) ||\r\n 0 === collate.compare(obj.constructor?.name, type2Check?.name) ||\r\n obj.constructor?.name === type2Check ||\r\n objName === type2Check ||\r\n 0 === collate.compare( Object.prototype.toString.call(obj), `[object ${typeName}]` );\r\n }\r\n \r\n return function checkType(obj, ...type2Check) {\r\n if (Array.isArray(type2Check) && type2Check.length > 1) {\r\n for (const chkType of type2Check) {\r\n if (checkSingleType(obj, chkType)) { return true; }\r\n }\r\n \r\n return false;\r\n }\r\n \r\n return checkSingleType(obj, type2Check?.[0]);\r\n }\r\n}\r\n", "let popupStyling = getPopupStyling();\r\nconst ATTRS = getAttrs();\r\nconst allTags = getPermissions();\r\nexport {popupStyling, ATTRS, allTags};\r\n\r\nfunction getAttrs() {\r\n return {\r\n html: Object.freeze(`accept,action,align,alt,autocapitalize,autocomplete,autopictureinpicture,autoplay,background,bgcolor,border,capture,cellpadding,cellspacing,checked,cite,class,clear,contenteditable,color,cols,colspan,controls,controlslist,coords,crossorigin,datetime,decoding,default,dir,disabled,disablepictureinpicture,disableremoteplayback,download,draggable,enctype,enterkeyhint,face,for,headers,height,hidden,high,href,hreflang,id,inputmode,integrity,is,ismap,kind,label,lang,list,loading,loop,low,max,maxlength,media,method,min,minlength,multiple,muted,name,nonce,noshade,novalidate,nowrap,open,optimum,pattern,placeholder,playsinline,poster,preload,pubdate,radiogroup,readonly,rel,required,rev,reversed,role,rows,rowspan,spellcheck,scope,selected,shape,size,sizes,span,srclang,start,src,srcset,step,style,summary,tabindex,target,title,translate,type,usemap,valign,value,width,xmlns,slot`\r\n .split(`,`)),\r\n svg: Object.freeze(`accent-height,accumulate,additive,alignment-baseline,ascent,attributename,attributetype,azimuth,basefrequency,baseline-shift,begin,bias,by,class,clip,clippathunits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,cx,cy,d,dx,dy,diffuseconstant,direction,display,divisor,dur,edgemode,elevation,end,fill,fill-opacity,fill-rule,filter,filterunits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,fx,fy,g1,g2,glyph-name,glyphref,gradientunits,gradienttransform,height,href,id,image-rendering,in,in2,k,k1,k2,k3,k4,kerning,keypoints,keysplines,keytimes,lang,lengthadjust,letter-spacing,kernelmatrix,kernelunitlength,lighting-color,local,marker-end,marker-mid,marker-start,markerheight,markerunits,markerwidth,maskcontentunits,maskunits,max,mask,media,method,mode,min,name,numoctaves,offset,operator,opacity,order,orient,orientation,origin,overflow,paint-order,path,pathlength,patterncontentunits,patterntransform,patternunits,points,preservealpha,preserveaspectratio,primitiveunits,r,rx,ry,radius,refx,refy,repeatcount,repeatdur,restart,result,rotate,scale,seed,shape-rendering,specularconstant,specularexponent,spreadmethod,startoffset,stddeviation,stitchtiles,stop-color,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke,stroke-width,style,surfacescale,systemlanguage,tabindex,targetx,targety,transform,text-anchor,text-decoration,text-rendering,textlength,type,u1,u2,unicode,values,viewbox,visibility,version,vert-adv-y,vert-origin-x,vert-origin-y,width,word-spacing,wrap,writing-mode,xchannelselector,ychannelselector,x,x1,x2,xmlns,y,y1,y2,z,zoomandpan`\r\n .split(`,`)),\r\n };\r\n}\r\n\r\nfunction getPermissions() {\r\n return {a:true,area:true,audio:false,br:true,base:true,body:true,button:true,canvas:true,comment:true,dl:true,data:true,datalist:true,div:true,em:true, embed:false,fieldset:true,font:true,footer:true,form:false,hr:true,head:true,header:true,output:true,iframe:false,frameset:false,img:true,input:true,li:true,label:true,legend:true,link:true,map:true,mark:true,menu:true,media:true,meta:true,nav:true,meter:true,ol:true,object:false,optgroup:true,option:true,p:true,param:true,picture:true,pre:true,progress:false,quote:true,script:false,select:true,source:true,span:true,style:true,caption:true,td:true,col:true,table:true,tr:true,template:false,textarea:true,time:true,title:true,track:true,details:true,ul:true,video:true,del:true,ins:true,slot:true,blockquote:true,svg:true,dialog:true,summary:true,main:true,address:true,colgroup:true,tbody:true,tfoot:true,thead:true,th:true,dd:true,dt:true,figcaption:true,figure:true,i:true,b:true,code:true,h1:true,h2:true,h3:true,h4:true,abbr:true,bdo:true,dfn:true,kbd:true,q:true,rb:true,rp:true,rt:true,ruby:true,s:true,strike:true,samp:true,small:true,strong:true,sup:true,sub:true,u:true,var:true,wbr:true,nobr:true,tt:true,noscript:true};\r\n}\r\n\r\nfunction getPopupStyling() {\r\n return [\r\n \"::backdrop{background-color:grey;opacity:0.2;}\",\r\n \"#jqxPopup{overflow:hidden;background-color:transparent;outline:none;border:none;inset:0;animation:fade-out 0.5s ease-out;&[open]{display:flex;align-items:center;justify-content:center;animation:fade-in 0.5s ease;}#jqxPopupContent{background-color:white;border:solid 1px #eee;box-shadow:1px 2px 8px #999;border-radius:4px;padding:12px;vertical-align:middle;max-height:40vh;max-width:50vw;overflow:auto;margin:0 auto;div:not(#closeHandleIcon){clear:both;}@media (width <= 640px){max-width:80vw;max-height:60vh;}#closeHandleIcon{cursor:pointer;width:24px;height:24px;display:inline;position:absolute;top:4px;right:4px;justify-content:right;background-image:url(\\\"data:image/svg+xml;utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20id%3D%22Layer_1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20128%20128%22%20style%3D%22enable-background%3Anew%200%200%20128%20128%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Crect%20x%3D%22-368%22%20y%3D%226%22%20style%3D%22display%3Anone%3Bfill%3A%23E0E0E0%3B%22%20width%3D%22866%22%20height%3D%221018%22%2F%3E%3Ccircle%20style%3D%22fill%3A%23FFFFFF%3B%22%20cx%3D%2264%22%20cy%3D%2264%22%20r%3D%2248%22%2F%3E%3Ccircle%20style%3D%22fill%3A%238CCFB9%3B%22%20cx%3D%2264%22%20cy%3D%2264%22%20r%3D%2239%22%2F%3E%3Ccircle%20style%3D%22fill%3Anone%3Bstroke%3A%23444B54%3Bstroke-width%3A6%3Bstroke-miterlimit%3A10%3B%22%20cx%3D%2264%22%20cy%3D%2264%22%20r%3D%2248%22%2F%3E%3Cpolyline%20style%3D%22fill%3Anone%3Bstroke%3A%23FFFFFF%3Bstroke-width%3A6%3Bstroke-linecap%3Around%3Bstroke-miterlimit%3A10%3B%22%20points%3D%2242%2C69%2055.55%2C81%20%20%2086%2C46%20%22%2F%3E%3C%2Fsvg%3E\\\");@media (width <= 640px){background-image:none;position:relative;margin:-15px -15px 4px 0;float:right;vertical-align:middle;border:1px solid #AAA;padding:2px;border-radius:50%;width:12px;height:12px;font-size:12px;line-height:12px;font-weight:bold;text-align:center;&:after{content:'\\\\2714';color:green;}}}.warn{display:none;text-align:center;color:red;border-top:1px solid #999;margin-top:1em;padding-top:3px;animation:warn-fade-out 0.2s ease-out;}.warn.active{opacity:1;display:block;animation:warn-fade-in 0.2s ease-in;}}}\",\r\n \"@keyframes fade-in{0%{opacity:0;transform:scale(0, 0);display:none;}100%{opacity:1;transform:scale(1, 1);display:flex;}}\",\r\n \"@keyframes fade-out{0%{opacity:1;transform:scale(1, 1);display:flex;}100%{opacity:0;transform:scale(0, 0);display:none;}}\",\r\n \"@keyframes warn-fade-in{0%{opacity:0;transform:scale(0, 0);display:none;}100%{opacity:1;transform:scale(1,1 );display:block;}}\",\r\n \"@keyframes warn-fade-out{0%{opacity:1;transform:scale(1, 1);display:block;}100%{opacity:0;transform:scale(0, 0);display:none;}}\"\r\n ];\r\n}\r\n", "// Standalone available @ https://www.npmjs.com/package/tinydom-es\n// Src/helpers.js\nvar checkType = typeCheckFactory();\nvar maybe = maybeFactory();\nvar converts = { html: `innerHTML`, text: `textContent`, class: `className` };\nfunction typeCheckFactory() {\n const collate = new Intl.Collator(`en`, { sensitivity: \"base\" });\n const nameOf = (type2Check) => {\n return typeof type2Check?.constructor === `function` ? type2Check?.name || type2Check?.constructor?.name : typeof type2Check === `string` ? type2Check : typeof type2Check;\n };\n const isNothing = (obj) => [null, void 0, Infinity, NaN].some((v) => v === obj);\n function checkSingleType(obj, type2Check) {\n switch (true) {\n case (type2Check !== obj && (isNothing(obj) || type2Check === Number && (Number.isNaN(obj) || !Number.isFinite(obj)))):\n return false;\n default:\n const [objName, typeName] = [nameOf(obj), nameOf(type2Check)];\n return obj?.[Symbol.proxy] === type2Check || type2Check === obj?.name || 0 === collate.compare(objName, typeName) || 0 === collate.compare(obj.constructor?.name, type2Check?.name) || obj.constructor?.name === type2Check || objName === type2Check || 0 === collate.compare(Object.prototype.toString.call(obj), `[object ${typeName}]`);\n }\n }\n return function checkType2(obj, ...type2Check) {\n if (Array.isArray(type2Check) && type2Check.length > 1) {\n for (const chkType of type2Check) {\n if (checkSingleType(obj, chkType)) {\n return true;\n }\n }\n return false;\n }\n return checkSingleType(obj, type2Check?.[0]);\n };\n}\nfunction ucFirst([first, ...theRest]) {\n return `${first.toUpperCase()}${theRest.join(``)}`;\n}\nfunction toDashedNotation(str2Convert) {\n return str2Convert.replace(/[A-Z]/g, (a) => `-${a.toLowerCase()}`).replace(/^-|-$/, ``);\n}\nfunction toCamelcase(str2Convert) {\n return checkType(str2Convert, String) ? str2Convert.toLowerCase().split(`-`).map((str, i) => i && `${ucFirst(str)}` || str).join(``) : str2Convert;\n}\nfunction maybeFactory() {\n const errFn = (err) => void 0;\n return function({ trial, whenError = errFn } = {}) {\n try {\n return trial();\n } catch (err) {\n return whenError(err);\n }\n };\n}\nfunction cloneExact(elementFunctionCollection2) {\n return Object.fromEntries(\n Object.entries(Object.getOwnPropertyDescriptors(elementFunctionCollection2))\n );\n}\nfunction cleanupProps(props) {\n if (Object.keys(props).length < 1) {\n return { assignable: {}, specials: [...Array(3)] };\n }\n const specials = retrieveSpecialProps(props);\n Object.keys(props).forEach((key) => {\n const keyCI = key.toLowerCase();\n keyCI in converts && (props[converts[keyCI]] = props[key]) && delete props[key];\n });\n return { assignable: props, specials };\n}\nfunction retrieveSpecialProps(props) {\n props = checkType(props, Object) && props || void 0;\n if (!props) {\n return Array(3);\n }\n const data = Object.entries(props.data ?? {});\n const attributes = Object.entries(props.attributes ?? {});\n const classList = props.class?.split(/[ ,]/).map((v) => v.trim()).filter((v) => v.length > 1);\n delete props.data;\n delete props.attributes;\n delete props.class;\n return [data, attributes, classList];\n}\nfunction cleanupComment(initial) {\n return initial?.constructor === Comment ? initial?.textContent : String(initial);\n}\nfunction isComment(tag) {\n return /comment/i.test(tag);\n}\nfunction containsHTML(str, tag) {\n return !isComment(tag) && checkType(str, String) && /<.*>|&[#|0-9a-z]+[^;];/i.test(str);\n}\nfunction validateElementTagName(tagName) {\n tagName = tagName.toLowerCase();\n return typeof tagName === `string` && tagName.length > 0 && /^[a-z]/.test(tagName) && /^[a-z0-9-]+$/gi.test(tagName);\n}\nfunction validateTag(name, customElementRegistry2, createElement2) {\n return validateElementTagName(name) && (name in customElementRegistry2 || !checkType(createElement2(name), HTMLUnknownElement));\n}\n\n// Src/tinyDOM.js\nvar elementFunctionCollection = Object.create(null, {});\nvar customElementRegistry = Object.create(null, {});\nvar tagFunctionError = (tag) => {\n console.error(`tinyDOM error: \"${tag}\" is not a valid HTML tag`);\n return void 0;\n};\nvar tinyDOM_default = tinyDOM();\nfunction tinyDOM() {\n return Object.seal(new Proxy(elementFunctionCollection, proxyTraps()));\n}\nfunction proxyTraps() {\n return {\n get(tagFns, key) {\n const tag = String(key);\n switch (true) {\n case tag in tagFns:\n return tagFns[tag];\n case validateTag(tag, customElementRegistry, createElement):\n return createTagFunctionProperty({ tag, key });\n default:\n return createTagFunctionProperty({ tag, key, isError: true });\n }\n },\n set(tagFns, key, value) {\n if (key === `setError` && typeof value === \"function\") {\n tagFunctionError = value;\n }\n return true;\n },\n enumerable: false,\n configurable: false\n };\n}\nfunction createTagFunctionProperty({ tag, key, custom, debug = false, isError = false } = {}) {\n let unsealedElementFunctionCollection = cloneExact(elementFunctionCollection);\n if (isError) {\n Object.defineProperty(unsealedElementFunctionCollection, tag, {\n get() {\n return (_) => tagFunctionError(key) ?? ``;\n }\n });\n return reSeal(unsealedElementFunctionCollection, tag);\n }\n if (tag.includes(`-`)) {\n const [dashed, camel] = tag.includes(`-`) ? [tag, toCamelcase(tag)] : [toDashedNotation(tag), tag];\n customElementRegistry[dashed] = dashed;\n customElementRegistry[camel] = dashed;\n custom = camel;\n }\n if (!!custom) {\n Object.defineProperty(unsealedElementFunctionCollection, custom, {\n get() {\n return tag2FN(tag);\n }\n });\n }\n Object.defineProperty(unsealedElementFunctionCollection, tag, {\n get() {\n return tag2FN(tag);\n }\n });\n return reSeal(unsealedElementFunctionCollection, tag);\n}\nfunction reSeal(unsealedCollection, tag) {\n elementFunctionCollection = Object.seal(new Proxy(unsealedCollection, proxyTraps()));\n return elementFunctionCollection[tag];\n}\nfunction processNext(root, next, tagName) {\n next = next?.isJQx && next.node || (checkType(next, Number) ? String(next) : next);\n return maybe({\n trial: (_) => containsHTML(next) ? root.insertAdjacentHTML(`beforeend`, next) : root.append(next),\n whenError: (err) => console.info(`${tagName} not created, reason\n`, err)\n });\n}\nfunction tagFN(tagName, initial, ...nested) {\n const elem = retrieveElementFromInitial(initial, tagName);\n nested?.forEach((arg) => processNext(elem, arg, tagName));\n return elem;\n}\nfunction retrieveElementFromInitial(initial, tag) {\n initial = isComment(tag) ? cleanupComment(initial) : initial?.isJQx ? initial.node : initial;\n switch (true) {\n case checkType(initial, String):\n return createElement(tag, containsHTML(initial, tag) ? { html: initial } : { text: initial });\n case initial instanceof Node:\n return createElementAndAppend(tag, initial);\n default:\n return createElement(tag, initial);\n }\n}\nfunction createElementAndAppend(tag, element2Append) {\n const elem = createElement(tag);\n elem.append(element2Append);\n return elem;\n}\nfunction assignSpecialProps(specialProps, element) {\n const [data, attributes, classList] = specialProps;\n data?.length && data.forEach(([key, value]) => element.dataset[key] = value);\n attributes?.length && attributes.forEach(([key, value]) => element.setAttribute(key, value));\n classList?.forEach((value) => element.classList.add(value));\n}\nfunction createElement(tagName, props) {\n props = props || {};\n const { assignable, specials } = cleanupProps(props);\n const elem = Object.assign(\n isComment(tagName) ? new Comment() : document.createElement(tagName),\n assignable\n );\n assignSpecialProps(specials, elem);\n return elem;\n}\nfunction tag2FN(tagName) {\n tagName = customElementRegistry[tagName] ?? tagName;\n return (initial, ...args) => tagFN(tagName, initial, ...args);\n}\nexport {\n tinyDOM_default as default\n};\n", "import {default as IS} from \"./TypeofAnything.js\";\r\nexport default LifeStyleFactory;\r\n\r\n/* region factory */\r\nfunction LifeStyleFactory({styleSheet, createWithId} = {}) {\r\n const { tryParseAtOrNestedRules, ruleExists, checkParams,\r\n sheet, removeRules, consider, currentSheetID } = sheetHelpers({styleSheet, createWithId});\r\n\r\n function setRules4Selector(rule, properties) {\r\n if (rule && properties.removeProperties) {\r\n Object.keys(properties.removeProperties)\r\n .forEach( prop => rule.style.removeProperty(toDashedNotation(prop)) );\r\n return;\r\n }\r\n\r\n Object.entries(properties)\r\n .forEach( ([prop, value]) => {\r\n prop = toDashedNotation(prop.trim());\r\n value = value.trim();\r\n\r\n let priority;\r\n\r\n if (/!important/.test(value)) {\r\n value = value.slice(0, value.indexOf(`!important`)).trim();\r\n priority = `important`;\r\n }\r\n\r\n if (!CSS.supports(prop, value)) {\r\n return console.error(`StylingFactory ${currentSheetID} error: '${\r\n prop}' with value '${value}' not supported (yet)`);\r\n }\r\n\r\n tryAndCatch( () => rule.style.setProperty(prop, value, priority),\r\n `StylingFactory ${currentSheetID} (setRule4Selector) failed`);\r\n });\r\n }\r\n\r\n function setRules(selector, styleRules, sheetOrMediaRules = sheet) {\r\n selector = selector?.trim?.();\r\n if (!IS(selector, String) || !selector.length || /[;,]$/g.test(selector)) {\r\n return console.error(`StylingFactory ${currentSheetID} (setRules): [${\r\n selector || `[no selector given]` }] is not a valid selector`);\r\n }\r\n\r\n if (styleRules.removeRule) {\r\n return removeRules(selector);\r\n }\r\n\r\n const exists = ruleExists(selector, true);\r\n const rule4Selector = exists\r\n || sheetOrMediaRules.cssRules[sheetOrMediaRules.insertRule(`${selector} {}`, sheetOrMediaRules.cssRules.length || 0)];\r\n\r\n return consider( () => setRules4Selector(rule4Selector, styleRules), selector, exists );\r\n }\r\n\r\n function doParse(cssDeclarationString) {\r\n const rule = cssDeclarationString.trim().split(/{/, 2);\r\n const selector = rule.shift().trim();\r\n\r\n if (!IS(selector, String) || !selector?.trim()?.length) {\r\n return console.error(`StylingFactory ${currentSheetID} (doParse): no (valid) selector could be extracted from rule ${\r\n shortenRule(cssDeclarationString)}`);\r\n }\r\n\r\n const cssRules = cssRuleFromText(rule.shift());\r\n\r\n return tryAndCatch( () => setRules(selector, cssRules), `StylingFactory ${currentSheetID} (setRules) failed` );\r\n }\r\n\r\n function styleFromString(cssDeclarationString) {\r\n const checkAts = tryParseAtOrNestedRules(cssDeclarationString);\r\n return checkAts.done ? checkAts.existing : doParse(cssDeclarationString);\r\n }\r\n\r\n function styleFromObject(selector, rulesObj) {\r\n if (selector.trim().startsWith(`@media`)) {\r\n return styleFromString(atMedia2String(selector, rulesObj));\r\n }\r\n return setRules(selector, rulesObj);\r\n }\r\n\r\n return function(cssBlockOrSelector, rulesObj = {}) {\r\n const checksOk = checkParams(cssBlockOrSelector, rulesObj);\r\n\r\n return checksOk && (\r\n Object.keys(rulesObj).length ?\r\n styleFromObject(cssBlockOrSelector, rulesObj) :\r\n styleFromString(cssBlockOrSelector) );\r\n };\r\n}\r\n/* endregion factory */\r\n\r\n/* region helpers */\r\nfunction sheetHelpers({styleSheet, createWithId}) {\r\n const notification = `Note: The rule or some of its properties may not be supported by your browser (yet)`;\r\n const currentSheetID = `for style#${createWithId}`;\r\n styleSheet = createWithId ? retrieveOrCreateSheet(createWithId) : styleSheet;\r\n\r\n function retrieveOrCreateSheet(id) {\r\n const existingSheet = document.querySelector(`#${id}`)?.sheet;\r\n\r\n if (existingSheet) { return existingSheet; }\r\n\r\n const newSheet = Object.assign(document.createElement(`style`), { id });\r\n document.head.insertAdjacentElement(`beforeend`, newSheet);\r\n return newSheet.sheet;\r\n }\r\n\r\n function notSupported(rule) {\r\n console.error(`StylingFactory ${currentSheetID} [rule: ${rule}]\r\n => @charset, @namespace and @import are not supported here`);\r\n return {done: true};\r\n }\r\n\r\n function ruleExists(ruleFragOrSelector, isSelector) {\r\n return [...styleSheet.rules].find( r =>\r\n isSelector ?\r\n compareSelectors((r.selectorText || ``), ruleFragOrSelector) :\r\n createRE`${escape4RegExp(ruleFragOrSelector)}${[...`gim`]}`.test(r.cssText));\r\n }\r\n\r\n function tryParseAtOrNestedRules(cssDeclarationString) {\r\n if (/^@charset|@import|namespace/i.test(cssDeclarationString.trim())) {\r\n return notSupported(cssDeclarationString);\r\n }\r\n\r\n if (cssDeclarationString.match(/}/g)?.length > 1) {\r\n return {existing: tryParse(cssDeclarationString, 1), done: true}\r\n }\r\n\r\n return { done: false };\r\n }\r\n\r\n function removeRules(selector) {\r\n const rulesAt = [...styleSheet.cssRules].reduce( (acc, v, i) =>\r\n compareSelectors(v.selectorText || ``, selector) && acc.concat(i) || acc, [] );\r\n const len = rulesAt.length;\r\n rulesAt.forEach(idx => styleSheet.deleteRule(idx));\r\n\r\n return len > 0\r\n ? console.info(`\u2714 Removed ${len} instance${len > 1 ? `s` : ``} of selector ${\r\n selector} from ${currentSheetID.slice(4)}`)\r\n : console.info(`\u2714 Remove rule: selector ${selector} does not exist in ${\r\n currentSheetID.slice(4)}`);\r\n }\r\n\r\n function checkParams(cssBlockOrSelector, rulesObj) {\r\n return cssBlockOrSelector\r\n && IS(cssBlockOrSelector, String)\r\n && cssBlockOrSelector.trim().length > 0\r\n && IS(rulesObj, Object) ||\r\n (console.error(`StylingFactory ${currentSheetID} called with invalid parameters`), false);\r\n }\r\n\r\n function tryParse(cssDeclarationString) {\r\n cssDeclarationString = cssDeclarationString.trim();\r\n const rule = cssDeclarationString.slice(0, cssDeclarationString.indexOf(`{`)).trim();\r\n const exists = !!ruleExists(rule);\r\n\r\n try {\r\n return (styleSheet.insertRule(`${cssDeclarationString}`, styleSheet.cssRules.length), exists);\r\n } catch(err) {\r\n return (console.error(`StylingFactory ${currentSheetID} (tryParse) ${err.name} Error:\\n${\r\n err.message}\\nRule: ${\r\n shortenRule(cssDeclarationString)}\\n${\r\n notification}`),\r\n exists);\r\n }\r\n }\r\n\r\n function consider(fn, rule, existing) {\r\n try {\r\n return (fn(), existing);\r\n } catch(err) {\r\n return (\r\n console.error(`StylingFactory ${currentSheetID} (tryAddOrModify) ${err.name} Error:\\n${\r\n err.message}\\nRule: ${shortenRule(rule)}\\n${notification}`),\r\n existing\r\n );\r\n }\r\n }\r\n\r\n return {\r\n sheet: styleSheet, removeRules, tryParseAtOrNestedRules,\r\n ruleExists, checkParams, tryParse, consider,\r\n currentSheetID };\r\n}\r\n/* endregion helpers */\r\n\r\n/* region globalOrShared */\r\nfunction atMedia2String(selector, rulesObj) {\r\n return `${selector.trim()} ${\r\n Object.entries(rulesObj).map( ( [ selectr, rule] ) =>\r\n `${selectr}: { ${stringifyMediaRule(rule) }` ) }`;\r\n}\r\n\r\nfunction shortenRule(rule) {\r\n const shortRule = (rule || `NO RULE`).trim().slice(0, 50).replace(/\\n/g, `\\\\n`).replace(/\\s{2,}/g, ` `);\r\n return rule.length > shortRule.length ? `${shortRule.trim()}...truncated` : shortRule;\r\n}\r\n\r\nfunction stringifyMediaRule(mediaObj) {\r\n return Object.entries(mediaObj)\r\n .map( ([key, value]) => `${key}: ${value.trim()}`).join(`;\\n`);\r\n}\r\n\r\nfunction escape4RegExp(str) {\r\n return str.replace(/([*\\[\\]()-+{}.$?\\\\])/g, a => `\\\\${a}`);\r\n}\r\n\r\nfunction createRE(regexStr, ...args) {\r\n const flags = args.length && Array.isArray(args.slice(-1)) ? args.pop().join(``) : ``;\r\n\r\n return new RegExp(\r\n (args.length &&\r\n regexStr.raw.reduce( (a, v, i ) => a.concat(args[i-1] || ``).concat(v), ``) ||\r\n regexStr.raw.join(``))\r\n .split(`\\n`)\r\n .map( line => line.replace(/\\s|\\/\\/.*$/g, ``).trim().replace(/(@s!)/g, ` `) )\r\n .join(``), flags);\r\n}\r\n\r\nfunction toDashedNotation(str2Convert) {\r\n return str2Convert.replace(/[A-Z]/g, a => `-${a.toLowerCase()}`).replace(/[^--]^-|-$/, ``);\r\n}\r\n\r\nfunction tryAndCatch(fn, msg) {\r\n try { return fn(); }\r\n catch(err) { console.error( `${msg || `an error occured`}: ${err.message}` ); }\r\n}\r\n\r\nfunction prepareCssRuleFromText(rule) {\r\n return rule\r\n .replace(/\\/\\*.+?\\*\\//gm, ``)\r\n .replace(/[}{\\r\\n]/g, ``)\r\n .replace(/(data:.+?);/g, (_,b) => `${b}\\\\3b`)\r\n .split(`;`)\r\n .map(l => l.trim())\r\n .join(`;\\n`)\r\n .replaceAll(`\\\\3b`, `;`)\r\n .split(`\\n`);\r\n}\r\n\r\nfunction toRuleObject(preparedRule) {\r\n return preparedRule\r\n .reduce( (acc, v) => {\r\n const [key, value] = [\r\n v.slice(0, v.indexOf(`:`)).trim(),\r\n v.slice(v.indexOf(`:`) + 1).trim().replace(/;$|;.+(?=\\/*).+\\/$/, ``)];\r\n return key && value ? {...acc, [key]: value} : acc; }, {} );\r\n}\r\n\r\nfunction cssRuleFromText(rule) {\r\n return toRuleObject(prepareCssRuleFromText(rule));\r\n}\r\n\r\nfunction compareSelectors(s1, s2) {\r\n return s1?.replace(`::`, `:`) === s2?.replace(`::`, `:`);\r\n}\r\n/* endregion globalOrShared */\r\n", "import { allTags } from \"./EmbedResources.js\";\r\nimport { IS } from \"./Utilities.js\";\r\nlet lenient = false;\r\nconst allowUnknownHtmlTags = {\r\n on: () => lenient = true,\r\n off: () => lenient = false,\r\n};\r\nexport default {\r\n tagsRaw: allTags,\r\n allowUnknownHtmlTags,\r\n isAllowed(elem) {\r\n if (lenient) { return true; }\r\n const nodeName = IS(elem, String) ? elem.toLowerCase() : elem?.nodeName.toLowerCase() || `none`;\r\n return nodeName === `#text` || !!allTags[nodeName];\r\n },\r\n allowTag: tag2Allow => allTags[tag2Allow.toLowerCase()] = true,\r\n prohibitTag: tag2Prohibit => allTags[tag2Prohibit.toLowerCase()] = false,\r\n};\r\n", "import cleanupTagInfo from \"./HTMLTags.js\";\r\nimport {ATTRS, IS, truncate2SingleStr, escHtml, systemLog} from \"./Utilities.js\";\r\n\r\nlet logElementCreationErrors2Console = true;\r\nconst attrRegExpStore = {\r\n data: /data-[\\-\\w.\\p{L}]/ui, // data-* minimal 1 character after dash\r\n validURL: /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i,\r\n whiteSpace: /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g,\r\n notAllowedValues: /^javascript|injected|noreferrer|alert|DataURL/gi\r\n};\r\n\r\nfunction logContingentErrors(elCreationInfo) {\r\n if (logElementCreationErrors2Console && Object.keys(elCreationInfo.removed).length) {\r\n const msgs = Object.entries(elCreationInfo.removed)\r\n .reduce( (acc, [k, v]) => [...acc, `${escHtml(k)} => ${v}`], [])\r\n .join(`\\\\000A`);\r\n systemLog.error(`JQx: HTML creation error(s): ${msgs}`);\r\n }\r\n}\r\n\r\nfunction elementCheck(child) {\r\n const name = child.nodeName.toLowerCase();\r\n const notAllowedCustomElementNames = [\r\n `annotation-xml`, `color-profile`, `font-face`, `font-face-src`,\r\n `font-face-uri`, `font-face-format`, `font-face-name`, `missing-glyph` ];\r\n return /-/.test(name) && !notAllowedCustomElementNames.find(v => v === name) || cleanupTagInfo.isAllowed(name);\r\n}\r\n\r\nfunction cleanupHtml(el2Clean) {\r\n const elCreationInfo = {\r\n rawHTML: el2Clean?.parentElement?.getHTML() ?? `no html`,\r\n removed: { },\r\n }\r\n\r\n if (IS(el2Clean, HTMLElement)) {\r\n [...el2Clean.childNodes].forEach(child => {\r\n if (child?.children?.length) {\r\n cleanupHtml(child);\r\n }\r\n if (child?.attributes) {\r\n const attrStore = IS(child, SVGElement) ? ATTRS.svg : ATTRS.html;\r\n\r\n [...(child ?? {attributes: []}).attributes]\r\n .forEach(attr => {\r\n const name = attr.name.trim().toLowerCase();\r\n const value = attr.value.trim().toLowerCase().replace(attrRegExpStore.whiteSpace, ``);\r\n const evilValue = name === \"href\"\r\n ? !attrRegExpStore.validURL.test(value)\r\n : attrRegExpStore.notAllowedValues.test(value);\r\n const evilAttrib = name.startsWith(`data`) ? !attrRegExpStore.data.test(name) : !!attrStore[name];\r\n\r\n if (evilValue || evilAttrib) {\r\n let val = truncate2SingleStr(attr.value || `none`, 60);\r\n val += val.length === 60 ? `...` : ``;\r\n elCreationInfo.removed[`${attr.name}`] = `attribute/property/value not allowed, removed. Value: ${\r\n val}`;\r\n child.removeAttribute(attr.name);\r\n }\r\n });\r\n }\r\n\r\n const allowed = elementCheck(child) ||\r\n child.constructor === CharacterData ||\r\n child.constructor === Comment;\r\n\r\n if (!allowed) {\r\n const tag = (child?.outerHTML || child?.textContent).trim();\r\n let tagValue = truncate2SingleStr(tag, 60) ?? `EMPTY`;\r\n tagValue += tagValue.length === 60 ? `...` : ``;\r\n elCreationInfo.removed[`<${child.nodeName?.toLowerCase()}>`] = `not allowed, not rendered. Value: ${\r\n tagValue}`;\r\n child.remove();\r\n }\r\n });\r\n }\r\n logContingentErrors(elCreationInfo);\r\n\r\n return el2Clean;\r\n}\r\nconst emphasize = str => `***${str}***`;\r\nconst getRestricted = emphasizeTag =>\r\n Object.entries(cleanupTagInfo)\r\n .reduce((acc, [key, value]) =>\r\n !value.allowed &&\r\n [...acc, (emphasizeTag && key === emphasizeTag ? emphasize(key) : key)] ||\r\n acc, []);\r\n\r\nexport { cleanupHtml, getRestricted, ATTRS};\r\n", "import { cleanupHtml, getRestricted, } from \"./DOMCleanup.js\";\r\nimport {ATTRS, IS, insertPositions, isNode, truncateHtmlStr} from \"./Utilities.js\";\r\n\r\nexport {\r\n getRestricted, createElementFromHtmlString, element2DOM,\r\n cleanupHtml, inject2DOMTree, ATTRS\r\n};\r\n\r\nfunction htmlToVirtualElement(htmlString) {\r\n const placeholderNode = document.createElement(\"div\");\r\n placeholderNode.insertAdjacentHTML(insertPositions.end, htmlString);\r\n return placeholderNode.childNodes.length\r\n ? cleanupHtml(placeholderNode)\r\n : undefined;\r\n}\r\n\r\nfunction characterDataElement2DOM(elem, root, position) {\r\n switch(true) {\r\n case IS(elem, Comment): return root.insertAdjacentHTML(position, `<!--${elem.data}-->`);\r\n case IS(elem, Text): return root.insertAdjacentText(position, elem.data || elem.textContent);\r\n default: return;\r\n }\r\n}\r\n\r\nfunction inject2DOMTree( collection = [], root = document.body, position = insertPositions.BeforeEnd ) {\r\n position = position || insertPositions.BeforeEnd;\r\n root = root?.isJQx ? root.node : root || document.body;\r\n return collection.reduce( (acc, elem) => {\r\n const created = isNode(elem) && element2DOM(elem, root, position);\r\n return created ? [...acc, created] : acc;\r\n }, []);\r\n}\r\n\r\nfunction element2DOM(elem, root = document.body, position = insertPositions.BeforeEnd) {\r\n position = position || insertPositions.BeforeEnd;\r\n root = root?.isJQx ? root?.[0] : root;\r\n\r\n return IS(elem, Comment, Text)\r\n ? characterDataElement2DOM(elem, root, position)\r\n : IS(elem, HTMLElement) ? root.insertAdjacentElement(position, elem) : undefined;\r\n}\r\n\r\nfunction createElementFromHtmlString(htmlStrOrText) {\r\n if (IS(htmlStrOrText, Text, Comment)) {\r\n return htmlStrOrText;\r\n }\r\n \r\n const testStr = htmlStrOrText?.trim();\r\n let text = testStr?.split(/<text>|<\\/text>/i) ?? [];\r\n\r\n if (text?.length) {\r\n text = text.length > 1 ? text.filter(v => v.length).shift() : undefined;\r\n }\r\n\r\n if (testStr.startsWith(`<!--`) && testStr.endsWith(`-->`)) {\r\n return document.createComment(htmlStrOrText.replace(/<!--|-->$/g, ''));\r\n }\r\n \r\n if (!!text || (IS(testStr, String) && !/^<(.+)[^>]+>/m.test(testStr))) {\r\n return document.createTextNode(text ?? testStr);\r\n }\r\n\r\n const nwElem = htmlToVirtualElement(htmlStrOrText);\r\n\r\n if (nwElem.childNodes.length < 1) {\r\n return createElementFromHtmlString(`<span data-jqxcreationerror=\"1\">${truncateHtmlStr(htmlStrOrText, 60)}</span>`);\r\n }\r\n\r\n return nwElem.children[0];\r\n}\r\n", "import { popupStyling as styleRules } from \"./EmbedResources.js\";\r\n\r\nexport default function($) {\r\n if ($.node(`#jqxPopup`)) { return; }\r\n $.logger.log(`JQx: [JQx].Popup first call. Dialog element created.`);\r\n $.dialog({id: `jqxPopup`}, $.div({ id: \"jqxPopupContent\" })).render;\r\n $.editCssRules(...styleRules);\r\n let timers = [];\r\n const [popupContent, popupNode] = [$(`#jqxPopupContent`), $.node(`#jqxPopup`)];\r\n let currentProps = {};\r\n $.handle( {\r\n type: `click, cancel`,\r\n handlers: genericPopupCloseHandler,\r\n name: \"genericPopupCloseHandler\",\r\n capture: true,\r\n about: \"A generic handler for JQx popups\"} );\r\n return Object.freeze({show: initPopup, remove: initHidePopup, removeModal});\r\n\r\n function initPopup(props) {\r\n if (popupNode.open) {\r\n switch(true) {\r\n case isCurrent(props): return;\r\n default:\r\n initHidePopup();\r\n return setTimeout(() => initPopup(props), 200);\r\n }\r\n }\r\n \r\n currentProps = {...props};\r\n let {content} = currentProps;\r\n return !($.IS(content, String, HTMLElement) || content?.isJQx) ? true : showPopup();\r\n }\r\n\r\n function initHidePopup() {\r\n if (currentProps.modal) {\r\n return failModalClose(currentProps.warnMessage);\r\n }\r\n\r\n return hidePopup();\r\n }\r\n \r\n function isCurrent(props) {\r\n for (const [key, value] of Object.entries(currentProps)) {\r\n if (value !== props[key]) { return false; }\r\n }\r\n return true;\r\n }\r\n \r\n function showPopup() {\r\n popupContent.clear();\r\n let {content, modal, closeAfter} = currentProps;\r\n modal = $.IS(modal, Boolean) ? modal : false;\r\n const closerIcon = modal ? \"\" : $.div({ id: \"closeHandleIcon\"});\r\n popupContent.append(closerIcon, $.IS(content, String) ? $.div(content) : content);\r\n popupNode.showModal();\r\n if (!modal && $.IS(closeAfter, Number)) { createTimer(initHidePopup, closeAfter); }\r\n }\r\n\r\n function hidePopup() {\r\n popupNode.close(currentProps.returnValue);\r\n clearTimers();\r\n if ($.IS(currentProps.callback, Function)) {\r\n return timers.push(setTimeout(() => currentProps.callback(currentProps.returnValue), 200));\r\n }\r\n currentProps = {};\r\n }\r\n \r\n function clearTimers() {\r\n timers.forEach(timer => clearTimeout(timer));\r\n timers = [];\r\n }\r\n\r\n function removeModal({callback, value} = {}) {\r\n currentProps.returnValue = value;\r\n currentProps.modal = false;\r\n currentProps.callback = callback || currentProps.callback;\r\n initHidePopup();\r\n }\r\n\r\n function genericPopupCloseHandler({evt}) {\r\n if ( Object.keys(currentProps).length < 1 || !popupNode.open ) { return; }\r\n \r\n if (evt.type === `cancel` && currentProps.modal) { evt.preventDefault(); }\r\n \r\n if (evt.target.closest(`#closeHandleIcon`) || !evt.target.closest(`#jqxPopupContent`)) {\r\n currentProps.activeTimer && clearTimeout(currentProps.activeTimer);\r\n return initHidePopup();\r\n }\r\n }\r\n\r\n function createTimer(callback, seconds) {\r\n if ($.IS(callback, Function) && $.IS(seconds, Number) && seconds > 0) {\r\n clearTimers();\r\n timers.push(setTimeout(callback, seconds * 1000));\r\n }\r\n }\r\n\r\n function failModalClose(warnMessage) {\r\n if (!$.IS(warnMessage, String, HTMLElement) && !warnMessage.isJQx) { return; }\r\n let modalWarningBox = popupContent.find$(`.warn`);\r\n // note: fall through is intentional.\r\n switch(true) {\r\n case modalWarningBox.is.empty: modalWarningBox = $.div({class: `warn`}, warnMessage);\r\n default: popupContent.append(modalWarningBox.addClass(`active`));\r\n createTimer(() => popupContent.find$(`.warn`).removeClass(`active`), 2);\r\n }\r\n }\r\n}\r\n", "import {IS, isNonEmptyString, getCaptureValue, getHandlerName, handlerIdCache, systemLog} from \"./Utilities.js\";\r\n\r\nexport { HandlerFactory };\r\n\r\nfunction HandlerFactory(jqx) {\r\n const store = {};\r\n const anon = `anonymous_`;\r\n \r\n function setListener(listener) {\r\n if (listener) {\r\n const {handler, capture, type} = listener;\r\n document.addEventListener(type, handler, {capture});\r\n }\r\n }\r\n \r\n function removeListener(listener) {\r\n if (listener) {\r\n const {type, handler, capture} = listener;\r\n document.removeEventListener(type, handler, {capture});\r\n }\r\n }\r\n \r\n function wrapFn4Selector(fn, selector, once, handlerName) {\r\n return function(evt) {\r\n if (!isNonEmptyString(selector)) {\r\n return fn({evt});\r\n }\r\n \r\n const elemFound = evt.target.closest(selector);\r\n if (elemFound) {\r\n const me = jqx(elemFound);\r\n fn({self: me, me, evt}); // self is legacy\r\n // to avoid listener removal on capturing/bubbling,\r\n // once is handled manually\r\n if (once) { remove(evt.type, handlerName); }\r\n }\r\n return true;\r\n }\r\n }\r\n \r\n function storedEventType(eventType) {\r\n store[eventType] = store[eventType] || {};\r\n return store[eventType];\r\n }\r\n \r\n function retrieve(eventType, name) {\r\n return Object.entries(storedEventType(eventType))\r\n .find( ([key, ]) => key === name );\r\n }\r\n \r\n function remove(eventType, name) {\r\n const listener = retrieve(eventType, name);\r\n if (listener) {\r\n removeListener(listener[1]);\r\n delete store[eventType][name];\r\n delete handlerIdCache[name];\r\n \r\n systemLog.warn(`Removed listener [${name}] for event type [${eventType}].`);\r\n }\r\n }\r\n \r\n function storeHandler(spec) {\r\n let { type, handler, name, capture, once, selector, node, about } = spec;\r\n store[type] = store[type] || {};\r\n const handlerName = getHandlerName(name || handler.name);\r\n const initialHandler = handler;\r\n if (node instanceof HTMLElement) {\r\n // Note: for multiple event types dataset.hid may be defined already\r\n const handlerID = node.dataset.hid || handlerName;\r\n node.dataset.hid = handlerID;\r\n selector = `[data-hid=${handlerID}]`;\r\n }\r\n \r\n switch(true) {\r\n case !store[type][handlerName]:\r\n systemLog.log(`JQx: created listener for event type ${type}, with handler name ${handlerName}`);\r\n store[type][handlerName] = {\r\n name: handlerName,\r\n handler: wrapFn4Selector(handler, selector, once, handlerName),\r\n capture: getCaptureValue(type, capture),\r\n once: !!once,\r\n type: type,\r\n initialHandler,\r\n selector: !!selector && selector || false,\r\n about: !!about && about || false,\r\n unListen() { remove(type, handlerName); },\r\n };\r\n return store[type][handlerName];\r\n default: return console.warn(`The listener [${handlerName}] for [${\r\n type}] exists, it is not re-assigned.`);\r\n }\r\n }\r\n // todo: maybe enable a custom unListen handler\r\n return {\r\n remove(...args) { return remove(...args); },\r\n listen: function(spec) {\r\n const { type, handler } = spec;\r\n if ( !isNonEmptyString(type) || !IS(handler, Function) ) { return; }\r\n const nwHandler = storeHandler(spec);\r\n \r\n if (nwHandler) {\r\n setListener(nwHandler);\r\n return {\r\n type,\r\n name: nwHandler.name,\r\n unListen() { remove(type, nwHandler.name); },\r\n };\r\n }\r\n },\r\n get ListenerStore() { return Object.freeze({...store}); }\r\n };\r\n}\r\n", "import {default as IS, maybe, proxyWrapper, addSymbolicExtensions} from \"./TypeofAnything.js\";\r\nimport {ATTRS} from \"./EmbedResources.js\";\r\nimport {default as tagFNFactory} from \"./tinyDOM.js\";\r\nimport styleFactory from \"./LifeCSS.js\";\r\nimport {createElementFromHtmlString, inject2DOMTree, cleanupHtml} from \"./DOM.js\";\r\nimport PopupFactory from \"./Popup.js\";\r\nimport { HandlerFactory } from \"./HandlerFactory.js\";\r\nimport tagLib from \"./HTMLTags.js\";\r\naddSymbolicExtensions();\r\nconst systemLog = systemLogFactory();\r\nconst allwaysCaptureEventTypes = [\r\n `load`, `unload`, `scroll`, `focus`, `blur`, `DOMNodeRemovedFromDocument`,\r\n `DOMNodeInsertedIntoDocument`, `loadstart`, `progress`, `error`, `abort`,\r\n `load`, `loadend`, `pointerenter`, `pointerleave`, `readystatechange`];\r\nconst insertPositions = Object.freeze(new Proxy({\r\n start: \"afterbegin\", afterbegin: \"afterbegin\",\r\n end: \"beforeend\", beforeend: \"beforeend\",\r\n before: \"beforebegin\", beforebegin: \"beforebegin\",\r\n after: \"afterend\", afterend: \"afterend\" }, {\r\n get(obj, key) { return obj[String(key).toLowerCase()] ?? obj[key]; }\r\n}));\r\nconst characters4RandomString = [...Array(26)]\r\n .map((x, i) => String.fromCharCode(i + 65))\r\n .concat([...Array(26)].map((x, i) => String.fromCharCode(i + 97)))\r\n .concat([...Array(10)].map((x, i) => `${i}`));\r\nconst datasetKeyProxy = Object.freeze({\r\n get(obj, key) { return obj[toCamelcase(key)] || obj[key]; },\r\n enumerable: false,\r\n configurable: false\r\n});\r\nconst handlerIdCache = {};\r\n\r\nexport {\r\n after, applyStyle, assignAttrValues, ATTRS, beforeOrAfter, checkProp, cleanupHtml, clearAllTimers,\r\n cloneAndDestroy, convert2Bool, createElementFromHtmlString, datasetKeyProxy, ElemArray2HtmlString, emptyElement,\r\n escHtml, findParentScrollDistance, getAttributesForLogging, getCaptureValue, getHandlerName, HandlerFactory,\r\n handlerIdCache, inject2DOMTree, input2Collection, insertPositions, IS, isArrayOfHtmlElements, isArrayOfHtmlStrings,\r\n isComment, isCommentOrTextNode, isHtmlString, isModal, isNode, isNonEmptyString, isText, isVisible, isWritable,\r\n logTime, maybe, pad0,PopupFactory, proxyWrapper, randomNr, randomString, resolveEventTypeParameter, setData,\r\n styleFactory, systemLog, tagFNFactory, tagLib, toCamelcase, toDashedNotation, truncate2SingleStr, truncateHtmlStr,\r\n ucFirst,\r\n};\r\n\r\nfunction clearAllTimers() {\r\n let id = setTimeout(() => {});\r\n while (id >= 0) { clearTimeout(id--); }\r\n}\r\n\r\nfunction getHandlerName(name) {\r\n const validName = isNonEmptyString(name) && !/^handler|handlers$/gi.test(name.trim())\r\n return validName ? name.trim() : uniqueHandlerID();\r\n}\r\n\r\nfunction getAttributesForLogging(instance) {\r\n const isElem = !!instance.node && !IS(instance, Text, Comment);\r\n switch(true) {\r\n case isElem:\r\n const dataset = instance.node.dataset ? Object.keys(instance.node.dataset)\r\n .map(v => `[data-${v}]`) : [];\r\n const relevantAttrs = [\r\n instance.attr(`id`) && `#${instance?.attr(`id`)}` || undefined,\r\n instance.attr(`class`) && instance?.attr(`class`).split(` `).map(v => `.${v}`).join(', ') || undefined,\r\n dataset.length > 0 && dataset.join(`, `) || undefined,\r\n ];\r\n const attrs = relevantAttrs.filter(v => !!v).join(`, `) || [];\r\n return attrs.length ? `(${attrs})` : ``;\r\n default: return ``;\r\n }\r\n}\r\n\r\nfunction uniqueHandlerID(idCache) {\r\n const anonID = `anonymous_${Math.random().toString(36).slice(2)}`;\r\n \r\n if (!handlerIdCache[anonID]) {\r\n handlerIdCache[anonID] = anonID;\r\n return anonID;\r\n }\r\n \r\n return uniqueHandlerID();\r\n}\r\n\r\nfunction getCaptureValue(eventType, captureValue) {\r\n return !!(allwaysCaptureEventTypes.find(t => t === eventType)) || !!captureValue;\r\n}\r\n\r\nfunction checkProp(prop) {\r\n return prop.startsWith(`data`) || ATTRS.html.find(attr => prop.toLowerCase() === attr);\r\n}\r\n\r\nfunction emptyElement(el) {\r\n return el && (el.textContent = \"\");\r\n}\r\n\r\nfunction findParentScrollDistance(node, distance = 0, top = true) {\r\n node = node?.parentElement;\r\n const what = top ? `scrollTop` : `scrollLeft`;\r\n distance += node ? node[what] : 0;\r\n return !node ? distance : findParentScrollDistance(node, distance, top);\r\n}\r\n\r\nfunction isNonEmptyString(str, minlen = 1) {\r\n minlen = IS(minlen, Number) && minlen || 1;\r\n return IS(str, String) && str.length >= minlen;\r\n}\r\n\r\nfunction truncate2SingleStr(str, maxLength = 120) {\r\n return truncateHtmlStr(str, maxLength).replace(/</g, `<`);\r\n}\r\n\r\nfunction truncateHtmlStr(str, maxLength = 120) {\r\n return `${str}`\r\n .trim()\r\n .slice(0, maxLength)\r\n .replace(/>\\s+</g, `><`)\r\n .replace(/</g, `<`)\r\n .replace(/\\s{2,}/g, ` `)\r\n .replace(/\\n/g, `\\\\n`) + (str.length > maxLength ? ` …` : ``).trim();\r\n}\r\n\r\nfunction escHtml(html) {\r\n switch(true) {\r\n case IS(html, String):\r\n const tmpDiv = document.createElement(\"div\");\r\n tmpDiv.append(html);\r\n return tmpDiv.innerHTML;\r\n default: return html;\r\n }\r\n}\r\n\r\n/* private */\r\nfunction decodeForConsole(something) {\r\n return IS(something, String) &&\r\n Object.assign(\r\n document.createElement(`textarea`),\r\n {innerHTML: something}).textContent || something;\r\n}\r\n\r\nfunction systemLogFactory() {\r\n let [on, disabled] = [false, true];\r\n \r\n const backLog = [];\r\n const systemLogger = {\r\n get on() { on = true; return systemLogger; },\r\n get off() { on = false; return systemLogger; },\r\n get disable() { disabled = true; return systemLogger; },\r\n get enable() { disabled = false; return systemLogger; },\r\n get backLog() { return backLog; },\r\n };\r\n \r\n function disable() {\r\n disabled = true;\r\n }\r\n \r\n function enable() {\r\n disabled = false;\r\n }\r\n \r\n function error(...args) {\r\n backLog.unshift(...args.map(arg => `${logTime()} \u2A3B ${decodeForConsole(arg)}`));\r\n console.error(backLog.slice(0, args.length).join(`\\n`));\r\n return systemLogger;\r\n }\r\n \r\n function warn(...args) {\r\n backLog.unshift(...args.map(arg => `${logTime()} \u26A0 ${decodeForConsole(arg)}`));\r\n console.warn(backLog.slice(0, args.length).join(`\\n`));\r\n return systemLogger;\r\n }\r\n \r\n function log(...args) {\r\n const entryTxt = args.map(arg => `${logTime()} \u2714 ${decodeForConsole(arg)}`);\r\n !disabled && backLog.unshift(...entryTxt);\r\n switch(on) {\r\n case true: console.log(entryTxt.join(`\\n`));\r\n default: return systemLogger;\r\n }\r\n }\r\n \r\n Object.defineProperties(systemLogger, {\r\n log: {value: log, enumerable: false},\r\n error: {value: error, enumerable: false},\r\n warn: {value: warn, enumerable: false},\r\n });\r\n \r\n return Object.freeze(systemLogger);\r\n}\r\n\r\nfunction logTime() {\r\n return ((d) =>\r\n `[${pad0(d.getHours())}:${pad0(d.getMinutes())}:${\r\n pad0(d.getSeconds())}.${pad0(d.getMilliseconds(), 3)}]`)(new Date());\r\n}\r\n\r\nfunction assignAttrValues(el, keyValuePairs) {\r\n if (el) {\r\n for (let [key, value] of Object.entries(keyValuePairs)) {\r\n key = toDashedNotation(key);\r\n if (key.startsWith(`data`)) {\r\n return setData(el, value);\r\n }\r\n \r\n if (IS(value, String) && checkProp(key)) {\r\n el.setAttribute(key, value.split(/[, ]/)?.join(` `));\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setData(el, keyValuePairs) {\r\n if (el && IS(keyValuePairs, Object)) {\r\n for (const [key, value] of Object.entries(keyValuePairs)) {\r\n el.setAttribute(`data-${toDashedNotation(key)}`, value);\r\n }\r\n }\r\n}\r\n\r\nfunction input2Collection(input) {\r\n return !input ? []\r\n : input.EL ? [input.EL]\r\n : IS(input, NodeList) ? [...input]\r\n : isNode(input) ? [input]\r\n : isArrayOfHtmlElements(input) ? input\r\n : input.isJQx ? input.collection : undefined;\r\n}\r\n\r\n\r\n\r\nfunction after(instance, elem2AddAfter) {\r\n return instance.andThen(elem2AddAfter);\r\n}\r\n\r\nfunction beforeOrAfter(instance, jqx, after = true, ...toAdd) {\r\n if (instance.is.empty) {\r\n systemLog.log(`[JQx instance].[before(Me) | after(Me) | andThen]: instance is empty.`, );\r\n return instance;\r\n }\r\n \r\n toAdd = toAdd.map(elem => elem.isJQx ? elem.node : IS(elem, String) ? jqx(elem).node ?? elem : elem );\r\n const noCando = toAdd.find(elem => !IS(elem, String, Element));\r\n \r\n if (noCando) {\r\n const bOrA = after ? `after` : `before`;\r\n systemLog.log(`[JQx instance].[${bOrA}(Me)]: invalid/-sufficient input.`, );\r\n return instance;\r\n }\r\n \r\n instance.node[after ? `after` : `before`](...toAdd);\r\n \r\n return instance;\r\n}\r\n\r\nfunction before(instance, elem2AddBefore) {\r\n return instance.andThen(elem2AddBefore, true);\r\n}\r\n\r\nfunction isNode(input) {\r\n return IS(input, Text, HTMLElement, Comment)\r\n}\r\n\r\nfunction applyStyle(el, rules) {\r\n if (IS(rules, Object)) {\r\n for (let [key, value] of Object.entries(rules)) {\r\n let priority;\r\n if (/!important/i.test(value)) {\r\n value = value.slice(0, value.indexOf(`!`)).trim();\r\n priority = 'important';\r\n }\r\n \r\n el.style.setProperty(toDashedNotation(key), value, priority)\r\n }\r\n }\r\n}\r\n\r\nfunction cloneAndDestroy(elem) {\r\n const cloned = elem.cloneNode(true)\r\n cloned.removeAttribute && cloned.removeAttribute(`id`);\r\n elem.isConnected ? elem.remove() : elem = null;\r\n return cloned;\r\n}\r\n\r\n\r\nfunction isVisible(el) {\r\n if (!IS(el, HTMLElement)) { return undefined; }\r\n const elStyle = el.style;\r\n const computedStyle = getComputedStyle(el);\r\n const invisible = !![elStyle.visibility, computedStyle.visibility].includes(\"hidden\");\r\n const noDisplay = !![elStyle.display, computedStyle.display].includes(\"none\");\r\n const hidden = !!el.hidden;\r\n const zeroHeightOrWidth = parseInt(computedStyle.height) < 1 || parseInt(computedStyle.width) < 1;\r\n const offscreen = el.offsetTop < 0 || (el.offsetLeft + el.offsetWidth) < 0\r\n || el.offsetLeft > document.body.offsetWidth;\r\n const noOpacity = +computedStyle.opacity === 0 || +(elStyle.opacity || 1) === 0;\r\n return !(hidden || offscreen || noOpacity || noDisplay || invisible || zeroHeightOrWidth);\r\n}\r\n\r\nfunction isWritable(elem) {\r\n if (elem?.isConnected) {\r\n return !![...document.querySelectorAll(`:is(:read-write)`)]\r\n .find(el => el === elem);\r\n }\r\n \r\n return false;\r\n}\r\n\r\nfunction ElemArray2HtmlString(elems) {\r\n return elems?.filter(el => el).reduce((acc, el) =>\r\n acc.concat(isComment(el) ? `<!--${el.data}-->`\r\n : isCommentOrTextNode(el) ? el.textContent\r\n : el.outerHTML), ``);\r\n}\r\n\r\n/* private */\r\nfunction pad0(nr, n=2) {\r\n return `${nr}`.padStart(n, `0`);\r\n}\r\n\r\nfunction randomNr(max, min = 0) {\r\n [max, min] = [Math.floor(max), Math.ceil(min)];\r\n return Math.floor( ([...crypto.getRandomValues(new Uint32Array(1))].shift() / 2 ** 32 ) * (max - min + 1) + min );\r\n}\r\n\r\nfunction randomString() {\r\n return `_${shuffle(characters4RandomString).slice(0, 8).join(``)}`;\r\n}\r\n\r\nfunction resolveEventTypeParameter (maybeTypes) {\r\n maybeTypes = IS(maybeTypes, String) && /,/.test(maybeTypes)\r\n ? maybeTypes\r\n .split(`,`)\r\n .map(t => t.trim().toLowerCase())\r\n .filter( t => t.length > 0)\r\n : maybeTypes;\r\n return IS(maybeTypes, Array)\r\n ? maybeTypes\r\n : IS(maybeTypes, String) && maybeTypes?.trim().toLowerCase() || ``;\r\n}\r\n\r\nfunction isModal(elem) {\r\n if (elem?.isConnected) {\r\n return !![...document.querySelectorAll(`:is(:modal)`)]\r\n .find(el => el === elem) ? true : false;\r\n }\r\n \r\n return false;\r\n}\r\n\r\nfunction convert2Bool(value, defaultValue) {\r\n // Valid input values: 0|false|f|1|true|t (case insensitive)\r\n value = String(value).trim();\r\n switch (true) {\r\n case /^(0|false|f)$/i.test(value):\r\n return false;\r\n case /^(1|true|t)$/i.test(value):\r\n return true;\r\n default:\r\n return defaultValue;\r\n }\r\n}\r\n\r\n/* private */\r\nfunction shuffle(array) {\r\n let i = array.length;\r\n while (i--) {\r\n const ri = randomNr(i);\r\n [array[i], array[ri]] = [array[ri], array[i]];\r\n }\r\n return array;\r\n}\r\n\r\nfunction toCamelcase(str2Convert) {\r\n return IS(str2Convert, String)\r\n ? str2Convert.toLowerCase()\r\n .split(`-`)\r\n .map( (str, i) => i && `${ucFirst(str)}` || str)\r\n .join(``)\r\n : str2Convert;\r\n}\r\n\r\nfunction toDashedNotation(str2Convert) {\r\n return str2Convert.replace(/[A-Z]/g, a => `-${a.toLowerCase()}`).replace(/^-|-$/, ``);\r\n}\r\n\r\nfunction ucFirst([first, ...theRest]) {\r\n return `${first.toUpperCase()}${theRest.join(``)}`;\r\n}\r\n\r\nfunction isCommentOrTextNode(node) {\r\n return IS(node, Comment, Text);\r\n}\r\n\r\nfunction isComment(input) {\r\n IS(input, Comment);\r\n}\r\n\r\nfunction isText(input) {\r\n return IS(input, Text);\r\n}\r\n\r\nfunction isHtmlString(input) {\r\n return IS(input, String) && /^<|>$/.test(`${input}`.trim());\r\n}\r\n\r\nfunction isArrayOfHtmlElements(input) {\r\n return IS(input, Array) && !input?.find(el => !isNode(el));\r\n}\r\n\r\nfunction isArrayOfHtmlStrings(input) {\r\n return IS(input, Array) && !input?.find(s => !isHtmlString(s));\r\n}\r\n", "import {\r\n after, applyStyle, assignAttrValues, beforeOrAfter, checkProp, cleanupHtml, clearAllTimers, cloneAndDestroy,\r\n convert2Bool, createElementFromHtmlString, datasetKeyProxy, ElemArray2HtmlString, emptyElement, escHtml,\r\n findParentScrollDistance, getAttributesForLogging, getHandlerName, HandlerFactory, inject2DOMTree, input2Collection,\r\n insertPositions, IS,isArrayOfHtmlElements, isArrayOfHtmlStrings, isComment, isCommentOrTextNode, isHtmlString, isModal,\r\n isNode, isNonEmptyString, isText, isVisible, isWritable, logTime, maybe, PopupFactory, proxyWrapper,\r\n randomNr, randomString, resolveEventTypeParameter, setData, styleFactory, systemLog, tagFNFactory, tagLib,\r\n toCamelcase, toDashedNotation, truncate2SingleStr, truncateHtmlStr,\r\n} from \"../Resource/Common/Utilities.js\"\r\n\r\nexport {\r\n after, applyStyle, assignAttrValues, beforeOrAfter, checkProp, cleanupHtml, clearAllTimers, cloneAndDestroy,\r\n convert2Bool, createElementFromHtmlString, css, datasetKeyProxy, ElemArray2HtmlString, emptyElement, escHtml,\r\n ExamineElementFeatureFactory, findParentScrollDistance, getAttributesForLogging, getHandlerName, getNodeContentForLog,\r\n HandlerFactory, inject2DOMTree, input2Collection, insertPositions, IS, isArrayOfHtmlElements, isArrayOfHtmlStrings,\r\n isCommentOrTextNode, isHtmlString, isNode, isNonEmptyString, logTime, loop, maybe, PopupFactory, proxyWrapper,\r\n randomNr, randomString, resolveEventTypeParameter, selectedFactoryHelpers, setCollectionFromCssSelector, setData,\r\n styleFactory, systemLog, tagFNFactory, tagLib, toCamelcase, toDashedNotation, truncate2SingleStr, truncateHtmlStr,\r\n};\r\n\r\nfunction loop(instance, callback) {\r\n const cleanCollection = instance.collection.filter(el => !isCommentOrTextNode(el));\r\n for (let i = 0; i < cleanCollection.length; i += 1) {\r\n callback(cleanCollection[i], i);\r\n }\r\n\r\n return instance;\r\n}\r\n\r\nfunction getNodeContentForLog(instance) {\r\n if (instance.node) {\r\n return IS(instance.node, Comment)\r\n ? `<!--${instance.node.textContent}-->`\r\n : instance.HTML.get(1).split(`>`)[0] + `>...`\r\n }\r\n return ``;\r\n}\r\n\r\nfunction setCollectionFromCssSelector(input, root, self) {\r\n const selectorRoot = root !== document.body && (IS(input, String) && input.toLowerCase() !== \"body\") ? root : document;\r\n if (!IS(input, String) || input.trim().length < 1) { return; }\r\n try { self.collection = [...selectorRoot.querySelectorAll(input)]; }\r\n catch (err) { systemLog.warn(`JQx: Invalid CSS querySelector. [${!IS(input, String) ? `Not a string!` : input}]`); }\r\n}\r\n\r\nfunction selectedFactoryHelpers() {\r\n return {\r\n isCommentOrTextNode, isNode, isComment, isText, isHtmlString, isArrayOfHtmlElements,\r\n isArrayOfHtmlStrings, ElemArray2HtmlString, input2Collection, setCollectionFromCssSelector,\r\n cssRuleEdit: styleFactory({createWithId: `JQxStylesheet`}) };\r\n}\r\n\r\nfunction ExamineElementFeatureFactory() {\r\n const notApplicable = `n/a`;\r\n const noElements = Object.freeze({\r\n notInDOM: notApplicable, writable: notApplicable, modal: notApplicable, empty: true,\r\n open: notApplicable, visible: notApplicable, });\r\n\r\n return self => {\r\n const firstElem = self.node;\r\n\r\n return IS(firstElem, Node)\r\n ? Object.freeze({\r\n get writable() {\r\n return isWritable(firstElem);\r\n },\r\n get modal() {\r\n return isModal(firstElem);\r\n },\r\n get inDOM() {\r\n return firstElem.isConnected;\r\n },\r\n get open() {\r\n return firstElem.open ?? false;\r\n },\r\n get visible() {\r\n return isVisible(firstElem);\r\n },\r\n get disabled() {\r\n return firstElem.hasAttribute(\"readonly\") || firstElem.hasAttribute(\"disabled\");\r\n },\r\n get empty() {\r\n return self.collection.length < 1;\r\n },\r\n get virtual() {\r\n return self.isVirtual;\r\n }\r\n })\r\n : noElements;\r\n };\r\n}\r\n\r\nfunction css(el, keyOrKvPairs, value, jqx) {\r\n if (value && IS(keyOrKvPairs, String)) {\r\n keyOrKvPairs = {[keyOrKvPairs]: value === \"-\" ? \"\" : value};\r\n }\r\n\r\n let nwClass = undefined;\r\n\r\n if (keyOrKvPairs.className) {\r\n nwClass = keyOrKvPairs.className;\r\n delete keyOrKvPairs.className;\r\n }\r\n\r\n const classExists = ([...el.classList].find(c => c.startsWith(`JQxClass-`) || nwClass && c === nwClass));\r\n nwClass = classExists || nwClass || `JQxClass-${randomString().slice(1)}`;\r\n jqx.editCssRule(`.${nwClass}`, keyOrKvPairs);\r\n el.classList.add(nwClass);\r\n}\r\n", "import {\r\n IS, isNode, ExamineElementFeatureFactory, beforeOrAfter,\r\n isNonEmptyString, toDashedNotation, escHtml, systemLog, insertPositions,\r\n datasetKeyProxy, loop, cloneAndDestroy, setData,\r\n findParentScrollDistance, emptyElement, checkProp, css, assignAttrValues,\r\n applyStyle, createElementFromHtmlString, inject2DOMTree,\r\n} from \"./JQxUtilities.js\";\r\n\r\nconst instanceIs = ExamineElementFeatureFactory();\r\n\r\nexport default function(jqx) {\r\n return {\r\n factoryExtensions: factoryExtensionsFactory(jqx),\r\n instanceExtensions: instanceExtensionsFactory(jqx),\r\n }\r\n};\r\n\r\nfunction factoryExtensionsFactory(jqx) {\r\n return {\r\n data(instance) {\r\n return {\r\n get all() {\r\n return new Proxy(instance[0]?.dataset ?? {}, datasetKeyProxy);\r\n },\r\n set(valuesObj = {}) {\r\n if (!instance.is.empty && IS(valuesObj, Object)) {\r\n for (const [key, value] of Object.entries(valuesObj)) {\r\n instance.setData({[key]: value});\r\n }\r\n }\r\n return instance;\r\n },\r\n get(key, whenUndefined) {\r\n return instance.data.all[key] ?? whenUndefined;\r\n },\r\n add(valuesObj = {}) {\r\n if (!instance.is.empty && IS(valuesObj, Object)) {\r\n for (const [key, value] of Object.entries(valuesObj)) {\r\n instance.setData({[key]: value});\r\n }\r\n }\r\n return instance;\r\n },\r\n remove(key) {\r\n instance[0]?.removeAttribute(`data-${toDashedNotation(key)}`);\r\n return instance;\r\n },\r\n };\r\n },\r\n dimensions(instance) {\r\n if (instance.is.empty) {\r\n systemLog.error(`[JQx instance].dimensions called on empty instance`);\r\n return { error: `[JQx instance].dimensions: NO ELEMENTS` };\r\n }\r\n let {node} = instance;\r\n const boundingRect = node.getBoundingClientRect().toJSON();\r\n boundingRect.scrollTopDistance = findParentScrollDistance(node, 0);\r\n boundingRect.scrollLeftDistance = findParentScrollDistance(node, 0, false);\r\n return boundingRect;\r\n },\r\n node(instance) { return instance[0]; },\r\n HTML(instance) {\r\n return {\r\n get(outer, escaped) {\r\n if (instance.is.empty) {\r\n return `NO ELEMENTS IN COLLECTION`;\r\n }\r\n const html = outer ? instance.outerHtml : instance.html();\r\n return escaped ? escHtml(html) : html;\r\n },\r\n set(content, append = false, escape = false) {\r\n content = content.isJQx ? content.HTML.get(1) : content;\r\n const isString = IS(content, String);\r\n content = isString && escape ? escHtml(content) : content;\r\n if (isString && (content || ``).trim().length) { instance.html(content, append); }\r\n return instance;\r\n },\r\n replace(content, escape = false) {\r\n return instance.HTML.set(content, false, escape);\r\n },\r\n append(content, escape = false) {\r\n content = IS(content, HTMLElement)\r\n ? jqx(content).HTML.get(1) : content.isJQx ? content.HTML.get(1) : content;\r\n return instance.HTML.set(content, true, escape);\r\n },\r\n insert(content, escape = false) {\r\n content = IS(content, HTMLElement)\r\n ? jqx(content).HTML.get(1) : content.isJQx ? content.HTML.get(1) : content;\r\n return instance.HTML.set(content + instance.HTML.get(), false, escape);\r\n },\r\n };\r\n },\r\n is(instance) { return instanceIs(instance); },\r\n length(instance) { return instance.collection.length; },\r\n outerHtml(instance) { return (instance.first() || {outerHTML: undefined}).outerHTML; },\r\n parent(instance) {\r\n const maybeParent = jqx(instance[0]?.parentNode);\r\n return !maybeParent.is.empty ? maybeParent : instance;\r\n },\r\n render(instance) {\r\n switch(true) {\r\n case !instance.is.empty: return instance.toDOM();\r\n default:\r\n jqx.logger.warn(`[JQx.render]: empty collection`);\r\n return instance;\r\n }\r\n },\r\n Style(instance) {\r\n return {\r\n get computed() { return !instance.is.empty ? getComputedStyle(instance[0]) : {}; },\r\n inline(styleObj) {\r\n return instance.style(styleObj);\r\n },\r\n inSheet(styleObj) {\r\n return instance.css(styleObj)\r\n },\r\n valueOf(key) {\r\n return !instance.is.empty ? getComputedStyle(instance[0])[toDashedNotation(key)] : undefined;\r\n },\r\n nwRule(rule) {\r\n return instance.Style.byRule({rules: rule})\r\n },\r\n byRule({classes2Apply = [], rules = []} = {}) {\r\n const isSingleRule = IS(rules, String);\r\n const addClassNameOrID = isSingleRule && !classes2Apply.length ? rules.split(`{`)[0].trim() : ``;\r\n rules = rules && IS(rules, String) ? [rules] : rules;\r\n classes2Apply = classes2Apply && IS(classes2Apply, String) ? [classes2Apply] : classes2Apply;\r\n \r\n if (rules?.length || classes2Apply?.length) {\r\n rules?.length && jqx.editCssRules(...rules);\r\n \r\n if (classes2Apply) {\r\n for(const selector of classes2Apply) { instance.addClass(selector); }\r\n }\r\n }\r\n \r\n if (addClassNameOrID?.startsWith(`.`)) {\r\n instance.addClass(addClassNameOrID.slice(1));\r\n }\r\n \r\n if (addClassNameOrID?.startsWith(`#`) && !instance.attr(`id`)) {\r\n instance.prop({id: addClassNameOrID.slice(1)});\r\n }\r\n \r\n return instance;\r\n },\r\n };\r\n }\r\n }\r\n}\r\n\r\nfunction instanceExtensionsFactory(jqx) {\r\n return {\r\n addClass(instance, ...classNames) {\r\n return loop(instance, el => el && classNames.forEach(cn => el.classList.add(cn)));\r\n },\r\n after(instance, ...elems) { return beforeOrAfter(instance, jqx, true, ...elems); },\r\n afterMe(instance, ...elems) { return beforeOrAfter(instance, jqx, true, ...elems); },\r\n andThen(instance, ...elems) { return beforeOrAfter(instance, jqx, true, ...elems); },\r\n append(instance, ...elems2Append) {\r\n if (instance.is.empty || elems2Append.length < 1) { return instance;}\r\n const shouldMove = instance.length === 1;\r\n for (let elem2Append of elems2Append) {\r\n if (!elem2Append.isJQx && isNonEmptyString(elem2Append)) {\r\n const elem2Append4Test = elem2Append.trim();\r\n const isPlainString = !/^<(.+)[^>]+>$/m.test(elem2Append4Test);\r\n let toAppend = isPlainString ? jqx.text(elem2Append) : createElementFromHtmlString(elem2Append);\r\n loop(instance, el => el.append(shouldMove ? toAppend : cloneAndDestroy(toAppend)));\r\n }\r\n\r\n if (isNode(elem2Append)) {\r\n loop(instance, el => el.append(shouldMove ? elem2Append : cloneAndDestroy(elem2Append)));\r\n }\r\n\r\n if (elem2Append.isJQx && !elem2Append.is.empty) {\r\n loop(instance, el =>\r\n elem2Append.collection.forEach(elem =>\r\n el.append(shouldMove ? elem : cloneAndDestroy(elem)))\r\n );\r\n }\r\n }\r\n return instance;\r\n },\r\n appendTo(instance, appendTo) {\r\n appendTo = typeof appendTo === `string` ? jqx(appendTo) : appendTo;\r\n switch(true) {\r\n case !appendTo?.isJQx && !IS(appendTo, HTMLElement) || appendTo?.collection?.length < 1:\r\n jqx.warn(`[JQx instance].appendTo: invalid input`);\r\n return instance;\r\n default:\r\n (!appendTo.isJQx ? jqx(appendTo) : appendTo).append(instance);\r\n return instance;\r\n }\r\n },\r\n attr(instance, keyOrObj, value) {\r\n if (!instance.node || IS(instance.node, Text, Comment)) { return instance }\r\n\r\n if (!value && isNonEmptyString(keyOrObj)) {\r\n keyOrObj = toDashedNotation(keyOrObj);\r\n\r\n if (keyOrObj === `class`) {\r\n return [...instance.node.classList]?.join(` `);\r\n }\r\n \r\n return instance.node.getAttribute(keyOrObj);\r\n }\r\n\r\n if (isNonEmptyString(keyOrObj) && value) {\r\n keyOrObj = toDashedNotation(keyOrObj);\r\n\r\n switch(true) {\r\n case keyOrObj.startsWith(`data-`):\r\n keyOrObj = { data: {[keyOrObj.replace(`data-`, ``)]: value } };\r\n break;\r\n default: keyOrObj = { [keyOrObj]: value };\r\n }\r\n }\r\n\r\n if (IS(keyOrObj, Object) && !instance.is.empty) {\r\n assignAttrValues(instance.node, keyOrObj);\r\n }\r\n\r\n return instance;\r\n },\r\n before(instance, ...elems) {\r\n return beforeOrAfter(instance, jqx, false, ...elems);\r\n },\r\n beforeMe(instance, ...elems) {\r\n beforeOrAfter(instance, jqx, false, ...elems)\r\n },\r\n clear(instance) { return loop(instance, emptyElement); },\r\n closest(instance, selector) {\r\n const theClosest = isNonEmptyString(selector) ? instance.node?.closest(selector) : undefined;\r\n return theClosest ? jqx(theClosest) : instance;\r\n },\r\n computedStyle(instance, property) {\r\n const {node} = instance;\r\n return node && getComputedStyle(node)[property];\r\n },\r\n css(instance, keyOrKvPairs, value) {\r\n return loop(instance, el => css(el, keyOrKvPairs, value, jqx));\r\n },\r\n duplicate(instance, toDOM = false, root = document.body) {\r\n switch(true) {\r\n case instance.is.empty:\r\n systemLog.error(`Duplicating an empty JQx instance is not possible`)\r\n return instance;\r\n default:\r\n const clone = instance.collection[0].cloneNode(true);\r\n clone.childNodes.forEach((node) => { node.removeAttribute && node?.removeAttribute(`id`) });\r\n return toDOM ? jqx(clone).toDOM(root) : jqx.virtual(clone);\r\n }\r\n },\r\n each(instance, cb) { return loop(instance, cb); },\r\n empty(instance) { return loop(instance, emptyElement); },\r\n find(instance, selector) {\r\n return instance.collection.length > 0 ? [...instance.first()?.querySelectorAll(selector)] : [];\r\n },\r\n find$(instance, selector) {\r\n return instance.collection.length > 0 ? jqx(selector, instance) : instance;\r\n },\r\n first(instance, asJQxInstance = false) {\r\n return instance.collection.length > 0\r\n ? asJQxInstance ? instance.single() : instance.collection[0]\r\n : undefined;\r\n },\r\n first$(instance, indexOrSelector) {\r\n return instance.single(indexOrSelector);\r\n },\r\n getData(instance, dataAttribute, valueWhenFalsy) {\r\n return instance.node?.dataset?.[dataAttribute] || valueWhenFalsy;\r\n },\r\n hasClass(instance, ...classNames) {\r\n return instance.is.empty || !instance.node.classList.length\r\n ? false\r\n : classNames.find(cn => instance.node.classList.contains(cn)) && true || false;\r\n },\r\n hide(instance) { return loop(instance, el => applyStyle(el, {display: `none !important`})); },\r\n html(instance, htmlValue, append) {\r\n switch(true) {\r\n case instance.is.empty && !isNonEmptyString(htmlValue): return \"\";\r\n case !isNonEmptyString(htmlValue): return instance.node?.getHTML() ?? ``;\r\n default:\r\n const nwElement = createElementFromHtmlString(\r\n `<div>${htmlValue.isJQx ? htmlValue.HTML.get(true) : htmlValue}</div>` );\r\n const cb = el => {\r\n el.textContent = !append ? `` : el.textContent;\r\n return el.insertAdjacentHTML(jqx.at.end, nwElement.getHTML());\r\n }\r\n return loop(instance, cb);\r\n }\r\n },\r\n htmlFor(instance, forSelector, htmlString = \"\", append = false) {\r\n if (instance.is.empty || !isNonEmptyString(forSelector) || !isNonEmptyString(htmlString)) { return instance; }\r\n const el2Change = instance.find$(forSelector);\r\n if (el2Change.length < 1) { return instance; }\r\n const nwElement = createElementFromHtmlString(`<span>${htmlString}</span>`);\r\n el2Change.each(el => {\r\n if (!append) { el.textContent = ``; }\r\n el.insertAdjacentHTML(jqx.at.end, nwElement?.getHTML());\r\n });\r\n\r\n return instance;\r\n },\r\n isEmpty(instance) { return !!!instance.node; },\r\n nth$(instance, indexOrSelector) { return instance.single(indexOrSelector); },\r\n on(instance, type, ...callback) {\r\n switch(true) {\r\n case instance.is.empty || !IS(type, String, Array) || !isNonEmptyString(type) || callback.length < 1:\r\n return instance;\r\n default: jqx.handle({type, node: instance.node, handler: callback});\r\n return instance;\r\n }\r\n },\r\n once(instance, type, ...callback) {\r\n switch(true) {\r\n case instance.is.empty || !IS(type, String, Array) || !isNonEmptyString(type) || callback.length < 1:\r\n return instance;\r\n default:\r\n jqx.handle({type, once: true, node: instance.node, handler: callback});\r\n return instance\r\n }\r\n },\r\n prepend(instance, ...elems2Prepend) {\r\n if (instance.is.empty || !elems2Prepend) { return; }\r\n const shouldMove = instance.length === 1;\r\n\r\n for (let elem2Prepend of elems2Prepend) {\r\n if (isNonEmptyString(elem2Prepend)) {\r\n elem2Prepend = elem2Prepend.trim();\r\n const isPlainString = !/^<(.+)[^>]+>$/m.test(elem2Prepend);\r\n let toPrepend = isPlainString ? jqx.text(elem2Prepend) : createElementFromHtmlString(elem2Prepend);\r\n toPrepend = shouldMove ? toPrepend : cloneAndDestroy(toPrepend);\r\n loop(instance, el => el.prepend(toPrepend.cloneNode(true)));\r\n }\r\n\r\n if (isNode(elem2Prepend)) {\r\n loop(instance, el => el.prepend(shouldMove ? elem2Prepend : cloneAndDestroy(elem2Prepend)));\r\n }\r\n\r\n if (elem2Prepend.isJQx && !elem2Prepend.is.empty) {\r\n elem2Prepend.collection.length > 1 && elem2Prepend.collection.reverse();\r\n loop(instance, el => loop( elem2Prepend, elem => el.prepend(shouldMove ? elem : cloneAndDestroy(elem)) ) );\r\n elem2Prepend.collection.reverse();\r\n }\r\n }\r\n \r\n return instance;\r\n },\r\n prependTo(instance, prependTo) {\r\n prependTo = typeof prependTo === `string` ? jqx(prependTo) : prependTo;\r\n switch(true) {\r\n case !prependTo?.isJQx && !IS(prependTo, HTMLElement) || prependTo?.collection?.length < 1:\r\n jqx.warn(`[JQx instance].appendTo: invalid input`);\r\n return instance;\r\n default:\r\n (!prependTo.isJQx ? jqx(prependTo) : prependTo).prepend(instance);\r\n return instance;\r\n }\r\n },\r\n prop(instance, nameOrProperties, value) {\r\n if (IS(nameOrProperties, String) && !value) {\r\n return nameOrProperties.startsWith(`data`)\r\n ? instance[0]?.dataset[nameOrProperties.slice(nameOrProperties.indexOf(`-`)+1)]\r\n : instance[0]?.[nameOrProperties];\r\n }\r\n\r\n const props = !IS(nameOrProperties, Object) ? { [nameOrProperties]: value } : nameOrProperties;\r\n for (let [propName, propValue] of Object.entries(props)) {\r\n propName = propName.trim();\r\n\r\n if (propValue && !checkProp(propName) || !propValue) {\r\n return false;\r\n }\r\n\r\n const isId = propName.toLowerCase() === `id`;\r\n\r\n if (isId) { return instance[0].id = propValue; }\r\n\r\n loop(instance, el => {\r\n if (propName.startsWith(`data`)) {\r\n return el.dataset[propName.slice(propName.indexOf(`-`)+1)] = propValue;\r\n }\r\n\r\n el[propName] = propValue;\r\n });\r\n }\r\n\r\n return instance;\r\n },\r\n remove(instance, selector) {\r\n const remover = el => el.remove();\r\n const removeFromCollection = () =>\r\n instance.collection = instance.collection.filter(el => document.documentElement.contains(el));\r\n\r\n if (selector) {\r\n const selectedElements = instance.find$(selector);\r\n if (!selectedElements.is.empty) {\r\n loop(selectedElements, remover);\r\n removeFromCollection();\r\n }\r\n return instance;\r\n }\r\n loop(instance, remover);\r\n removeFromCollection();\r\n return instance;\r\n },\r\n rmAttr(instance, ...attrNames) {\r\n for (const attr of attrNames) { instance.node.removeAttribute(attr); }\r\n return instance;\r\n },\r\n removeClass(instance, ...classNames) {\r\n return loop(instance, el => { if (el) { for (const cn of classNames) { el.classList.remove(cn); } } });\r\n },\r\n renderTo(instance, root, position) {\r\n root = IS(root, HTMLElement) || root.isJQx ? root : document.body;\r\n position = IS(position, String) && jqx.at[position] ? position : jqx.at.end;\r\n instance.first$().toDOM(root, position);\r\n return instance;\r\n },\r\n replace(instance, oldChild, newChild) {\r\n const firstElem = instance.node;\r\n\r\n if (!oldChild || (!IS(newChild, HTMLElement) && !newChild?.isJQx)) {\r\n jqx.logger.error(`JQx replace: invalid replacement value`);\r\n return instance;\r\n }\r\n\r\n if (newChild.isJQx || IS(newChild, NodeList)) {\r\n newChild = newChild[0];\r\n }\r\n\r\n if (firstElem && oldChild) {\r\n oldChild = IS(oldChild, String)\r\n ? firstElem.querySelectorAll(oldChild)\r\n : oldChild.isJQx\r\n ? oldChild.collection\r\n : oldChild;\r\n\r\n if (IS(oldChild, HTMLElement, NodeList, Array) && IS(newChild, HTMLElement)) {\r\n (IS(oldChild, HTMLElement) ? [oldChild] : [...oldChild])\r\n .forEach(chld => chld.replaceWith(newChild.cloneNode(true)));\r\n }\r\n }\r\n\r\n return instance;\r\n },\r\n replaceClass(instance, className, ...nwClassNames) {\r\n return loop( instance, el => {\r\n el.classList.remove(className);\r\n for (const name of nwClassNames) { el.classList.add(name); }\r\n } )\r\n },\r\n replaceMe(instance, newChild) {\r\n /*NODOC*/ return instance.replaceWith(newChild);\r\n },\r\n replaceWith(instance, newChild) {\r\n newChild = IS(newChild, Element) ? newChild : newChild.isJQx ? newChild[0] : undefined;\r\n\r\n if (newChild) {\r\n instance[0].replaceWith(newChild);\r\n instance = jqx.virtual(newChild);\r\n }\r\n\r\n return instance;\r\n },\r\n setData(instance, spec) {\r\n return loop(instance, el => setData(el, spec));\r\n },\r\n show(instance) {\r\n return loop(instance, el => applyStyle(el, {display: `revert-layer !important`}));\r\n },\r\n single(instance, indexOrSelector) {\r\n const hasNodes = instance.collection.length > 0;\r\n indexOrSelector = indexOrSelector ?? 0;\r\n \r\n switch(true) {\r\n case hasNodes && IS(indexOrSelector, String):\r\n return instance.find$(indexOrSelector);\r\n case hasNodes && IS(indexOrSelector, Number):\r\n return jqx(instance.collection[indexOrSelector]);\r\n case hasNodes: return instance.collection[0];\r\n default: return instance;\r\n }\r\n },\r\n style(instance, keyOrKvPairs, value) {\r\n const loopCollectionLambda = el => {\r\n if (value && IS(keyOrKvPairs, String)) {\r\n keyOrKvPairs = { [keyOrKvPairs]: value || `none` };\r\n }\r\n applyStyle(el, keyOrKvPairs);\r\n };\r\n return loop(instance, loopCollectionLambda);\r\n },\r\n text(instance, textValue, append = false) {\r\n switch(true) {\r\n case instance.isEmpty(): return instance;\r\n case !IS(textValue, String): return instance.node.textContent;\r\n default: return loop(instance, el => el.textContent = append ? el.textContent + textValue : textValue);\r\n }\r\n },\r\n toDOM(instance, root = document.body, position = insertPositions.BeforeEnd) {\r\n instance.isVirtual = false;\r\n inject2DOMTree(instance.collection, root, position);\r\n return instance;\r\n },\r\n toggleClass(instance, className) {\r\n return loop(instance, el => el.classList.toggle(className));\r\n },\r\n toNodeList(instance) {\r\n return [...instance.collection].map(el => document.importNode(el, true));\r\n },\r\n trigger(instance, evtType, SpecifiedEvent, options) {\r\n SpecifiedEvent = IS(SpecifiedEvent, Function) ? SpecifiedEvent : Event;\r\n options = IS(options, Object) ? { ...options, bubbles: options.bubbles??true} : {bubbles: true};\r\n const evObj = new SpecifiedEvent( evtType, options );\r\n \r\n if (!instance.is.empty) {\r\n instance.each(el => el.dispatchEvent(evObj));\r\n }\r\n \r\n return instance;\r\n },\r\n val(instance, newValue) {\r\n switch(true) {\r\n case instance.is.empty || !IS(instance.node, HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement):\r\n return instance;\r\n case !IS(newValue, String):\r\n return instance.node.value;\r\n default:\r\n instance.node.value = !IS(newValue, String) ? \"\" : newValue;\r\n return instance;\r\n }\r\n },\r\n };\r\n}\r\n", "import {\r\n cleanupHtml,\r\n clearAllTimers,\r\n convert2Bool,\r\n escHtml,\r\n getAttributesForLogging,\r\n HandlerFactory,\r\n insertPositions,\r\n IS,\r\n isNonEmptyString,\r\n maybe,\r\n PopupFactory,\r\n proxyWrapper,\r\n randomString,\r\n resolveEventTypeParameter,\r\n selectedFactoryHelpers,\r\n styleFactory,\r\n systemLog,\r\n tagFNFactory as $T,\r\n tagLib,\r\n toCamelcase,\r\n toDashedNotation,\r\n} from \"./JQxUtilities.js\";\r\nimport allMethodsFactory from \"./JQxInstanceMethods.js\";\r\n\r\nlet instanceGetters, instanceMethods;\r\nconst {\r\n isComment, isText, isHtmlString, isArrayOfHtmlElements, isArrayOfHtmlStrings,\r\n ElemArray2HtmlString, cssRuleEdit, addFn\r\n} = selectedUtilitiesFactory();\r\n\r\nexport { proxify, addJQxStaticMethods };\r\n\r\nfunction selectedUtilitiesFactory() {\r\n return {\r\n ...selectedFactoryHelpers(),\r\n addFn: addFnMethod };\r\n}\r\n\r\nfunction addFnMethod(name, extensionMethod) {\r\n name = name?.trim();\r\n \r\n if (!isNonEmptyString(name) || !IS(extensionMethod, Function) ) {\r\n return systemLog.error(\"JQx.fn: method invalid parameter(s)\");\r\n }\r\n \r\n instanceMethods[name] = (self, ...params) => extensionMethod(self, ...params);\r\n return systemLog.log(`JQx: added extension function [${name}]`);\r\n}\r\n\r\nfunction staticFNMethodFactory(jqx) {\r\n return function(name, extensionMethod, isGetter){\r\n name = name?.trim();\r\n if (!isNonEmptyString(name) || !IS(extensionMethod, Function) ) {\r\n return jqx.error(\"JQx.staticFn: invalid parameter(s)\");\r\n }\r\n const ext = isGetter\r\n ? { get() { return extensionMethod(); } }\r\n : { value(...args) { return extensionMethod(...args); } };\r\n \r\n try { Object.defineProperty(jqx, name, ext); }\r\n catch(err) {\r\n return jqx.warn(`JQx.staticFn: extension [${name}] already exists`);\r\n }\r\n \r\n return systemLog.log(`JQx: added static extension function [${name}]`);\r\n }\r\n}\r\n\r\nfunction proxify(instance) {\r\n return new Proxy(\r\n instance, { get: (target, key) => proxyTrapFactory(target, key, instance) }\r\n );\r\n}\r\n\r\nfunction maybeReProxify(method, instance, isGetter = false) {\r\n instance = !!instance[Symbol.proxy] ? instance : proxify(instance);\r\n const returnValue = function(...args) { return method(instance, ...args); }\r\n return isGetter ? returnValue() : returnValue;\r\n}\r\n\r\nfunction proxyReporter(instance) {\r\n return `Proxy for JQx${instance.collection.length < 1 ? ` (empty)` : ``} instance`;\r\n}\r\n\r\nfunction proxyTrapFactory(JQxtarget, key, instance) {\r\n switch(true) {\r\n case key === Symbol.proxy: return proxyReporter(instance);\r\n case typeof key === `symbol`: return maybe({trial: () => JQxtarget[key], whenError: () => JQxtarget });\r\n case !Number.isNaN(+key) && typeof +key === `number`: return JQxtarget.collection?.[key] || undefined;\r\n case (instanceGetters.hasOwnProperty(key)): return maybeReProxify(instanceGetters[key], instance, true);\r\n case (instanceMethods.hasOwnProperty(key)): return maybeReProxify(instanceMethods[key], instance);\r\n default: return Reflect.get(JQxtarget, key);\r\n }\r\n}\r\n\r\nfunction addJQxStaticMethods(jqx) {\r\n const staticMethods = defaultStaticMethodsFactory(jqx);\r\n\r\n for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(staticMethods))) {\r\n Object.defineProperty(jqx, key, descriptor);\r\n }\r\n\r\n return jqx;\r\n}\r\n\r\nfunction allowances(jqx) {\r\n return {\r\n allow(tagName) {\r\n const isWebComponent = /-/.test(tagName);\r\n const webComponentTagName = isWebComponent && tagName;\r\n tagName = isWebComponent ? toCamelcase(tagName) : tagName.toLowerCase();\r\n tagLib.allowTag(tagName);\r\n Object.defineProperties( jqx, addGetters(tagName, true, jqx, webComponentTagName) );\r\n },\r\n prohibit(tagName) {\r\n tagName = tagName.toLowerCase();\r\n tagLib.prohibitTag(tagName);\r\n Object.defineProperties( jqx, addGetters(tagName, false, jqx) );\r\n }\r\n }\r\n}\r\n\r\nfunction cssRemove(...rules) {\r\n if (rules.length === 1) {\r\n const ruleStr = String(rules.shift().trim());\r\n rules = !ruleStr.startsWith(`!`)\r\n ? ruleStr.split(`,`).map(v => v.trim())\r\n : [ruleStr.slice(1, -1)];\r\n }\r\n\r\n for (const rule of rules.map(rule => rule.startsWith(`!`) ? rule.slice(1, -1) : rule)) {\r\n cssRuleEdit(rule, {removeRule: 1});\r\n }\r\n}\r\n\r\nfunction virtualFactory(jqx) {\r\n return function(html, root, position) {\r\n root = root?.isJQx ? root?.[0] : root;\r\n position = position && Object.values(insertPositions).find(pos => position === pos);\r\n const virtualElem = jqx(html, document.createElement(`br`));\r\n if (root && !IS(root, HTMLBRElement)) {\r\n for (const elem of virtualElem.collection) {\r\n position ? root.insertAdjacentElement(position, elem) : root.append(elem);\r\n }\r\n }\r\n return virtualElem;\r\n }\r\n}\r\n\r\nfunction combineObjectSources(...sources) {\r\n const result = {};\r\n for (const source of sources) {\r\n const descriptors = Object.getOwnPropertyDescriptors(source);\r\n for (const [key, descriptor] of Object.entries(descriptors)) {\r\n !(key in result) && Object.defineProperty(result, key, {...descriptor, enumerable: false});\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nfunction tagGetterFactory(tagName, cando, jqx, webComponentTagName) {\r\n tagName = toDashedNotation(webComponentTagName || tagName.toLowerCase());\r\n return {\r\n get() {\r\n return (...args) => {\r\n const instance = cando && jqx.virtual(cleanupHtml($T[tagName](...args))) || undefined;\r\n const isElem = !IS(instance?.node, Comment, Text, undefined);\r\n let reportIdOrClass = isElem ? getAttributesForLogging(instance) : ``;\r\n \r\n systemLog.log( cando\r\n ? `JQx: created (virtual) instance from [JQx].${tagName} ${reportIdOrClass}`\r\n : `JQx: ${tagName.toUpperCase()} is prohibited. Use [JQx].allowTag if necessary.`);\r\n return instance;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true,\r\n }\r\n}\r\n\r\nfunction addGetters(tag, cando, jqx, webComponentTagName) {\r\n tag = tag.toLowerCase();\r\n const jqxGetterForThisTag = tagGetterFactory(tag, cando, jqx, webComponentTagName);\r\n return webComponentTagName\r\n ? { [webComponentTagName]: jqxGetterForThisTag, [toCamelcase(webComponentTagName)]: jqxGetterForThisTag, }\r\n : { [tag]: jqxGetterForThisTag, [tag.toUpperCase()]: jqxGetterForThisTag, };\r\n}\r\n\r\nfunction defaultStaticMethodsFactory(jqx) {\r\n return combineObjectSources(\r\n Object.entries(tagLib.tagsRaw).reduce(staticTagsLambda(jqx), {}),\r\n staticMethodsFactory(jqx));\r\n}\r\n\r\nfunction staticTagsLambda(jqx) {\r\n return function(acc, [tag, cando]) {\r\n Object.defineProperties( acc, addGetters(tag, cando, jqx) );\r\n return acc;\r\n }\r\n}\r\n\r\nfunction delegateFactory(listen) {\r\n return function(type, selector, ...listeners) {\r\n if (IS(selector, Function)) {\r\n listeners.push(selector);\r\n selector = undefined;\r\n }\r\n\r\n listen({type, selector: selector, handlers: listeners});\r\n }\r\n}\r\n\r\nfunction delegateCaptureFactory(handlerWrapper) {\r\n return function(spec) {\r\n let {type, types, origin, selector, handler, handlers, node, name, capture, once, about} = spec;\r\n // <legacy>\r\n handler = handlers || handler;\r\n type = types || type;\r\n selector = origin || selector;\r\n // </legacy>\r\n const typesResolved = resolveEventTypeParameter(type);\r\n const specifiedName = name;\r\n handler = IS(handler, Function) ? [handler] : handler;\r\n const params = {\r\n type: typesResolved, selector: selector || origin, capture,\r\n name: specifiedName, once, node, about };\r\n \r\n switch(true) {\r\n case IS(typesResolved, Array) && typesResolved.length > 0:\r\n for (const type of typesResolved) {\r\n params.type = type;\r\n assignListeners(handler, params, handlerWrapper);\r\n }\r\n break;\r\n default: return assignListeners(handler, params, handlerWrapper);\r\n }\r\n }\r\n}\r\n\r\nfunction assignListeners(handlerFns, params, handlerWrapper) {\r\n for (const handler of handlerFns) {\r\n handlerWrapper.listen({...params, handler});\r\n }\r\n}\r\n\r\nfunction getNamedListenerFactory(jqx) {\r\n return function(type, name) {\r\n name = isNonEmptyString(name) && name;\r\n type = isNonEmptyString(type) && type;\r\n return name && type && jqx.listenerStore[type][name];\r\n };\r\n}\r\n\r\nfunction popupGetter(jqx) {\r\n if (!jqx.activePopup) {\r\n Object.defineProperty(\r\n jqx, `activePopup`, {\r\n value: PopupFactory(jqx),\r\n enumerable: false\r\n } );\r\n }\r\n return jqx.activePopup;\r\n}\r\n\r\nfunction getSelectedStaticMethods(jqx) {\r\n const editCssRule = (ruleOrSelector, ruleObject) => cssRuleEdit(ruleOrSelector, ruleObject);\r\n const createStyle = function(id) {return styleFactory({createWithId: id || `jqx${randomString()}`}); };\r\n const editCssRules = function(...rules) { for (const rule of rules) { cssRuleEdit(rule); } };\r\n const allowProhibit = allowances(jqx);\r\n const handlerWrapper = HandlerFactory(jqx);\r\n const capturedHandling = delegateCaptureFactory(handlerWrapper);\r\n const log = (...line) => systemLog.on.log(...line).off;\r\n const warn = (...line) => systemLog.on.warn(...line).off;\r\n const error = (...line) => systemLog.on.error(...line).off;\r\n return {\r\n editCssRule, createStyle, editCssRules, allowProhibit, handle: capturedHandling, capturedHandling,\r\n log, warn, error, handlerWrapper};\r\n}\r\n\r\nfunction staticMethodsFactory(jqx) {\r\n const { factoryExtensions, instanceExtensions } = allMethodsFactory(jqx);\r\n instanceGetters = factoryExtensions;\r\n instanceMethods = instanceExtensions;\r\n const { editCssRule, createStyle, editCssRules, allowProhibit, handle,\r\n capturedHandling, log, warn, error, handlerWrapper } = getSelectedStaticMethods(jqx);\r\n const getNamedListener = getNamedListenerFactory(jqx);\r\n const staticFN = staticFNMethodFactory(jqx);\r\n $T.setError = key => {\r\n error(`JQx direct element creation error: [${key}] is not a valid tag`);\r\n return jqx.br();\r\n }\r\n return {\r\n log,\r\n warn,\r\n error,\r\n editCssRules,\r\n createStyle,\r\n editStylesheet: createStyle,\r\n editCssRule,\r\n escHtml,\r\n logger: systemLog,\r\n proxyWrapper,\r\n text(str, isComment = false) { return isComment ? jqx.comment(str) : document.createTextNode(str); },\r\n node(selector, root = document) { return root.querySelector(selector, root); },\r\n nodes(selector, root = document) { return [...root.querySelectorAll(selector, root)]; },\r\n clearAllTimers,\r\n get staticFn() { return function(name, method, isGetter) { return staticFN(name, method, isGetter); } },\r\n get toBool() { return convert2Bool; },\r\n get getNamedListener() { return getNamedListener; },\r\n get virtual() { return virtualFactory(jqx); },\r\n get allowTag() { return allowProhibit.allow; },\r\n get prohibitTag() { return allowProhibit.prohibit; },\r\n get removeCssRule() { return cssRemove; },\r\n get removeCssRules() { return cssRemove; },\r\n get delegate() { return delegateFactory(capturedHandling); },\r\n get delegateCaptured() { return capturedHandling; } ,\r\n get handle() { return capturedHandling; },\r\n get listen() { return handlerWrapper.listen; },\r\n get at() { return insertPositions; },\r\n get setStyle() { /*deprecated*/return editCssRule; },\r\n get fn() { return addFn; },\r\n get lenient() { return tagLib.allowUnknownHtmlTags; },\r\n get IS() { return IS; },\r\n get Popup() { return popupGetter(jqx); },\r\n get listenerStore() { return handlerWrapper.ListenerStore; },\r\n };\r\n}\r\n", "import { proxify, addJQxStaticMethods } from \"./JQxCreatorFactory.js\";\r\nimport {\r\n isHtmlString, isArrayOfHtmlStrings, isArrayOfHtmlElements,\r\n input2Collection, setCollectionFromCssSelector, IS, systemLog,\r\n insertPositions, inject2DOMTree, createElementFromHtmlString,\r\n getNodeContentForLog,\r\n} from \"./JQxUtilities.js\";\r\n\r\nexport default JQxMainFactory();\r\n\r\nfunction JQxMainFactory() {\r\n const logLineLength = 70;\r\n \r\n return addJQxStaticMethods(\r\n function(input, root, position = insertPositions.BeforeEnd) {\r\n if (input?.isJQx) { return input; }\r\n const isVirtual = IS(root, HTMLBRElement);\r\n root = (!isVirtual && root && root.isJQx ? root[0] : root) || document.body;\r\n position = position && Object.values(insertPositions).find(pos => position === pos) ? position : undefined;\r\n const isRawHtml = isHtmlString(input);\r\n const isRawHtmlArray = !isRawHtml && isArrayOfHtmlStrings(input);\r\n const shouldCreateElements = isRawHtmlArray || isRawHtml;\r\n \r\n let instance = {\r\n collection: input2Collection(input) ?? [],\r\n isVirtual,\r\n isJQx: true,\r\n };\r\n \r\n const isRawElemCollection = isArrayOfHtmlElements(instance.collection);\r\n \r\n switch(true) {\r\n case instance.collection.length && isRawElemCollection && !isVirtual:\r\n for (const el of instance.collection) {\r\n if (!root.contains(el)) {\r\n inject2DOMTree([el], root, position);\r\n }\r\n }\r\n break;\r\n case shouldCreateElements:\r\n for (const htmlStringOrComment of [input].flat()) {\r\n instance.collection.push(createElementFromHtmlString(htmlStringOrComment));\r\n }\r\n \r\n if (instance.collection.length > 0) {\r\n const errors = instance.collection.filter( el => el?.dataset?.jqxcreationerror );\r\n instance.collection = instance.collection.filter(el => !el?.dataset?.jqxcreationerror);\r\n const elemsCreated = instance.collection.map(el => `${String(el.constructor).split(/function|\\(/)[1].trim()}`);\r\n const multiple = elemsCreated.length > 1;\r\n instance = proxify(instance);\r\n const collectionLog = instance.collection.length > 0\r\n ? getNodeContentForLog(instance)\r\n : \"sanitized: no elements remaining\";\r\n \r\n systemLog.log(`JQx: created ${instance.isVirtual ? `(virtual)` : ``} instance from ` +\r\n `${multiple ? `array of ` : ``}HTML string${multiple ? `s` : ``} ${collectionLog}`);\r\n \r\n if (!instance.isVirtual) {\r\n inject2DOMTree(instance.collection, root, position);\r\n }\r\n }\r\n break;\r\n default: setCollectionFromCssSelector(input, root, instance);\r\n \r\n }\r\n \r\n return proxify(instance);\r\n })\r\n}\r\n", "/**\r\n This code is classfree object oriented. No this. No prototype. No class.\r\n Inspired by Douglas Crockford (see https://youtu.be/XFTOG895C7c?t=2562)\r\n*/\r\nimport JQx from \"./src/JQxConstructorFactory.js\";\r\nexport default JQx;\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["IS", "isOnly", "maybe", "$Wrap", "isNothing", "addSymbolicExtensions", "detectableProxy", "TOAFactory", "TOAFactory", "specs", "useSymbolicExtensions", "isJust", "typeCheckFactory", "shouldbeIsSingleObject", "ISOneOf", "isExcept", "verifyNothingness", "determineType", "addSymbolicExtensions", "maybe", "$Wrap", "detectableProxy", "TOAHelpers", "IS", "isOnly", "anything", "shouldBe", "unChained", "v", "single", "input", "_", "SymbolAndCustomProxyFactory", "maybeFactory", "WrapAnyFactory", "AUXHelperFactory", "typeOf", "isTypeObj", "isOrDefault", "obj", "params", "param", "defaultValue", "isTypes", "notTypes", "SYMBOL_KEYS", "TYPE_STRINGS", "detectableProxyFactory", "addSymbolsFactory", "trapped", "type", "target", "key", "wrapProxy", "proxy2Wrap", "createDetectableProxy", "traps", "addSymbols2Anything", "args", "useSymbolicExtension", "constructor2String", "isNothing", "processInput", "noShouldbe", "noInput", "compareTo", "inputCTOR", "isNaN", "isInfinity", "shouldBeFirstElementIsNothing", "getResult", "finalInputResolver", "compareWith", "maybeResult", "resultWithComparison", "resultWithoutComparison", "someObj", "wrapper", "errFn", "err", "trial", "whenError", "maybeNothing", "all", "nada", "collate", "nameOf", "type2Check", "checkSingleType", "objName", "typeName", "chkType", "popupStyling", "getPopupStyling", "ATTRS", "getAttrs", "allTags", "getPermissions", "getAttrs", "getPermissions", "getPopupStyling", "checkType", "typeCheckFactory", "maybe", "maybeFactory", "converts", "collate", "nameOf", "type2Check", "isNothing", "obj", "v", "checkSingleType", "objName", "typeName", "chkType", "ucFirst", "first", "theRest", "toDashedNotation", "str2Convert", "a", "toCamelcase", "str", "i", "errFn", "err", "trial", "whenError", "cloneExact", "elementFunctionCollection2", "cleanupProps", "props", "specials", "retrieveSpecialProps", "key", "keyCI", "data", "attributes", "classList", "cleanupComment", "initial", "isComment", "tag", "containsHTML", "validateElementTagName", "tagName", "validateTag", "name", "customElementRegistry2", "createElement2", "elementFunctionCollection", "customElementRegistry", "tagFunctionError", "tinyDOM_default", "tinyDOM", "proxyTraps", "tagFns", "createElement", "createTagFunctionProperty", "value", "custom", "debug", "isError", "unsealedElementFunctionCollection", "_", "reSeal", "dashed", "camel", "tag2FN", "unsealedCollection", "processNext", "root", "next", "tagFN", "nested", "elem", "retrieveElementFromInitial", "arg", "createElementAndAppend", "element2Append", "assignSpecialProps", "specialProps", "element", "assignable", "args", "LifeCSS_default", "LifeStyleFactory", "styleSheet", "createWithId", "tryParseAtOrNestedRules", "ruleExists", "checkParams", "sheet", "removeRules", "consider", "currentSheetID", "sheetHelpers", "setRules4Selector", "rule", "properties", "prop", "toDashedNotation", "value", "priority", "tryAndCatch", "setRules", "selector", "styleRules", "sheetOrMediaRules", "IS", "exists", "rule4Selector", "doParse", "cssDeclarationString", "shortenRule", "cssRules", "cssRuleFromText", "styleFromString", "checkAts", "styleFromObject", "rulesObj", "atMedia2String", "cssBlockOrSelector", "notification", "retrieveOrCreateSheet", "id", "existingSheet", "newSheet", "notSupported", "ruleFragOrSelector", "isSelector", "r", "compareSelectors", "createRE", "escape4RegExp", "tryParse", "rulesAt", "acc", "v", "i", "len", "idx", "err", "fn", "existing", "selectr", "stringifyMediaRule", "shortRule", "mediaObj", "key", "str", "a", "regexStr", "args", "flags", "line", "str2Convert", "msg", "prepareCssRuleFromText", "_", "b", "l", "toRuleObject", "preparedRule", "s1", "s2", "lenient", "allowUnknownHtmlTags", "HTMLTags_default", "allTags", "elem", "nodeName", "IS", "tag2Allow", "tag2Prohibit", "logElementCreationErrors2Console", "attrRegExpStore", "logContingentErrors", "elCreationInfo", "msgs", "acc", "k", "v", "escHtml", "systemLog", "elementCheck", "child", "name", "notAllowedCustomElementNames", "HTMLTags_default", "cleanupHtml", "el2Clean", "IS", "attrStore", "ATTRS", "attr", "value", "evilValue", "evilAttrib", "val", "truncate2SingleStr", "tag", "tagValue", "htmlToVirtualElement", "htmlString", "placeholderNode", "insertPositions", "cleanupHtml", "characterDataElement2DOM", "elem", "root", "position", "IS", "inject2DOMTree", "collection", "acc", "created", "isNode", "element2DOM", "createElementFromHtmlString", "htmlStrOrText", "testStr", "text", "v", "nwElem", "truncateHtmlStr", "Popup_default", "$", "popupStyling", "timers", "popupContent", "popupNode", "currentProps", "genericPopupCloseHandler", "initPopup", "initHidePopup", "removeModal", "props", "isCurrent", "content", "showPopup", "failModalClose", "hidePopup", "key", "value", "modal", "closeAfter", "closerIcon", "createTimer", "clearTimers", "timer", "callback", "evt", "seconds", "warnMessage", "modalWarningBox", "HandlerFactory", "jqx", "store", "anon", "setListener", "listener", "handler", "capture", "type", "removeListener", "wrapFn4Selector", "fn", "selector", "once", "handlerName", "evt", "isNonEmptyString", "elemFound", "me", "remove", "storedEventType", "eventType", "retrieve", "name", "key", "handlerIdCache", "systemLog", "storeHandler", "spec", "node", "about", "getHandlerName", "initialHandler", "handlerID", "getCaptureValue", "args", "IS", "nwHandler", "addSymbolicExtensions", "systemLog", "systemLogFactory", "allwaysCaptureEventTypes", "insertPositions", "obj", "key", "characters4RandomString", "x", "i", "datasetKeyProxy", "toCamelcase", "handlerIdCache", "clearAllTimers", "id", "getHandlerName", "name", "isNonEmptyString", "uniqueHandlerID", "getAttributesForLogging", "instance", "isElem", "IS", "dataset", "v", "attrs", "idCache", "anonID", "handlerIdCache", "getCaptureValue", "eventType", "captureValue", "allwaysCaptureEventTypes", "t", "checkProp", "prop", "ATTRS", "attr", "emptyElement", "el", "findParentScrollDistance", "node", "distance", "top", "str", "minlen", "truncate2SingleStr", "maxLength", "truncateHtmlStr", "escHtml", "html", "tmpDiv", "decodeForConsole", "something", "systemLogFactory", "on", "disabled", "backLog", "systemLogger", "disable", "enable", "error", "args", "arg", "logTime", "warn", "log", "entryTxt", "d", "pad0", "assignAttrValues", "keyValuePairs", "key", "value", "toDashedNotation", "setData", "input2Collection", "input", "isNode", "isArrayOfHtmlElements", "beforeOrAfter", "instance", "jqx", "after", "toAdd", "systemLog", "elem", "IS", "bOrA", "isNode", "input", "IS", "applyStyle", "el", "rules", "key", "value", "priority", "toDashedNotation", "cloneAndDestroy", "elem", "cloned", "isVisible", "elStyle", "computedStyle", "invisible", "noDisplay", "hidden", "zeroHeightOrWidth", "offscreen", "noOpacity", "isWritable", "ElemArray2HtmlString", "elems", "acc", "isComment", "isCommentOrTextNode", "pad0", "nr", "n", "randomNr", "max", "min", "randomString", "shuffle", "characters4RandomString", "resolveEventTypeParameter", "maybeTypes", "t", "isModal", "convert2Bool", "defaultValue", "array", "i", "ri", "toCamelcase", "str2Convert", "str", "ucFirst", "a", "first", "theRest", "node", "isText", "isHtmlString", "isArrayOfHtmlElements", "isArrayOfHtmlStrings", "s", "loop", "instance", "callback", "cleanCollection", "el", "isCommentOrTextNode", "i", "getNodeContentForLog", "IS", "setCollectionFromCssSelector", "input", "root", "self", "selectorRoot", "systemLog", "selectedFactoryHelpers", "isNode", "isComment", "isText", "isHtmlString", "isArrayOfHtmlElements", "isArrayOfHtmlStrings", "ElemArray2HtmlString", "input2Collection", "LifeCSS_default", "ExamineElementFeatureFactory", "noElements", "firstElem", "isWritable", "isModal", "isVisible", "css", "keyOrKvPairs", "value", "jqx", "nwClass", "c", "randomString", "instanceIs", "ExamineElementFeatureFactory", "JQxInstanceMethods_default", "jqx", "factoryExtensionsFactory", "instanceExtensionsFactory", "instance", "datasetKeyProxy", "valuesObj", "IS", "key", "value", "whenUndefined", "toDashedNotation", "systemLog", "node", "boundingRect", "findParentScrollDistance", "outer", "escaped", "html", "escHtml", "content", "append", "escape", "isString", "maybeParent", "styleObj", "rule", "classes2Apply", "rules", "addClassNameOrID", "selector", "classNames", "loop", "el", "cn", "elems", "beforeOrAfter", "elems2Append", "shouldMove", "elem2Append", "isNonEmptyString", "elem2Append4Test", "toAppend", "createElementFromHtmlString", "cloneAndDestroy", "isNode", "elem", "appendTo", "keyOrObj", "assignAttrValues", "emptyElement", "theClosest", "property", "keyOrKvPairs", "css", "toDOM", "root", "clone", "cb", "asJQxInstance", "indexOrSelector", "dataAttribute", "valueWhenFalsy", "applyStyle", "htmlValue", "nwElement", "forSelector", "htmlString", "el2Change", "type", "callback", "elems2Prepend", "elem2Prepend", "toPrepend", "prependTo", "nameOrProperties", "props", "propName", "propValue", "checkProp", "remover", "removeFromCollection", "selectedElements", "attrNames", "attr", "position", "oldChild", "newChild", "firstElem", "chld", "className", "nwClassNames", "name", "spec", "setData", "hasNodes", "textValue", "insertPositions", "inject2DOMTree", "evtType", "SpecifiedEvent", "options", "evObj", "newValue", "instanceGetters", "instanceMethods", "isComment", "isText", "isHtmlString", "isArrayOfHtmlElements", "isArrayOfHtmlStrings", "ElemArray2HtmlString", "cssRuleEdit", "addFn", "selectedUtilitiesFactory", "selectedUtilitiesFactory", "selectedFactoryHelpers", "addFnMethod", "name", "extensionMethod", "isNonEmptyString", "IS", "systemLog", "instanceMethods", "self", "params", "staticFNMethodFactory", "jqx", "isGetter", "ext", "args", "proxify", "instance", "target", "key", "proxyTrapFactory", "maybeReProxify", "method", "returnValue", "proxyReporter", "JQxtarget", "maybe", "instanceGetters", "addJQxStaticMethods", "staticMethods", "defaultStaticMethodsFactory", "descriptor", "allowances", "tagName", "isWebComponent", "webComponentTagName", "toCamelcase", "HTMLTags_default", "addGetters", "cssRemove", "rules", "ruleStr", "v", "rule", "cssRuleEdit", "virtualFactory", "html", "root", "position", "insertPositions", "pos", "virtualElem", "elem", "combineObjectSources", "sources", "result", "source", "descriptors", "tagGetterFactory", "cando", "toDashedNotation", "cleanupHtml", "tinyDOM_default", "reportIdOrClass", "getAttributesForLogging", "tag", "jqxGetterForThisTag", "staticTagsLambda", "staticMethodsFactory", "acc", "delegateFactory", "listen", "type", "selector", "listeners", "delegateCaptureFactory", "handlerWrapper", "spec", "types", "origin", "handler", "handlers", "node", "capture", "once", "about", "typesResolved", "resolveEventTypeParameter", "specifiedName", "assignListeners", "handlerFns", "getNamedListenerFactory", "popupGetter", "Popup_default", "getSelectedStaticMethods", "editCssRule", "ruleOrSelector", "ruleObject", "createStyle", "id", "LifeCSS_default", "randomString", "editCssRules", "allowProhibit", "HandlerFactory", "capturedHandling", "line", "factoryExtensions", "instanceExtensions", "JQxInstanceMethods_default", "handle", "log", "warn", "error", "getNamedListener", "staticFN", "escHtml", "detectableProxy", "str", "isComment", "clearAllTimers", "convert2Bool", "addFn", "JQxConstructorFactory_default", "JQxMainFactory", "addJQxStaticMethods", "input", "root", "position", "insertPositions", "isVirtual", "IS", "pos", "isRawHtml", "isHtmlString", "shouldCreateElements", "isArrayOfHtmlStrings", "instance", "input2Collection", "isRawElemCollection", "isArrayOfHtmlElements", "el", "inject2DOMTree", "htmlStringOrComment", "createElementFromHtmlString", "errors", "multiple", "proxify", "collectionLog", "getNodeContentForLog", "systemLog", "setCollectionFromCssSelector", "index_default", "JQxConstructorFactory_default"]
|
|
7
7
|
}
|