// Halper.js Common ES/JS utility library // https://github.com/ahabra/js-helper // Copyright 2022 (C) Abdul Habra. Version 0.7.3. // Apache License Version 2.0 var jshelper=(()=>{var g=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var o=(e,r)=>{for(var t in r)g(e,t,{get:r[t],enumerable:!0})},I=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of P(r))!H.call(e,i)&&i!==t&&g(e,i,{get:()=>r[i],enumerable:!(n=D(r,i))||n.enumerable});return e};var B=e=>I(g({},"__esModule",{value:!0}),e);var we={};o(we,{Domer:()=>E,LineCompare:()=>b,Objecter:()=>c,Stringer:()=>m});var E={};o(E,{add:()=>ue,all:()=>j,classPresentIf:()=>ce,createElement:()=>te,createElements:()=>T,first:()=>Z,getAttributes:()=>re,id:()=>Y,removeElements:()=>se,setContent:()=>fe,tag:()=>N});var c={};o(c,{equals:()=>A,forEachEntry:()=>s,has:()=>G,isDate:()=>d,isFunction:()=>h,isInteger:()=>z,isNil:()=>_,isNumber:()=>L,isRegExp:()=>x,isString:()=>u});function _(e){return e==null}function u(e){return f(e,"String")}function h(e){return f(e,"Function")}function d(e){return f(e,"Date")}function L(e){return f(e,"Number")?Number.isNaN(e)?!1:Number.isFinite(e):!u(e)||(e=e.trim(),e==="")?!1:!isNaN(e)}function z(e){return L(e)?Number.isInteger(Number.parseFloat(e)):!1}function x(e){return f(e,"RegExp")}function f(e,r){return Object.prototype.toString.call(e)===`[object ${r}]`}function s(e,r){if(!(!e||!r)){if(Array.isArray(e)){e.forEach((t,n)=>{r(n,t)});return}Object.entries(e).forEach(t=>r(t[0],t[1]))}}function G(e,r){return!e||!r?!1:Object.prototype.hasOwnProperty.call(e,r)}function A(e,r){return e===r?!0:e===void 0||r===void 0?!1:J(e,r)}function J(e,r){return w(e)||w(r)?e===r:Q(e,r)}var K=new Set(["boolean","number","bigint","string","symbol"]);function w(e){return K.has(typeof e)}function Q(e,r){return U(e,r)?V(e,r)?!0:X(e,r):!1}function U(e,r){return O(e)===O(r)}function O(e){return Object.prototype.toString.call(e)}function V(e,r){return d(e)&&d(r)?e.getTime()===r.getTime():!1}function X(e,r){let t=Object.keys(e);return t.length!==Object.keys(r).length?!1:t.every(n=>A(e[n],r[n]))}function Y(e,r=document){return y(r)&&(r=r.shadowRoot),r.getElementById(e)}function j(e,r=document){return y(r)&&(r=r.shadowRoot),Array.from(r.querySelectorAll(e))}function Z(e,r=document){return y(r)&&(r=r.shadowRoot),e.includes("/")?k(e,r):r.querySelector(e)}function k(e,r){let t=e.split("/").map(n=>n.trim()).filter(n=>n.length>0);for(let n of t)if(r=ee(n,r),r===null)break;return r}function ee(e,r){return e==="shadowRoot"||e==="shadow-root"?r.shadowRoot:r.querySelector(e)}function y(e){return e&&e.shadowRoot&&e.tagName.includes("-")}function re(e){let r={},t=e.attributes;if(!t||t.length===0)return r;for(let n=0;n${t}`}function ne(e){let r=[];return s(e,(n,i)=>{r.push(`${n}="${i}"`)}),(r.length>0?" ":"")+r.join(" ")}var ie=new Set(["beforebegin","afterbegin","beforeend","afterend"]);function ue(e,r,t="beforeend"){return t=t.toLowerCase(),ie.has(t)?(u(r)?e.insertAdjacentHTML(t,r):oe(e,r,t),!0):!1}function oe(e,r,t){Array.isArray(r)?r.forEach(n=>e.insertAdjacentElement(t,n)):e.insertAdjacentElement(t,r)}function fe(e,...r){e.innerHTML="",e.append(...r)}function se(e,r=document){j(e,r).forEach(n=>{n.parentNode.removeChild(n)})}function ce(e,r,t){if(!e)return;let n=t?"add":"remove";e.classList[n](r)}var m={};o(m,{endsWith:()=>C,indexOf:()=>S,indexOfFirstMatch:()=>ae,indexOfLastMatch:()=>le,isEmpty:()=>p,removePrefix:()=>R,removeSuffix:()=>q,removeSurrounding:()=>pe,replaceAll:()=>v,replaceTemplate:()=>de,startsWith:()=>$,strip:()=>ye,stripEnd:()=>xe,stripStart:()=>he,substringAfter:()=>me,substringBefore:()=>ge,trim:()=>l});function S(e,r,t=0,n=!1){return e?n?e.toLowerCase().indexOf(r.toLowerCase(),t):e.indexOf(r,t):-1}function ae(e,r){return!r||!e?-1:e.split("").findIndex(r)}function le(e,r){if(!r||!e)return-1;let t=e.split("");for(let n=t.length;n>=0;--n)if(r(t[n],n))return n;return-1}function $(e="",r=void 0,t=!1){if(t){let n=e.substring(0,r.length).toLowerCase();return r.toLowerCase()===n}return e.startsWith(r)}function C(e,r,t=!1){return t?e.toLowerCase().endsWith(r.toLowerCase()):e.endsWith(r)}function R(e,r,t=!1){return $(e,r,t)&&(e=e.substring(r.length)),e}function q(e,r,t=!1){return C(e,r,t)&&(e=e.substring(0,e.length-r.length)),e}function pe(e,r,t,n=!1){return q(R(e,r,n),t,n)}function me(e,r,t=!1){if(!r)return e;let n=S(e,r,0,t);return n<0?"":e.substring(n+r.length)}function ge(e,r,t=!1){if(!r)return"";let n=S(e,r,0,t);return n<0?e:e.substring(0,n)}function l(e){return p(e)?"":(u(e)||(e=String(e)),e.trim(e))}function p(e){return e==null||e===""}function v(e,r,t){if(h(String.prototype.replaceAll))return e.replaceAll(r,t);if(x(r))return e.replace(r,t);let n=new RegExp(r,"g");return e.replace(n,t)}function de(e="",r={},t="${",n="}"){return s(r,(i,a)=>{a!==void 0&&(i=t+i+n,e=v(e,i,a))}),e}function he(e,r=""){return p(e)?"":r?F(e,new Set(Array.from(r))):e}function F(e,r){for(let t=0;t=0;t--)if(!r.has(e.charAt(t)))return e.substring(0,t+1);return""}function ye(e,r=""){if(e===void 0||e==="")return"";if(!r)return e;let t=new Set(Array.from(r));return e=F(e,t),e?W(e,t):""}var b={};o(b,{compareLines:()=>Ee});function Ee(e,r,{trim:t=!0,skipEmpty:n=!0,caseSensitive:i=!0}={trim:!0,skipEmpty:!0,caseSensitive:!0}){return e=M(e,{trim:t,skipEmpty:n}),r=M(r,{trim:t,skipEmpty:n}),e.length!==r.length?`t1 has ${e.length} lines(s) while t2 has ${r.length} line(s).`:Se(e,r,i)}function Se(e,r,t){for(let n=0;n0)return i}return""}function be(e,r,t,n){let i=n?e:e.toLowerCase(),a=n?r:r.toLowerCase();return i!==a?`Line #${t+1} mismatch. ${e} ${r}`:""}function M(e,{trim:r,skipEmpty:t}){return r&&(e=l(e)),e=e.split(` `),r&&(e=e.map(n=>l(n))),t&&(e=e.filter(n=>!!n)),e}return B(we);})();