tiny-essentials 1.21.4 → 1.21.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.
- package/dist/v1/TinyDragger.min.js +1 -1
- package/dist/v1/TinyEssentials.min.js +1 -1
- package/dist/v1/TinyHtml.min.js +1 -1
- package/dist/v1/TinySmartScroller.min.js +1 -1
- package/dist/v1/TinyUploadClicker.min.js +1 -1
- package/dist/v1/libs/TinyHtml.cjs +180 -0
- package/dist/v1/libs/TinyHtml.d.mts +100 -0
- package/dist/v1/libs/TinyHtml.mjs +170 -0
- package/docs/v1/libs/TinyHtml.md +81 -0
- package/package.json +1 -1
package/dist/v1/TinyHtml.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{TinyHtml:()=>N});var r={};t.r(r),t.d(r,{areElsCollBottom:()=>o,areElsCollLeft:()=>i,areElsCollPerfBottom:()=>a,areElsCollPerfLeft:()=>c,areElsCollPerfRight:()=>m,areElsCollPerfTop:()=>l,areElsCollRight:()=>s,areElsCollTop:()=>n,areElsColliding:()=>p,areElsPerfColliding:()=>u,getElsCollDetails:()=>w,getElsCollDirDepth:()=>b,getElsCollOverlap:()=>h,getElsCollOverlapPos:()=>g,getElsColliding:()=>d,getElsPerfColliding:()=>f,getElsRelativeCenterOffset:()=>E,getRectCenter:()=>y});const n=(t,e)=>t.bottom<e.top,o=(t,e)=>t.top>e.bottom,i=(t,e)=>t.right<e.left,s=(t,e)=>t.left>e.right,l=(t,e)=>t.bottom<=e.top,a=(t,e)=>t.top>=e.bottom,c=(t,e)=>t.right<=e.left,m=(t,e)=>t.left>=e.right,p=(t,e)=>!(i(t,e)||s(t,e)||n(t,e)||o(t,e)),u=(t,e)=>!(c(t,e)||m(t,e)||l(t,e)||a(t,e)),d=(t,e)=>i(t,e)?"left":s(t,e)?"right":n(t,e)?"top":o(t,e)?"bottom":null,f=(t,e)=>c(t,e)?"left":m(t,e)?"right":l(t,e)?"top":a(t,e)?"bottom":null,h=(t,e)=>({overlapLeft:e.right-t.left,overlapRight:t.right-e.left,overlapTop:e.bottom-t.top,overlapBottom:t.bottom-e.top}),g=({overlapLeft:t=-1,overlapRight:e=-1,overlapTop:r=-1,overlapBottom:n=-1}={})=>({dirX:t<e?"right":"left",dirY:r<n?"bottom":"top"}),y=t=>({x:t.left+t.width/2,y:t.top+t.height/2});function E(t,e){const r=t.left+t.width/2,n=t.top+t.height/2;return{x:e.left+e.width/2-r,y:e.top+e.height/2-n}}function b(t,e){if(!u(t,e))return{inDir:null,dirX:null,dirY:null,depthX:0,depthY:0};const{overlapLeft:r,overlapRight:n,overlapTop:o,overlapBottom:i}=h(t,e),{dirX:s,dirY:l}=g({overlapLeft:r,overlapRight:n,overlapTop:o,overlapBottom:i}),a=Math.min(r,n),c=Math.min(o,i);let m;return m=a<c?s:l,{inDir:m,dirX:s,dirY:l,depthX:a,depthY:c}}function w(t,e){const r=u(t,e),n={in:null,x:null,y:null},o={y:null,x:null},i={top:0,bottom:0,left:0,right:0},{overlapLeft:s,overlapRight:l,overlapTop:a,overlapBottom:c}=h(e,t);i.top=a,i.bottom=c,i.left=s,i.right=l;const m=Object.entries(i).filter(([,t])=>t>0).sort((t,e)=>t[1]-e[1]),{dirX:p,dirY:d}=g({overlapLeft:l,overlapRight:s,overlapTop:c,overlapBottom:a});return n.y=d,n.x=p,i.bottom<0?o.y="bottom":i.top<0&&(o.y="top"),i.left<0?o.x="left":i.right<0&&(o.x="right"),n.in=r?i.top===i.bottom&&i.bottom===i.left&&i.left===i.right?"center":m.length?m[0][0]:"top":null,{dirs:n,depth:i,isNeg:o}}const{areElsColliding:T,areElsPerfColliding:v,areElsCollTop:_,areElsCollBottom:A,areElsCollLeft:x,areElsCollRight:C}=r,S=new WeakMap,L=new WeakMap,k={top:new WeakMap,bottom:new WeakMap,left:new WeakMap,right:new WeakMap};class W{static Utils={...r};static async fetchHtmlFile(t,e={method:"GET"}){const r=await fetch(t,e),n=r.headers.get("Content-Type")||"";if(!r.ok)throw new Error(`Failed to fetch: ${r.status} ${r.statusText}`);if(!n.includes("text/html"))throw new Error(`Invalid content type: ${n} (expected text/html)`);const o=await r.text();return W.htmlToJson(o)}static async fetchHtmlNodes(t,e){const r=await W.fetchHtmlFile(t,e);return W.jsonToNodes(r)}static async fetchHtmlTinyElems(t,e){const r=await W.fetchHtmlNodes(t,e);return W.toTinyElm(r)}static templateToJson(t){return W.htmlToJson([...t.content.childNodes].map(t=>t instanceof Element?t.getHTML():t instanceof Text?t.textContent:"").join(""))}static templateToNodes(t){const e=[];return[...t.content.cloneNode(!0).childNodes].map(t=>{if(!(t instanceof Element||t instanceof Text||t instanceof Comment))throw new Error(`Expected only Element nodes in <template>, but found: ${t.constructor.name}`);t instanceof Comment||e.push(t)}),e}static templateToTinyElems(t){return W.toTinyElm(W.templateToNodes(t))}static htmlToJson(t){const e=document.createElement("div");e.innerHTML=t.trim();const r=[],n=t=>{if(t instanceof Comment)return null;if(t instanceof Text){const e=t.textContent?.trim();return e||null}if(!(t instanceof Element))return null;const e=t.tagName.toLowerCase(),r={};for(const e of t.attributes)r[W.getPropName(e.name)]=e.value;const o=Array.from(t.childNodes).map(n).filter(Boolean);return o.length>0?[e,r,...o]:[e,r]};for(const t of e.childNodes){const e=n(t);e&&r.push(e)}return e.innerHTML="",r}static jsonToNodes(t){const e=t=>{if("string"==typeof t)return document.createTextNode(t);if(!Array.isArray(t))return document.createTextNode("");const[r,n,...o]=t,i=document.createElement(r);for(const[t,e]of Object.entries(n))i.setAttribute(W.getAttrName(t),e);for(const t of o){const r=e(t);r instanceof Comment||i.appendChild(r)}return i};return t.map(e).filter(t=>!(t instanceof Comment))}static jsonToTinyElems(t){return W.toTinyElm(W.jsonToNodes(t))}static createFrom(t,e){if("string"!=typeof t)throw new TypeError('The "tagName" must be a string.');if(void 0!==e&&"object"!=typeof e)throw new TypeError('The "attrs" must be a object.');const r=W.createElement(t);if("object"==typeof e)for(const t in e)r.setAttr(t,e[t]);return r}static createElement(t,e){if("string"!=typeof t)throw new TypeError("[TinyHtml] createElement(): The tagName must be a string.");if(void 0!==e&&"object"!=typeof e)throw new TypeError("[TinyHtml] createElement(): The ops must be a object.");return new W(document.createElement(t,e))}static createTextNode(t){if("string"!=typeof t)throw new TypeError("[TinyHtml] createTextNode(): The value must be a string.");return new W(document.createTextNode(t))}static createElementFromHTML(t){const e=document.createElement("template");if(!(t=t.trim()).startsWith("<"))return W.createTextNode(t);if(e.innerHTML=t,!(e.content.firstChild instanceof Element))throw new Error("The HTML string must contain a valid HTML element.");return new W(e.content.firstChild)}static query(t,e=document){const r=e.querySelector(t);return r?new W(r):null}querySelector(t){return W.query(t,W._preElem(this,"query"))}static queryAll(t,e=document){return new W(e.querySelectorAll(t))}querySelectorAll(t){return W.queryAll(t,W._preElem(this,"queryAll"))}static getById(t){const e=document.getElementById(t);return e?new W(e):null}static getByClassName(t,e=document){return new W(e.getElementsByClassName(t))}getElementsByClassName(t){return W.getByClassName(t,W._preElem(this,"getByClassName"))}static getByName(t){return new W(document.getElementsByName(t))}static getByTagNameNS(t,e="http://www.w3.org/1999/xhtml",r=document){return new W(r.getElementsByTagNameNS(e,t))}getElementsByTagNameNS(t,e="http://www.w3.org/1999/xhtml"){return W.getByTagNameNS(t,e,W._preElem(this,"getByTagNameNS"))}forEach(t){const e=this.getAll().map((t,e)=>this.extract(e));for(const r in e)t(e[r],Number(r),e);return this}get(t){if("number"!=typeof t)throw new TypeError("The index must be a number.");if(!this.#t[t])throw new Error(`No element found at index ${t}.`);return this.#t[t]}extract(t){if("number"!=typeof t)throw new TypeError("The index must be a number.");if(!this.#t[t])throw new Error(`Cannot extract: no element exists at index ${t}.`);return new W(this.#t[t])}exists(t){if("number"!=typeof t)throw new TypeError("The index must be a number.");return!!this.#t[t]}getAll(){return[...this.#t]}_getElement(t,e){if(!(this.#t[e]instanceof Element||this.#t[e]instanceof Window||this.#t[e]instanceof Document||this.#t[e]instanceof Text))throw new Error(`[TinyHtml] Invalid Element in ${t}().`);return this.#t[e]}_getElements(t){if(!this.#t.every(t=>t instanceof Element||t instanceof Window||t instanceof Document||t instanceof Text))throw new Error(`[TinyHtml] Invalid Element in ${t}().`);return[...this.#t]}static _preElemsTemplate(t,e,r,n){const o=t=>{const o=[];return t.map(t=>(t instanceof W?t._getElements(e):[t]).map(t=>{let i=!1;for(const e of r)if(t instanceof e){i=!0;break}if(!i)throw new Error(`[TinyHtml] Invalid element of the list "${n.join(",")}" in ${e}().`);return o.push(t),t})),o};return Array.isArray(t)?o(t):o([t])}static _preElemTemplate(t,e,r,n,o=!1){const i=t=>{const i=t[0],s=i instanceof W?i._getElements(e):[i];if(s.length>1)throw new Error(`[TinyHtml] Invalid element amount in ${e}() (Received ${s.length}/1).`);let l=!1;for(const t of r)if(s[0]instanceof t){l=!0;break}if(!o||null!==s[0]&&void 0!==s[0]||(s[0]=null,l=!0),!l)throw new Error(`[TinyHtml] Invalid element of the list "${n.join(",")}" in ${e}().`);return s[0]};if(!Array.isArray(t))return i([t]);if(t.length>1)throw new Error(`[TinyHtml] Invalid element amount in ${e}() (Received ${t.length}/1).`);return i(t)}static _preElems(t,e){return W._preElemsTemplate(t,e,[Element],["Element"])}static _preElem(t,e){return W._preElemTemplate(t,e,[Element],["Element"])}static _preNodeElems(t,e){return W._preElemsTemplate(t,e,[Node],["Node"])}static _preNodeElem(t,e){return W._preElemTemplate(t,e,[Node],["Node"])}static _preNodeElemWithNull(t,e){return W._preElemTemplate(t,e,[Node],["Node"],!0)}static _preHtmlElems(t,e){return W._preElemsTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preHtmlElem(t,e){return W._preElemTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preInputElems(t,e){return W._preElemsTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preInputElem(t,e){return W._preElemTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preEventTargetElems(t,e){return W._preElemsTemplate(t,e,[EventTarget],["EventTarget"])}static _preEventTargetElem(t,e){return W._preElemTemplate(t,e,[EventTarget],["EventTarget"])}static _preElemsAndWindow(t,e){return W._preElemsTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemAndWindow(t,e){return W._preElemTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemsAndWinAndDoc(t,e){return W._preElemsTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]).map(t=>t instanceof Document?t.documentElement:t)}static _preElemAndWinAndDoc(t,e){const r=W._preElemTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]);return r instanceof Document?r.documentElement:r}static _preElemsWithDoc(t,e){return W._preElemsTemplate(t,e,[Element,Document],["Element","Document"])}static _preElemWithDoc(t,e){return W._preElemTemplate(t,e,[Element,Document],["Element","Document"])}static toTinyElm(t){const e=t=>t.map(t=>t instanceof W?t:new W(t));return Array.isArray(t)?e(t):e([t])}static fromTinyElm(t){const e=t=>{const e=[];return t.map(t=>(t instanceof W?t._getElements("fromTinyElm"):[t]).map(t=>e.push(t))),e};return Array.isArray(t)?e(t):e([t])}static winnow(t,e,r,n=!1){if("boolean"!=typeof n)throw new TypeError('The "not" must be a boolean.');if("function"==typeof e)return W._preElems(t,r).filter((t,r)=>!!e.call(t,r,t)!==n);if(e instanceof Element)return W._preElems(t,r).filter(t=>t===e!==n);if(Array.isArray(e)||"string"!=typeof e&&null!=e.length)return W._preElems(t,r).filter(t=>e.includes(t)!==n);let o=e;return n&&(o=`:not(${o})`),W._preElems(t,r).filter(t=>1===t.nodeType&&t.matches(o))}static filter(t,e,r=!1){return r&&(e=`:not(${e})`),W._preElems(t,"filter").filter(t=>1===t.nodeType&&t.matches(e))}static filterOnly(t,e){return W.winnow(t,e,"filterOnly",!1)}static not(t,e){return W.winnow(t,e,"not",!0)}not(t){return W.not(this,t)}static find(t,e){const r=[];for(const n of W._preElems(t,"find"))r.push(...n.querySelectorAll(e));return[...new Set(r)]}find(t){return W.find(this,t)}static is(t,e){return W.winnow(t,e,"is",!1).length>0}is(t){return W.is(this,t)}static has(t,e){const r="string"==typeof e?[...document.querySelectorAll(e)]:W._preElems(e,"has");return W._preElems(t,"has").filter(t=>r.some(e=>t&&t.contains(e)))}has(t){return W.has(this,t).length>0}static closest(t,e,r){const n=[];for(const o of W._preElems(t,"closest")){let t=o;for(;t&&t!==r;){if(1===t.nodeType&&("string"==typeof e?t.matches(e):t===e)){n.push(t);break}t=t.parentElement}}return[...new Set(n)]}closest(t,e){return W.closest(this,t,e)}static isSameDom(t,e){return W._preNodeElem(t,"isSameDom")===W._preNodeElem(e,"isSameDom")}isSameDom(t){return W.isSameDom(this,t)}#e={};get _data(){return{...this.#e}}set _data(t){if("object"!=typeof t||null===t||Array.isArray(t))throw new Error("value must be a non-null object.");this.#e=t}static _dataSelector={public:(t,e)=>{const r=W._preElem(e,t);let n=L.get(r);return n||(n={},L.set(r,n)),n},private:(t,e)=>{if(!(e instanceof W))throw new Error(`Element must be a TinyHtml instance to execute ${t}().`);return e.#e}};static data(t,e,r=!1){const n=W._dataSelector[r?"private":"public"]("data",t);if(null==e)return{...n};if("string"!=typeof e)throw new TypeError("The key must be a string.");return n.hasOwnProperty(e)?n[e]:void 0}data(t,e){return W.data(this,t,e)}static setData(t,e,r,n=!1){const o=W._dataSelector[n?"private":"public"]("setData",t);if("string"!=typeof e)throw new TypeError("The key must be a string.");return o[e]=r,t}setData(t,e,r=!1){return W.setData(this,t,e,r)}static _getSibling(t,e,r){let n=W._preNodeElemWithNull(t,r);for(;n&&(n=n[e])&&1!==n.nodeType;);return n instanceof Node?n:null}static _getSiblings(t,e){let r=t;const n=[];for(;r;r=r.nextSibling)1===r.nodeType&&r!==e&&n.push(r);return n}static domDir(t,e,r,n="domDir"){if("string"!=typeof e)throw new TypeError('The "direction" must be a string.');let o=W._preNodeElemWithNull(t,n);const i=[];for(;o&&(o=o[e]);)if(1===o.nodeType){if(r&&("string"==typeof r?o.matches(r):o===r))break;i.push(o)}return i}static parent(t){let e=W._preNodeElemWithNull(t,"parent");const r=e?e.parentNode:null;return r&&11!==r.nodeType?r:null}parent(){return W.parent(this)}static parents(t,e){return W.domDir(t,"parentNode",e,"parents")}parents(t){return W.parents(this,t)}static next(t){return W._getSibling(t,"nextSibling","next")}next(){return W.next(this)}static prev(t){return W._getSibling(t,"previousSibling","prev")}prev(){return W.prev(this)}static nextAll(t){return W.domDir(t,"nextSibling",void 0,"nextAll")}nextAll(){return W.nextAll(this)}static prevAll(t){return W.domDir(t,"previousSibling",void 0,"prevAll")}prevAll(){return W.prevAll(this)}static nextUntil(t,e){return W.domDir(t,"nextSibling",e,"nextUtil")}nextUntil(t){return W.nextUntil(this,t)}static prevUntil(t,e){return W.domDir(t,"previousSibling",e,"prevUtil")}prevUntil(t){return W.prevUntil(this,t)}static siblings(t){const e=W._preNodeElemWithNull(t,"siblings");return W._getSiblings(e&&e.parentNode?e.parentNode.firstChild:null,e)}siblings(){return W.siblings(this)}static children(t){const e=W._preNodeElemWithNull(t,"children");return W._getSiblings(e?e.firstChild:null)}children(){return W.children(this)}static contents(t){const e=W._preNodeElemWithNull(t,"contents");return e instanceof HTMLIFrameElement&&null!=e.contentDocument&&Object.getPrototypeOf(e.contentDocument)?[e.contentDocument]:e instanceof HTMLTemplateElement?Array.from((e.content||e).childNodes):e?Array.from(e.childNodes):[]}contents(){return W.contents(this)}static clone(t,e=!0){if("boolean"!=typeof e)throw new TypeError('The "deep" must be a boolean.');return W._preNodeElems(t,"clone").map(t=>t.cloneNode(e))}clone(t){return W.clone(this,t)[0]}static _appendChecker(t,...e){const r=[],n=[...e];for(const e in n)"string"!=typeof n[e]?r.push(W._preNodeElem(n[e],t)):r.push(n[e]);return r}static append(t,...e){return W._preElem(t,"append").append(...W._appendChecker("append",...e)),t}append(...t){return W.append(this,...t)}static prepend(t,...e){return W._preElem(t,"prepend").prepend(...W._appendChecker("prepend",...e)),t}prepend(...t){return W.prepend(this,...t)}static before(t,...e){return W._preElem(t,"before").before(...W._appendChecker("before",...e)),t}before(...t){return W.before(this,...t)}static after(t,...e){return W._preElem(t,"after").after(...W._appendChecker("after",...e)),t}after(...t){return W.after(this,...t)}static replaceWith(t,...e){return W._preElem(t,"replaceWith").replaceWith(...W._appendChecker("replaceWith",...e)),t}replaceWith(...t){return W.replaceWith(this,...t)}static appendTo(t,e){const r=W._preNodeElems(t,"appendTo"),n=W._preNodeElems(e,"appendTo");return n.forEach((t,e)=>{r.forEach(r=>t.appendChild(e===n.length-1?r:r.cloneNode(!0)))}),t}appendTo(t){return W.appendTo(this,t)}static prependTo(t,e){const r=W._preElems(t,"prependTo"),n=W._preElems(e,"prependTo");return n.forEach((t,e)=>{r.slice().reverse().forEach(r=>t.prepend(e===n.length-1?r:r.cloneNode(!0)))}),t}prependTo(t){return W.prependTo(this,t)}static insertBefore(t,e,r=null){const n=W._preNodeElem(t,"insertBefore"),o=W._preNodeElem(e,"insertBefore"),i=W._preNodeElemWithNull(r,"insertBefore");if(!o.parentNode)throw new Error("The target element has no parent node to insert before.");return o.parentNode.insertBefore(n,i||o),t}insertBefore(t,e){return W.insertBefore(this,t,e)}static insertAfter(t,e,r=null){const n=W._preNodeElem(t,"insertAfter"),o=W._preNodeElem(e,"insertBefore"),i=W._preNodeElemWithNull(r,"insertBefore");if(!o.parentNode)throw new Error("The target element has no parent node to insert after.");return o.parentNode.insertBefore(n,i||o.nextSibling),t}insertAfter(t,e){return W.insertAfter(this,t,e)}static replaceAll(t,e){const r=W._preNodeElems(t,"replaceAll"),n=W._preNodeElems(e,"replaceAll");return n.forEach((t,e)=>{const o=t.parentNode;r.forEach(r=>{o&&o.replaceChild(e===n.length-1?r:r.cloneNode(!0),t)})}),t}replaceAll(t){return W.replaceAll(this,t)}#t;get size(){return this.#t.length}constructor(t){if(t instanceof W)throw new Error("[TinyHtml] You are trying to put a TinyHtml inside another TinyHtml in constructor.");const e=t=>{if(!t.every(t=>t instanceof Element||t instanceof Window||t instanceof Document||t instanceof Text))throw new Error("[TinyHtml] Invalid Target in constructor.")};if(Array.isArray(t))e(t),this.#t=t;else if(t instanceof NodeList||t instanceof HTMLCollection){const r=[...t];e(r),this.#t=r}else{const r=[t];e(r),this.#t=r}}static isWindow(t){return null!=t&&t===t.window}static css(t){const e=W._preElem(t,"css");return window.getComputedStyle(e)}css(){return W.css(this)}static cssString(t,e){const r=W._preElem(t,"cssString");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const n=window.getComputedStyle(r)[e];return"string"==typeof n?n:"number"==typeof n?n.toString():null}cssString(t){return W.cssString(this,t)}static cssList(t,e){const r=W._preElem(t,"cssList");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const n=window.getComputedStyle(r),o={};for(const t of e)void 0!==t&&(o[t]=n.getPropertyValue(t));return o}cssList(t){return W.cssList(this,t)}static cssFloat(t,e){const r=W._preElem(t,"cssFloat");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const n=window.getComputedStyle(r)[e];return parseFloat(n)||0}cssFloat(t){return W.cssFloat(this,t)}static cssFloats(t,e){const r=W._preElem(t,"cssFloats");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const n=window.getComputedStyle(r),o={};for(const t of e)o[t]=parseFloat(n[t])||0;return o}cssFloats(t){return W.cssFloats(this,t)}static#r={alignContent:"align-content",alignItems:"align-items",alignSelf:"align-self",animationDelay:"animation-delay",animationDirection:"animation-direction",animationDuration:"animation-duration",animationFillMode:"animation-fill-mode",animationIterationCount:"animation-iteration-count",animationName:"animation-name",animationPlayState:"animation-play-state",animationTimingFunction:"animation-timing-function",backfaceVisibility:"backface-visibility",backgroundAttachment:"background-attachment",backgroundBlendMode:"background-blend-mode",backgroundClip:"background-clip",backgroundColor:"background-color",backgroundImage:"background-image",backgroundOrigin:"background-origin",backgroundPosition:"background-position",backgroundRepeat:"background-repeat",backgroundSize:"background-size",borderBottom:"border-bottom",borderBottomColor:"border-bottom-color",borderBottomLeftRadius:"border-bottom-left-radius",borderBottomRightRadius:"border-bottom-right-radius",borderBottomStyle:"border-bottom-style",borderBottomWidth:"border-bottom-width",borderCollapse:"border-collapse",borderColor:"border-color",borderImage:"border-image",borderImageOutset:"border-image-outset",borderImageRepeat:"border-image-repeat",borderImageSlice:"border-image-slice",borderImageSource:"border-image-source",borderImageWidth:"border-image-width",borderLeft:"border-left",borderLeftColor:"border-left-color",borderLeftStyle:"border-left-style",borderLeftWidth:"border-left-width",borderRadius:"border-radius",borderRight:"border-right",borderRightColor:"border-right-color",borderRightStyle:"border-right-style",borderRightWidth:"border-right-width",borderSpacing:"border-spacing",borderStyle:"border-style",borderTop:"border-top",borderTopColor:"border-top-color",borderTopLeftRadius:"border-top-left-radius",borderTopRightRadius:"border-top-right-radius",borderTopStyle:"border-top-style",borderTopWidth:"border-top-width",borderWidth:"border-width",boxDecorationBreak:"box-decoration-break",boxShadow:"box-shadow",boxSizing:"box-sizing",breakAfter:"break-after",breakBefore:"break-before",breakInside:"break-inside",captionSide:"caption-side",caretColor:"caret-color",clipPath:"clip-path",columnCount:"column-count",columnFill:"column-fill",columnGap:"column-gap",columnRule:"column-rule",columnRuleColor:"column-rule-color",columnRuleStyle:"column-rule-style",columnRuleWidth:"column-rule-width",columnSpan:"column-span",columnWidth:"column-width",counterIncrement:"counter-increment",counterReset:"counter-reset",emptyCells:"empty-cells",flexBasis:"flex-basis",flexDirection:"flex-direction",flexFlow:"flex-flow",flexGrow:"flex-grow",flexShrink:"flex-shrink",flexWrap:"flex-wrap",fontFamily:"font-family",fontFeatureSettings:"font-feature-settings",fontKerning:"font-kerning",fontLanguageOverride:"font-language-override",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontSynthesis:"font-synthesis",fontVariant:"font-variant",fontVariantAlternates:"font-variant-alternates",fontVariantCaps:"font-variant-caps",fontVariantEastAsian:"font-variant-east-asian",fontVariantLigatures:"font-variant-ligatures",fontVariantNumeric:"font-variant-numeric",fontVariantPosition:"font-variant-position",fontWeight:"font-weight",gridArea:"grid-area",gridAutoColumns:"grid-auto-columns",gridAutoFlow:"grid-auto-flow",gridAutoRows:"grid-auto-rows",gridColumn:"grid-column",gridColumnEnd:"grid-column-end",gridColumnGap:"grid-column-gap",gridColumnStart:"grid-column-start",gridGap:"grid-gap",gridRow:"grid-row",gridRowEnd:"grid-row-end",gridRowGap:"grid-row-gap",gridRowStart:"grid-row-start",gridTemplate:"grid-template",gridTemplateAreas:"grid-template-areas",gridTemplateColumns:"grid-template-columns",gridTemplateRows:"grid-template-rows",imageRendering:"image-rendering",justifyContent:"justify-content",letterSpacing:"letter-spacing",lineBreak:"line-break",lineHeight:"line-height",listStyle:"list-style",listStyleImage:"list-style-image",listStylePosition:"list-style-position",listStyleType:"list-style-type",marginBottom:"margin-bottom",marginLeft:"margin-left",marginRight:"margin-right",marginTop:"margin-top",maskClip:"mask-clip",maskComposite:"mask-composite",maskImage:"mask-image",maskMode:"mask-mode",maskOrigin:"mask-origin",maskPosition:"mask-position",maskRepeat:"mask-repeat",maskSize:"mask-size",maskType:"mask-type",maxHeight:"max-height",maxWidth:"max-width",minHeight:"min-height",minWidth:"min-width",mixBlendMode:"mix-blend-mode",objectFit:"object-fit",objectPosition:"object-position",offsetAnchor:"offset-anchor",offsetDistance:"offset-distance",offsetPath:"offset-path",offsetRotate:"offset-rotate",outlineColor:"outline-color",outlineOffset:"outline-offset",outlineStyle:"outline-style",outlineWidth:"outline-width",overflowAnchor:"overflow-anchor",overflowWrap:"overflow-wrap",overflowX:"overflow-x",overflowY:"overflow-y",paddingBottom:"padding-bottom",paddingLeft:"padding-left",paddingRight:"padding-right",paddingTop:"padding-top",pageBreakAfter:"page-break-after",pageBreakBefore:"page-break-before",pageBreakInside:"page-break-inside",perspectiveOrigin:"perspective-origin",placeContent:"place-content",placeItems:"place-items",placeSelf:"place-self",pointerEvents:"pointer-events",rowGap:"row-gap",scrollBehavior:"scroll-behavior",scrollMargin:"scroll-margin",scrollMarginBlock:"scroll-margin-block",scrollMarginBlockEnd:"scroll-margin-block-end",scrollMarginBlockStart:"scroll-margin-block-start",scrollMarginBottom:"scroll-margin-bottom",scrollMarginInline:"scroll-margin-inline",scrollMarginInlineEnd:"scroll-margin-inline-end",scrollMarginInlineStart:"scroll-margin-inline-start",scrollMarginLeft:"scroll-margin-left",scrollMarginRight:"scroll-margin-right",scrollMarginTop:"scroll-margin-top",scrollPadding:"scroll-padding",scrollPaddingBlock:"scroll-padding-block",scrollPaddingBlockEnd:"scroll-padding-block-end",scrollPaddingBlockStart:"scroll-padding-block-start",scrollPaddingBottom:"scroll-padding-bottom",scrollPaddingInline:"scroll-padding-inline",scrollPaddingInlineEnd:"scroll-padding-inline-end",scrollPaddingInlineStart:"scroll-padding-inline-start",scrollPaddingLeft:"scroll-padding-left",scrollPaddingRight:"scroll-padding-right",scrollPaddingTop:"scroll-padding-top",scrollSnapAlign:"scroll-snap-align",scrollSnapStop:"scroll-snap-stop",scrollSnapType:"scroll-snap-type",shapeImageThreshold:"shape-image-threshold",shapeMargin:"shape-margin",shapeOutside:"shape-outside",tabSize:"tab-size",tableLayout:"table-layout",textAlign:"text-align",textAlignLast:"text-align-last",textCombineUpright:"text-combine-upright",textDecoration:"text-decoration",textDecorationColor:"text-decoration-color",textDecorationLine:"text-decoration-line",textDecorationStyle:"text-decoration-style",textIndent:"text-indent",textJustify:"text-justify",textOrientation:"text-orientation",textOverflow:"text-overflow",textShadow:"text-shadow",textTransform:"text-transform",transformBox:"transform-box",transformOrigin:"transform-origin",transformStyle:"transform-style",transitionDelay:"transition-delay",transitionDuration:"transition-duration",transitionProperty:"transition-property",transitionTimingFunction:"transition-timing-function",unicodeBidi:"unicode-bidi",userSelect:"user-select",verticalAlign:"vertical-align",whiteSpace:"white-space",willChange:"will-change",wordBreak:"word-break",wordSpacing:"word-spacing",wordWrap:"word-wrap",writingMode:"writing-mode",zIndex:"z-index",WebkitTransform:"-webkit-transform",WebkitTransition:"-webkit-transition",WebkitBoxShadow:"-webkit-box-shadow",MozBoxShadow:"-moz-box-shadow",MozTransform:"-moz-transform",MozTransition:"-moz-transition",msTransform:"-ms-transform",msTransition:"-ms-transition"};static cssPropAliases=new Proxy(W.#r,{set:(t,e,r)=>(t[e]=r,W.cssPropRevAliases[r]=e,!0)});static cssPropRevAliases=Object.fromEntries(Object.entries(W.#r).map(([t,e])=>[e,t]));static toStyleKc(t){return"string"==typeof W.cssPropAliases[t]?W.cssPropAliases[t]:t}static toStyleCc(t){return"string"==typeof W.cssPropRevAliases[t]?W.cssPropRevAliases[t]:t}static setStyle(t,e,r=null){return W._preHtmlElems(t,"setStyle").forEach(t=>{if("object"==typeof e)for(const[r,n]of Object.entries(e))t.style.setProperty(W.toStyleKc(r),"string"==typeof n?n:"number"==typeof n?`${n}px`:String(n));else t.style.setProperty(W.toStyleKc(e),r)}),t}setStyle(t,e){return W.setStyle(this,t,e)}static getStyle(t,e){return W._preHtmlElem(t,"getStyle").style.getPropertyValue(W.toStyleKc(e))}getStyle(t){return W.getStyle(this,t)}static style(t,{camelCase:e=!1,rawAttr:r=!1}={}){if("boolean"!=typeof e)throw new TypeError('"camelCase" must be a boolean. Received: '+typeof e);if("boolean"!=typeof r)throw new TypeError('"rawAttr" must be a boolean. Received: '+typeof r);const n=W._preHtmlElem(t,"style"),o={};if(r){const t=(n.getAttribute("style")||"").split(";");for(const r of t){const[t,n]=r.split(":");if(!t||!n)continue;const i=t.trim(),s=n.trim();o[e?W.toStyleCc(i):i]=s}}else{const t=n.style;for(let r=0;r<t.length;r++){const n=t[r],i=t.getPropertyValue(n);o[e?W.toStyleCc(n):n]=i}}return o}style(t){return W.style(this,t)}static removeStyle(t,e){return W._preHtmlElems(t,"removeStyle").forEach(t=>{if(Array.isArray(e))for(const r of e)t.style.removeProperty(W.toStyleKc(r));else t.style.removeProperty(W.toStyleKc(e))}),t}removeStyle(t){return W.removeStyle(this,t)}static toggleStyle(t,e,r,n){return W._preHtmlElems(t,"toggleStyle").forEach(t=>{const o=W.getStyle(t,e).trim()===W.toStyleKc(r)?n:r;W.setStyle(t,e,o)}),t}toggleStyle(t,e,r){return W.toggleStyle(this,t,e,r)}static clearStyle(t){return W._preElems(t,"clearStyle").forEach(t=>t.removeAttribute("style")),t}clearStyle(){return W.clearStyle(this)}static focus(t){return W._preHtmlElem(t,"focus").focus(),t}focus(){return W.focus(this)}static blur(t){return W._preHtmlElem(t,"blur").blur(),t}blur(){return W.blur(this)}static select(t){const e=W._preHtmlElem(t,"select");if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement))throw new Error("Element must be an <input> or <textarea> to use select().");return e.select(),t}select(){return W.select(this)}static boolCheck(t){return void 0!==t&&("true"===t||"1"===t||!0===t||"on"===t||"number"==typeof t&&t>0)}static setWinScrollTop(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");W.setScrollTop(window,t)}static setWinScrollLeft(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");W.setScrollLeft(window,t)}static winScrollTop(){return window.scrollY||document.documentElement.scrollTop}static winScrollLeft(){return window.scrollX||document.documentElement.scrollLeft}static winInnerHeight(){return window.innerHeight||document.documentElement.clientHeight}static winInnerWidth(){return window.innerWidth||document.documentElement.clientWidth}static isPageTop(){return 0===window.scrollY}static isPageBottom(){return window.innerHeight+window.scrollY>=document.body.offsetHeight}static getDimension(t,e,r="content"){const n=W._preElemAndWinAndDoc(t,"getDimension");if("string"!=typeof e)throw new TypeError("The type must be a string.");if("string"!=typeof r)throw new TypeError("The extra must be a string.");const o="width"===e?"Width":"Height";if(W.isWindow(n))return"margin"===r?n["inner"+o]:n.document.documentElement["client"+o];const i=n;if(9===i.nodeType){const t=i.documentElement;return Math.max(i.body["scroll"+o],t["scroll"+o],i.body["offset"+o],t["offset"+o],t["client"+o])}let s=i.getBoundingClientRect()[e];function l(t){return"width"===e?W.cssFloat(i,t+"Left")+W.cssFloat(i,t+"Right"):W.cssFloat(i,t+"Top")+W.cssFloat(i,t+"Bottom")}switch(r){case"content":s-=l("padding"),s-=l("border");break;case"padding":s-=l("border");break;case"border":break;case"margin":s+=l("margin")}return s}getDimension(t,e){return W.getDimension(this,t,e)}static setHeight(t,e){const r=W._preHtmlElem(t,"setHeight");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.height="number"==typeof e?`${e}px`:e,t}setHeight(t){return W.setHeight(this,t)}static setWidth(t,e){const r=W._preHtmlElem(t,"setWidth");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.width="number"==typeof e?`${e}px`:e,t}setWidth(t){return W.setWidth(this,t)}static height(t){const e=W._preElemAndWinAndDoc(t,"height");return W.getDimension(e,"height","content")}height(){return W.height(this)}static width(t){const e=W._preElemAndWinAndDoc(t,"width");return W.getDimension(e,"width","content")}width(){return W.width(this)}static innerHeight(t){const e=W._preElemAndWinAndDoc(t,"innerHeight");return W.getDimension(e,"height","padding")}innerHeight(){return W.innerHeight(this)}static innerWidth(t){const e=W._preElemAndWinAndDoc(t,"innerWidth");return W.getDimension(e,"width","padding")}innerWidth(){return W.innerWidth(this)}static outerHeight(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=W._preElemAndWinAndDoc(t,"outerHeight");return W.getDimension(r,"height",e?"margin":"border")}outerHeight(t){return W.outerHeight(this,t)}static outerWidth(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=W._preElemAndWinAndDoc(t,"outerWidth");return W.getDimension(r,"width",e?"margin":"border")}outerWidth(t){return W.outerWidth(this,t)}static animate(t,e,r){return W._preElems(t,"animate").forEach(t=>t.animate(e,r)),t}animate(t,e){return W.animate(this,t,e)}static offset(t){const e=W._preElem(t,"offset").getBoundingClientRect(),r=window.scrollY||document.documentElement.scrollTop,n=window.scrollX||document.documentElement.scrollLeft;return{top:e.top+r,left:e.left+n}}offset(){return W.offset(this)}static position(t){const e=W._preHtmlElem(t,"position");let r,n,o={top:0,left:0};if("fixed"===window.getComputedStyle(e).position)n=e.getBoundingClientRect();else{n=W.offset(e),r=e.offsetParent||document.documentElement;const{position:t}=window.getComputedStyle(r);for(;r instanceof HTMLElement&&(r===document.body||r===document.documentElement)&&"static"===t;)r=r.parentNode;if(r instanceof HTMLElement&&r!==e&&1===r.nodeType){const{borderTopWidth:t,borderLeftWidth:e}=W.cssFloats(r,["borderTopWidth","borderLeftWidth"]);o=W.offset(r),o.top+=t,o.left+=e}}return{top:n.top-o.top-W.cssFloat(e,"marginTop"),left:n.left-o.left-W.cssFloat(e,"marginLeft")}}position(){return W.position(this)}static offsetParent(t){let e=W._preHtmlElem(t,"offsetParent").offsetParent;for(;e instanceof HTMLElement&&"static"===window.getComputedStyle(e).position;)e=e.offsetParent;return e instanceof HTMLElement?e:document.documentElement}offsetParent(){return W.offsetParent(this)}static scrollTop(t){const e=W._preElemAndWindow(t,"scrollTop");return W.isWindow(e)?e.pageYOffset:9===e.nodeType?e.defaultView.pageYOffset:e.scrollTop}scrollTop(){return W.scrollTop(this)}static scrollLeft(t){const e=W._preElemAndWindow(t,"scrollLeft");return W.isWindow(e)?e.pageXOffset:9===e.nodeType?e.defaultView.pageXOffset:e.scrollLeft}scrollLeft(){return W.scrollLeft(this)}static easings={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>t*(2-t),easeInOutQuad:t=>t<.5?2*t*t:(4-2*t)*t-1,easeInCubic:t=>t*t*t,easeOutCubic:t=>--t*t*t+1,easeInOutCubic:t=>t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1};static scrollToXY(t,{targetX:e,targetY:r,duration:n,easing:o,onAnimation:i}={}){if(void 0!==e&&"number"!=typeof e)throw new TypeError("`targetX` must be a number if provided.");if(void 0!==r&&"number"!=typeof r)throw new TypeError("`targetY` must be a number if provided.");if(void 0!==n&&"number"!=typeof n)throw new TypeError("`duration` must be a number if provided.");if(void 0!==o&&"string"!=typeof o)throw new TypeError("`easing` must be a string if provided.");if(void 0!==o&&"function"!=typeof W.easings[o])throw new TypeError(`Unknown easing function: "${o}".`);if(void 0!==i&&"function"!=typeof i)throw new TypeError("`onAnimation` must be a function if provided.");const s=(t,e,r,n)=>{if(t instanceof Window)window.scrollTo(e,r);else if(9===t.nodeType)t.defaultView.scrollTo(e,r);else{const n=t instanceof Window?window.scrollX:t.scrollLeft,o=t instanceof Window?window.scrollY:t.scrollTop;n!==e&&(t.scrollLeft=e),o!==r&&(t.scrollTop=r)}"function"==typeof i&&i({x:e,y:r,isComplete:n>=1,time:n})};return W._preElemsAndWindow(t,"scrollToXY").forEach(t=>{const i=t instanceof Window?window.scrollX:t.scrollLeft,l=t instanceof Window?window.scrollY:t.scrollTop,a=e??i,c=r??l,m=a-i,p=c-l,u="string"==typeof o&&W.easings[o]||null;if("number"!=typeof n||"function"!=typeof u)return s(t,a,c,1);const d=performance.now(),f=n??0;requestAnimationFrame(function e(r){if("function"!=typeof u)return;const n=Math.min(1,(r-d)/f),o=u(n);s(t,i+m*o,l+p*o,n),n<1&&requestAnimationFrame(e)})}),t}scrollToXY({targetX:t,targetY:e,duration:r,easing:n,onAnimation:o}={}){return W.scrollToXY(this,{targetX:t,targetY:e,duration:r,easing:n,onAnimation:o})}static setScrollTop(t,e){if("number"!=typeof e)throw new TypeError("ScrollTop value must be a number.");return W.scrollToXY(t,{targetY:e})}setScrollTop(t){return W.setScrollTop(this,t)}static setScrollLeft(t,e){if("number"!=typeof e)throw new TypeError("ScrollLeft value must be a number.");return W.scrollToXY(t,{targetX:e})}setScrollLeft(t){return W.setScrollLeft(this,t)}static borderWidth(t){const e=W._preElem(t,"borderWidth"),{borderLeftWidth:r,borderRightWidth:n,borderTopWidth:o,borderBottomWidth:i}=W.cssFloats(e,["borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}borderWidth(){return W.borderWidth(this)}static border(t){const e=W._preElem(t,"border"),{borderLeft:r,borderRight:n,borderTop:o,borderBottom:i}=W.cssFloats(e,["borderLeft","borderRight","borderTop","borderBottom"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}border(){return W.border(this)}static margin(t){const e=W._preElem(t,"margin"),{marginLeft:r,marginRight:n,marginTop:o,marginBottom:i}=W.cssFloats(e,["marginLeft","marginRight","marginTop","marginBottom"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}margin(){return W.margin(this)}static padding(t){const e=W._preElem(t,"padding"),{paddingLeft:r,paddingRight:n,paddingTop:o,paddingBottom:i}=W.cssFloats(e,["paddingLeft","paddingRight","paddingTop","paddingBottom"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}padding(){return W.padding(this)}static addClass(t,...e){return W._preElems(t,"addClass").forEach(t=>t.classList.add(...e)),t}addClass(...t){return W.addClass(this,...t)}static removeClass(t,...e){return W._preElems(t,"removeClass").forEach(t=>t.classList.remove(...e)),t}removeClass(...t){return W.removeClass(this,...t)}static replaceClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if("string"!=typeof r)throw new TypeError('The "newToken" parameter must be a string.');const n=[];return W._preElems(t,"replaceClass").forEach(t=>n.push(t.classList.replace(e,r))),n}replaceClass(t,e){return W.replaceClass(this,t,e)[0]}static classItem(t,e){const r=W._preElem(t,"classItem");if("number"!=typeof e)throw new TypeError('The "index" parameter must be a number.');return r.classList.item(e)}classItem(t){return W.classItem(this,t)}static toggleClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" parameter must be a boolean.');const n=[];return W._preElems(t,"toggleClass").forEach(t=>n.push(t.classList.toggle(e,r))),n}toggleClass(t,e){return W.toggleClass(this,t,e)[0]}static hasClass(t,e){const r=W._preElem(t,"hasClass");if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');return r.classList.contains(e)}hasClass(t){return W.hasClass(this,t)}static classLength(t){return W._preElem(t,"classLength").classList.length}classLength(){return W.classLength(this)}static classList(t){return W._preElem(t,"classList").classList.values().toArray()}classList(){return W.classList(this)}static tagName(t){return W._preElem(t,"tagName").tagName}tagName(){return W.tagName(this)}static id(t){return W._preElem(t,"id").id}id(){return W.id(this)}static text(t){return W._preElem(t,"text").textContent}text(){return W.text(this)}static setText(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return W._preElems(t,"setText").forEach(t=>t.textContent=e),t}setText(t){return W.setText(this,t)}static empty(t){return W._preElems(t,"empty").forEach(t=>t.textContent=""),t}empty(){return W.empty(this)}static html(t,e){return W._preElem(t,"html").getHTML(e)}html(t){return W.html(this,t)}static setHtml(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return W._preElems(t,"setHtml").forEach(t=>t.innerHTML=e),t}setHtml(t){return W.setHtml(this,t)}static _valHooks={option:{get:t=>{const e=t.getAttribute("value");return null!=e?e:t.textContent}},select:{get:t=>{const e=t.options,r=t.selectedIndex,n="select-one"===t.type,o=n?r+1:e.length,i=[];let s=r<0?o:n?r:0;for(;s<o;s++){const t=e[s],o=t.parentNode;if((t.selected||s===r)&&!t.disabled&&(!o||!o.disabled||"OPTGROUP"!==o.tagName)){const e=W._valHooks.option.get(t);if(n)return e;i.push(e)}}return i},set:(t,e)=>{const r=t.options,n=Array.isArray(e)?e.map(String):[String(e)];let o=!1;for(let t=0;t<r.length;t++){const e=r[t],i=W._valHooks.option.get(e);"string"==typeof i&&(e.selected=n.includes(i))&&(o=!0)}return o||(t.selectedIndex=-1),n}},radio:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e){const r=t.closest("label");return e&&r&&r.querySelectorAll('input[type="radio"]').forEach(e=>{e instanceof HTMLInputElement&&e!==t&&(e.checked=!1)}),t.checked=e,e}}},checkbox:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e)return t.checked=e,e}}};static setVal(t,e){return W._preInputElems(t,"setVal").forEach(t=>{if(1!==t.nodeType)return;let r="function"==typeof e?e(t,W.val(t)):e;null==r?r="":"number"==typeof r?r=String(r):Array.isArray(r)&&(r=((t,e)=>{const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n]));return r})(r,t=>null==t?"":String(t)));const n=W._valHooks[t.type]||W._valHooks[t.nodeName.toLowerCase()];if(!n||"function"!=typeof n.set||void 0===n.set(t,r,"value")){if("string"!=typeof r&&"boolean"!=typeof r)throw new Error(`Invalid setValue "${typeof r}" value.`);"string"==typeof r&&(t.value=r)}}),t}setVal(t){return W.setVal(this,t)}static _valTypes={string:t=>t.value,date:t=>t.valueAsDate,number:t=>t.valueAsNumber};static _getValByType(t,e,r){if("string"!=typeof e)throw new TypeError('The "type" must be a string.');if("string"!=typeof r)throw new TypeError('The "where" must be a string.');if(!(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement))throw new Error(`Provided element is not an HTMLInputElement in ${r}().`);if("function"!=typeof W._valTypes[e])throw new Error(`No handler found for type "${e}" in ${r}().`);return W._valTypes[e](t)}static _val(t,e,r){const n=W._preInputElem(t,e),o=W._valHooks[n.type]||W._valHooks[n.nodeName.toLowerCase()];if(o&&"function"==typeof o.get){const t=o.get(n,"value",r);if(void 0!==t)return"string"==typeof t?t.replace(/\r/g,""):t}return W._getValByType(n,r,e)}_val(t,e){return W._val(this,t,e)}static val(t){return W._val(t,"val","string")}val(){return W.val(this)}static valTxt(t){const e=W._val(t,"valTxt","string");if("string"!=typeof e&&null!==e)throw new Error("Value is not a valid string.");return null==e?"":"string"==typeof e?e.replace(/\r/g,""):e}valTxt(){return W.valTxt(this)}static _valArr(t,e,r){const n=W._val(t,e,r);if(!Array.isArray(n))throw new Error(`Value expected an array but got ${typeof n}.`);return n}_valArr(t,e){return W._valArr(this,t,e)}static valArr(t){return W._valArr(t,"valArr","string")}valArr(){return W.valArr(this)}static valNb(t){if(!(W._preInputElem(t,"valNb")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=W._val(t,"valNb","number");if(Number.isNaN(e))throw new Error("Value is not a valid number.");return e}valNb(){return W.valNb(this)}static valDate(t){if(!(W._preInputElem(t,"valDate")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=W._val(t,"valDate","date");if(!(e instanceof Date))throw new Error("Value is not a valid date.");return e}valDate(){return W.valDate(this)}static valBool(t){const e=W._preInputElem(t,"valBool");if(!(e instanceof HTMLInputElement))throw new Error("Element must be an input element.");return"on"===W.val(e)}valBool(){return W.valBool(this)}static listenForPaste(t,{onFilePaste:e,onTextPaste:r}={}){if(void 0!==e&&"function"!=typeof e)throw new TypeError("onFilePaste must be a function.");if(void 0!==r&&"function"!=typeof r)throw new TypeError("onTextPaste must be a function.");const n=t=>{if(!(t instanceof ClipboardEvent))return;const n=t.clipboardData?.items||[];for(const t of n)if("file"===t.kind){if("function"==typeof e){const r=t.getAsFile();r&&e(t,r)}}else"string"===t.kind&&"function"==typeof r&&t.getAsString(e=>r(t,e))};return W._preElemsWithDoc(t,"listenForPaste").forEach(t=>W.on(t,"paste",n)),n}listenForPaste({onFilePaste:t,onTextPaste:e}={}){return W.listenForPaste(this,{onFilePaste:t,onTextPaste:e})}static hasEventListener(t,e){const r=W._preEventTargetElem(t,"hasEventListener");if(!S.has(r))return!1;const n=S.get(r);return!!(n&&Array.isArray(n[e])&&n[e].length>0)}hasEventListener(t){return W.hasEventListener(this,t)}static hasExactEventListener(t,e,r){const n=W._preEventTargetElem(t,"hasExactEventListener");if("function"!=typeof r)throw new TypeError('The "handler" must be a function.');if(!S.has(n))return!1;const o=S.get(n);return!(!o||!Array.isArray(o[e]))&&o[e].some(t=>t.handler===r)}hasExactEventListener(t,e){return W.hasExactEventListener(this,t,e)}static on(t,e,r,n){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const o of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof o)throw new TypeError("The event name must be a string.");W._preEventTargetElems(t,"on").forEach(t=>{t.addEventListener(o,r,n),S.has(t)||S.set(t,{});const e=S.get(t);e&&(Array.isArray(e[o])||(e[o]=[]),e[o].push({handler:r,options:n}))})}return t}on(t,e,r){return W.on(this,t,e,r)}static once(t,e,r,n={}){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const o of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof o)throw new TypeError("The event name must be a string.");W._preEventTargetElems(t,"once").forEach(t=>{const e=n=>{W.off(t,o,e),"function"==typeof r&&r(n)};W.on(t,o,e,"boolean"==typeof n?n:{...n,once:!0})})}return t}once(t,e,r={}){return W.once(this,t,e,r)}static off(t,e,r,n){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const o of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof o)throw new TypeError("The event name must be a string.");W._preEventTargetElems(t,"off").forEach(t=>{t.removeEventListener(o,r,n);const e=S.get(t);e&&e[o]&&(e[o]=e[o].filter(t=>t.handler!==r),0===e[o].length&&delete e[o])})}return t}off(t,e,r){return W.off(this,t,e,r)}static offAll(t,e){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const r of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof r)throw new TypeError("The event name must be a string.");W._preEventTargetElems(t,"offAll").forEach(t=>{const e=S.get(t);if(e&&e[r]){for(const n of e[r])t.removeEventListener(r,n.handler,n.options);delete e[r]}})}return t}offAll(t){return W.offAll(this,t)}static offAllTypes(t,e=null){if(null!==e&&"function"!=typeof e)throw new TypeError('The "filterFn" must be a function.');return W._preEventTargetElems(t,"offAllTypes").forEach(t=>{const r=S.get(t);if(r){for(const n in r)for(const o of r[n])("function"!=typeof e||e(o.handler,n))&&t.removeEventListener(n,o.handler,o.options);S.delete(t)}}),t}offAllTypes(t=null){return W.offAllTypes(this,t)}static trigger(t,e,r={}){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const n of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof n)throw new TypeError("The event name must be a string.");W._preEventTargetElems(t,"trigger").forEach(t=>{const e=r instanceof Event||r instanceof CustomEvent?r:new CustomEvent(n,{bubbles:!0,cancelable:!0,detail:r});t.dispatchEvent(e)})}return t}trigger(t,e={}){return W.trigger(this,t,e)}static#n={for:"htmlFor",class:"className"};static propFix=new Proxy(W.#n,{set:(t,e,r)=>(t[e]=r,W.attrFix[r]=e,!0)});static attrFix=Object.fromEntries(Object.entries(W.#n).map(([t,e])=>[e,t]));static getPropName(t){return"string"==typeof W.propFix[t]?W.propFix[t]:t}static getAttrName(t){return"string"==typeof W.attrFix[t]?W.attrFix[t]:t}static attr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElem(t,"attr").getAttribute(W.getAttrName(e))}attr(t){return W.attr(this,t)}static setAttr(t,e,r=null){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(null!==r&&"string"!=typeof r)throw new TypeError('The "value" must be a string.');return W._preElems(t,"setAttr").forEach(t=>{null===r?t.removeAttribute(W.getAttrName(e)):t.setAttribute(W.getAttrName(e),r)}),t}setAttr(t,e){return W.setAttr(this,t,e)}static removeAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"removeAttr").forEach(t=>t.removeAttribute(W.getAttrName(e))),t}removeAttr(t){return W.removeAttr(this,t)}static hasAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElem(t,"hasAttr").hasAttribute(W.getAttrName(e))}hasAttr(t){return W.hasAttr(this,t)}static hasProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return!!W._preElem(t,"hasProp")[W.getPropName(e)]}hasProp(t){return W.hasProp(this,t)}static addProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"addProp").forEach(t=>{t[W.getPropName(e)]=!0}),t}addProp(t){return W.addProp(this,t)}static removeProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"removeProp").forEach(t=>{t[W.getPropName(e)]=!1}),t}removeProp(t){return W.removeProp(this,t)}static toggleProp(t,e,r){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" must be a boolean.');W._preElems(t,"toggleProp").forEach(t=>{(void 0===r?!t[W.getPropName(e)]:r)?W.addProp(t,e):W.removeProp(t,e)})}toggleProp(t,e){return W.toggleProp(this,t,e)}static remove(t){return W._preElems(t,"remove").forEach(t=>t.remove()),t}remove(){return W.remove(this)}static index(t,e=null){const r=W._preElem(t,"index");if(!r)return-1;if(!e)return Array.prototype.indexOf.call(r.parentNode?.children||[],r);if(e){const t="string"==typeof e?document.querySelectorAll(e):W._preElems(e,"index");return Array.prototype.indexOf.call(t,r)}return-1}index(t){return W.index(this,t)}static _getCustomRect(t,e){const r={height:0,width:0,x:0,y:0,bottom:0,left:0,right:0,top:0,toJSON:function(){throw new Error("Function not implemented.")}};for(const e in t)"number"==typeof t[e]&&(r[e]=t[e]);if("object"!=typeof e||null===e||Array.isArray(e))throw new Error("extraRect must be a non-null object.");const{height:n=0,width:o=0,top:i=0,bottom:s=0,left:l=0,right:a=0}=e;if("number"!=typeof n)throw new Error("extraRect.height must be a number.");if("number"!=typeof o)throw new Error("extraRect.width must be a number.");if("number"!=typeof i)throw new Error("extraRect.top must be a number.");if("number"!=typeof s)throw new Error("extraRect.bottom must be a number.");if("number"!=typeof l)throw new Error("extraRect.left must be a number.");if("number"!=typeof a)throw new Error("extraRect.right must be a number.");return r.height+=n,r.width+=o,r.top+=i,r.bottom+=s,r.left+=l,r.right+=a,r}static isCollWith(t,e,r={}){const n=W._getCustomRect(W._preElem(t,"isCollWith").getBoundingClientRect(),r),o=W._preElem(e,"isCollWith").getBoundingClientRect();return T(n,o)}isCollWith(t,e){return W.isCollWith(this,t,e)}static isCollPerfWith(t,e,r={}){const n=W._getCustomRect(W._preElem(t,"isCollPerfWith").getBoundingClientRect(),r),o=W._preElem(e,"isCollPerfWith").getBoundingClientRect();return v(n,o)}isCollPerfWith(t,e){return W.isCollPerfWith(this,t,e)}static _isCollWithLock(t,e,r,n,o){const i=k[o];if(t)return i.has(n)||i.set(n,!0),!0;if(i.has(n)){let t=!1;switch(o){case"top":t=_(e,r);break;case"bottom":t=A(e,r);break;case"left":t=x(e,r);break;case"right":t=C(e,r)}return t&&i.delete(n),i.has(n)}return!1}static isCollWithLock(t,e,r,n={}){const o=W._preElem(t,"isCollWithLock"),i=W._preElem(e,"isCollWithLock"),s=W._getCustomRect(o.getBoundingClientRect(),n),l=i.getBoundingClientRect(),a=T(s,l);return W._isCollWithLock(a,s,l,o,r)}isCollWithLock(t,e,r){return W.isCollWithLock(this,t,e,r)}static isCollPerfWithLock(t,e,r,n={}){const o=W._preElem(t,"isCollPerfWithLock"),i=W._preElem(e,"isCollPerfWithLock"),s=W._getCustomRect(o.getBoundingClientRect(),n),l=i.getBoundingClientRect(),a=v(s,l);return W._isCollWithLock(a,s,l,o,r)}isCollPerfWithLock(t,e,r){return W.isCollPerfWithLock(this,t,e,r)}static resetCollLock(t){const e=W._preElem(t,"resetCollLock");let r=!1;for(const t of["top","bottom","left","right"])k[t].has(e)&&(k[t].delete(e),r=!0);return r}resetCollLock(){return W.resetCollLock(this)}static resetCollLockDir(t,e){const r=W._preElem(t,"resetCollLockDir"),n=k[e];return!!n.has(r)&&(n.delete(r),!0)}resetCollLockDir(t){return W.resetCollLockDir(this,t)}static isInViewport(t){const e=W._preElem(t,"isInViewport");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=W.offset(e).top,n=r+W.outerHeight(e),o=W.scrollTop(window),i=o+W.height(window);return n>o&&r<i}isInViewport(){return W.isInViewport(this)}static isScrolledIntoView(t){const e=W._preElem(t,"isScrolledIntoView");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=W.scrollTop(window),n=r+W.height(window),o=W.offset(e).top;return o+W.height(e)<=n&&o>=r}isScrolledIntoView(){return W.isScrolledIntoView(this)}static isInContainer(t,e){const r=W._preElem(t,"isInContainer"),n=W._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const o=r.getBoundingClientRect(),i=n.getBoundingClientRect(),s=o.bottom>i.top&&o.top<i.bottom,l=o.right>i.left&&o.left<i.right;return s&&l}isInContainer(t){return W.isInContainer(this,t)}static isFullyInContainer(t,e){const r=W._preElem(t,"isScrolledIntoView"),n=W._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const o=r.getBoundingClientRect(),i=n.getBoundingClientRect();return o.top>=i.top&&o.bottom<=i.bottom&&o.left>=i.left&&o.right<=i.right}isFullyInContainer(t){return W.isFullyInContainer(this,t)}static hasScroll(t){const e=W._preElem(t,"hasScroll");return{v:e.scrollHeight>e.clientHeight,h:e.scrollWidth>e.clientWidth}}hasScroll(){return W.hasScroll(this)}}const N=W;window.TinyHtml=e.TinyHtml})();
|
|
1
|
+
(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{TinyHtml:()=>W});var r={};t.r(r),t.d(r,{areElsCollBottom:()=>o,areElsCollLeft:()=>i,areElsCollPerfBottom:()=>a,areElsCollPerfLeft:()=>c,areElsCollPerfRight:()=>m,areElsCollPerfTop:()=>l,areElsCollRight:()=>s,areElsCollTop:()=>n,areElsColliding:()=>p,areElsPerfColliding:()=>u,getElsCollDetails:()=>w,getElsCollDirDepth:()=>b,getElsCollOverlap:()=>h,getElsCollOverlapPos:()=>g,getElsColliding:()=>f,getElsPerfColliding:()=>d,getElsRelativeCenterOffset:()=>E,getRectCenter:()=>y});const n=(t,e)=>t.bottom<e.top,o=(t,e)=>t.top>e.bottom,i=(t,e)=>t.right<e.left,s=(t,e)=>t.left>e.right,l=(t,e)=>t.bottom<=e.top,a=(t,e)=>t.top>=e.bottom,c=(t,e)=>t.right<=e.left,m=(t,e)=>t.left>=e.right,p=(t,e)=>!(i(t,e)||s(t,e)||n(t,e)||o(t,e)),u=(t,e)=>!(c(t,e)||m(t,e)||l(t,e)||a(t,e)),f=(t,e)=>i(t,e)?"left":s(t,e)?"right":n(t,e)?"top":o(t,e)?"bottom":null,d=(t,e)=>c(t,e)?"left":m(t,e)?"right":l(t,e)?"top":a(t,e)?"bottom":null,h=(t,e)=>({overlapLeft:e.right-t.left,overlapRight:t.right-e.left,overlapTop:e.bottom-t.top,overlapBottom:t.bottom-e.top}),g=({overlapLeft:t=-1,overlapRight:e=-1,overlapTop:r=-1,overlapBottom:n=-1}={})=>({dirX:t<e?"right":"left",dirY:r<n?"bottom":"top"}),y=t=>({x:t.left+t.width/2,y:t.top+t.height/2});function E(t,e){const r=t.left+t.width/2,n=t.top+t.height/2;return{x:e.left+e.width/2-r,y:e.top+e.height/2-n}}function b(t,e){if(!u(t,e))return{inDir:null,dirX:null,dirY:null,depthX:0,depthY:0};const{overlapLeft:r,overlapRight:n,overlapTop:o,overlapBottom:i}=h(t,e),{dirX:s,dirY:l}=g({overlapLeft:r,overlapRight:n,overlapTop:o,overlapBottom:i}),a=Math.min(r,n),c=Math.min(o,i);let m;return m=a<c?s:l,{inDir:m,dirX:s,dirY:l,depthX:a,depthY:c}}function w(t,e){const r=u(t,e),n={in:null,x:null,y:null},o={y:null,x:null},i={top:0,bottom:0,left:0,right:0},{overlapLeft:s,overlapRight:l,overlapTop:a,overlapBottom:c}=h(e,t);i.top=a,i.bottom=c,i.left=s,i.right=l;const m=Object.entries(i).filter(([,t])=>t>0).sort((t,e)=>t[1]-e[1]),{dirX:p,dirY:f}=g({overlapLeft:l,overlapRight:s,overlapTop:c,overlapBottom:a});return n.y=f,n.x=p,i.bottom<0?o.y="bottom":i.top<0&&(o.y="top"),i.left<0?o.x="left":i.right<0&&(o.x="right"),n.in=r?i.top===i.bottom&&i.bottom===i.left&&i.left===i.right?"center":m.length?m[0][0]:"top":null,{dirs:n,depth:i,isNeg:o}}const{areElsColliding:T,areElsPerfColliding:v,areElsCollTop:_,areElsCollBottom:A,areElsCollLeft:x,areElsCollRight:C}=r,S=new WeakMap,L=new WeakMap,N={top:new WeakMap,bottom:new WeakMap,left:new WeakMap,right:new WeakMap};class k{static Utils={...r};static async fetchHtmlFile(t,e={method:"GET"}){const r=await fetch(t,e),n=r.headers.get("Content-Type")||"";if(!r.ok)throw new Error(`Failed to fetch: ${r.status} ${r.statusText}`);if(!n.includes("text/html"))throw new Error(`Invalid content type: ${n} (expected text/html)`);const o=await r.text();return k.htmlToJson(o)}static async fetchHtmlNodes(t,e){const r=await k.fetchHtmlFile(t,e);return k.jsonToNodes(r)}static async fetchHtmlTinyElems(t,e){const r=await k.fetchHtmlNodes(t,e);return k.toTinyElm(r)}static templateToJson(t){return k.htmlToJson([...t.content.childNodes].map(t=>t instanceof Element?t.getHTML():t instanceof Text?t.textContent:"").join(""))}static templateToNodes(t){const e=[];return[...t.content.cloneNode(!0).childNodes].map(t=>{if(!(t instanceof Element||t instanceof Text||t instanceof Comment))throw new Error(`Expected only Element nodes in <template>, but found: ${t.constructor.name}`);t instanceof Comment||e.push(t)}),e}static templateToTinyElems(t){return k.toTinyElm(k.templateToNodes(t))}static htmlToJson(t){const e=document.createElement("div");e.innerHTML=t.trim();const r=[],n=t=>{if(t instanceof Comment)return null;if(t instanceof Text){const e=t.textContent?.trim();return e||null}if(!(t instanceof Element))return null;const e=t.tagName.toLowerCase(),r={};for(const e of t.attributes)r[k.getPropName(e.name)]=e.value;const o=Array.from(t.childNodes).map(n).filter(Boolean);return o.length>0?[e,r,...o]:[e,r]};for(const t of e.childNodes){const e=n(t);e&&r.push(e)}return e.innerHTML="",r}static jsonToNodes(t){const e=t=>{if("string"==typeof t)return document.createTextNode(t);if(!Array.isArray(t))return document.createTextNode("");const[r,n,...o]=t,i=document.createElement(r);for(const[t,e]of Object.entries(n))i.setAttribute(k.getAttrName(t),e);for(const t of o){const r=e(t);r instanceof Comment||i.appendChild(r)}return i};return t.map(e).filter(t=>!(t instanceof Comment))}static jsonToTinyElems(t){return k.toTinyElm(k.jsonToNodes(t))}static createFrom(t,e){if("string"!=typeof t)throw new TypeError('The "tagName" must be a string.');if(void 0!==e&&"object"!=typeof e)throw new TypeError('The "attrs" must be a object.');const r=k.createElement(t);if("object"==typeof e)for(const t in e)r.setAttr(t,e[t]);return r}static createElement(t,e){if("string"!=typeof t)throw new TypeError("[TinyHtml] createElement(): The tagName must be a string.");if(void 0!==e&&"object"!=typeof e)throw new TypeError("[TinyHtml] createElement(): The ops must be a object.");return new k(document.createElement(t,e))}static createTextNode(t){if("string"!=typeof t)throw new TypeError("[TinyHtml] createTextNode(): The value must be a string.");return new k(document.createTextNode(t))}static createElementFromHTML(t){const e=document.createElement("template");if(!(t=t.trim()).startsWith("<"))return k.createTextNode(t);if(e.innerHTML=t,!(e.content.firstChild instanceof Element))throw new Error("The HTML string must contain a valid HTML element.");return new k(e.content.firstChild)}static query(t,e=document){const r=e.querySelector(t);return r?new k(r):null}querySelector(t){return k.query(t,k._preElem(this,"query"))}static queryAll(t,e=document){return new k(e.querySelectorAll(t))}querySelectorAll(t){return k.queryAll(t,k._preElem(this,"queryAll"))}static getById(t){const e=document.getElementById(t);return e?new k(e):null}static getByClassName(t,e=document){return new k(e.getElementsByClassName(t))}getElementsByClassName(t){return k.getByClassName(t,k._preElem(this,"getByClassName"))}static getByName(t){return new k(document.getElementsByName(t))}static getByTagNameNS(t,e="http://www.w3.org/1999/xhtml",r=document){return new k(r.getElementsByTagNameNS(e,t))}getElementsByTagNameNS(t,e="http://www.w3.org/1999/xhtml"){return k.getByTagNameNS(t,e,k._preElem(this,"getByTagNameNS"))}forEach(t){const e=this.getAll().map((t,e)=>this.extract(e));for(const r in e)t(e[r],Number(r),e);return this}get(t){if("number"!=typeof t)throw new TypeError("The index must be a number.");if(!this.#t[t])throw new Error(`No element found at index ${t}.`);return this.#t[t]}extract(t){if("number"!=typeof t)throw new TypeError("The index must be a number.");if(!this.#t[t])throw new Error(`Cannot extract: no element exists at index ${t}.`);return new k(this.#t[t])}exists(t){if("number"!=typeof t)throw new TypeError("The index must be a number.");return!!this.#t[t]}getAll(){return[...this.#t]}_getElement(t,e){if(!(this.#t[e]instanceof Element||this.#t[e]instanceof Window||this.#t[e]instanceof Document||this.#t[e]instanceof Text))throw new Error(`[TinyHtml] Invalid Element in ${t}().`);return this.#t[e]}_getElements(t){if(!this.#t.every(t=>t instanceof Element||t instanceof Window||t instanceof Document||t instanceof Text))throw new Error(`[TinyHtml] Invalid Element in ${t}().`);return[...this.#t]}static _preElemsTemplate(t,e,r,n){const o=t=>{const o=[];return t.map(t=>(t instanceof k?t._getElements(e):[t]).map(t=>{let i=!1;for(const e of r)if(t instanceof e){i=!0;break}if(!i)throw new Error(`[TinyHtml] Invalid element of the list "${n.join(",")}" in ${e}().`);return o.push(t),t})),o};return Array.isArray(t)?o(t):o([t])}static _preElemTemplate(t,e,r,n,o=!1){const i=t=>{const i=t[0],s=i instanceof k?i._getElements(e):[i];if(s.length>1)throw new Error(`[TinyHtml] Invalid element amount in ${e}() (Received ${s.length}/1).`);let l=!1;for(const t of r)if(s[0]instanceof t){l=!0;break}if(!o||null!==s[0]&&void 0!==s[0]||(s[0]=null,l=!0),!l)throw new Error(`[TinyHtml] Invalid element of the list "${n.join(",")}" in ${e}().`);return s[0]};if(!Array.isArray(t))return i([t]);if(t.length>1)throw new Error(`[TinyHtml] Invalid element amount in ${e}() (Received ${t.length}/1).`);return i(t)}static _preElems(t,e){return k._preElemsTemplate(t,e,[Element],["Element"])}static _preElem(t,e){return k._preElemTemplate(t,e,[Element],["Element"])}static _preNodeElems(t,e){return k._preElemsTemplate(t,e,[Node],["Node"])}static _preNodeElem(t,e){return k._preElemTemplate(t,e,[Node],["Node"])}static _preNodeElemWithNull(t,e){return k._preElemTemplate(t,e,[Node],["Node"],!0)}static _preHtmlElems(t,e){return k._preElemsTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preHtmlElem(t,e){return k._preElemTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preInputElems(t,e){return k._preElemsTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preInputElem(t,e){return k._preElemTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preEventTargetElems(t,e){return k._preElemsTemplate(t,e,[EventTarget],["EventTarget"])}static _preEventTargetElem(t,e){return k._preElemTemplate(t,e,[EventTarget],["EventTarget"])}static _preElemsAndWindow(t,e){return k._preElemsTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemAndWindow(t,e){return k._preElemTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemsAndWinAndDoc(t,e){return k._preElemsTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]).map(t=>t instanceof Document?t.documentElement:t)}static _preElemAndWinAndDoc(t,e){const r=k._preElemTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]);return r instanceof Document?r.documentElement:r}static _preElemsWithDoc(t,e){return k._preElemsTemplate(t,e,[Element,Document],["Element","Document"])}static _preElemWithDoc(t,e){return k._preElemTemplate(t,e,[Element,Document],["Element","Document"])}static toTinyElm(t){const e=t=>t.map(t=>t instanceof k?t:new k(t));return Array.isArray(t)?e(t):e([t])}static fromTinyElm(t){const e=t=>{const e=[];return t.map(t=>(t instanceof k?t._getElements("fromTinyElm"):[t]).map(t=>e.push(t))),e};return Array.isArray(t)?e(t):e([t])}static winnow(t,e,r,n=!1){if("boolean"!=typeof n)throw new TypeError('The "not" must be a boolean.');if("function"==typeof e)return k._preElems(t,r).filter((t,r)=>!!e.call(t,r,t)!==n);if(e instanceof Element)return k._preElems(t,r).filter(t=>t===e!==n);if(Array.isArray(e)||"string"!=typeof e&&null!=e.length)return k._preElems(t,r).filter(t=>e.includes(t)!==n);let o=e;return n&&(o=`:not(${o})`),k._preElems(t,r).filter(t=>1===t.nodeType&&t.matches(o))}static filter(t,e,r=!1){return r&&(e=`:not(${e})`),k._preElems(t,"filter").filter(t=>1===t.nodeType&&t.matches(e))}static filterOnly(t,e){return k.winnow(t,e,"filterOnly",!1)}static not(t,e){return k.winnow(t,e,"not",!0)}not(t){return k.not(this,t)}static find(t,e){const r=[];for(const n of k._preElems(t,"find"))r.push(...n.querySelectorAll(e));return[...new Set(r)]}find(t){return k.find(this,t)}static is(t,e){return k.winnow(t,e,"is",!1).length>0}is(t){return k.is(this,t)}static has(t,e){const r="string"==typeof e?[...document.querySelectorAll(e)]:k._preElems(e,"has");return k._preElems(t,"has").filter(t=>r.some(e=>t&&t.contains(e)))}has(t){return k.has(this,t).length>0}static closest(t,e,r){const n=[];for(const o of k._preElems(t,"closest")){let t=o;for(;t&&t!==r;){if(1===t.nodeType&&("string"==typeof e?t.matches(e):t===e)){n.push(t);break}t=t.parentElement}}return[...new Set(n)]}closest(t,e){return k.closest(this,t,e)}static isSameDom(t,e){return k._preNodeElem(t,"isSameDom")===k._preNodeElem(e,"isSameDom")}isSameDom(t){return k.isSameDom(this,t)}#e={};get _data(){return{...this.#e}}set _data(t){if("object"!=typeof t||null===t||Array.isArray(t))throw new Error("value must be a non-null object.");this.#e=t}static _dataSelector={public:(t,e)=>{const r=k._preElem(e,t);let n=L.get(r);return n||(n={},L.set(r,n)),n},private:(t,e)=>{if(!(e instanceof k))throw new Error(`Element must be a TinyHtml instance to execute ${t}().`);return e.#e}};static data(t,e,r=!1){const n=k._dataSelector[r?"private":"public"]("data",t);if(null==e)return{...n};if("string"!=typeof e)throw new TypeError("The key must be a string.");return n.hasOwnProperty(e)?n[e]:void 0}data(t,e){return k.data(this,t,e)}static setData(t,e,r,n=!1){const o=k._dataSelector[n?"private":"public"]("setData",t);if("string"!=typeof e)throw new TypeError("The key must be a string.");return o[e]=r,t}setData(t,e,r=!1){return k.setData(this,t,e,r)}static _getSibling(t,e,r){let n=k._preNodeElemWithNull(t,r);for(;n&&(n=n[e])&&1!==n.nodeType;);return n instanceof Node?n:null}static _getSiblings(t,e){let r=t;const n=[];for(;r;r=r.nextSibling)1===r.nodeType&&r!==e&&n.push(r);return n}static domDir(t,e,r,n="domDir"){if("string"!=typeof e)throw new TypeError('The "direction" must be a string.');let o=k._preNodeElemWithNull(t,n);const i=[];for(;o&&(o=o[e]);)if(1===o.nodeType){if(r&&("string"==typeof r?o.matches(r):o===r))break;i.push(o)}return i}static parent(t){let e=k._preNodeElemWithNull(t,"parent");const r=e?e.parentNode:null;return r&&11!==r.nodeType?r:null}parent(){return k.parent(this)}static parents(t,e){return k.domDir(t,"parentNode",e,"parents")}parents(t){return k.parents(this,t)}static next(t){return k._getSibling(t,"nextSibling","next")}next(){return k.next(this)}static prev(t){return k._getSibling(t,"previousSibling","prev")}prev(){return k.prev(this)}static nextAll(t){return k.domDir(t,"nextSibling",void 0,"nextAll")}nextAll(){return k.nextAll(this)}static prevAll(t){return k.domDir(t,"previousSibling",void 0,"prevAll")}prevAll(){return k.prevAll(this)}static nextUntil(t,e){return k.domDir(t,"nextSibling",e,"nextUtil")}nextUntil(t){return k.nextUntil(this,t)}static prevUntil(t,e){return k.domDir(t,"previousSibling",e,"prevUtil")}prevUntil(t){return k.prevUntil(this,t)}static siblings(t){const e=k._preNodeElemWithNull(t,"siblings");return k._getSiblings(e&&e.parentNode?e.parentNode.firstChild:null,e)}siblings(){return k.siblings(this)}static children(t){const e=k._preNodeElemWithNull(t,"children");return k._getSiblings(e?e.firstChild:null)}children(){return k.children(this)}static contents(t){const e=k._preNodeElemWithNull(t,"contents");return e instanceof HTMLIFrameElement&&null!=e.contentDocument&&Object.getPrototypeOf(e.contentDocument)?[e.contentDocument]:e instanceof HTMLTemplateElement?Array.from((e.content||e).childNodes):e?Array.from(e.childNodes):[]}contents(){return k.contents(this)}static clone(t,e=!0){if("boolean"!=typeof e)throw new TypeError('The "deep" must be a boolean.');return k._preNodeElems(t,"clone").map(t=>t.cloneNode(e))}clone(t){return k.clone(this,t)[0]}static _appendChecker(t,...e){const r=[],n=[...e];for(const e in n)"string"!=typeof n[e]?r.push(k._preNodeElem(n[e],t)):r.push(n[e]);return r}static append(t,...e){return k._preElem(t,"append").append(...k._appendChecker("append",...e)),t}append(...t){return k.append(this,...t)}static prepend(t,...e){return k._preElem(t,"prepend").prepend(...k._appendChecker("prepend",...e)),t}prepend(...t){return k.prepend(this,...t)}static before(t,...e){return k._preElem(t,"before").before(...k._appendChecker("before",...e)),t}before(...t){return k.before(this,...t)}static after(t,...e){return k._preElem(t,"after").after(...k._appendChecker("after",...e)),t}after(...t){return k.after(this,...t)}static replaceWith(t,...e){return k._preElem(t,"replaceWith").replaceWith(...k._appendChecker("replaceWith",...e)),t}replaceWith(...t){return k.replaceWith(this,...t)}static appendTo(t,e){const r=k._preNodeElems(t,"appendTo"),n=k._preNodeElems(e,"appendTo");return n.forEach((t,e)=>{r.forEach(r=>t.appendChild(e===n.length-1?r:r.cloneNode(!0)))}),t}appendTo(t){return k.appendTo(this,t)}static prependTo(t,e){const r=k._preElems(t,"prependTo"),n=k._preElems(e,"prependTo");return n.forEach((t,e)=>{r.slice().reverse().forEach(r=>t.prepend(e===n.length-1?r:r.cloneNode(!0)))}),t}prependTo(t){return k.prependTo(this,t)}static insertBefore(t,e,r=null){const n=k._preNodeElem(t,"insertBefore"),o=k._preNodeElem(e,"insertBefore"),i=k._preNodeElemWithNull(r,"insertBefore");if(!o.parentNode)throw new Error("The target element has no parent node to insert before.");return o.parentNode.insertBefore(n,i||o),t}insertBefore(t,e){return k.insertBefore(this,t,e)}static insertAfter(t,e,r=null){const n=k._preNodeElem(t,"insertAfter"),o=k._preNodeElem(e,"insertBefore"),i=k._preNodeElemWithNull(r,"insertBefore");if(!o.parentNode)throw new Error("The target element has no parent node to insert after.");return o.parentNode.insertBefore(n,i||o.nextSibling),t}insertAfter(t,e){return k.insertAfter(this,t,e)}static replaceAll(t,e){const r=k._preNodeElems(t,"replaceAll"),n=k._preNodeElems(e,"replaceAll");return n.forEach((t,e)=>{const o=t.parentNode;r.forEach(r=>{o&&o.replaceChild(e===n.length-1?r:r.cloneNode(!0),t)})}),t}replaceAll(t){return k.replaceAll(this,t)}#t;get size(){return this.#t.length}constructor(t){if(t instanceof k)throw new Error("[TinyHtml] You are trying to put a TinyHtml inside another TinyHtml in constructor.");const e=t=>{if(!t.every(t=>t instanceof Element||t instanceof Window||t instanceof Document||t instanceof Text))throw new Error("[TinyHtml] Invalid Target in constructor.")};if(Array.isArray(t))e(t),this.#t=t;else if(t instanceof NodeList||t instanceof HTMLCollection){const r=[...t];e(r),this.#t=r}else{const r=[t];e(r),this.#t=r}}static isWindow(t){return null!=t&&t===t.window}static css(t){const e=k._preElem(t,"css");return window.getComputedStyle(e)}css(){return k.css(this)}static cssString(t,e){const r=k._preElem(t,"cssString");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const n=window.getComputedStyle(r)[e];return"string"==typeof n?n:"number"==typeof n?n.toString():null}cssString(t){return k.cssString(this,t)}static cssList(t,e){const r=k._preElem(t,"cssList");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const n=window.getComputedStyle(r),o={};for(const t of e)void 0!==t&&(o[t]=n.getPropertyValue(t));return o}cssList(t){return k.cssList(this,t)}static cssFloat(t,e){const r=k._preElem(t,"cssFloat");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const n=window.getComputedStyle(r)[e];return parseFloat(n)||0}cssFloat(t){return k.cssFloat(this,t)}static cssFloats(t,e){const r=k._preElem(t,"cssFloats");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const n=window.getComputedStyle(r),o={};for(const t of e)o[t]=parseFloat(n[t])||0;return o}cssFloats(t){return k.cssFloats(this,t)}static#r={alignContent:"align-content",alignItems:"align-items",alignSelf:"align-self",animationDelay:"animation-delay",animationDirection:"animation-direction",animationDuration:"animation-duration",animationFillMode:"animation-fill-mode",animationIterationCount:"animation-iteration-count",animationName:"animation-name",animationPlayState:"animation-play-state",animationTimingFunction:"animation-timing-function",backfaceVisibility:"backface-visibility",backgroundAttachment:"background-attachment",backgroundBlendMode:"background-blend-mode",backgroundClip:"background-clip",backgroundColor:"background-color",backgroundImage:"background-image",backgroundOrigin:"background-origin",backgroundPosition:"background-position",backgroundRepeat:"background-repeat",backgroundSize:"background-size",borderBottom:"border-bottom",borderBottomColor:"border-bottom-color",borderBottomLeftRadius:"border-bottom-left-radius",borderBottomRightRadius:"border-bottom-right-radius",borderBottomStyle:"border-bottom-style",borderBottomWidth:"border-bottom-width",borderCollapse:"border-collapse",borderColor:"border-color",borderImage:"border-image",borderImageOutset:"border-image-outset",borderImageRepeat:"border-image-repeat",borderImageSlice:"border-image-slice",borderImageSource:"border-image-source",borderImageWidth:"border-image-width",borderLeft:"border-left",borderLeftColor:"border-left-color",borderLeftStyle:"border-left-style",borderLeftWidth:"border-left-width",borderRadius:"border-radius",borderRight:"border-right",borderRightColor:"border-right-color",borderRightStyle:"border-right-style",borderRightWidth:"border-right-width",borderSpacing:"border-spacing",borderStyle:"border-style",borderTop:"border-top",borderTopColor:"border-top-color",borderTopLeftRadius:"border-top-left-radius",borderTopRightRadius:"border-top-right-radius",borderTopStyle:"border-top-style",borderTopWidth:"border-top-width",borderWidth:"border-width",boxDecorationBreak:"box-decoration-break",boxShadow:"box-shadow",boxSizing:"box-sizing",breakAfter:"break-after",breakBefore:"break-before",breakInside:"break-inside",captionSide:"caption-side",caretColor:"caret-color",clipPath:"clip-path",columnCount:"column-count",columnFill:"column-fill",columnGap:"column-gap",columnRule:"column-rule",columnRuleColor:"column-rule-color",columnRuleStyle:"column-rule-style",columnRuleWidth:"column-rule-width",columnSpan:"column-span",columnWidth:"column-width",counterIncrement:"counter-increment",counterReset:"counter-reset",emptyCells:"empty-cells",flexBasis:"flex-basis",flexDirection:"flex-direction",flexFlow:"flex-flow",flexGrow:"flex-grow",flexShrink:"flex-shrink",flexWrap:"flex-wrap",fontFamily:"font-family",fontFeatureSettings:"font-feature-settings",fontKerning:"font-kerning",fontLanguageOverride:"font-language-override",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontSynthesis:"font-synthesis",fontVariant:"font-variant",fontVariantAlternates:"font-variant-alternates",fontVariantCaps:"font-variant-caps",fontVariantEastAsian:"font-variant-east-asian",fontVariantLigatures:"font-variant-ligatures",fontVariantNumeric:"font-variant-numeric",fontVariantPosition:"font-variant-position",fontWeight:"font-weight",gridArea:"grid-area",gridAutoColumns:"grid-auto-columns",gridAutoFlow:"grid-auto-flow",gridAutoRows:"grid-auto-rows",gridColumn:"grid-column",gridColumnEnd:"grid-column-end",gridColumnGap:"grid-column-gap",gridColumnStart:"grid-column-start",gridGap:"grid-gap",gridRow:"grid-row",gridRowEnd:"grid-row-end",gridRowGap:"grid-row-gap",gridRowStart:"grid-row-start",gridTemplate:"grid-template",gridTemplateAreas:"grid-template-areas",gridTemplateColumns:"grid-template-columns",gridTemplateRows:"grid-template-rows",imageRendering:"image-rendering",justifyContent:"justify-content",letterSpacing:"letter-spacing",lineBreak:"line-break",lineHeight:"line-height",listStyle:"list-style",listStyleImage:"list-style-image",listStylePosition:"list-style-position",listStyleType:"list-style-type",marginBottom:"margin-bottom",marginLeft:"margin-left",marginRight:"margin-right",marginTop:"margin-top",maskClip:"mask-clip",maskComposite:"mask-composite",maskImage:"mask-image",maskMode:"mask-mode",maskOrigin:"mask-origin",maskPosition:"mask-position",maskRepeat:"mask-repeat",maskSize:"mask-size",maskType:"mask-type",maxHeight:"max-height",maxWidth:"max-width",minHeight:"min-height",minWidth:"min-width",mixBlendMode:"mix-blend-mode",objectFit:"object-fit",objectPosition:"object-position",offsetAnchor:"offset-anchor",offsetDistance:"offset-distance",offsetPath:"offset-path",offsetRotate:"offset-rotate",outlineColor:"outline-color",outlineOffset:"outline-offset",outlineStyle:"outline-style",outlineWidth:"outline-width",overflowAnchor:"overflow-anchor",overflowWrap:"overflow-wrap",overflowX:"overflow-x",overflowY:"overflow-y",paddingBottom:"padding-bottom",paddingLeft:"padding-left",paddingRight:"padding-right",paddingTop:"padding-top",pageBreakAfter:"page-break-after",pageBreakBefore:"page-break-before",pageBreakInside:"page-break-inside",perspectiveOrigin:"perspective-origin",placeContent:"place-content",placeItems:"place-items",placeSelf:"place-self",pointerEvents:"pointer-events",rowGap:"row-gap",scrollBehavior:"scroll-behavior",scrollMargin:"scroll-margin",scrollMarginBlock:"scroll-margin-block",scrollMarginBlockEnd:"scroll-margin-block-end",scrollMarginBlockStart:"scroll-margin-block-start",scrollMarginBottom:"scroll-margin-bottom",scrollMarginInline:"scroll-margin-inline",scrollMarginInlineEnd:"scroll-margin-inline-end",scrollMarginInlineStart:"scroll-margin-inline-start",scrollMarginLeft:"scroll-margin-left",scrollMarginRight:"scroll-margin-right",scrollMarginTop:"scroll-margin-top",scrollPadding:"scroll-padding",scrollPaddingBlock:"scroll-padding-block",scrollPaddingBlockEnd:"scroll-padding-block-end",scrollPaddingBlockStart:"scroll-padding-block-start",scrollPaddingBottom:"scroll-padding-bottom",scrollPaddingInline:"scroll-padding-inline",scrollPaddingInlineEnd:"scroll-padding-inline-end",scrollPaddingInlineStart:"scroll-padding-inline-start",scrollPaddingLeft:"scroll-padding-left",scrollPaddingRight:"scroll-padding-right",scrollPaddingTop:"scroll-padding-top",scrollSnapAlign:"scroll-snap-align",scrollSnapStop:"scroll-snap-stop",scrollSnapType:"scroll-snap-type",shapeImageThreshold:"shape-image-threshold",shapeMargin:"shape-margin",shapeOutside:"shape-outside",tabSize:"tab-size",tableLayout:"table-layout",textAlign:"text-align",textAlignLast:"text-align-last",textCombineUpright:"text-combine-upright",textDecoration:"text-decoration",textDecorationColor:"text-decoration-color",textDecorationLine:"text-decoration-line",textDecorationStyle:"text-decoration-style",textIndent:"text-indent",textJustify:"text-justify",textOrientation:"text-orientation",textOverflow:"text-overflow",textShadow:"text-shadow",textTransform:"text-transform",transformBox:"transform-box",transformOrigin:"transform-origin",transformStyle:"transform-style",transitionDelay:"transition-delay",transitionDuration:"transition-duration",transitionProperty:"transition-property",transitionTimingFunction:"transition-timing-function",unicodeBidi:"unicode-bidi",userSelect:"user-select",verticalAlign:"vertical-align",whiteSpace:"white-space",willChange:"will-change",wordBreak:"word-break",wordSpacing:"word-spacing",wordWrap:"word-wrap",writingMode:"writing-mode",zIndex:"z-index",WebkitTransform:"-webkit-transform",WebkitTransition:"-webkit-transition",WebkitBoxShadow:"-webkit-box-shadow",MozBoxShadow:"-moz-box-shadow",MozTransform:"-moz-transform",MozTransition:"-moz-transition",msTransform:"-ms-transform",msTransition:"-ms-transition"};static cssPropAliases=new Proxy(k.#r,{set:(t,e,r)=>(t[e]=r,k.cssPropRevAliases[r]=e,!0)});static cssPropRevAliases=Object.fromEntries(Object.entries(k.#r).map(([t,e])=>[e,t]));static toStyleKc(t){return"string"==typeof k.cssPropAliases[t]?k.cssPropAliases[t]:t}static toStyleCc(t){return"string"==typeof k.cssPropRevAliases[t]?k.cssPropRevAliases[t]:t}static setStyle(t,e,r=null){return k._preHtmlElems(t,"setStyle").forEach(t=>{if("object"==typeof e)for(const[r,n]of Object.entries(e))t.style.setProperty(k.toStyleKc(r),"string"==typeof n?n:"number"==typeof n?`${n}px`:String(n));else t.style.setProperty(k.toStyleKc(e),r)}),t}setStyle(t,e){return k.setStyle(this,t,e)}static getStyle(t,e){return k._preHtmlElem(t,"getStyle").style.getPropertyValue(k.toStyleKc(e))}getStyle(t){return k.getStyle(this,t)}static style(t,{camelCase:e=!1,rawAttr:r=!1}={}){if("boolean"!=typeof e)throw new TypeError('"camelCase" must be a boolean. Received: '+typeof e);if("boolean"!=typeof r)throw new TypeError('"rawAttr" must be a boolean. Received: '+typeof r);const n=k._preHtmlElem(t,"style"),o={};if(r){const t=(n.getAttribute("style")||"").split(";");for(const r of t){const[t,n]=r.split(":");if(!t||!n)continue;const i=t.trim(),s=n.trim();o[e?k.toStyleCc(i):i]=s}}else{const t=n.style;for(let r=0;r<t.length;r++){const n=t[r],i=t.getPropertyValue(n);o[e?k.toStyleCc(n):n]=i}}return o}style(t){return k.style(this,t)}static removeStyle(t,e){return k._preHtmlElems(t,"removeStyle").forEach(t=>{if(Array.isArray(e))for(const r of e)t.style.removeProperty(k.toStyleKc(r));else t.style.removeProperty(k.toStyleKc(e))}),t}removeStyle(t){return k.removeStyle(this,t)}static toggleStyle(t,e,r,n){return k._preHtmlElems(t,"toggleStyle").forEach(t=>{const o=k.getStyle(t,e).trim()===k.toStyleKc(r)?n:r;k.setStyle(t,e,o)}),t}toggleStyle(t,e,r){return k.toggleStyle(this,t,e,r)}static clearStyle(t){return k._preElems(t,"clearStyle").forEach(t=>t.removeAttribute("style")),t}clearStyle(){return k.clearStyle(this)}static focus(t){return k._preHtmlElem(t,"focus").focus(),t}focus(){return k.focus(this)}static blur(t){return k._preHtmlElem(t,"blur").blur(),t}blur(){return k.blur(this)}static select(t){const e=k._preHtmlElem(t,"select");if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement))throw new Error("Element must be an <input> or <textarea> to use select().");return e.select(),t}select(){return k.select(this)}static boolCheck(t){return void 0!==t&&("true"===t||"1"===t||!0===t||"on"===t||"number"==typeof t&&t>0)}static setWinScrollTop(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");k.setScrollTop(window,t)}static setWinScrollLeft(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");k.setScrollLeft(window,t)}static winScrollTop(){return window.scrollY||document.documentElement.scrollTop}static winScrollLeft(){return window.scrollX||document.documentElement.scrollLeft}static winInnerHeight(){return window.innerHeight||document.documentElement.clientHeight}static winInnerWidth(){return window.innerWidth||document.documentElement.clientWidth}static isPageTop(){return 0===window.scrollY}static isPageBottom(){return window.innerHeight+window.scrollY>=document.body.offsetHeight}static getDimension(t,e,r="content"){const n=k._preElemAndWinAndDoc(t,"getDimension");if("string"!=typeof e)throw new TypeError("The type must be a string.");if("string"!=typeof r)throw new TypeError("The extra must be a string.");const o="width"===e?"Width":"Height";if(k.isWindow(n))return"margin"===r?n["inner"+o]:n.document.documentElement["client"+o];const i=n;if(9===i.nodeType){const t=i.documentElement;return Math.max(i.body["scroll"+o],t["scroll"+o],i.body["offset"+o],t["offset"+o],t["client"+o])}let s=i.getBoundingClientRect()[e];function l(t){return"width"===e?k.cssFloat(i,t+"Left")+k.cssFloat(i,t+"Right"):k.cssFloat(i,t+"Top")+k.cssFloat(i,t+"Bottom")}switch(r){case"content":s-=l("padding"),s-=l("border");break;case"padding":s-=l("border");break;case"border":break;case"margin":s+=l("margin")}return s}getDimension(t,e){return k.getDimension(this,t,e)}static setHeight(t,e){const r=k._preHtmlElem(t,"setHeight");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.height="number"==typeof e?`${e}px`:e,t}setHeight(t){return k.setHeight(this,t)}static setWidth(t,e){const r=k._preHtmlElem(t,"setWidth");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.width="number"==typeof e?`${e}px`:e,t}setWidth(t){return k.setWidth(this,t)}static height(t){const e=k._preElemAndWinAndDoc(t,"height");return k.getDimension(e,"height","content")}height(){return k.height(this)}static width(t){const e=k._preElemAndWinAndDoc(t,"width");return k.getDimension(e,"width","content")}width(){return k.width(this)}static innerHeight(t){const e=k._preElemAndWinAndDoc(t,"innerHeight");return k.getDimension(e,"height","padding")}innerHeight(){return k.innerHeight(this)}static innerWidth(t){const e=k._preElemAndWinAndDoc(t,"innerWidth");return k.getDimension(e,"width","padding")}innerWidth(){return k.innerWidth(this)}static outerHeight(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=k._preElemAndWinAndDoc(t,"outerHeight");return k.getDimension(r,"height",e?"margin":"border")}outerHeight(t){return k.outerHeight(this,t)}static outerWidth(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=k._preElemAndWinAndDoc(t,"outerWidth");return k.getDimension(r,"width",e?"margin":"border")}outerWidth(t){return k.outerWidth(this,t)}static animate(t,e,r){return k._preElems(t,"animate").forEach(t=>t.animate(e,r)),t}animate(t,e){return k.animate(this,t,e)}static offset(t){const e=k._preElem(t,"offset").getBoundingClientRect(),r=window.scrollY||document.documentElement.scrollTop,n=window.scrollX||document.documentElement.scrollLeft;return{top:e.top+r,left:e.left+n}}offset(){return k.offset(this)}static position(t){const e=k._preHtmlElem(t,"position");let r,n,o={top:0,left:0};if("fixed"===window.getComputedStyle(e).position)n=e.getBoundingClientRect();else{n=k.offset(e),r=e.offsetParent||document.documentElement;const{position:t}=window.getComputedStyle(r);for(;r instanceof HTMLElement&&(r===document.body||r===document.documentElement)&&"static"===t;)r=r.parentNode;if(r instanceof HTMLElement&&r!==e&&1===r.nodeType){const{borderTopWidth:t,borderLeftWidth:e}=k.cssFloats(r,["borderTopWidth","borderLeftWidth"]);o=k.offset(r),o.top+=t,o.left+=e}}return{top:n.top-o.top-k.cssFloat(e,"marginTop"),left:n.left-o.left-k.cssFloat(e,"marginLeft")}}position(){return k.position(this)}static offsetParent(t){let e=k._preHtmlElem(t,"offsetParent").offsetParent;for(;e instanceof HTMLElement&&"static"===window.getComputedStyle(e).position;)e=e.offsetParent;return e instanceof HTMLElement?e:document.documentElement}offsetParent(){return k.offsetParent(this)}static scrollTop(t){const e=k._preElemAndWindow(t,"scrollTop");return k.isWindow(e)?e.pageYOffset:9===e.nodeType?e.defaultView.pageYOffset:e.scrollTop}scrollTop(){return k.scrollTop(this)}static scrollLeft(t){const e=k._preElemAndWindow(t,"scrollLeft");return k.isWindow(e)?e.pageXOffset:9===e.nodeType?e.defaultView.pageXOffset:e.scrollLeft}scrollLeft(){return k.scrollLeft(this)}static easings={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>t*(2-t),easeInOutQuad:t=>t<.5?2*t*t:(4-2*t)*t-1,easeInCubic:t=>t*t*t,easeOutCubic:t=>--t*t*t+1,easeInOutCubic:t=>t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1};static scrollToXY(t,{targetX:e,targetY:r,duration:n,easing:o,onAnimation:i}={}){if(void 0!==e&&"number"!=typeof e)throw new TypeError("`targetX` must be a number if provided.");if(void 0!==r&&"number"!=typeof r)throw new TypeError("`targetY` must be a number if provided.");if(void 0!==n&&"number"!=typeof n)throw new TypeError("`duration` must be a number if provided.");if(void 0!==o&&"string"!=typeof o)throw new TypeError("`easing` must be a string if provided.");if(void 0!==o&&"function"!=typeof k.easings[o])throw new TypeError(`Unknown easing function: "${o}".`);if(void 0!==i&&"function"!=typeof i)throw new TypeError("`onAnimation` must be a function if provided.");const s=(t,e,r,n)=>{if(t instanceof Window)window.scrollTo(e,r);else if(9===t.nodeType)t.defaultView.scrollTo(e,r);else{const n=t instanceof Window?window.scrollX:t.scrollLeft,o=t instanceof Window?window.scrollY:t.scrollTop;n!==e&&(t.scrollLeft=e),o!==r&&(t.scrollTop=r)}"function"==typeof i&&i({x:e,y:r,isComplete:n>=1,time:n})};return k._preElemsAndWindow(t,"scrollToXY").forEach(t=>{const i=t instanceof Window?window.scrollX:t.scrollLeft,l=t instanceof Window?window.scrollY:t.scrollTop,a=e??i,c=r??l,m=a-i,p=c-l,u="string"==typeof o&&k.easings[o]||null;if("number"!=typeof n||"function"!=typeof u)return s(t,a,c,1);const f=performance.now(),d=n??0;requestAnimationFrame(function e(r){if("function"!=typeof u)return;const n=Math.min(1,(r-f)/d),o=u(n);s(t,i+m*o,l+p*o,n),n<1&&requestAnimationFrame(e)})}),t}scrollToXY({targetX:t,targetY:e,duration:r,easing:n,onAnimation:o}={}){return k.scrollToXY(this,{targetX:t,targetY:e,duration:r,easing:n,onAnimation:o})}static setScrollTop(t,e){if("number"!=typeof e)throw new TypeError("ScrollTop value must be a number.");return k.scrollToXY(t,{targetY:e})}setScrollTop(t){return k.setScrollTop(this,t)}static setScrollLeft(t,e){if("number"!=typeof e)throw new TypeError("ScrollLeft value must be a number.");return k.scrollToXY(t,{targetX:e})}setScrollLeft(t){return k.setScrollLeft(this,t)}static borderWidth(t){const e=k._preElem(t,"borderWidth"),{borderLeftWidth:r,borderRightWidth:n,borderTopWidth:o,borderBottomWidth:i}=k.cssFloats(e,["borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}borderWidth(){return k.borderWidth(this)}static border(t){const e=k._preElem(t,"border"),{borderLeft:r,borderRight:n,borderTop:o,borderBottom:i}=k.cssFloats(e,["borderLeft","borderRight","borderTop","borderBottom"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}border(){return k.border(this)}static margin(t){const e=k._preElem(t,"margin"),{marginLeft:r,marginRight:n,marginTop:o,marginBottom:i}=k.cssFloats(e,["marginLeft","marginRight","marginTop","marginBottom"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}margin(){return k.margin(this)}static padding(t){const e=k._preElem(t,"padding"),{paddingLeft:r,paddingRight:n,paddingTop:o,paddingBottom:i}=k.cssFloats(e,["paddingLeft","paddingRight","paddingTop","paddingBottom"]);return{x:r+n,y:o+i,left:r,right:n,top:o,bottom:i}}padding(){return k.padding(this)}static addClass(t,...e){return k._preElems(t,"addClass").forEach(t=>t.classList.add(...e)),t}addClass(...t){return k.addClass(this,...t)}static removeClass(t,...e){return k._preElems(t,"removeClass").forEach(t=>t.classList.remove(...e)),t}removeClass(...t){return k.removeClass(this,...t)}static replaceClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if("string"!=typeof r)throw new TypeError('The "newToken" parameter must be a string.');const n=[];return k._preElems(t,"replaceClass").forEach(t=>n.push(t.classList.replace(e,r))),n}replaceClass(t,e){return k.replaceClass(this,t,e)[0]}static classItem(t,e){const r=k._preElem(t,"classItem");if("number"!=typeof e)throw new TypeError('The "index" parameter must be a number.');return r.classList.item(e)}classItem(t){return k.classItem(this,t)}static toggleClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" parameter must be a boolean.');const n=[];return k._preElems(t,"toggleClass").forEach(t=>n.push(t.classList.toggle(e,r))),n}toggleClass(t,e){return k.toggleClass(this,t,e)[0]}static hasClass(t,e){const r=k._preElem(t,"hasClass");if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');return r.classList.contains(e)}hasClass(t){return k.hasClass(this,t)}static classLength(t){return k._preElem(t,"classLength").classList.length}classLength(){return k.classLength(this)}static classList(t){return k._preElem(t,"classList").classList.values().toArray()}classList(){return k.classList(this)}static tagName(t){return k._preElem(t,"tagName").tagName}tagName(){return k.tagName(this)}static id(t){return k._preElem(t,"id").id}id(){return k.id(this)}static toBigInt(t){const e=k._preElem(t,"toBigInt"),r=e.textContent?.trim();let n=null;try{n=BigInt(r??"")}catch{n=null}return n}toBigInt(){return k.toBigInt(this)}static setBigInt(t,e){if("bigint"!=typeof e)throw new Error("Value is not a valid BigInt.");const r=e.toString();return k._preElems(t,"setBigInt").forEach(t=>t.textContent=r),t}setBigInt(t){return k.setBigInt(this,t)}static toDate(t){const e=k._preElem(t,"toDate"),r=e.textContent?.trim();if(!r)return null;const n=new Date(r);return Number.isNaN(n.getTime())?null:n}toDate(){return k.toDate(this)}static setDate(t,e){if(!(e instanceof Date)||Number.isNaN(e.getTime()))throw new Error("Value is not a valid Date.");const r=e.toISOString();return k._preElems(t,"setDate").forEach(t=>t.textContent=r),t}setDate(t){return k.setDate(this,t)}static toJson(t){const e=k._preElem(t,"toJson"),r=e.textContent?.trim();if(!r)return null;try{return JSON.parse(r)}catch{return null}}toJson(){return k.toJson(this)}static setJson(t,e,r,n){const o=JSON.stringify(e,r,n);return k._preElems(t,"setJson").forEach(t=>t.textContent=o),t}setJson(t,e,r){return k.setJson(this,t,e,r)}static toNumber(t){const e=k._preElem(t,"toNumber");return"string"==typeof e.textContent?parseFloat(e.textContent.trim()):null}toNumber(){return k.toNumber(this)}static setNumber(t,e){if("number"!=typeof e)throw new Error("Value is not a valid number.");const r=e.toString();return k._preElems(t,"setNumber").forEach(t=>t.textContent=r),t}setNumber(t){return k.setNumber(this,t)}static text(t){return k._preElem(t,"text").textContent}text(){return k.text(this)}static setText(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return k._preElems(t,"setText").forEach(t=>t.textContent=e),t}setText(t){return k.setText(this,t)}static empty(t){return k._preElems(t,"empty").forEach(t=>t.textContent=""),t}empty(){return k.empty(this)}static html(t,e){return k._preElem(t,"html").getHTML(e)}html(t){return k.html(this,t)}static setHtml(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return k._preElems(t,"setHtml").forEach(t=>t.innerHTML=e),t}setHtml(t){return k.setHtml(this,t)}static _valHooks={option:{get:t=>{const e=t.getAttribute("value");return null!=e?e:t.textContent}},select:{get:t=>{const e=t.options,r=t.selectedIndex,n="select-one"===t.type,o=n?r+1:e.length,i=[];let s=r<0?o:n?r:0;for(;s<o;s++){const t=e[s],o=t.parentNode;if((t.selected||s===r)&&!t.disabled&&(!o||!o.disabled||"OPTGROUP"!==o.tagName)){const e=k._valHooks.option.get(t);if(n)return e;i.push(e)}}return i},set:(t,e)=>{const r=t.options,n=Array.isArray(e)?e.map(String):[String(e)];let o=!1;for(let t=0;t<r.length;t++){const e=r[t],i=k._valHooks.option.get(e);"string"==typeof i&&(e.selected=n.includes(i))&&(o=!0)}return o||(t.selectedIndex=-1),n}},radio:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e){const r=t.closest("label");return e&&r&&r.querySelectorAll('input[type="radio"]').forEach(e=>{e instanceof HTMLInputElement&&e!==t&&(e.checked=!1)}),t.checked=e,e}}},checkbox:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e)return t.checked=e,e}}};static setVal(t,e){return k._preInputElems(t,"setVal").forEach(t=>{if(1!==t.nodeType)return;let r="function"==typeof e?e(t,k.val(t)):e;null==r?r="":"number"==typeof r?r=String(r):Array.isArray(r)&&(r=((t,e)=>{const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n]));return r})(r,t=>null==t?"":String(t)));const n=k._valHooks[t.type]||k._valHooks[t.nodeName.toLowerCase()];if(!n||"function"!=typeof n.set||void 0===n.set(t,r,"value")){if("string"!=typeof r&&"boolean"!=typeof r)throw new Error(`Invalid setValue "${typeof r}" value.`);"string"==typeof r&&(t.value=r)}}),t}setVal(t){return k.setVal(this,t)}static _valTypes={string:t=>t.value,date:t=>t.valueAsDate,number:t=>t.valueAsNumber};static _getValByType(t,e,r){if("string"!=typeof e)throw new TypeError('The "type" must be a string.');if("string"!=typeof r)throw new TypeError('The "where" must be a string.');if(!(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement))throw new Error(`Provided element is not an HTMLInputElement in ${r}().`);if("function"!=typeof k._valTypes[e])throw new Error(`No handler found for type "${e}" in ${r}().`);return k._valTypes[e](t)}static _val(t,e,r){const n=k._preInputElem(t,e),o=k._valHooks[n.type]||k._valHooks[n.nodeName.toLowerCase()];if(o&&"function"==typeof o.get){const t=o.get(n,"value",r);if(void 0!==t)return"string"==typeof t?t.replace(/\r/g,""):t}return k._getValByType(n,r,e)}_val(t,e){return k._val(this,t,e)}static val(t){return k._val(t,"val","string")}val(){return k.val(this)}static valTxt(t){const e=k._val(t,"valTxt","string");if("string"!=typeof e&&null!==e)throw new Error("Value is not a valid string.");return null==e?"":"string"==typeof e?e.replace(/\r/g,""):e}valTxt(){return k.valTxt(this)}static _valArr(t,e,r){const n=k._val(t,e,r);if(!Array.isArray(n))throw new Error(`Value expected an array but got ${typeof n}.`);return n}_valArr(t,e){return k._valArr(this,t,e)}static valArr(t){return k._valArr(t,"valArr","string")}valArr(){return k.valArr(this)}static valNb(t){if(!(k._preInputElem(t,"valNb")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=k._val(t,"valNb","number");if(Number.isNaN(e))throw new Error("Value is not a valid number.");return e}valNb(){return k.valNb(this)}static valDate(t){if(!(k._preInputElem(t,"valDate")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=k._val(t,"valDate","date");if(!(e instanceof Date))throw new Error("Value is not a valid date.");return e}valDate(){return k.valDate(this)}static valBool(t){const e=k._preInputElem(t,"valBool");if(!(e instanceof HTMLInputElement))throw new Error("Element must be an input element.");return"on"===k.val(e)}valBool(){return k.valBool(this)}static listenForPaste(t,{onFilePaste:e,onTextPaste:r}={}){if(void 0!==e&&"function"!=typeof e)throw new TypeError("onFilePaste must be a function.");if(void 0!==r&&"function"!=typeof r)throw new TypeError("onTextPaste must be a function.");const n=t=>{if(!(t instanceof ClipboardEvent))return;const n=t.clipboardData?.items||[];for(const t of n)if("file"===t.kind){if("function"==typeof e){const r=t.getAsFile();r&&e(t,r)}}else"string"===t.kind&&"function"==typeof r&&t.getAsString(e=>r(t,e))};return k._preElemsWithDoc(t,"listenForPaste").forEach(t=>k.on(t,"paste",n)),n}listenForPaste({onFilePaste:t,onTextPaste:e}={}){return k.listenForPaste(this,{onFilePaste:t,onTextPaste:e})}static hasEventListener(t,e){const r=k._preEventTargetElem(t,"hasEventListener");if(!S.has(r))return!1;const n=S.get(r);return!!(n&&Array.isArray(n[e])&&n[e].length>0)}hasEventListener(t){return k.hasEventListener(this,t)}static hasExactEventListener(t,e,r){const n=k._preEventTargetElem(t,"hasExactEventListener");if("function"!=typeof r)throw new TypeError('The "handler" must be a function.');if(!S.has(n))return!1;const o=S.get(n);return!(!o||!Array.isArray(o[e]))&&o[e].some(t=>t.handler===r)}hasExactEventListener(t,e){return k.hasExactEventListener(this,t,e)}static on(t,e,r,n){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const o of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof o)throw new TypeError("The event name must be a string.");k._preEventTargetElems(t,"on").forEach(t=>{t.addEventListener(o,r,n),S.has(t)||S.set(t,{});const e=S.get(t);e&&(Array.isArray(e[o])||(e[o]=[]),e[o].push({handler:r,options:n}))})}return t}on(t,e,r){return k.on(this,t,e,r)}static once(t,e,r,n={}){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const o of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof o)throw new TypeError("The event name must be a string.");k._preEventTargetElems(t,"once").forEach(t=>{const e=n=>{k.off(t,o,e),"function"==typeof r&&r(n)};k.on(t,o,e,"boolean"==typeof n?n:{...n,once:!0})})}return t}once(t,e,r={}){return k.once(this,t,e,r)}static off(t,e,r,n){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const o of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof o)throw new TypeError("The event name must be a string.");k._preEventTargetElems(t,"off").forEach(t=>{t.removeEventListener(o,r,n);const e=S.get(t);e&&e[o]&&(e[o]=e[o].filter(t=>t.handler!==r),0===e[o].length&&delete e[o])})}return t}off(t,e,r){return k.off(this,t,e,r)}static offAll(t,e){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const r of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof r)throw new TypeError("The event name must be a string.");k._preEventTargetElems(t,"offAll").forEach(t=>{const e=S.get(t);if(e&&e[r]){for(const n of e[r])t.removeEventListener(r,n.handler,n.options);delete e[r]}})}return t}offAll(t){return k.offAll(this,t)}static offAllTypes(t,e=null){if(null!==e&&"function"!=typeof e)throw new TypeError('The "filterFn" must be a function.');return k._preEventTargetElems(t,"offAllTypes").forEach(t=>{const r=S.get(t);if(r){for(const n in r)for(const o of r[n])("function"!=typeof e||e(o.handler,n))&&t.removeEventListener(n,o.handler,o.options);S.delete(t)}}),t}offAllTypes(t=null){return k.offAllTypes(this,t)}static trigger(t,e,r={}){if(!("string"==typeof e||Array.isArray(e)&&e.every(t=>"string"==typeof t)))throw new TypeError("The events must be a string or array of strings.");for(const n of Array.isArray(e)?Array.from(new Set(e)):[e]){if("string"!=typeof n)throw new TypeError("The event name must be a string.");k._preEventTargetElems(t,"trigger").forEach(t=>{const e=r instanceof Event||r instanceof CustomEvent?r:new CustomEvent(n,{bubbles:!0,cancelable:!0,detail:r});t.dispatchEvent(e)})}return t}trigger(t,e={}){return k.trigger(this,t,e)}static#n={for:"htmlFor",class:"className"};static propFix=new Proxy(k.#n,{set:(t,e,r)=>(t[e]=r,k.attrFix[r]=e,!0)});static attrFix=Object.fromEntries(Object.entries(k.#n).map(([t,e])=>[e,t]));static getPropName(t){return"string"==typeof k.propFix[t]?k.propFix[t]:t}static getAttrName(t){return"string"==typeof k.attrFix[t]?k.attrFix[t]:t}static attr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return k._preElem(t,"attr").getAttribute(k.getAttrName(e))}attr(t){return k.attr(this,t)}static setAttr(t,e,r=null){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(null!==r&&"string"!=typeof r)throw new TypeError('The "value" must be a string.');return k._preElems(t,"setAttr").forEach(t=>{null===r?t.removeAttribute(k.getAttrName(e)):t.setAttribute(k.getAttrName(e),r)}),t}setAttr(t,e){return k.setAttr(this,t,e)}static removeAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return k._preElems(t,"removeAttr").forEach(t=>t.removeAttribute(k.getAttrName(e))),t}removeAttr(t){return k.removeAttr(this,t)}static hasAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return k._preElem(t,"hasAttr").hasAttribute(k.getAttrName(e))}hasAttr(t){return k.hasAttr(this,t)}static hasProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return!!k._preElem(t,"hasProp")[k.getPropName(e)]}hasProp(t){return k.hasProp(this,t)}static addProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return k._preElems(t,"addProp").forEach(t=>{t[k.getPropName(e)]=!0}),t}addProp(t){return k.addProp(this,t)}static removeProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return k._preElems(t,"removeProp").forEach(t=>{t[k.getPropName(e)]=!1}),t}removeProp(t){return k.removeProp(this,t)}static toggleProp(t,e,r){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" must be a boolean.');k._preElems(t,"toggleProp").forEach(t=>{(void 0===r?!t[k.getPropName(e)]:r)?k.addProp(t,e):k.removeProp(t,e)})}toggleProp(t,e){return k.toggleProp(this,t,e)}static remove(t){return k._preElems(t,"remove").forEach(t=>t.remove()),t}remove(){return k.remove(this)}static index(t,e=null){const r=k._preElem(t,"index");if(!r)return-1;if(!e)return Array.prototype.indexOf.call(r.parentNode?.children||[],r);if(e){const t="string"==typeof e?document.querySelectorAll(e):k._preElems(e,"index");return Array.prototype.indexOf.call(t,r)}return-1}index(t){return k.index(this,t)}static _getCustomRect(t,e){const r={height:0,width:0,x:0,y:0,bottom:0,left:0,right:0,top:0,toJSON:function(){throw new Error("Function not implemented.")}};for(const e in t)"number"==typeof t[e]&&(r[e]=t[e]);if("object"!=typeof e||null===e||Array.isArray(e))throw new Error("extraRect must be a non-null object.");const{height:n=0,width:o=0,top:i=0,bottom:s=0,left:l=0,right:a=0}=e;if("number"!=typeof n)throw new Error("extraRect.height must be a number.");if("number"!=typeof o)throw new Error("extraRect.width must be a number.");if("number"!=typeof i)throw new Error("extraRect.top must be a number.");if("number"!=typeof s)throw new Error("extraRect.bottom must be a number.");if("number"!=typeof l)throw new Error("extraRect.left must be a number.");if("number"!=typeof a)throw new Error("extraRect.right must be a number.");return r.height+=n,r.width+=o,r.top+=i,r.bottom+=s,r.left+=l,r.right+=a,r}static isCollWith(t,e,r={}){const n=k._getCustomRect(k._preElem(t,"isCollWith").getBoundingClientRect(),r),o=k._preElem(e,"isCollWith").getBoundingClientRect();return T(n,o)}isCollWith(t,e){return k.isCollWith(this,t,e)}static isCollPerfWith(t,e,r={}){const n=k._getCustomRect(k._preElem(t,"isCollPerfWith").getBoundingClientRect(),r),o=k._preElem(e,"isCollPerfWith").getBoundingClientRect();return v(n,o)}isCollPerfWith(t,e){return k.isCollPerfWith(this,t,e)}static _isCollWithLock(t,e,r,n,o){const i=N[o];if(t)return i.has(n)||i.set(n,!0),!0;if(i.has(n)){let t=!1;switch(o){case"top":t=_(e,r);break;case"bottom":t=A(e,r);break;case"left":t=x(e,r);break;case"right":t=C(e,r)}return t&&i.delete(n),i.has(n)}return!1}static isCollWithLock(t,e,r,n={}){const o=k._preElem(t,"isCollWithLock"),i=k._preElem(e,"isCollWithLock"),s=k._getCustomRect(o.getBoundingClientRect(),n),l=i.getBoundingClientRect(),a=T(s,l);return k._isCollWithLock(a,s,l,o,r)}isCollWithLock(t,e,r){return k.isCollWithLock(this,t,e,r)}static isCollPerfWithLock(t,e,r,n={}){const o=k._preElem(t,"isCollPerfWithLock"),i=k._preElem(e,"isCollPerfWithLock"),s=k._getCustomRect(o.getBoundingClientRect(),n),l=i.getBoundingClientRect(),a=v(s,l);return k._isCollWithLock(a,s,l,o,r)}isCollPerfWithLock(t,e,r){return k.isCollPerfWithLock(this,t,e,r)}static resetCollLock(t){const e=k._preElem(t,"resetCollLock");let r=!1;for(const t of["top","bottom","left","right"])N[t].has(e)&&(N[t].delete(e),r=!0);return r}resetCollLock(){return k.resetCollLock(this)}static resetCollLockDir(t,e){const r=k._preElem(t,"resetCollLockDir"),n=N[e];return!!n.has(r)&&(n.delete(r),!0)}resetCollLockDir(t){return k.resetCollLockDir(this,t)}static isInViewport(t){const e=k._preElem(t,"isInViewport");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=k.offset(e).top,n=r+k.outerHeight(e),o=k.scrollTop(window),i=o+k.height(window);return n>o&&r<i}isInViewport(){return k.isInViewport(this)}static isScrolledIntoView(t){const e=k._preElem(t,"isScrolledIntoView");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=k.scrollTop(window),n=r+k.height(window),o=k.offset(e).top;return o+k.height(e)<=n&&o>=r}isScrolledIntoView(){return k.isScrolledIntoView(this)}static isInContainer(t,e){const r=k._preElem(t,"isInContainer"),n=k._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const o=r.getBoundingClientRect(),i=n.getBoundingClientRect(),s=o.bottom>i.top&&o.top<i.bottom,l=o.right>i.left&&o.left<i.right;return s&&l}isInContainer(t){return k.isInContainer(this,t)}static isFullyInContainer(t,e){const r=k._preElem(t,"isScrolledIntoView"),n=k._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const o=r.getBoundingClientRect(),i=n.getBoundingClientRect();return o.top>=i.top&&o.bottom<=i.bottom&&o.left>=i.left&&o.right<=i.right}isFullyInContainer(t){return k.isFullyInContainer(this,t)}static hasScroll(t){const e=k._preElem(t,"hasScroll");return{v:e.scrollHeight>e.clientHeight,h:e.scrollWidth>e.clientWidth}}hasScroll(){return k.hasScroll(this)}}const W=k;window.TinyHtml=e.TinyHtml})();
|