tiny-essentials
Version:
Collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility.
1 lines • 67.4 kB
JavaScript
(()=>{"use strict";var t={d:(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},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,{TinySmartScroller:()=>H});var r={};t.r(r),t.d(r,{areElsCollBottom:()=>n,areElsCollLeft:()=>i,areElsCollPerfBottom:()=>a,areElsCollPerfLeft:()=>c,areElsCollPerfRight:()=>u,areElsCollPerfTop:()=>l,areElsCollRight:()=>s,areElsCollTop:()=>o,areElsColliding:()=>m,areElsPerfColliding:()=>h,getElsCollDetails:()=>E,getElsCollDirDepth:()=>w,getElsCollOverlap:()=>f,getElsCollOverlapPos:()=>g,getElsColliding:()=>p,getElsPerfColliding:()=>d,getElsRelativeCenterOffset:()=>b,getRectCenter:()=>y});const o=(t,e)=>t.bottom<e.top,n=(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,u=(t,e)=>t.left>=e.right,m=(t,e)=>!(i(t,e)||s(t,e)||o(t,e)||n(t,e)),h=(t,e)=>!(c(t,e)||u(t,e)||l(t,e)||a(t,e)),p=(t,e)=>i(t,e)?"left":s(t,e)?"right":o(t,e)?"top":n(t,e)?"bottom":null,d=(t,e)=>c(t,e)?"left":u(t,e)?"right":l(t,e)?"top":a(t,e)?"bottom":null,f=(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:o=-1}={})=>({dirX:t<e?"right":"left",dirY:r<o?"bottom":"top"}),y=t=>({x:t.left+t.width/2,y:t.top+t.height/2});function b(t,e){const r=t.left+t.width/2,o=t.top+t.height/2;return{x:e.left+e.width/2-r,y:e.top+e.height/2-o}}function w(t,e){if(!h(t,e))return{inDir:null,dirX:null,dirY:null,depthX:0,depthY:0};const{overlapLeft:r,overlapRight:o,overlapTop:n,overlapBottom:i}=f(t,e),{dirX:s,dirY:l}=g({overlapLeft:r,overlapRight:o,overlapTop:n,overlapBottom:i}),a=Math.min(r,o),c=Math.min(n,i);let u;return u=a<c?s:l,{inDir:u,dirX:s,dirY:l,depthX:a,depthY:c}}function E(t,e){const r=h(t,e),o={in:null,x:null,y:null},n={y:null,x:null},i={top:0,bottom:0,left:0,right:0},{overlapLeft:s,overlapRight:l,overlapTop:a,overlapBottom:c}=f(e,t);i.top=a,i.bottom=c,i.left=s,i.right=l;const u=Object.entries(i).filter(([,t])=>t>0).sort((t,e)=>t[1]-e[1]),{dirX:m,dirY:p}=g({overlapLeft:l,overlapRight:s,overlapTop:c,overlapBottom:a});return o.y=p,o.x=m,i.bottom<0?n.y="bottom":i.top<0&&(n.y="top"),i.left<0?n.x="left":i.right<0&&(n.x="right"),o.in=r?i.top===i.bottom&&i.bottom===i.left&&i.left===i.right?"center":u.length?u[0][0]:"top":null,{dirs:o,depth:i,isNeg:n}}const{areElsColliding:T,areElsPerfColliding:v,areElsCollTop:A,areElsCollBottom:S,areElsCollLeft:_,areElsCollRight:x}=r,L=new WeakMap,C=new WeakMap,k={top:new WeakMap,bottom:new WeakMap,left:new WeakMap,right:new WeakMap};class B{static Utils={...r};static async fetchHtmlFile(t,e={method:"GET"}){const r=await fetch(t,e),o=r.headers.get("Content-Type")||"";if(!r.ok)throw new Error(`Failed to fetch: ${r.status} ${r.statusText}`);if(!o.includes("text/html"))throw new Error(`Invalid content type: ${o} (expected text/html)`);const n=await r.text();return B.htmlToJson(n)}static async fetchHtmlNodes(t,e){const r=await B.fetchHtmlFile(t,e);return B.jsonToNodes(r)}static async fetchHtmlTinyElems(t,e){const r=await B.fetchHtmlNodes(t,e);return B.toTinyElm(r)}static templateToJson(t){return B.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 B.toTinyElm(B.templateToNodes(t))}static htmlToJson(t){const e=document.createElement("div");e.innerHTML=t.trim();const r=[],o=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[B.getPropName(e.name)]=e.value;const n=Array.from(t.childNodes).map(o).filter(Boolean);return n.length>0?[e,r,...n]:[e,r]};for(const t of e.childNodes){const e=o(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,o,...n]=t,i=document.createElement(r);for(const[t,e]of Object.entries(o))i.setAttribute(B.getAttrName(t),e);for(const t of n){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 B.toTinyElm(B.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=B.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 B(document.createElement(t,e))}static createTextNode(t){if("string"!=typeof t)throw new TypeError("[TinyHtml] createTextNode(): The value must be a string.");return new B(document.createTextNode(t))}static createElementFromHTML(t){const e=document.createElement("template");if(!(t=t.trim()).startsWith("<"))return B.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 B(e.content.firstChild)}static query(t,e=document){const r=e.querySelector(t);return r?new B(r):null}querySelector(t){return B.query(t,B._preElem(this,"query"))}static queryAll(t,e=document){return new B(e.querySelectorAll(t))}querySelectorAll(t){return B.queryAll(t,B._preElem(this,"queryAll"))}static getById(t){const e=document.getElementById(t);return e?new B(e):null}static getByClassName(t,e=document){return new B(e.getElementsByClassName(t))}getElementsByClassName(t){return B.getByClassName(t,B._preElem(this,"getByClassName"))}static getByName(t){return new B(document.getElementsByName(t))}static getByTagNameNS(t,e="http://www.w3.org/1999/xhtml",r=document){return new B(r.getElementsByTagNameNS(e,t))}getElementsByTagNameNS(t,e="http://www.w3.org/1999/xhtml"){return B.getByTagNameNS(t,e,B._preElem(this,"getByTagNameNS"))}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 B(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,o){const n=t=>{const n=[];return t.map(t=>(t instanceof B?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 "${o.join(",")}" in ${e}().`);return n.push(t),t})),n};return Array.isArray(t)?n(t):n([t])}static _preElemTemplate(t,e,r,o,n=!1){const i=t=>{const i=t[0],s=i instanceof B?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(!n||null!==s[0]&&void 0!==s[0]||(s[0]=null,l=!0),!l)throw new Error(`[TinyHtml] Invalid element of the list "${o.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 B._preElemsTemplate(t,e,[Element],["Element"])}static _preElem(t,e){return B._preElemTemplate(t,e,[Element],["Element"])}static _preNodeElems(t,e){return B._preElemsTemplate(t,e,[Node],["Node"])}static _preNodeElem(t,e){return B._preElemTemplate(t,e,[Node],["Node"])}static _preNodeElemWithNull(t,e){return B._preElemTemplate(t,e,[Node],["Node"],!0)}static _preHtmlElems(t,e){return B._preElemsTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preHtmlElem(t,e){return B._preElemTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preInputElems(t,e){return B._preElemsTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preInputElem(t,e){return B._preElemTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preEventTargetElems(t,e){return B._preElemsTemplate(t,e,[EventTarget],["EventTarget"])}static _preEventTargetElem(t,e){return B._preElemTemplate(t,e,[EventTarget],["EventTarget"])}static _preElemsAndWindow(t,e){return B._preElemsTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemAndWindow(t,e){return B._preElemTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemsAndWinAndDoc(t,e){return B._preElemsTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]).map(t=>t instanceof Document?t.documentElement:t)}static _preElemAndWinAndDoc(t,e){const r=B._preElemTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]);return r instanceof Document?r.documentElement:r}static _preElemsWithDoc(t,e){return B._preElemsTemplate(t,e,[Element,Document],["Element","Document"])}static _preElemWithDoc(t,e){return B._preElemTemplate(t,e,[Element,Document],["Element","Document"])}static toTinyElm(t){const e=t=>t.map(t=>t instanceof B?t:new B(t));return Array.isArray(t)?e(t):e([t])}static fromTinyElm(t){const e=t=>{const e=[];return t.map(t=>(t instanceof B?t._getElements("fromTinyElm"):[t]).map(t=>e.push(t))),e};return Array.isArray(t)?e(t):e([t])}static winnow(t,e,r,o=!1){if("boolean"!=typeof o)throw new TypeError('The "not" must be a boolean.');if("function"==typeof e)return B._preElems(t,r).filter((t,r)=>!!e.call(t,r,t)!==o);if(e instanceof Element)return B._preElems(t,r).filter(t=>t===e!==o);if(Array.isArray(e)||"string"!=typeof e&&null!=e.length)return B._preElems(t,r).filter(t=>e.includes(t)!==o);let n=e;return o&&(n=`:not(${n})`),B._preElems(t,r).filter(t=>1===t.nodeType&&t.matches(n))}static filter(t,e,r=!1){return r&&(e=`:not(${e})`),B._preElems(t,"filter").filter(t=>1===t.nodeType&&t.matches(e))}static filterOnly(t,e){return B.winnow(t,e,"filterOnly",!1)}static not(t,e){return B.winnow(t,e,"not",!0)}not(t){return B.not(this,t)}static find(t,e){const r=[];for(const o of B._preElems(t,"find"))r.push(...o.querySelectorAll(e));return[...new Set(r)]}find(t){return B.find(this,t)}static is(t,e){return B.winnow(t,e,"is",!1).length>0}is(t){return B.is(this,t)}static has(t,e){const r="string"==typeof e?[...document.querySelectorAll(e)]:B._preElems(e,"has");return B._preElems(t,"has").filter(t=>r.some(e=>t&&t.contains(e)))}has(t){return B.has(this,t).length>0}static closest(t,e,r){const o=[];for(const n of B._preElems(t,"closest")){let t=n;for(;t&&t!==r;){if(1===t.nodeType&&("string"==typeof e?t.matches(e):t===e)){o.push(t);break}t=t.parentElement}}return[...new Set(o)]}closest(t,e){return B.closest(this,t,e)}static isSameDom(t,e){return B._preNodeElem(t,"isSameDom")===B._preNodeElem(e,"isSameDom")}isSameDom(t){return B.isSameDom(this,t)}_data={};static _dataSelector={public:(t,e)=>{const r=B._preElem(e,t);let o=C.get(r);return o||(o={},C.set(r,o)),o},private:(t,e)=>{if(!(e instanceof B))throw new Error(`Element must be a TinyHtml instance to execute ${t}().`);return e._data}};static data(t,e,r=!1){const o=B._dataSelector[r?"private":"public"]("data",t);if(null==e)return{...o};if("string"!=typeof e)throw new TypeError("The key must be a string.");return o.hasOwnProperty(e)?o[e]:void 0}data(t,e){return B.data(this,t,e)}static setData(t,e,r,o=!1){const n=B._dataSelector[o?"private":"public"]("setData",t);if("string"!=typeof e)throw new TypeError("The key must be a string.");return n[e]=r,t}setData(t,e,r=!1){return B.setData(this,t,e,r)}static _getSibling(t,e,r){let o=B._preNodeElemWithNull(t,r);for(;o&&(o=o[e])&&1!==o.nodeType;);return o instanceof Node?o:null}static _getSiblings(t,e){let r=t;const o=[];for(;r;r=r.nextSibling)1===r.nodeType&&r!==e&&o.push(r);return o}static domDir(t,e,r,o="domDir"){if("string"!=typeof e)throw new TypeError('The "direction" must be a string.');let n=B._preNodeElemWithNull(t,o);const i=[];for(;n&&(n=n[e]);)if(1===n.nodeType){if(r&&("string"==typeof r?n.matches(r):n===r))break;i.push(n)}return i}static parent(t){let e=B._preNodeElemWithNull(t,"parent");const r=e?e.parentNode:null;return r&&11!==r.nodeType?r:null}parent(){return B.parent(this)}static parents(t,e){return B.domDir(t,"parentNode",e,"parents")}parents(t){return B.parents(this,t)}static next(t){return B._getSibling(t,"nextSibling","next")}next(){return B.next(this)}static prev(t){return B._getSibling(t,"previousSibling","prev")}prev(){return B.prev(this)}static nextAll(t){return B.domDir(t,"nextSibling",void 0,"nextAll")}nextAll(){return B.nextAll(this)}static prevAll(t){return B.domDir(t,"previousSibling",void 0,"prevAll")}prevAll(){return B.prevAll(this)}static nextUntil(t,e){return B.domDir(t,"nextSibling",e,"nextUtil")}nextUntil(t){return B.nextUntil(this,t)}static prevUntil(t,e){return B.domDir(t,"previousSibling",e,"prevUtil")}prevUntil(t){return B.prevUntil(this,t)}static siblings(t){const e=B._preNodeElemWithNull(t,"siblings");return B._getSiblings(e&&e.parentNode?e.parentNode.firstChild:null,e)}siblings(){return B.siblings(this)}static children(t){const e=B._preNodeElemWithNull(t,"children");return B._getSiblings(e?e.firstChild:null)}children(){return B.children(this)}static contents(t){const e=B._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 B.contents(this)}static clone(t,e=!0){if("boolean"!=typeof e)throw new TypeError('The "deep" must be a boolean.');return B._preNodeElems(t,"clone").map(t=>t.cloneNode(e))}clone(t){return B.clone(this,t)[0]}static _appendChecker(t,...e){const r=[],o=[...e];for(const e in o)"string"!=typeof o[e]?r.push(B._preNodeElem(o[e],t)):r.push(o[e]);return r}static append(t,...e){return B._preElem(t,"append").append(...B._appendChecker("append",...e)),t}append(...t){return B.append(this,...t)}static prepend(t,...e){return B._preElem(t,"prepend").prepend(...B._appendChecker("prepend",...e)),t}prepend(...t){return B.prepend(this,...t)}static before(t,...e){return B._preElem(t,"before").before(...B._appendChecker("before",...e)),t}before(...t){return B.before(this,...t)}static after(t,...e){return B._preElem(t,"after").after(...B._appendChecker("after",...e)),t}after(...t){return B.after(this,...t)}static replaceWith(t,...e){return B._preElem(t,"replaceWith").replaceWith(...B._appendChecker("replaceWith",...e)),t}replaceWith(...t){return B.replaceWith(this,...t)}static appendTo(t,e){const r=B._preNodeElems(t,"appendTo"),o=B._preNodeElems(e,"appendTo");return o.forEach((t,e)=>{r.forEach(r=>t.appendChild(e===o.length-1?r:r.cloneNode(!0)))}),t}appendTo(t){return B.appendTo(this,t)}static prependTo(t,e){const r=B._preElems(t,"prependTo"),o=B._preElems(e,"prependTo");return o.forEach((t,e)=>{r.slice().reverse().forEach(r=>t.prepend(e===o.length-1?r:r.cloneNode(!0)))}),t}prependTo(t){return B.prependTo(this,t)}static insertBefore(t,e,r=null){const o=B._preNodeElem(t,"insertBefore"),n=B._preNodeElem(e,"insertBefore"),i=B._preNodeElemWithNull(r,"insertBefore");if(!n.parentNode)throw new Error("The target element has no parent node to insert before.");return n.parentNode.insertBefore(o,i||n),t}insertBefore(t,e){return B.insertBefore(this,t,e)}static insertAfter(t,e,r=null){const o=B._preNodeElem(t,"insertAfter"),n=B._preNodeElem(e,"insertBefore"),i=B._preNodeElemWithNull(r,"insertBefore");if(!n.parentNode)throw new Error("The target element has no parent node to insert after.");return n.parentNode.insertBefore(o,i||n.nextSibling),t}insertAfter(t,e){return B.insertAfter(this,t,e)}static replaceAll(t,e){const r=B._preNodeElems(t,"replaceAll"),o=B._preNodeElems(e,"replaceAll");return o.forEach((t,e)=>{const n=t.parentNode;r.forEach(r=>{n&&n.replaceChild(e===o.length-1?r:r.cloneNode(!0),t)})}),t}replaceAll(t){return B.replaceAll(this,t)}#t;get size(){return this.#t.length}constructor(t){if(t instanceof B)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=B._preElem(t,"css");return window.getComputedStyle(e)}css(){return B.css(this)}static cssString(t,e){const r=B._preElem(t,"cssString");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const o=window.getComputedStyle(r)[e];return"string"==typeof o?o:"number"==typeof o?o.toString():null}cssString(t){return B.cssString(this,t)}static cssList(t,e){const r=B._preElem(t,"cssList");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const o=window.getComputedStyle(r),n={};for(const t of e)void 0!==t&&(n[t]=o.getPropertyValue(t));return n}cssList(t){return B.cssList(this,t)}static cssFloat(t,e){const r=B._preElem(t,"cssFloat");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const o=window.getComputedStyle(r)[e];return parseFloat(o)||0}cssFloat(t){return B.cssFloat(this,t)}static cssFloats(t,e){const r=B._preElem(t,"cssFloats");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const o=window.getComputedStyle(r),n={};for(const t of e)n[t]=parseFloat(o[t])||0;return n}cssFloats(t){return B.cssFloats(this,t)}static#e={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(B.#e,{set:(t,e,r)=>(t[e]=r,B.cssPropRevAliases[r]=e,!0)});static cssPropRevAliases=Object.fromEntries(Object.entries(B.#e).map(([t,e])=>[e,t]));static toStyleKc(t){return"string"==typeof B.cssPropAliases[t]?B.cssPropAliases[t]:t}static toStyleCc(t){return"string"==typeof B.cssPropRevAliases[t]?B.cssPropRevAliases[t]:t}static setStyle(t,e,r=null){return B._preHtmlElems(t,"setStyle").forEach(t=>{if("object"==typeof e)for(const[r,o]of Object.entries(e))t.style.setProperty(B.toStyleKc(r),"string"==typeof o?o:"number"==typeof o?`${o}px`:String(o));else t.style.setProperty(B.toStyleKc(e),r)}),t}setStyle(t,e){return B.setStyle(this,t,e)}static getStyle(t,e){return B._preHtmlElem(t,"getStyle").style.getPropertyValue(B.toStyleKc(e))}getStyle(t){return B.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 o=B._preHtmlElem(t,"style"),n={};if(r){const t=(o.getAttribute("style")||"").split(";");for(const r of t){const[t,o]=r.split(":");if(!t||!o)continue;const i=t.trim(),s=o.trim();n[e?B.toStyleCc(i):i]=s}}else{const t=o.style;for(let r=0;r<t.length;r++){const o=t[r],i=t.getPropertyValue(o);n[e?B.toStyleCc(o):o]=i}}return n}style(t){return B.style(this,t)}static removeStyle(t,e){return B._preHtmlElems(t,"removeStyle").forEach(t=>{if(Array.isArray(e))for(const r of e)t.style.removeProperty(B.toStyleKc(r));else t.style.removeProperty(B.toStyleKc(e))}),t}removeStyle(t){return B.removeStyle(this,t)}static toggleStyle(t,e,r,o){return B._preHtmlElems(t,"toggleStyle").forEach(t=>{const n=B.getStyle(t,e).trim()===B.toStyleKc(r)?o:r;B.setStyle(t,e,n)}),t}toggleStyle(t,e,r){return B.toggleStyle(this,t,e,r)}static clearStyle(t){return B._preElems(t,"clearStyle").forEach(t=>t.removeAttribute("style")),t}clearStyle(){return B.clearStyle(this)}static focus(t){return B._preHtmlElem(t,"focus").focus(),t}focus(){return B.focus(this)}static blur(t){return B._preHtmlElem(t,"blur").blur(),t}blur(){return B.blur(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.");B.setScrollTop(window,t)}static setWinScrollLeft(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");B.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 o=B._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 n="width"===e?"Width":"Height";if(B.isWindow(o))return"margin"===r?o["inner"+n]:o.document.documentElement["client"+n];const i=o;if(9===i.nodeType){const t=i.documentElement;return Math.max(i.body["scroll"+n],t["scroll"+n],i.body["offset"+n],t["offset"+n],t["client"+n])}let s=i.getBoundingClientRect()[e];function l(t){return"width"===e?B.cssFloat(i,t+"Left")+B.cssFloat(i,t+"Right"):B.cssFloat(i,t+"Top")+B.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 B.getDimension(this,t,e)}static setHeight(t,e){const r=B._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 B.setHeight(this,t)}static setWidth(t,e){const r=B._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 B.setWidth(this,t)}static height(t){const e=B._preElemAndWinAndDoc(t,"height");return B.getDimension(e,"height","content")}height(){return B.height(this)}static width(t){const e=B._preElemAndWinAndDoc(t,"width");return B.getDimension(e,"width","content")}width(){return B.width(this)}static innerHeight(t){const e=B._preElemAndWinAndDoc(t,"innerHeight");return B.getDimension(e,"height","padding")}innerHeight(){return B.innerHeight(this)}static innerWidth(t){const e=B._preElemAndWinAndDoc(t,"innerWidth");return B.getDimension(e,"width","padding")}innerWidth(){return B.innerWidth(this)}static outerHeight(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=B._preElemAndWinAndDoc(t,"outerHeight");return B.getDimension(r,"height",e?"margin":"border")}outerHeight(t){return B.outerHeight(this,t)}static outerWidth(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=B._preElemAndWinAndDoc(t,"outerWidth");return B.getDimension(r,"width",e?"margin":"border")}outerWidth(t){return B.outerWidth(this,t)}static animate(t,e,r){return B._preElems(t,"animate").forEach(t=>t.animate(e,r)),t}animate(t,e){return B.animate(this,t,e)}static offset(t){const e=B._preElem(t,"offset").getBoundingClientRect(),r=window.scrollY||document.documentElement.scrollTop,o=window.scrollX||document.documentElement.scrollLeft;return{top:e.top+r,left:e.left+o}}offset(){return B.offset(this)}static position(t){const e=B._preHtmlElem(t,"position");let r,o,n={top:0,left:0};if("fixed"===window.getComputedStyle(e).position)o=e.getBoundingClientRect();else{o=B.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}=B.cssFloats(r,["borderTopWidth","borderLeftWidth"]);n=B.offset(r),n.top+=t,n.left+=e}}return{top:o.top-n.top-B.cssFloat(e,"marginTop"),left:o.left-n.left-B.cssFloat(e,"marginLeft")}}position(){return B.position(this)}static offsetParent(t){let e=B._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 B.offsetParent(this)}static scrollTop(t){const e=B._preElemAndWindow(t,"scrollTop");return B.isWindow(e)?e.pageYOffset:9===e.nodeType?e.defaultView.pageYOffset:e.scrollTop}scrollTop(){return B.scrollTop(this)}static scrollLeft(t){const e=B._preElemAndWindow(t,"scrollLeft");return B.isWindow(e)?e.pageXOffset:9===e.nodeType?e.defaultView.pageXOffset:e.scrollLeft}scrollLeft(){return B.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:o,easing:n,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!==o&&"number"!=typeof o)throw new TypeError("`duration` must be a number if provided.");if(void 0!==n&&"string"!=typeof n)throw new TypeError("`easing` must be a string if provided.");if(void 0!==n&&"function"!=typeof B.easings[n])throw new TypeError(`Unknown easing function: "${n}".`);if(void 0!==i&&"function"!=typeof i)throw new TypeError("`onAnimation` must be a function if provided.");const s=(t,e,r,o)=>{if(t instanceof Window)window.scrollTo(e,r);else if(9===t.nodeType)t.defaultView.scrollTo(e,r);else{const o=t instanceof Window?window.scrollX:t.scrollLeft,n=t instanceof Window?window.scrollY:t.scrollTop;o!==e&&(t.scrollLeft=e),n!==r&&(t.scrollTop=r)}"function"==typeof i&&i({x:e,y:r,isComplete:o>=1,time:o})};return B._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,u=a-i,m=c-l,h="string"==typeof n&&B.easings[n]||null;if("number"!=typeof o||"function"!=typeof h)return s(t,a,c,1);const p=performance.now(),d=o??0;requestAnimationFrame(function e(r){if("function"!=typeof h)return;const o=Math.min(1,(r-p)/d),n=h(o);s(t,i+u*n,l+m*n,o),o<1&&requestAnimationFrame(e)})}),t}scrollToXY({targetX:t,targetY:e,duration:r,easing:o,onAnimation:n}={}){return B.scrollToXY(this,{targetX:t,targetY:e,duration:r,easing:o,onAnimation:n})}static setScrollTop(t,e){if("number"!=typeof e)throw new TypeError("ScrollTop value must be a number.");return B.scrollToXY(t,{targetY:e})}setScrollTop(t){return B.setScrollTop(this,t)}static setScrollLeft(t,e){if("number"!=typeof e)throw new TypeError("ScrollLeft value must be a number.");return B.scrollToXY(t,{targetX:e})}setScrollLeft(t){return B.setScrollLeft(this,t)}static borderWidth(t){const e=B._preElem(t,"borderWidth"),{borderLeftWidth:r,borderRightWidth:o,borderTopWidth:n,borderBottomWidth:i}=B.cssFloats(e,["borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}borderWidth(){return B.borderWidth(this)}static border(t){const e=B._preElem(t,"border"),{borderLeft:r,borderRight:o,borderTop:n,borderBottom:i}=B.cssFloats(e,["borderLeft","borderRight","borderTop","borderBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}border(){return B.border(this)}static margin(t){const e=B._preElem(t,"margin"),{marginLeft:r,marginRight:o,marginTop:n,marginBottom:i}=B.cssFloats(e,["marginLeft","marginRight","marginTop","marginBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}margin(){return B.margin(this)}static padding(t){const e=B._preElem(t,"padding"),{paddingLeft:r,paddingRight:o,paddingTop:n,paddingBottom:i}=B.cssFloats(e,["paddingLeft","paddingRight","paddingTop","paddingBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}padding(){return B.padding(this)}static addClass(t,...e){return B._preElems(t,"addClass").forEach(t=>t.classList.add(...e)),t}addClass(...t){return B.addClass(this,...t)}static removeClass(t,...e){return B._preElems(t,"removeClass").forEach(t=>t.classList.remove(...e)),t}removeClass(...t){return B.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 o=[];return B._preElems(t,"replaceClass").forEach(t=>o.push(t.classList.replace(e,r))),o}replaceClass(t,e){return B.replaceClass(this,t,e)[0]}static classItem(t,e){const r=B._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 B.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 o=[];return B._preElems(t,"toggleClass").forEach(t=>o.push(t.classList.toggle(e,r))),o}toggleClass(t,e){return B.toggleClass(this,t,e)[0]}static hasClass(t,e){const r=B._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 B.hasClass(this,t)}static classLength(t){return B._preElem(t,"classLength").classList.length}classLength(){return B.classLength(this)}static classList(t){return B._preElem(t,"classList").classList.values().toArray()}classList(){return B.classList(this)}static tagName(t){return B._preElem(t,"tagName").tagName}tagName(){return B.tagName(this)}static id(t){return B._preElem(t,"id").id}id(){return B.id(this)}static text(t){return B._preElem(t,"text").textContent}text(){return B.text(this)}static setText(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return B._preElems(t,"setText").forEach(t=>t.textContent=e),t}setText(t){return B.setText(this,t)}static empty(t){return B._preElems(t,"empty").forEach(t=>t.textContent=""),t}empty(){return B.empty(this)}static html(t,e){return B._preElem(t,"html").getHTML(e)}html(t){return B.html(this,t)}static setHtml(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return B._preElems(t,"setHtml").forEach(t=>t.innerHTML=e),t}setHtml(t){return B.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,o="select-one"===t.type,n=o?r+1:e.length,i=[];let s=r<0?n:o?r:0;for(;s<n;s++){const t=e[s],n=t.parentNode;if((t.selected||s===r)&&!t.disabled&&(!n||!n.disabled||"OPTGROUP"!==n.tagName)){const e=B._valHooks.option.get(t);if(o)return e;i.push(e)}}return i},set:(t,e)=>{const r=t.options,o=Array.isArray(e)?e.map(String):[String(e)];let n=!1;for(let t=0;t<r.length;t++){const e=r[t],i=B._valHooks.option.get(e);"string"==typeof i&&(e.selected=o.includes(i))&&(n=!0)}return n||(t.selectedIndex=-1),o}},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 B._preInputElems(t,"setVal").forEach(t=>{if(1!==t.nodeType)return;let r="function"==typeof e?e(t,B.val(t)):e;null==r?r="":"number"==typeof r?r=String(r):Array.isArray(r)&&(r=((t,e)=>{const r=[];for(let o=0;o<t.length;o++)r.push(e(t[o]));return r})(r,t=>null==t?"":String(t)));const o=B._valHooks[t.type]||B._valHooks[t.nodeName.toLowerCase()];if(!o||"function"!=typeof o.set||void 0===o.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 B.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 B._valTypes[e])throw new Error(`No handler found for type "${e}" in ${r}().`);return B._valTypes[e](t)}static _val(t,e,r){const o=B._preInputElem(t,e),n=B._valHooks[o.type]||B._valHooks[o.nodeName.toLowerCase()];if(n&&"function"==typeof n.get){const t=n.get(o,"value",r);if(void 0!==t)return"string"==typeof t?t.replace(/\r/g,""):t}return B._getValByType(o,r,e)}_val(t,e){return B._val(this,t,e)}static val(t){return B._val(t,"val","string")}val(){return B.val(this)}static valTxt(t){const e=B._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 B.valTxt(this)}static _valArr(t,e,r){const o=B._val(t,e,r);if(!Array.isArray(o))throw new Error(`Value expected an array but got ${typeof o}.`);return o}_valArr(t,e){return B._valArr(this,t,e)}static valArr(t){return B._valArr(t,"valArr","string")}valArr(){return B.valArr(this)}static valNb(t){if(!(B._preInputElem(t,"valNb")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=B._val(t,"valNb","number");if(Number.isNaN(e))throw new Error("Value is not a valid number.");return e}valNb(){return B.valNb(this)}static valDate(t){if(!(B._preInputElem(t,"valDate")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=B._val(t,"valDate","date");if(!(e instanceof Date))throw new Error("Value is not a valid date.");return e}valDate(){return B.valDate(this)}static valBool(t){const e=B._preInputElem(t,"valBool");if(!(e instanceof HTMLInputElement))throw new Error("Element must be an input element.");return"on"===B.val(e)}valBool(){return B.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 o=t=>{if(!(t instanceof ClipboardEvent))return;const o=t.clipboardData?.items||[];for(const t of o)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 B._preElemsWithDoc(t,"listenForPaste").forEach(t=>B.on(t,"paste",o)),o}listenForPaste({onFilePaste:t,onTextPaste:e}={}){return B.listenForPaste(this,{onFilePaste:t,onTextPaste:e})}static hasEventListener(t,e){const r=B._preEventTargetElem(t,"hasEventListener");if(!L.has(r))return!1;const o=L.get(r);return!!(o&&Array.isArray(o[e])&&o[e].length>0)}hasEventListener(t){return B.hasEventListener(this,t)}static hasExactEventListener(t,e,r){const o=B._preEventTargetElem(t,"hasExactEventListener");if("function"!=typeof r)throw new TypeError('The "handler" must be a function.');if(!L.has(o))return!1;const n=L.get(o);return!(!n||!Array.isArray(n[e]))&&n[e].some(t=>t.handler===r)}hasExactEventListener(t,e){return B.hasExactEventListener(this,t,e)}static on(t,e,r,o){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return B._preEventTargetElems(t,"on").forEach(t=>{t.addEventListener(e,r,o),L.has(t)||L.set(t,{});const n=L.get(t);n&&(Array.isArray(n[e])||(n[e]=[]),n[e].push({handler:r,options:o}))}),t}on(t,e,r){return B.on(this,t,e,r)}static once(t,e,r,o={}){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return B._preEventTargetElems(t,"once").forEach(t=>{const n=o=>{B.off(t,e,n),"function"==typeof r&&r(o)};B.on(t,e,n,"boolean"==typeof o?o:{...o,once:!0})}),t}once(t,e,r={}){return B.once(this,t,e,r)}static off(t,e,r,o){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return B._preEventTargetElems(t,"off").forEach(t=>{t.removeEventListener(e,r,o);const n=L.get(t);n&&n[e]&&(n[e]=n[e].filter(t=>t.handler!==r),0===n[e].length&&delete n[e])}),t}off(t,e,r){return B.off(this,t,e,r)}static offAll(t,e){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return B._preEventTargetElems(t,"offAll").forEach(t=>{const r=L.get(t);if(r&&r[e]){for(const o of r[e])t.removeEventListener(e,o.handler,o.options);delete r[e]}}),t}offAll(t){return B.offAll(this,t)}static offAllTypes(t,e=null){if(null!==e&&"function"!=typeof e)throw new TypeError('The "filterFn" must be a function.');return B._preEventTargetElems(t,"offAllTypes").forEach(t=>{const r=L.get(t);if(r){for(const o in r)for(const n of r[o])("function"!=typeof e||e(n.handler,o))&&t.removeEventListener(o,n.handler,n.options);L.delete(t)}}),t}offAllTypes(t=null){return B.offAllTypes(this,t)}static trigger(t,e,r={}){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return B._preEventTargetElems(t,"trigger").forEach(t=>{const o=r instanceof Event||r instanceof CustomEvent?r:new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:r});t.dispatchEvent(o)}),t}trigger(t,e={}){return B.trigger(this,t,e)}static#r={for:"htmlFor",class:"className"};static propFix=new Proxy(B.#r,{set:(t,e,r)=>(t[e]=r,B.attrFix[r]=e,!0)});static attrFix=Object.fromEntries(Object.entries(B.#r).map(([t,e])=>[e,t]));static getPropName(t){return"string"==typeof B.propFix[t]?B.propFix[t]:t}static getAttrName(t){return"string"==typeof B.attrFix[t]?B.attrFix[t]:t}static attr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return B._preElem(t,"attr").getAttribute(B.getAttrName(e))}attr(t){return B.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 B._preElems(t,"setAttr").forEach(t=>{null===r?t.removeAttribute(B.getAttrName(e)):t.setAttribute(B.getAttrName(e),r)}),t}setAttr(t,e){return B.setAttr(this,t,e)}static removeAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return B._preElems(t,"removeAttr").forEach(t=>t.removeAttribute(B.getAttrName(e))),t}removeAttr(t){return B.removeAttr(this,t)}static hasAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return B._preElem(t,"hasAttr").hasAttribute(B.getAttrName(e))}hasAttr(t){return B.hasAttr(this,t)}static hasProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return!!B._preElem(t,"hasProp")[B.getPropName(e)]}hasProp(t){return B.hasProp(this,t)}static addProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return B._preElems(t,"addProp").forEach(t=>{t[B.getPropName(e)]=!0}),t}addProp(t){return B.addProp(this,t)}static removeProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return B._preElems(t,"removeProp").forEach(t=>{t[B.getPropName(e)]=!1}),t}removeProp(t){return B.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.');B._preElems(t,"toggleProp").forEach(t=>{(void 0===r?!t[B.getPropName(e)]:r)?B.addProp(t,e):B.removeProp(t,e)})}toggleProp(t,e){return B.toggleProp(this,t,e)}static remove(t){return B._preElems(t,"remove").forEach(t=>t.remove()),t}remove(){return B.remove(this)}static index(t,e=null){const r=B._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):B._preElems(e,"index");return Array.prototype.indexOf.call(t,r)}return-1}index(t){return B.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:o=0,width:n=0,top:i=0,bottom:s=0,left:l=0,right:a=0}=e;if("number"!=typeof o)throw new Error("extraRect.height must be a number.");if("number"!=typeof n)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