UNPKG

@studiohyperdrive/utils

Version:
2 lines (1 loc) 2.18 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=e=>!e||typeof e!="string"?"":e.match(/[A-Z][a-z]+/g).map((r,t)=>t===0?r:r.toLowerCase()).join(" ").trim(),O=e=>typeof e!="string"?e:e.replaceAll(/[\s\u00A0]/gi," "),l=e=>e.normalize("NFD").replace(/([\u0300-\u036f])/g,""),j=(e,r,t=!0,n=!0)=>m(e,r,t,n,"some"),A=(e,r,t=!0,n=!0)=>m(e,r,t,n,"every"),m=(e,r,t=!0,n=!0,c)=>{if(!r.trim())return!0;if(!e)return!1;const o=r.split(" ").filter(s=>!!s),h=l(e),u=s=>{const i=t?h:e,f=t?l(s):s;return n?i.toLowerCase().includes(f.toLowerCase()):i.includes(f)};return c==="some"?o.some(u):o.every(u)},p=(e,r)=>{if(!e||Object.values(e).length===0)return;const t=Object.values(e).indexOf(r);return Object.keys(e)[t]};function S(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const r=Object.getPrototypeOf(e);return r===null||r===Object.prototype};const y=F,d=(e,r,t)=>{let n=e;return r.cleanArrays===!0&&(n=e.map(c=>a(c,r,t+1)).filter(Boolean)),t===0||r.preserveArrays===!0||n.length>0?n:null},a=(e,r,t)=>{const n={};if(!y(e))return Array.isArray(e)?d(e,r,t):e;for(const c of Object.keys(e))if(!(e[c]===null||e[c]===void 0))if(Array.isArray(e[c])){const o=d(e[c],r,t+1);o!==null&&(n[c]=o)}else if(y(e[c])){const o=a(e[c],r,t+1);o!==null&&Object.keys(o).length>0&&(n[c]=o)}else e[c]!==""&&(n[c]=e[c]);return t>0&&Object.keys(n).length===0?null:n},V=(e,r)=>{const t={preserveArrays:!0,cleanArrays:!0,...r};return a(e,t,0)};var k=V;const w=S(k),C=(e,...r)=>r.reduce((t,n)=>{const[c,o]=n;return o==null||typeof o=="object"&&Object.keys(w(o)).length===0?t:{...t,[c]:o}},e),g=(e,r)=>{let t;return e.forEach(n=>{t||(r(n)?t=n:t=g(n.children,r))}),t},E=(e,r)=>{try{const t=URL.createObjectURL(e),n=document.createElement("a");n.download=r,n.href=t,n.click()}catch{throw new Error("Failed to transform blob to file")}};exports.camelCaseToSentence=b;exports.getKeyByValue=p;exports.merge=C;exports.normalizeString=l;exports.openFile=E;exports.replaceHtmlWhitespace=O;exports.searchRecursively=g;exports.searchValueForEvery=A;exports.searchValueForSome=j;