/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@halv/ts-utils@1.0.0/dist/index.umd.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
(function(r,c){typeof exports=="object"&&typeof module<"u"?c(exports):typeof define=="function"&&define.amd?define(["exports"],c):(r=typeof globalThis<"u"?globalThis:r||self,c(r["halv-utils"]={}))})(this,function(r){"use strict";var fe=Object.defineProperty;var ge=(r,c,u)=>c in r?fe(r,c,{enumerable:!0,configurable:!0,writable:!0,value:u}):r[c]=u;var j=(r,c,u)=>(ge(r,typeof c!="symbol"?c+"":c,u),u);const c=(e,t)=>typeof e[t]<"u",u=(e,t)=>JSON.stringify(e)!==JSON.stringify(t),g=e=>{if(Array.isArray(e))return e.map(g);if(e&&typeof e=="object"){const t={},n=Object.keys(e);for(let o=0,a=n.length;o<a;o++){const i=n[o];t[i]=g(e[i])}return t}else return e},A=(e,{[e]:t,...n})=>n,b=Object.assign,w=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-(\w)/g,D=w(e=>e.replace(B,(t,n)=>n?n.toUpperCase():"")),E=w(e=>e.charAt(0).toUpperCase()+e.slice(1)),$=(e,t=1,n="s")=>t<=1?e:`${e}${n}`,R=(e,t,n="...")=>e.length>t?`${e.substring(0,t)} ${n}`:e,k=e=>e.replace(/\s{2,}/g," ").trim(),z=new RegExp(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),P=e=>{if(!e.includes("@"))return!1;const t=e.split("@");return t[0].length>64||t[1].length>255?!1:z.test(e.toLowerCase())},J=(e,t)=>{const n=new RegExp(Object.keys(t).map(o=>o.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")).join("|"),"g");return e.replace(n,o=>t[o])},L=/((09|03|07|08|05)+([0-9]{8})\b)/,v=e=>L.test(e),F=e=>{const t="<>@!#$%^&*()_+[]{}?:;|'\"\\,./~`-=";for(let n=0;n<t.length;n++)if(e.indexOf(t[n])>-1)return!0;return!1},I=e=>/[0-9]/.test(e),U=e=>e.replace(/\0.*$/g,""),M=e=>{if(e&&e.length>19){const t=e.split(" ");return t.map((n,o)=>o!==t.length-1?n.charAt(0):n).join(".")}return e||""};function q(e,t){e=e.trim(),e=e.toLowerCase();const n="åàáãảạäăặâậấầẩẫắằèéẽëẹẻêệềếểễìíĩịïîỉĩýỳỵỷỹòóọöôộỗốồổơợớờỡụùúũủưửứừựữüûñçđ·/_,:;",o="aaaaaaaaaaaaaaaaaeeeeeeeeeeeeiiiiiiiiyyyyyooooooooooooooouuuuuuuuuuuuuncd------";for(let a=0,i=n.length;a<i;a++)e=e.replace(new RegExp(n.charAt(a),"g"),o.charAt(a));return e.replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-/g,t)}const Q=e=>new Promise(t=>setTimeout(t,e)),V=(e,t="vi-VN",n)=>e?e.toLocaleString(t,n):"0",W=e=>new Promise((t,n)=>{const o=new FileReader;o.onload=function(a){a.target.result?t(window.btoa(a.target.result)):n(a.target.error)},o.readAsBinaryString(e)}),S="image/jpeg",Z=`data:${S};base64,`,G=e=>{e=`${Z}${e}`;const t=window.atob(e.split(",")[1]),n=new ArrayBuffer(t.length),o=new Uint8Array(n);for(let a=0;a<t.length;a++)o[a]=t.charCodeAt(a);return new Blob([n],{type:S})};class H{constructor(t=[]){j(this,"store");this.store=t}enqueue(t){this.store.push(t)}dequeue(){return this.store.shift()}isEmpty(){return this.store.length===0}}const K=()=>{},m=(e,t=null,n="parentId")=>e.filter(o=>o[n]===t).map(o=>({...o,children:m(e,o.id)})),X=()=>{const[e]=new Date().toISOString().split("T");return e};function Y(e){return h(e)}function h(e,t,n){if(e===null||typeof e!="object")return e;if(typeof e.clone=="function")return e.clone(!0);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);if(e.nodeType&&typeof e.cloneNode=="function")return e.cloneNode(!0);t===void 0&&(t=[],n=[]);let o,a=t.length;for(o=0;o<a;o++)if(e===t[o])return n[o];if(Object.prototype.toString.call(e)=="[object Array]"){let l=e.slice();t.push(e),n.push(l);let s=l.length;for(;s--;)l[s]=h(l[s],t,n);return l}let i=Object.create;typeof i!="function"&&(i=function(l){function s(){}return s.prototype=l,new s});let y=Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__;y||(y=e.constructor.prototype);let d=i(y);t.push(e),n.push(d);for(let l in e)d[l]=h(e[l],t,n);return d}function O(e){return e==null||e===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0}const _=e=>/^-?\d+$/.test(e),x=e=>O(e)?!1:new Set(e).size!==e.length,ee=e=>O(e)?[]:e.filter((t,n)=>n!==e.indexOf(t)),te=e=>e?/\d/.test(e):!1,ne=e=>e!==e.toLowerCase(),re=e=>/\s/g.test(e),oe=(e,t={})=>{try{return JSON.parse(e)}catch{return t}};function C(e,t){try{return t&&t.doNotParse||!e?e:JSON.parse(e)}catch{}return e}const ae=e=>btoa(encodeURI(e)),ce=e=>e.replace(/(rgb\(|\))/g,"");var T=(e=>(e.none="none",e.error="error",e.warn="warn",e.info="info",e.debug="debug",e))(T||{});const p=["none".toString(),"error".toString(),"warn".toString(),"info".toString(),"debug".toString()];function ie(e,t){return p.indexOf(t)<=p.indexOf(e)}function le(){return{logger:null,level:"none",transports:[]}}function f(e,t,...n){e.transports.forEach(o=>{const a=o.level||e.level;if(ie(a,t))try{switch(t){case"error":{o.error(...n);break}case"warn":{o.warn(...n);break}case"info":{o.info(...n);break}case"debug":{o.debug(...n);break}}}catch(i){console.error("Logger handleLog error: ",i)}})}function ue(e){let t=le();return e&&(t=b(t,e)),t.logger={level:t.level,transports:t.transports,setLevel(n){t.level=n},addTransport(n){t.transports.push(n)},error(...n){f(t,"error",...n)},warn(...n){f(t,"warn",...n)},info(...n){f(t,"info",...n)},debug(...n){f(t,"debug",...n)},_context:t}}const N={level:"",setLevel(e){N.level=e},error(e,...t){console.log("[SB][error]",e,...t)},warn(e,...t){console.log("[SB][warn]",e,...t)},info(e,...t){console.log("[SB][info]",e,...t)},debug(e,...t){console.log("[SB][debug]",e,...t)}},se={get(e,t){return C(localStorage.getItem(e),t)},set(e,t,n){localStorage.setItem(e,t)},remove(e){localStorage.removeItem(e)}};r.Console=N,r.LogLevels=T,r.NOOP=K,r.Queue=H,r.base64Encode=ae,r.base64ToBlob=G,r.camelize=D,r.capitalize=E,r.cloneDeep=g,r.convertFileToBinary=W,r.createLogger=ue,r.deepCopy=Y,r.delay=Q,r.existNumber=I,r.existSpecialChar=F,r.extend=b,r.findAndReplace=J,r.findDuplicates=ee,r.formatCurrency=V,r.getCurrentDate=X,r.getMemberName=M,r.getRawRgb=ce,r.hasDuplicates=x,r.hasNumber=te,r.hasOwn=c,r.hasUpperCase=ne,r.hasWhiteSpace=re,r.isNumeric=_,r.isObjectDiff=u,r.isValidEmail=P,r.isValidPhoneNumber=v,r.levels=p,r.makeTree=m,r.omit=A,r.parseStorageValue=C,r.parseToJson=oe,r.pluralize=$,r.removeNullByte=U,r.storage=se,r.stringToSlug=q,r.trimSpace=k,r.truncate=R,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})});
