UNPKG

@pivanov/utils

Version:

A focused collection of TypeScript utilities for modern web development

8 lines (7 loc) 16.9 kB
/*! * @pivanov/utils v1.0.0 * (c) 2024-present Pavel Ivanov * Released under the MIT License. * https://github.com/pivanov/utils */ var{defineProperty:x,getOwnPropertyNames:WQ,getOwnPropertyDescriptor:BQ}=Object,HQ=Object.prototype.hasOwnProperty;var n=new WeakMap,K=(J)=>{var Q=n.get(J),X;if(Q)return Q;if(Q=x({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function")WQ(J).map((Y)=>!HQ.call(Q,Y)&&x(Q,Y,{get:()=>J[Y],enumerable:!(X=BQ(J,Y))||X.enumerable}));return n.set(J,Q),Q};var P=(J,Q)=>{for(var X in Q)x(J,X,{get:Q[X],enumerable:!0,configurable:!0,set:(Y)=>Q[X]=()=>Y})};var OQ={};P(OQ,{isUndefined:()=>e,isString:()=>s,isSet:()=>FJ,isRegExp:()=>$J,isRecord:()=>t,isPromise:()=>UJ,isPrimitive:()=>WJ,isObject:()=>V,isNumber:()=>r,isNull:()=>JJ,isNil:()=>QJ,isMap:()=>_J,isFunction:()=>a,isError:()=>GJ,isEmpty:()=>BJ,isDefined:()=>XJ,isDate:()=>ZJ,isBoolean:()=>i,isArray:()=>YJ});module.exports=K(OQ);var i=(J)=>{return typeof J==="boolean"},r=(J)=>{return typeof J==="number"},s=(J)=>{return typeof J==="string"},a=(J)=>{return typeof J==="function"},V=(J)=>{if(J===null||typeof J!=="object")return!1;let Q=Object.getPrototypeOf(J);return Q===Object.prototype||Q===null},t=(J)=>{return typeof J==="object"&&J!==null},e=(J)=>{return J===void 0},JJ=(J)=>{return J===null},QJ=(J)=>{return J===null||J===void 0},XJ=(J)=>{return J!==void 0},YJ=(J)=>{return Array.isArray(J)},ZJ=(J)=>{return J instanceof Date},$J=(J)=>{return J instanceof RegExp},GJ=(J)=>{return J instanceof Error},UJ=(J)=>{return J!==null&&(typeof J==="object"||typeof J==="function")&&typeof J.then==="function"},_J=(J)=>{return J instanceof Map},FJ=(J)=>{return J instanceof Set},WJ=(J)=>{if(J===null||J===void 0)return!0;let Q=typeof J;return Q==="string"||Q==="number"||Q==="boolean"||Q==="bigint"||Q==="symbol"},BJ=(J)=>{if(J===null||J===void 0)return!0;if(typeof J==="string"||Array.isArray(J))return J.length===0;if(J instanceof Map||J instanceof Set)return J.size===0;if(typeof J==="object")return Object.keys(J).length===0;return!1};var RQ={};P(RQ,{pickBy:()=>f,pick:()=>OJ,omitBy:()=>RJ,omit:()=>HJ,merge:()=>PJ,mapValues:()=>IJ,mapKeys:()=>TJ,keysOf:()=>AJ,invert:()=>zJ,hasOwn:()=>MJ,groupBy:()=>qJ,fromEntries:()=>SJ,entriesOf:()=>KJ,deepMerge:()=>C});module.exports=K(RQ);var HJ=(J,Q)=>{let X={...J};for(let Y of Q)delete X[Y];return X},OJ=(J,Q)=>{let X={};for(let Y of Q)if(Y in J)X[Y]=J[Y];return X},f=(J,Q)=>{let X={};for(let Y of Object.keys(J))if(Q(J[Y],Y))X[Y]=J[Y];return X},RJ=(J,Q)=>{return f(J,(X,Y)=>!Q(X,Y))},IJ=(J,Q)=>{let X={};for(let Y of Object.keys(J))X[Y]=Q(J[Y],Y);return X},TJ=(J,Q)=>{let X={};for(let Y of Object.keys(J))X[Q(J[Y],Y)]=J[Y];return X},qJ=(J,Q)=>{let X={};return J.forEach((Y,Z)=>{let U=Q(Y,Z);if(X[U])X[U].push(Y);else X[U]=[Y]}),X},zJ=(J)=>{let Q={};for(let X of Object.keys(J))Q[J[X]]=X;return Q},MJ=(J,Q)=>{return Object.hasOwn(J,Q)},AJ=(J)=>{return Object.keys(J)},KJ=(J)=>{return Object.entries(J)},SJ=(J)=>{return Object.fromEntries(J)},PJ=(J,...Q)=>{return Object.assign({},J,...Q)},C=(J,...Q)=>{let X={...J};for(let Y of Q){if(Y===void 0)continue;for(let Z of Object.keys(Y)){let U=Y[Z],_=X[Z];if(V(U))X[Z]=C(V(_)?_:{},U);else X[Z]=U}}return X};var IQ={};P(IQ,{timeout:()=>EJ,sleep:()=>g,retry:()=>VJ,parallelLimit:()=>NJ,defer:()=>LJ});module.exports=K(IQ);var g=(J,Q)=>{return new Promise((X,Y)=>{if(Q?.aborted){Y(Q.reason);return}let Z=setTimeout(()=>{Q?.removeEventListener("abort",U),X()},J),U=()=>{clearTimeout(Z),Y(Q?.reason)};Q?.addEventListener("abort",U,{once:!0})})},EJ=(J,Q,X)=>{return new Promise((Y,Z)=>{let U=setTimeout(()=>{Z(X??Error(`Operation timed out after ${Q}ms`))},Q);J.then((_)=>{clearTimeout(U),Y(_)},(_)=>{clearTimeout(U),Z(_)})})},VJ=async(J,Q={})=>{let{attempts:X=3,backoff:Y=0,signal:Z,shouldRetry:U}=Q,_;for(let H=1;H<=X;H++){if(Z?.aborted)throw Z.reason;try{return await J(H)}catch(z){if(_=z,H>=X)break;if(U&&!U(z,H))break;let S=typeof Y==="function"?Y(H):Y;if(S>0)await g(S,Z)}}throw _},LJ=()=>{let J,Q;return{promise:new Promise((Y,Z)=>{J=Y,Q=Z}),resolve:J,reject:Q}},NJ=async(J,Q,X)=>{if(Q<1)throw Error("parallelLimit: concurrency must be >= 1");let Y=Array(J.length),Z=0,U=async()=>{while(!0){let H=Z++;if(H>=J.length)return;Y[H]=await X(J[H],H)}},_=Array.from({length:Math.min(Q,J.length)},U);return await Promise.all(_),Y};var qQ={};P(qQ,{words:()=>yJ,uncapitalize:()=>mJ,truncate:()=>hJ,titleCase:()=>gJ,snakeCase:()=>CJ,slugify:()=>dJ,pascalCase:()=>wJ,lines:()=>jJ,kebabCase:()=>fJ,escapeRegExp:()=>pJ,escapeHtml:()=>kJ,capitalizeFirstLetter:()=>xJ,capitalize:()=>vJ,camelCase:()=>DJ});module.exports=K(qQ);var DJ=(J)=>{return J.trim().toLowerCase().replace(/^[-_\s]+/,"").replace(/[-_\s]+(.)?/g,(Q,X)=>X?X.toUpperCase():"")},wJ=(J)=>{return J.split(/(?=[0-9])|(?<=[0-9])|[^a-zA-Z0-9]+/g).filter(Boolean).map((Q)=>Q.toLowerCase()).map((Q)=>`${Q.charAt(0).toUpperCase()}${Q.slice(1)}`).join("")},xJ=(J)=>J.charAt(0).toUpperCase()+J.slice(1),fJ=(J)=>{if(J==null)return J;return J.normalize("NFKD").replace(/\p{Diacritic}/gu,"").replace(/[^\w\s-]/g," ").replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").replace(/[-_\s]+/g,"-").toLowerCase().replace(/^-+|-+$/g,"").trim()},CJ=(J)=>{if(J==null)return J;return J.normalize("NFKD").replace(/\p{Diacritic}/gu,"").replace(/[^\w\s-]/g," ").replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/([A-Z])([A-Z][a-z])/g,"$1_$2").replace(/[-_\s]+/g,"_").toLowerCase().replace(/^_+|_+$/g,"").trim()},gJ=(J)=>{return J.normalize("NFKD").replace(/[^\w\s-]/g," ").split(/[-_\s]+/).filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1).toLowerCase()).join(" ")},dJ=(J)=>{return J.normalize("NFKD").toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[-\s_]+/g,"-").replace(/^-+|-+$/g,"")},vJ=(J)=>{return J.charAt(0).toUpperCase()+J.slice(1)},mJ=(J)=>{return J.charAt(0).toLowerCase()+J.slice(1)},hJ=(J,Q,X="…")=>{if(J.length<=Q)return J;if(Q<=X.length)return X.slice(0,Q);return J.slice(0,Q-X.length)+X},TQ={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},kJ=(J)=>{return J.replace(/[&<>"']/g,(Q)=>TQ[Q])},pJ=(J)=>{return J.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},yJ=(J)=>{return J.split(/[-_\s]+/).filter(Boolean)},jJ=(J)=>{return J.split(/\r\n|\r|\n/)};var SQ={};P(SQ,{useEventBus:()=>UQ,stringifyBigIntValues:()=>d,storageSetItemWithTTL:()=>uJ,storageSetItem:()=>v,storageRemoveItem:()=>h,storageGetItemWithTTL:()=>bJ,storageGetItem:()=>m,storageGetAllKeys:()=>iJ,storageExists:()=>nJ,storageClearBySuffix:()=>oJ,storageClearByPrefixOrSuffix:()=>w,storageClearByPrefix:()=>lJ,storageClear:()=>cJ,storageCalculateSize:()=>rJ,setStyleProperties:()=>tJ,isInViewport:()=>QQ,isEqual:()=>FQ,isBrowser:()=>aJ,deepClone:()=>sJ,checkVisibility:()=>eJ,calculateRenderedTextWidth:()=>XQ,busSubscribe:()=>N,busOnce:()=>$Q,busDispatch:()=>ZQ,__resetTextMeasurementCache:()=>JQ});module.exports=K(SQ);var d=(J,Q)=>{return typeof Q==="bigint"?Q.toString():Q},L=(J)=>{if(J.startsWith("http://")||J.startsWith("https://"))return J;return`https://cache.internal/${J}`},v=async(J,Q,X)=>{let Y=await caches.open(J),Z=JSON.stringify(X,d),U=new Response(Z,{headers:{"Content-Type":"application/json"}}),_=L(Q);await Y.put(new Request(_),U)},m=async(J,Q)=>{let X=await caches.open(J),Y=L(Q),Z=await X.match(new Request(Y));if(!Z)return null;let U=await Z.text();return JSON.parse(U)},zQ=(J)=>{return typeof J==="object"&&J!==null&&J.__ttl===!0&&typeof J.exp==="number"},uJ=async(J,Q,X,Y)=>{let Z={__ttl:!0,v:X,exp:Date.now()+Y};await v(J,Q,Z)},bJ=async(J,Q)=>{let X=await m(J,Q);if(!zQ(X))return null;if(Date.now()>=X.exp)return await h(J,Q),null;return X.v},h=async(J,Q)=>{let X=await caches.open(J),Y=L(Q);return X.delete(new Request(Y))},cJ=async(J)=>{let Q=await caches.open(J),X=await Q.keys();for(let Y of X)await Q.delete(Y)},w=async(J,Q,X=!0)=>{let Y=await caches.open(J),Z=await Y.keys();for(let U of Z){let _=U.url.split("/"),H=_[_.length-1]||"";if(X&&H.startsWith(Q)||!X&&H.endsWith(Q))await Y.delete(U)}},lJ=async(J,Q)=>{await w(J,Q,!0)},oJ=async(J,Q)=>{await w(J,Q,!1)},nJ=async(J,Q)=>{let X=await caches.open(J),Y=L(Q);return await X.match(new Request(Y))!==void 0},iJ=async(J)=>{return(await(await caches.open(J)).keys()).map((Y)=>{let Z=Y.url.split("/");return Z[Z.length-1]||""})},rJ=async(J,Q)=>{let X=await caches.open(J);if(Q){let U=L(Q),_=await X.match(new Request(U));if(_)return(await _.clone().arrayBuffer()).byteLength;return 0}let Y=await X.keys(),Z=0;for(let U of Y){let _=await X.match(U);if(_){let H=await _.clone().arrayBuffer();Z+=H.byteLength}}return Z};var sJ=(J)=>{return B(J,new WeakMap)},B=(J,Q)=>{if(J===null||typeof J!=="object")return J;let X=Q.get(J);if(X)return X;if(Array.isArray(J)){let $=J.length;if($<32){let G=Array($);Q.set(J,G);for(let W=0;W<$;W++)if(W in J)G[W]=B(J[W],Q);return G}let F=Array($);if(Q.set(J,F),Object.keys(J).length===$){let G=0,W=$%8,R=$-W;while(G<R)F[G]=B(J[G],Q),F[G+1]=B(J[G+1],Q),F[G+2]=B(J[G+2],Q),F[G+3]=B(J[G+3],Q),F[G+4]=B(J[G+4],Q),F[G+5]=B(J[G+5],Q),F[G+6]=B(J[G+6],Q),F[G+7]=B(J[G+7],Q),G+=8;while(G<$)F[G]=B(J[G],Q),G++}else for(let G=0;G<$;G++)if(G in J)F[G]=B(J[G],Q);return F}if(J instanceof Date||J instanceof RegExp)return new J.constructor(J);if(typeof Buffer<"u")try{if(Buffer.isBuffer(J))return Buffer.from(J)}catch($){if($ instanceof Error)throw $}if(ArrayBuffer.isView(J)){let $=J.constructor;if("buffer"in J){let G=J,W=G.buffer.slice(G.byteOffset,G.byteOffset+G.byteLength);return new $(W)}return new $(new ArrayBuffer(J.byteLength))}if(J instanceof ArrayBuffer)return J.slice(0);if(J&&typeof J==="object"&&"buffer"in J&&"byteLength"in J){let $=J;if(typeof Buffer>"u"){let G=new Uint8Array($.buffer,$.byteOffset||0,$.byteLength),W=new Uint8Array(G.length);return W.set(G),W}return{buffer:$.buffer instanceof ArrayBuffer?$.buffer.slice(0):new ArrayBuffer($.byteLength),byteLength:$.byteLength,byteOffset:$.byteOffset||0,length:$.length||$.byteLength,BYTES_PER_ELEMENT:$.BYTES_PER_ELEMENT||1}}if(J instanceof Set){let $=new Set;Q.set(J,$);let F=Array.from(J),G=F.length;for(let W=0;W<G;W++)$.add(B(F[W],Q));return $}if(J instanceof Map){let $=new Map;Q.set(J,$);let F=Array.from(J),G=F.length;for(let W=0;W<G;W++){let[R,M]=F[W];$.set(R,B(M,Q))}return $}if(Object.getPrototypeOf(J)===Object.prototype){let $={};Q.set(J,$);let F=Object.getOwnPropertySymbols(J),G=F.length;if(G>0)for(let O=0;O<G;O++){let I=F[O],T=Object.getOwnPropertyDescriptor(J,I);if(T?.enumerable)Object.defineProperty($,I,T)}let W=Object.getOwnPropertyDescriptors(J),R=Object.keys(J),M=R.length,p=!1;for(let O=0;O<M;O++){let I=W[R[O]];if(I.get||I.set){p=!0;break}}if(p)for(let O=0;O<M;O++){let I=R[O],T=W[I];if(T.enumerable)if(T.get||T.set)Object.defineProperty($,I,T);else{let A=B(T.value,Q);Object.defineProperty($,I,{...T,value:A})}}else{let O=0,I=M%8,T=M-I;while(O<T){let A=R[O],y=R[O+1],j=R[O+2],u=R[O+3],b=R[O+4],c=R[O+5],l=R[O+6],o=R[O+7],q=J;$[A]=B(q[A],Q),$[y]=B(q[y],Q),$[j]=B(q[j],Q),$[u]=B(q[u],Q),$[b]=B(q[b],Q),$[c]=B(q[c],Q),$[l]=B(q[l],Q),$[o]=B(q[o],Q),O+=8}while(O<M){let A=R[O++];$[A]=B(J[A],Q)}}return $}let Y=Object.getPrototypeOf(J),Z=Object.create(Y);Q.set(J,Z);let U=Object.getOwnPropertyDescriptors(J),_=Object.keys(U),H=_.length;for(let $=0;$<H;$++){let F=_[$],G=U[F];if(!G.enumerable)continue;if(G.get||G.set)Object.defineProperty(Z,F,G);else{let W=B(G.value,Q);Object.defineProperty(Z,F,{...G,value:W})}}let z=Object.getOwnPropertySymbols(J),S=z.length;for(let $=0;$<S;$++){let F=z[$],G=Object.getOwnPropertyDescriptor(J,F);if(!G?.enumerable)continue;Object.defineProperty(Z,F,G)}return Z};var aJ=()=>{return typeof window<"u"&&typeof document<"u"},tJ=(J,Q)=>{if(!J)return;for(let[X,Y]of Object.entries(Q))J.style.setProperty(X,Y)},eJ=(J,Q={})=>{let{checkViewport:X=!0,checkDisplay:Y=!0,checkVisibility:Z=!0,checkOpacity:U=!0}=Q;if(!J.isConnected)return!1;if(Y||Z||U){let _=window.getComputedStyle(J);if(Y&&_.display==="none")return!1;if(Z&&_.visibility!==""&&_.visibility!=="visible")return!1;if(U&&_.opacity!==""){let H=Number.parseFloat(_.opacity);if(!Number.isNaN(H)&&H===0)return!1}}if(X){let _=J.getBoundingClientRect();if(_.width!==0||_.height!==0){let H=window.innerHeight||document.documentElement.clientHeight,z=window.innerWidth||document.documentElement.clientWidth,S=_.bottom<=0||_.top>=H,$=_.right<=0||_.left>=z;if(S||$)return!1}}return!0};var k,E,MQ=()=>{if(E!==void 0)return E;if(typeof document>"u")return E=null,null;return k=document.createElement("canvas"),E=k.getContext("2d"),E},JQ=()=>{k=void 0,E=void 0},QQ=(J,Q={})=>{let{vertical:X=!0,horizontal:Y=!0}=Q,Z=J.getBoundingClientRect();if(Z.width===0&&Z.height===0)return!0;let U=window.innerHeight||document.documentElement.clientHeight,_=window.innerWidth||document.documentElement.clientWidth;if(X&&(Z.bottom<=0||Z.top>=U))return!1;if(Y&&(Z.right<=0||Z.left>=_))return!1;return!0},XQ=(J,Q,X=!1,Y='Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"')=>{let Z=MQ();if(!Z)return 0;let U=X?J.toUpperCase():J;return Z.font=`${Q}px ${Y}`,Z.measureText(U).width};var AQ=(J,Q="\uD83D\uDE80")=>{let X=0,Y=J+Q;for(let Z=0;Z<Y.length;Z++){let U=Y.charCodeAt(Z);X=(X<<5)-X+U,X|=0}return(X>>>0).toString(16)},YQ=(J)=>{return`${AQ(J)}::${J}`},KQ=(J,Q)=>{return(X)=>{if(!(X instanceof CustomEvent))return;try{J(X.detail)}catch(Y){if(Q)Q(Y);else console.error("Event listener error:",Y)}}},ZQ=(J,Q)=>{if(!J)return;let X=YQ(J);window.dispatchEvent(new CustomEvent(X,{detail:Q,bubbles:!0,cancelable:!1}))},N=(J,Q,X={})=>{if(!J||typeof Q!=="function")return()=>{};let Y=KQ(Q,X.onError),Z=YQ(J);return window.addEventListener(Z,Y),()=>window.removeEventListener(Z,Y)},$Q=(J,Q,X={})=>{if(!J||typeof Q!=="function")return()=>{};let Y=N(J,(Z)=>{Y(),Q(Z)},X);return Y};var GQ=require("react");var UQ=(J,Q,X=[])=>{GQ.useEffect(()=>{if(!J||typeof Q!=="function")return;return N(J,Q)},[J,Q,...X])};var FQ=(J,Q)=>{return D(J,Q,new WeakMap)},D=(J,Q,X)=>{if(Object.is(J,Q))return!0;if(J instanceof Date&&Q instanceof Date)return J.getTime()===Q.getTime();if(J instanceof RegExp&&Q instanceof RegExp)return J.source===Q.source&&J.flags===Q.flags;if(J instanceof Error&&Q instanceof Error)return J.name===Q.name&&J.message===Q.message;if(J instanceof ArrayBuffer&&Q instanceof ArrayBuffer){if(J.byteLength!==Q.byteLength)return!1;return _Q(new Uint8Array(J),new Uint8Array(Q))}if(ArrayBuffer.isView(J)&&ArrayBuffer.isView(Q)){if(J.constructor!==Q.constructor)return!1;if(J.byteLength!==Q.byteLength)return!1;let Y=new Uint8Array(J.buffer,J.byteOffset,J.byteLength),Z=new Uint8Array(Q.buffer,Q.byteOffset,Q.byteLength);return _Q(Y,Z)}if(typeof J==="object"&&J!==null&&typeof Q==="object"&&Q!==null){let Y=X.get(J);if(Y?.has(Q))return!0;if(Y)Y.add(Q);else X.set(J,new WeakSet([Q]))}if(Array.isArray(J)&&Array.isArray(Q)){if(J.length!==Q.length)return!1;for(let Y=0;Y<J.length;Y++)if(!D(J[Y],Q[Y],X))return!1;return!0}if(J instanceof Set&&Q instanceof Set){if(J.size!==Q.size)return!1;let Y=Array.from(Q);for(let Z of J){let U=Y.findIndex((_)=>D(Z,_,X));if(U===-1)return!1;Y.splice(U,1)}return!0}if(J instanceof Map&&Q instanceof Map){if(J.size!==Q.size)return!1;for(let[Y,Z]of J)if(!Q.has(Y)||!D(Z,Q.get(Y),X))return!1;return!0}if(J!==null&&typeof J==="object"&&Q!==null&&typeof Q==="object"){let Y=J,Z=Q,U=Object.keys(Y);if(U.length!==Object.keys(Z).length)return!1;for(let _ of U)if(!D(Y[_],Z[_],X))return!1;return!0}return!1},_Q=(J,Q)=>{for(let X=0;X<J.length;X++)if(J[X]!==Q[X])return!1;return!0};var PQ={};module.exports=K(PQ);var EQ={};P(EQ,{words:()=>yJ,useEventBus:()=>UQ,uncapitalize:()=>mJ,truncate:()=>hJ,titleCase:()=>gJ,timeout:()=>EJ,stringifyBigIntValues:()=>d,storageSetItemWithTTL:()=>uJ,storageSetItem:()=>v,storageRemoveItem:()=>h,storageGetItemWithTTL:()=>bJ,storageGetItem:()=>m,storageGetAllKeys:()=>iJ,storageExists:()=>nJ,storageClearBySuffix:()=>oJ,storageClearByPrefixOrSuffix:()=>w,storageClearByPrefix:()=>lJ,storageClear:()=>cJ,storageCalculateSize:()=>rJ,snakeCase:()=>CJ,slugify:()=>dJ,sleep:()=>g,setStyleProperties:()=>tJ,retry:()=>VJ,pickBy:()=>f,pick:()=>OJ,pascalCase:()=>wJ,parallelLimit:()=>NJ,omitBy:()=>RJ,omit:()=>HJ,merge:()=>PJ,mapValues:()=>IJ,mapKeys:()=>TJ,lines:()=>jJ,keysOf:()=>AJ,kebabCase:()=>fJ,isUndefined:()=>e,isString:()=>s,isSet:()=>FJ,isRegExp:()=>$J,isRecord:()=>t,isPromise:()=>UJ,isPrimitive:()=>WJ,isObject:()=>V,isNumber:()=>r,isNull:()=>JJ,isNil:()=>QJ,isMap:()=>_J,isInViewport:()=>QQ,isFunction:()=>a,isError:()=>GJ,isEqual:()=>FQ,isEmpty:()=>BJ,isDefined:()=>XJ,isDate:()=>ZJ,isBrowser:()=>aJ,isBoolean:()=>i,isArray:()=>YJ,invert:()=>zJ,hasOwn:()=>MJ,groupBy:()=>qJ,fromEntries:()=>SJ,escapeRegExp:()=>pJ,escapeHtml:()=>kJ,entriesOf:()=>KJ,defer:()=>LJ,deepMerge:()=>C,deepClone:()=>sJ,checkVisibility:()=>eJ,capitalizeFirstLetter:()=>xJ,capitalize:()=>vJ,camelCase:()=>DJ,calculateRenderedTextWidth:()=>XQ,busSubscribe:()=>N,busOnce:()=>$Q,busDispatch:()=>ZQ,__resetTextMeasurementCache:()=>JQ});module.exports=K(EQ);