UNPKG

@ndriadev/react-tools

Version:

A React library of hooks, components, utils and types ready to use

2 lines (1 loc) 4.42 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./detectBrowser-g550P3EY.cjs"),y=require("react"),w=e=>e.nativeEvent instanceof MouseEvent,m=()=>typeof window<"u"&&!!window.document;function f(e){return e instanceof Map?JSON.stringify(Object.fromEntries(e)):e instanceof Set?JSON.stringify(Array.from(e)):JSON.stringify(e)}function i(e){return new Promise((n,t)=>{const r=new FileReader;r.onload=a=>{n(a.target.result)},r.onerror=t,r.readAsDataURL(e)})}function h(e){return new Promise((n,t)=>{e.complete?n():(e.onload=()=>{n()},e.onerror=t)})}function b(e,n){return new Promise((t,r)=>{if(!window)return r(Error("getBase64 is executable only in browser context."));try{if(e==null)t("");else if(typeof e=="string")t(i(new Blob([e],{type:"text/plain"})));else if(e instanceof Blob)t(i(e));else if(e instanceof ArrayBuffer)t(window.btoa(String.fromCharCode(...new Uint8Array(e))));else if(e instanceof HTMLCanvasElement)t(e.toDataURL(n==null?void 0:n.type,n==null?void 0:n.quality));else if(e instanceof HTMLImageElement){const a=e.cloneNode(!1);a.crossOrigin="Anonymous",h(a).then(()=>{const c=document.createElement("canvas"),o=c.getContext("2d");c.width=a.width,c.height=a.height,o.drawImage(a,0,0,c.width,c.height),t(c.toDataURL(n==null?void 0:n.type,n==null?void 0:n.quality))}).catch(r)}else if(typeof e=="object"){const c=((n==null?void 0:n.serializer)||f)(e);return t(i(new Blob([c],{type:"application/json"})))}else r(new Error("Unsupported target type."))}catch(a){r(a)}})}function C(e,n){return[...e].map(t=>{let r=t;if(Array.isArray(n))n.forEach(a=>{const{[a]:c,...o}=t;r={...o}});else{const{[n]:a,...c}=t;r={...c}}return r})}function A(e,...n){const t=[];for(const r of n)t.push(...r);return e!=="none"?Array.isArray(e)?t.reduce((r,a)=>(r.findIndex(c=>{let o=!0;for(const s of e)if(c[s]!==a[s]){o=!1;break}return o})===-1&&r.push(a),r),[]):t.reduce((r,a)=>(r.findIndex(c=>c[e]===a[e])===-1&&r.push(a),r),[]):[...new Set(t)]}function E(e,n){return n&&Object.keys(e).find(r=>e[r]===n)||void 0}function v(e,n,t){const r=t||{},a=e.split(".");let c=r;for(let o=0,s=a.length-1;o<s;o++)!(a[o]in c)&&(c[a[o]]={}),c=c[a[o]];return c[a[a.length-1]]=n,r}function d(e,n,t){const r={...e};for(const[a,c]of Object.entries(n))c===void 0&&t&&a?r[a]=c:c!==void 0&&(!Array.isArray(c)&&typeof c=="object"&&c!==null?r[a]=d(r[a],n[a]||{}):r[a]=c);return r}function O({string1:e,string2:n,compareType:t,locales:r,opts:a}){const c=e.localeCompare(n,r,a);switch(t){case"<":return c<0;case">":return c>0;case"=":return c===0;case"<=":return c<=0;case">=":return c>=0;default:return c}}const l={pascalCase:e=>{var n;return e?((n=e.charAt(0))==null?void 0:n.toUpperCase())+e.substring(1).toLowerCase():""},snakeCase:(e,n)=>e?n?["upperCase","lowerCase"].includes(n)?e.replaceAll(n==="upperCase"?/[A-Z]/g:/[a-z]/g,"_$&"):e.replaceAll(n,"_"):e:"",kebabCase:(e,n)=>e?n?["upperCase","lowerCase"].includes(n)?e.replaceAll(n==="upperCase"?/[A-Z]/g:/[a-z]/g,"-$&"):e.replaceAll(n,"-"):e:"",camelCase:(e,n)=>e?n?e.toLowerCase().split("").map((t,r,a)=>t===n?"":r>0&&a[r-1]===n?t.toUpperCase():t).join(""):e:""};function k({string:e,caseType:n,delimiter:t}){switch(n){case"pascalCase":return l.pascalCase(e);case"snakeCase":return l.snakeCase(e,t);case"kebabCase":return l.kebabCase(e,t);case"camelCase":return l.camelCase(e,t);default:throw Error("Unknown case type.")}}const p=(e,n={})=>y.lazy(()=>{n.beforeLoad&&n.beforeLoad();const t=e();return t.then(()=>!!n.afterLoad&&n.afterLoad()),t.then(r=>{if("default"in r)return{default:r.default};if(n.componentName&&n.componentName in r)return{default:r[n.componentName]};const a=Reflect.ownKeys(r).filter(c=>c!=="__esModule");if(a.length>0)return{default:r[a[0]]};throw Error("Invalid import")})});function S(e){return n=>{var t;n.code===e&&((t=n.target)==null||t.click())}}exports.detectBrowser=u.detectBrowser;exports.hotKeyHandler=u.hotKeyHandler;exports.isAsync=u.isAsync;exports.isDeepEqual=u.isDeepEqual;exports.isShallowEqual=u.isShallowEqual;exports.isTouchEvent=u.isTouchEvent;exports.alphanumericCompare=O;exports.changeStringCase=k;exports.clickElementOnKeydownEvent=S;exports.defaultSerializer=f;exports.getBase64=b;exports.getKeyObjectFromValue=E;exports.getObjectFromDottedString=v;exports.isClient=m;exports.isMouseEvent=w;exports.lazy=p;exports.mergeObjects=d;exports.removePropertiesFromArrayObjects=C;exports.uniqueElementsArray=A;