@polgubau/utils
Version:
A collection of utility functions for TypeScript
2 lines • 7.4 kB
JavaScript
function U(e){return e[0]}function $(e){return e[e.length-1]}function K(e){return e.slice(1)}function H(e){return e.slice(0,e.length-1)}var F=(e,t=10)=>e.reduce((n,r,o)=>{let s=Math.floor(o/t);return n[s]||(n[s]=[]),n[s].push(r),n},[]);function J(e,t){let n={};for(let r of e){let o=t(r);n[o]==null&&(n[o]=[]),n[o].push(r)}return n}var G=(e,t=3)=>{let n=e.slice(0,t),r=e.length-t;return{limitedArray:n,remaining:r}};function z(e,t){let n=t<0?e.length+t:t;return n<0||n>=e.length||e.splice(n,1),e}function V(e){let t=e.slice();for(let n=t.length-1;n>=1;n--){let r=Math.floor(Math.random()*(n+1)),o=t[n],s=t[r];s&&o&&([o,s]=[s,o])}return t}function X(e,t,n){return n==null?Math.min(e,t):Math.min(Math.max(e,t),n)}var Q=(e,t,n)=>{let r=new Date;r.setDate(r.getDate()+(n??0));let o=encodeURIComponent(t)+(n?`; expires=${r.toUTCString()}`:"");document.cookie=`${e}=${o}; path=/`},ee=e=>{let t=document.cookie.split("; ");for(let n of t){let[r,o]=n.split("=");if(r===e)return decodeURIComponent(o??"")}},te=e=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`};var p="parsing error on value: ";function _(e){try{return e?JSON.parse(e??""):void 0}catch{throw console.error(p,{value:e}),new Error(p+e)}}function P(e){try{return e?JSON.parse(e??""):void 0}catch{console.error(p,{value:e});return}}function O(e){try{return JSON.stringify(e)}catch{console.error(p,{value:e});return}}var h={saveParse:P,parse:_,stringify:O};function se(e,t){let n=localStorage.getItem(e);return n?h.saveParse(n):(w(e,t),t)}function w(e,t){localStorage.setItem(e,JSON.stringify(t))}function ie(e){localStorage.removeItem(e)}var ue=async e=>navigator?.clipboard?(await navigator.clipboard.writeText(e),!0):(console.warn("Clipboard not supported"),!1);function fe(e,t){let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}}var A=new TextEncoder,k=new TextDecoder;async function C(e){let t=A.encode(e);if(t.length<32)throw new Error("Key must be at least 32 characters long");return await crypto.subtle.importKey("raw",t.slice(0,32),{name:"AES-GCM"},!1,["encrypt","decrypt"])}async function pe(e,t){let n=await C(t),r=crypto.getRandomValues(new Uint8Array(12)),o=await crypto.subtle.encrypt({name:"AES-GCM",iv:r},n,A.encode(e)),s=new Uint8Array([...r,...new Uint8Array(o)]);return btoa(String.fromCharCode(...s))}async function me(e,t){let n=await C(t),r=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),o=r.slice(0,12),s=r.slice(12),a=await crypto.subtle.decrypt({name:"AES-GCM",iv:o},n,s);return k.decode(a)}var b=/[\\\/_+.#"@\[\(\{&]/,M=/[\s-]/,E=/[\s-]/g;function T(e,t,n,r,o,s,a){if(s===t.length)return o===e.length?1:.99;let i=`${o},${s}`;if(a[i]!==void 0)return a[i];let y=r.charAt(s),u=n.indexOf(y,o),l=0,c,g,d;for(;u>=0;)c=T(e,t,n,r,u+1,s+1,a),c>l&&(u===o?c*=1:b.test(e.charAt(u-1))?c*=.8:M.test(e.charAt(u-1))?(c*=.9,d=e.slice(o,u-1).match(E),d&&o>0&&(c*=.999**d.length)):(c*=.17,o>0&&(c*=.999**(u-o))),e.charAt(u)!==t.charAt(s)&&(c*=.9999)),(c<.1&&n.charAt(u-1)===r.charAt(s+1)||r.charAt(s+1)===r.charAt(s)&&n.charAt(u-1)!==r.charAt(s))&&(g=T(e,t,n,r,u+1,s+2,a),g*.1>c&&(c=g*.1)),c>l&&(l=c),u=n.indexOf(y,u+1);return a[i]=l,l}function x(e){return e.toLowerCase().replace(E," ")}function de(e,t,n){let r=n&&n.length>0?`${`${e} ${n.join(" ")}`}`:e;return T(r,t,x(e),x(t),0,0,{})}var ye=e=>{if(e===0)return"";let t=new Uint8Array(16);crypto.getRandomValues(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=Array.from(t,o=>o.toString(16).padStart(2,"0")),r=`${n.slice(0,4).join("")}-${n.slice(4,6).join("")}-${n.slice(6,8).join("")}-${n.slice(8,10).join("")}-${n.slice(10).join("")}`;return e?r.slice(0,e):r};var Ae=e=>{let t;return typeof e=="string"?t=Number.parseInt(e):t=e,new Promise(n=>setTimeout(n,t))};var R=(r=>(r.rtl="rtl",r.ltr="ltr",r.auto="auto",r))(R||{});function xe(){if(typeof window>"u"||!window.document)return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}var Se=()=>typeof window<"u";function _e(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]");default:return!1}}function Oe(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function f(e){return e!==null&&typeof e=="object"&&e.constructor===Object}function m(e){if(!f(e))return e;let t={};for(let n in e)t[n]=m(e[n]);return t}var j=["displayName","name","label","title","main","code","value","userName","locale","id","fullName","shortName"],Re=e=>{let t=j.find(r=>{if(e?.[r])return!0});if(t){let r=e[t];return{key:t,value:r}}return{key:Object.keys(e)[0],value:e[Object.keys(e)[0]]}};function D(e,t){if(f(t)&&Object.keys(t).length===0)return m({...e,...t});let n={...e,...t};if(f(t)&&f(e))for(let r in t)f(t[r])&&r in e&&f(e[r])?n[r]=D(e[r],t[r]):n[r]=f(t[r])?m(t[r]):t[r];return n}function S(e){return typeof e=="object"&&e!==null}function N(e,t){let n=Object.keys(t);for(let r of n){let o=t[r],s=e[r];Array.isArray(o)?e[r]=N(s??[],o):S(s)&&S(o)?e[r]=N(s??{},o):(s===void 0||o!==void 0)&&(e[r]=o)}return e}function Ke(e,t){let n={...e};for(let r of t)delete n[r];return n}function Ie(e){let t=[],n=e.length;if(n===0)return t;let r=0,o="",s="",a=!1;for(e.charCodeAt(0)===46&&(t.push(""),r++);r<n;){let i=e[r];s?i==="\\"&&r+1<n?(r++,o+=e[r]):i===s?s="":o+=i:a?i==='"'||i==="'"?s=i:i==="]"?(a=!1,t.push(o),o=""):o+=i:i==="["?(a=!0,o&&(t.push(o),o="")):i==="."?o&&(t.push(o),o=""):o+=i,r++}return o&&t.push(o),t}function Ye(e){return`${e.toString()}px`}function We(e){return e.replace(/[-_](.)/g,(t,n)=>n.toUpperCase())}function Ge(e){return e.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase())}function ve(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/\s+/g,"-").toLowerCase()}function ze(e){return e.toUpperCase()}function Be(e){return e.toLowerCase()}function L(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Ve(e){return e.replace(/\s/g,"")}function Ze(e){return e.split("").reverse().join("")}function Xe(e,t=50,n="..."){return e.length===0?e:e.length>t?e.substring(0,t-n.length)+n:e}function qe(e){let t=e.replace(/([a-z])([A-Z])/g,"$1 $2");return L(t.replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").trim())}var Qe=(e=4)=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",n="";for(let r=0;r<e;r++){let o=Math.floor(Math.random()*t.length);n+=t.charAt(o)}return n},et=e=>e.toLowerCase().replace(/\s/g,"");export{j as DEFAULT_KEYS,R as DirEnum,L as capitalize,F as chunk,X as clamp,m as cloneDeep,ue as copyToClipboard,fe as debounce,me as decrypt,te as deleteCookie,pe as encrypt,U as first,qe as formatString,de as fuzzyFinder,T as fuzzyFinderInner,ye as generateUUID,ee as getCookie,xe as getDocumentDirection,se as getLocalStorage,Re as getMainField,J as groupBy,Se as isClient,_e as isDeepKey,Oe as isEqual,f as isObject,S as isObjectLike,h as json,$ as last,G as limitArray,et as lowerAndNoSpace,N as merge,D as mergeDeep,Ke as omit,_ as parseJSON,Ye as px,Qe as randomString,z as remove,K as removeFirst,ie as removeFromLocalStorage,H as removeLast,Ve as removeWhitespace,Ze as reverseString,P as saveParseJson,Q as setCookie,w as setToLocalStorage,V as shuffle,Ae as sleep,O as stringify,We as toCamelCase,ve as toKebabCase,Be as toLowerCase,Ie as toPath,Ge as toTitleCase,ze as toUpperCase,Xe as truncateString};
//# sourceMappingURL=utils.production.min.mjs.map