UNPKG

@gmana/utils

Version:

Utility functions for React and TypeScript projects.

3 lines 19.5 kB
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`tailwind-merge`);function t(e){return`/${e.filter(e=>!!e).map(e=>e.replace(/^\/+|\/+$/g,``)).filter(Boolean).join(`/`)}`}function n(e,n){let r=n?.baseUrl??process.env.NEXT_PUBLIC_APP_URL??`http://localhost:3000`,i;try{i=new URL(r)}catch{throw Error(`Invalid base URL: ${r}`)}if(e?.trim()&&(i.pathname=t([i.pathname,e])),n?.query)for(let[e,t]of Object.entries(n.query))t!=null&&i.searchParams.append(e,String(t));return n?.fragment&&(i.hash=n.fragment),i.toString()}const r=/^([+-]?(?:[0-9]*\.?[0-9]+(?:[eE][+-]?[0-9]+)?|Infinity))\s*([a-zA-Z]*)$/i,i={"":1,b:1,k:e=>e,kb:e=>e,m:e=>e**2,mb:e=>e**2,g:e=>e**3,gb:e=>e**3,t:e=>e**4,tb:e=>e**4,p:e=>e**5,pb:e=>e**5},a=Object.keys(i).filter(e=>e!==``).join(`, `);function o(e,t={}){let{base:n=1024,round:o=!0}=t,s=String(e).toLowerCase().trim().match(r);if(!s)throw Error(`Invalid input: "${e}". Expected a number or formatted string like "2.5kb", "33mb"`);let c=parseFloat(s[1]),l=s[2];if(!Number.isFinite(c))throw Error(`Non-finite values are not supported: "${s[1]}"`);if(c<0)throw Error(`Negative values are not supported: "${c}"`);let u=i[l];if(u===void 0)throw Error(`Unsupported unit: "${l}". Supported units: ${a}`);let d=c*(typeof u==`function`?u(n):u);return o?Math.round(d):d}const s=[`B`,`KB`,`MB`,`GB`,`TB`,`PB`],c=[`bytes`,`KB`,`MB`,`GB`,`TB`,`PB`];function l(e,t={}){let{base:n=1024,precision:r=2,verbose:i=!1}=t,a=i?c:s;if(e<0)throw Error(`Negative values are not supported: "${e}"`);if(e===0)return`0 ${a[0]}`;if(e<1)return`${e.toFixed(r)} ${a[0]}`;let o=Math.min(Math.floor(Math.log(e)/Math.log(n)),a.length-1);return`${(e/n**+o).toFixed(r)} ${a[o]}`}function u(e={}){return(t,n)=>o(t,{...e,...n})}const d=(e,t)=>{if(t<=0)throw Error(`Chunk size must be greater than 0`);return e.length===0?[]:Array.from({length:Math.ceil(e.length/t)},(n,r)=>{let i=r*t;return e.slice(i,i+t)})};function f(e){return typeof e==`string`?e:typeof e==`number`?String(e)||``:Array.isArray(e)?e.map(f).filter(Boolean).join(` `):typeof e==`object`&&e?Object.entries(e).filter(([,e])=>!!e).map(([e])=>e).join(` `):``}function p(...e){return e.map(f).filter(Boolean).join(` `)}const ee=(...t)=>(0,e.twMerge)(p(...t)),te=e=>e.filter(Boolean),ne=e=>e===``||e==null;function m(e){return Object.prototype.toString.call(e)===`[object Object]`}function h(e,t={}){let{compactArrays:n=!0,removeEmptyArrays:r=!1,isEmpty:i=ne}=t,a={};for(let[o,s]of Object.entries(e))if(!i(s)){if(Array.isArray(s)){if(!n){a[o]=s;continue}let e=s.map(e=>{if(m(e)){let n=h(e,t);return Object.keys(n).length>0?n:void 0}return i(e)?void 0:e}).filter(e=>e!==void 0);(!r||e.length>0)&&(a[o]=e);continue}if(m(s)){let e=h(s,t);Object.keys(e).length>0&&(a[o]=e);continue}a[o]=s}return a}const re=(e,t)=>e.reduce((e,n)=>{let r=t(n);return e[r]=(e[r]||0)+1,e},{}),g=(e,t)=>{let n=new Set(t);return e.filter(e=>!n.has(e))},_=(e,t)=>e.slice(Math.max(0,t)),ie=(e,t)=>t===0?[...e]:e.slice(0,-t),ae=(e,t=`-`)=>{let n={},r=(e,i)=>{if(!(typeof e!=`object`||!e))for(let[a,o]of Object.entries(e)){let e=i?`${i}${t}${a}`:a;typeof o==`object`&&o?r(o,e):n[e]=o}};return r(e,``),n},oe=e=>e.reduce((e,t)=>Array.isArray(t)?e.concat(t):e.concat([t]),[]),v=e=>e.reduce((e,t)=>Array.isArray(t)?e.concat(v(t)):e.concat(t),[]);function y(e,t={}){let{format:n=`digital`,alwaysShowHours:r=!1,roundingMode:i=`floor`,padMinutes:a=!0,separator:o=`:`}=t;if(!Number.isFinite(e))throw Error(`formatTime: seconds must be a finite number`);if(e<0)throw Error(`formatTime: seconds must be non-negative`);let s=i===`ceil`?Math.ceil(e):i===`round`?Math.round(e):Math.floor(e),c=Math.floor(s/3600),l=Math.floor(s%3600/60),u=s%60,d=c>0||r;switch(n){case`long`:return se(c,l,u,d);case`short`:return ce(c,l,u,d);case`compact`:return b(c,l,u,!0,a,o);default:return b(c,l,u,d,a,o)}}function b(e,t,n,r,i,a){let o=[];return r?(o.push(e.toString()),o.push(t.toString().padStart(2,`0`))):o.push(i?t.toString().padStart(2,`0`):t.toString()),o.push(n.toString().padStart(2,`0`)),o.join(a)}function se(e,t,n,r){let i=[];return r&&e>0&&i.push(`${e} ${x(`hour`,e)}`),t>0&&i.push(`${t} ${x(`minute`,t)}`),(n>0||i.length===0)&&i.push(`${n} ${x(`second`,n)}`),i.join(` `)}function ce(e,t,n,r){let i=[];return r&&e>0&&i.push(`${e}h`),t>0&&i.push(`${t}m`),(n>0||i.length===0)&&i.push(`${n}s`),i.join(` `)}function x(e,t){return t===1?e:`${e}s`}function le(e,t=`:`){if(!e||typeof e!=`string`)throw Error(`parseTime: timeString must be a non-empty string`);let n=e.split(t).map(e=>{let t=parseInt(e,10);if(!Number.isFinite(t)||t<0)throw Error(`parseTime: invalid time component "${e}"`);return t});if(n.length===0||n.length>3)throw Error(`parseTime: timeString must have 1-3 components (SS, MM:SS, or HH:MM:SS)`);return n.length===1?n[0]:n.length===2?n[0]*60+n[1]:n[0]*3600+n[1]*60+n[2]}function ue(e,t=`?`){let n=e?.trim()??``;return n?n.split(/\s+/).slice(0,2).map(e=>e[0]?.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toUpperCase()??``).join(``):t}const S={windows:{type:`windows`,label:`Windows`},macos:{type:`macos`,label:`macOS`},linux:{type:`linux`,label:`Linux`},android:{type:`android`,label:`Android`},ios:{type:`ios`,label:`iOS`},unknown:{type:`unknown`,label:`Unknown`}};function de(e){let t=e.toLowerCase();return t.includes(`win`)?S.windows:t.includes(`mac`)?S.macos:t.includes(`linux`)?S.linux:t.includes(`android`)?S.android:t.includes(`ios`)||t.includes(`iphone`)||t.includes(`ipad`)?S.ios:S.unknown}function C(e){let t=fe(e);return t&&typeof t.exp==`number`?t.exp:null}function fe(e){let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid JWT format`);let n=pe(t[1]??``);return JSON.parse(n)}function pe(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);for(;t.length%4;)t+=`=`;if(typeof globalThis<`u`&&typeof globalThis.atob==`function`)return decodeURIComponent(Array.prototype.map.call(globalThis.atob(t),e=>`%${(`00`+e.charCodeAt(0).toString(16)).slice(-2)}`).join(``));if(typeof Buffer<`u`)return Buffer.from(t,`base64`).toString(`utf-8`);throw Error(`No base64 decoder available`)}const me=(e,t)=>e.reduce((e,n)=>{let r=t(n);return e[r]=e[r]||[],e[r].push(n),e},{}),he=(e,t)=>{if(e.length===0)return[];let n=[],r=[e[0]],i=t(e[0]);for(let a=1;a<e.length;a++){let o=t(e[a]);o===i?r.push(e[a]):(n.push(r),r=[e[a]],i=o)}return n.push(r),n},w=e=>[...new Set(e)],ge=(e,t)=>{let n=new Set(t);return w(e.filter(e=>n.has(e)))},T=e=>Array.isArray(e),E=e=>typeof e==`boolean`,D=process.env.NODE_ENV===`development`||process.env.NODE_ENV===`test`,O=e=>typeof e==`object`&&!!e,k=e=>e==null||O(e)&&Object.keys(e).length===0||T(e)&&e.length===0||typeof e==`string`&&e.trim().length===0,A=e=>typeof e==`function`,j=typeof navigator<`u`,M=e=>typeof e==`number`&&Number.isNaN(e)===!1,N=e=>typeof e==`string`;function P(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&Object.prototype.toString.call(e)===`[object Symbol]`}function F(e,t=0){if(!e)return!0;try{let n=C(e);return typeof n==`number`?!(n*1e3>Date.now()+t*1e3):!0}catch{return!0}}const I=e=>e===void 0;function L(e){try{let t=typeof e==`string`?new URL(e):e;return!(typeof e==`string`&&![`http:`,`https:`].includes(t.protocol))}catch{return!1}}function _e(e,t={}){let{allowEmpty:n=!1,minLength:r=1,maxLength:i=50}=t,a=[];return typeof e==`string`?!n&&(!e||e.trim().length===0)?(a.push(`Name cannot be empty`),{valid:!1,errors:a}):(e.length<r&&a.push(`Name must be at least ${r} characters long`),e.length>i&&a.push(`Name must be no more than ${i} characters long`),/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/.test(e)||(/^[a-z]/.test(e)||a.push(`Name must start with a lowercase letter`),/[A-Z]/.test(e)&&a.push(`Name must be lowercase (use kebab-case)`),/--/.test(e)&&a.push(`Name cannot contain consecutive dashes`),/[^a-z0-9-]/.test(e)&&a.push(`Name can only contain lowercase letters, numbers, and dashes`),/^-|-$/.test(e)&&a.push(`Name cannot start or end with a dash`)),[`component`,`element`,`node`,`ref`,`key`,`props`].includes(e)&&a.push(`"${e}" is a reserved name`),{valid:a.length===0,errors:a}):(a.push(`Name must be a string`),{valid:!1,errors:a})}function ve(e){try{JSON.parse(e)}catch{return!1}return!0}function ye(e){try{return new URL(e),!0}catch{return!1}}function be(e,t,n){return n?typeof n==`function`?n(e,t):n.includes(`%s`)?n.replace(`%s`,e):e.toLowerCase().includes(t.toLowerCase())?e:`${e} | ${t}`:e.toLowerCase().includes(t.toLowerCase())?e:`${e} | ${t}`}function xe(e,t,n){return n.disableSuffix?e:be(e,t,n.template)}const Se=(e,t)=>{if(e.length!==0)return e.reduce((e,n)=>t(n)>t(e)?n:e)},R=(e,t)=>e.reduce((e,n)=>e+t(n),0),Ce=(e,t)=>e.length===0?0:R(e,t)/e.length,we=(e,t)=>{if(e.length!==0)return e.reduce((e,n)=>t(n)<t(e)?n:e)},z=(e,t,n,r)=>{let i=[],a=e.length,o=r*6064;for(let r=0;r<a;r++){let a=e.charCodeAt(r),s=a-o*((a-t)*(a-n)<1?1:0);i.push(String.fromCharCode(s))}return i.join(``)},Te=e=>z(e,6112,6121,1),Ee=e=>z(e,40,57,-1),B=[`Zero`,`One`,`Two`,`Three`,`Four`,`Five`,`Six`,`Seven`,`Eight`,`Nine`],V=[`Ten`,`Eleven`,`Twelve`,`Thirteen`,`Fourteen`,`Fifteen`,`Sixteen`,`Seventeen`,`Eighteen`,`Nineteen`],De=[``,``,`Twenty`,`Thirty`,`Forty`,`Fifty`,`Sixty`,`Seventy`,`Eighty`,`Ninety`];function Oe(e){let t=e.toString().split(`.`)[0]??`0`,n=e.toString().split(`.`)[1]||`0`,r=ke(Number(t)),i=Ae(Number(n)),a=r;return i!==``&&(a+=` Point ${i}`),a}function ke(e){if(e===0)return B[0]??``;let t=``,n=0;for(;e>0;)e%1e3!=0&&(t=`${je(e%1e3)+(Me(n)??``)} ${t}`),e=Math.floor(e/1e3),n++;return t.trim()}function Ae(e){if(Number.isNaN(e)||e<=0)return``;let t=e.toString(),n=``;for(let e=0;e<t.length;e++){let r=t[e]??`0`;n+=`${B[Number.parseInt(r,10)]??`Zero`} `}return n.trim()}function je(e){let t=``;return e>=100&&(t+=`${B[Math.floor(e/100)]} Hundred `,e%=100),e>=10&&e<=19?t+=`${V[e-10]} `:e>=20&&(t+=`${De[Math.floor(e/10)]} `,e%=10),e>=1&&e<=9&&(t+=`${B[e]} `),t}function Me(e){return[``,`Thousand`,`Million`,`Billion`,`Trillion`,`Quadrillion`,`Quintillion`][e]??``}const Ne=[`សូន្យ`,`មួយ`,`ពីរ`,`បី`,`បួន`,`ប្រាំ`,`ប្រាំមួយ`,`ប្រាំពីរ`,`ប្រាំបី`,`ប្រាំបួន`],H=[``,`ដប់`,`ម្ភៃ`,`សាមសិប`,`សែសិប`,`ហាសិប`,`ហុកសិប`,`ចិតសិប`,`ប៉ែតសិប`,`កៅសិប`],U=new Map([[2,`រយ`],[3,`ពាន់`],[4,`ម៉ឺន`],[5,`សែន`],[6,`លាន`],[9,`ប៊ីលាន`],[12,`ទ្រីលាន`]]);function Pe(e,t=` `,n=` ក្បៀស `){if(Number.isNaN(e))return``;if(Number.isInteger(e))return G(e,t);let r=(e.toString().split(`.`)[1]??``).split(``).map(e=>G(+e)).join(t);return G(Math.floor(e),t)+n+r}const W=new Map;function Fe(e){return W.get(e)}function Ie(e,t){W.set(e,t)}function G(e,t=``){if(Number.isNaN(e))return``;if(e<0)return`*ដក*${G(Math.abs(e),t)}`;e=Math.floor(e);let n=Fe(e);if(n)return n;let r=``;if(e<10)r=Ne[e]??``;else if(e<100){let n=e%10;r=n===0?H[Math.floor(e/10)]??``:(H[Math.floor(e/10)]??``)+G(n,t)}else{let n=Math.floor(Math.log10(e));for(;!U.has(n)&&n>0;)n--;let i=10**n,a=G(Math.floor(e/i),t),o=U.get(n),s=e%i;r=s===0?a+(o||``):a+(o||``)+t+G(s,t)}return Ie(e,r),r}function Le(e,t=1){if(e==null||e===0)return`0`;let n=e<0,r=Math.abs(e),i=[{value:0xde0b6b3a7640000,symbol:`E`},{value:0x38d7ea4c68000,symbol:`P`},{value:0xe8d4a51000,symbol:`T`},{value:1e9,symbol:`B`},{value:1e6,symbol:`M`},{value:1e3,symbol:`K`},{value:1,symbol:``}].find(e=>r>=e.value);if(!i)return`0`;let a=(r/i.value).toFixed(Math.max(0,t)).replace(/\.?0+$/,``);return`${n?`-`:``}${a}${i.symbol}`}const Re=({amount:e,currencyCode:t,minFractionDigits:n,maxFractionDigits:r,locale:i=`en-US`})=>t?new Intl.NumberFormat(i,{style:`currency`,currency:t,minimumFractionDigits:n,maximumFractionDigits:r}).format(e):e.toString(),ze=(e,t)=>{let n=[],r=[];return e.forEach((e,i)=>{t(e,i)?n.push(e):r.push(e)}),[n,r]};function K(e,t){if(arguments.length===1)return t=>K(e,t);let n={},r=0;for(;r<e.length;){let i=e[r];i in t&&(n[i]=t[i]),r+=1}return n}const q=e=>{let t=[...e];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},Be=(e,t=1)=>t>=e.length?q(e):q(e).slice(0,t),Ve=(e,...t)=>[...e].sort((e,n)=>{for(let r of t){let t=r(e),i=r(n);if(t<i)return-1;if(t>i)return 1}return 0}),He=(e,t)=>[...g(e,t),...g(t,e)],Ue=(e,t)=>e.slice(0,Math.max(0,t)),We=(e,t)=>t===0?[]:e.slice(-t),Ge=/[^a-zA-Z0-9]+|(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[a-zA-Z])(?=[0-9])|(?<=[0-9])(?=[a-zA-Z])/,J=e=>({...e,words:e.input.split(Ge).filter(Boolean)}),Y=e=>({...e,words:e.words.map(e=>e.toLowerCase())}),X=e=>({...e,words:e.words.map(e=>e.toUpperCase())}),Z=e=>({...e,words:e.words.map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase())}),Q=e=>t=>t.words.join(e),$={lowercase:{steps:[J,Y],format:Q(` `)},uppercase:{steps:[J,X],format:Q(` `)},sentence:{steps:[J,Y],format:e=>{let t=e.words.join(` `);return t.charAt(0).toUpperCase()+t.slice(1)}},title:{steps:[J,Z],format:Q(` `)},snake:{steps:[J,Y],format:Q(`_`)},kebab:{steps:[J,Y],format:Q(`-`)},dot:{steps:[J,Y],format:Q(`.`)},constant:{steps:[J,X],format:Q(`_`)},pascal:{steps:[J,Z],format:Q(``)},camel:{steps:[J],format:e=>e.words.length===0?``:e.words[0].toLowerCase()+e.words.slice(1).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}};function Ke(e,t){if(typeof e!=`string`||!e.trim())return``;let n=$[t];if(!n)throw Error(`Unsupported case type: ${t}`);let r={input:e,words:[]};for(let e of n.steps)r=e(r);return n.format(r)}function qe(e){Object.assign($,e)}function Je(e){if(!e)return;let t=e instanceof Date?e:new Date(e);return isNaN(t.valueOf())?void 0:t.toISOString()}function Ye(e,t={}){let{maxLength:n,ellipsis:r=`…`,preserveWords:i=!1,returnUndefinedIfEmpty:a=!0}=t;if(e==null)return;let o=e.replace(/\s+/g,` `).trim();if(!o)return a?void 0:``;if(!n||n<=0||o.length<=n)return o;let s=Math.max(n,r.length),c=o.slice(0,s-r.length);if(i){let e=c.lastIndexOf(` `);e>0&&(c=c.slice(0,e))}return c.trimEnd()+r}const Xe=(e,t)=>{let n=new Set;return e.filter(e=>{let r=t(e);return n.has(r)?!1:(n.add(r),!0)})};var Ze=class{static VCARD_VERSION=`4.0`;static SOCIAL_PLATFORMS={facebook:`FACEBOOK`,twitter:`TWITTER`,linkedin:`LINKEDIN`,instagram:`INSTAGRAM`,youtube:`YOUTUBE`,github:`GITHUB`};static MESSAGING_PLATFORMS={telegram:`TELEGRAM`,whatsapp:`WHATSAPP`,messenger:`MESSENGER`,skype:`SKYPE`,discord:`DISCORD`};static escapeVCard(e){return e?e.replace(/\\/g,`\\\\`).replace(/\n/g,`\\n`).replace(/,/g,`\\,`).replace(/;/g,`\\;`).replace(/:/g,`\\:`):``}static formatDate(e){if(!(e instanceof Date)||isNaN(e.getTime()))throw Error(`Invalid date provided`);let[t]=e.toISOString().split(`T`);if(!t)throw Error(`Failed to extract date from ISO string`);return t.replace(/-/g,``)}static formatEmails(e){return e?(Array.isArray(e)?e:[e]).filter(e=>e&&typeof e==`string`&&e.trim().length>0).map(e=>`EMAIL;TYPE=INTERNET:${this.escapeVCard(e.trim())}`):[]}static formatAddress(e){return e?`ADR;TYPE=${(e.type||`work`).toUpperCase()}:${[``,``,e.street||``,e.city||``,e.state||``,e.postalCode||``,e.country||``].map(e=>this.escapeVCard(e)).join(`;`)}`:``}static formatSocialMedia(e={}){return Object.entries(e).filter(([,e])=>e&&typeof e==`string`).map(([e,t])=>{let n=this.SOCIAL_PLATFORMS[e];return n?`X-SOCIALPROFILE;TYPE=${n}:${this.escapeVCard(t.trim())}`:null}).filter(e=>e!==null)}static formatMessaging(e={}){return Object.entries(e).filter(([,e])=>e&&typeof e==`string`).map(([e,t])=>{let n=this.MESSAGING_PLATFORMS[e];return n?`X-${n};TYPE=USERNAME:${this.escapeVCard(t.trim())}`:null}).filter(e=>e!==null)}static formatPhones(e,t){return e?(Array.isArray(e)?e:[e]).filter(e=>e&&typeof e==`string`&&e.trim().length>0).map(e=>`TEL;TYPE=${t}:${this.escapeVCard(e.trim())}`):[]}static formatPhoto(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(t.startsWith(`data:image`)){let e=t.split(`,`)[1];return e?`PHOTO;ENCODING=b;TYPE=JPEG:${e}`:(console.warn(`Invalid base64 image data provided`),null)}else return`PHOTO;VALUE=URI:${this.escapeVCard(t)}`}static validateContact(e){if(!e||typeof e!=`object`)throw Error(`Contact data must be an object`);if(!(e.firstName||e.lastName||e.organization||e.email))throw Error(`Contact must have at least a name, organization, or email`)}static generate(e){this.validateContact(e);let t=[`BEGIN:VCARD`,`VERSION:${this.VCARD_VERSION}`],n=e.firstName?.trim()||``,r=e.lastName?.trim()||``,i=[n,r].filter(Boolean).join(` `);if(i&&(t.push(`FN:${this.escapeVCard(i)}`),t.push(`N:${this.escapeVCard(r)};${this.escapeVCard(n)};;;`)),e.nickname?.trim()&&t.push(`NICKNAME:${this.escapeVCard(e.nickname.trim())}`),e.organization?.trim()){let n=e.organization.trim(),r=e.department?.trim()?`${n};${e.department.trim()}`:n;t.push(`ORG:${this.escapeVCard(r)}`)}if(e.title?.trim()&&t.push(`TITLE:${this.escapeVCard(e.title.trim())}`),e.email&&t.push(...this.formatEmails(e.email)),t.push(...this.formatPhones(e.phone,`WORK,VOICE`)),t.push(...this.formatPhones(e.mobile,`CELL,VOICE`)),t.push(...this.formatPhones(e.fax,`FAX`)),e.address?.length&&e.address.forEach(e=>{let n=this.formatAddress(e);n&&t.push(n)}),e.website?.trim()&&t.push(`URL:${this.escapeVCard(e.website.trim())}`),e.birthday)try{t.push(`BDAY:${this.formatDate(e.birthday)}`)}catch(e){console.warn(`Invalid birthday date provided:`,e)}if(e.photo){let n=this.formatPhoto(e.photo);n&&t.push(n)}if(e.social&&t.push(...this.formatSocialMedia(e.social)),e.messaging&&t.push(...this.formatMessaging(e.messaging)),e.categories?.length){let n=e.categories.filter(e=>e&&typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>0);if(n.length>0){let e=n.map(e=>this.escapeVCard(e)).join(`,`);t.push(`CATEGORIES:${e}`)}}return e.note?.trim()&&t.push(`NOTE:${this.escapeVCard(e.note.trim())}`),t.push(`END:VCARD`),t.join(`\r `)}static createDownloadBlob(e){let t=this.generate(e);return new Blob([t],{type:`text/vcard;charset=utf-8`})}};const Qe=(...e)=>{if(e.length===0)return[];let t=Math.max(...e.map(e=>e.length)),n=[];for(let r=0;r<t;r++)n.push(e.map(e=>e[r]));return n};exports.BYTE_REGEX=r,exports.VCardGenerator=Ze,exports.absoluteUrl=n,exports.chunk=d,exports.clsx=p,exports.cn=ee,exports.compact=te,exports.compactObject=h,exports.countBy=re,exports.createByteConverter=u,exports.difference=g,exports.drop=_,exports.dropRight=ie,exports.extendCases=qe,exports.flatten=ae,exports.flattenArray=oe,exports.flattenDeepArray=v,exports.formatBytes=l,exports.formatCurrency=Re,exports.formatNumber=Le,exports.formatTime=y,exports.getInitialLetter=ue,exports.getOS=de,exports.getTokenExpClaim=C,exports.groupBy=me,exports.groupConsecutive=he,exports.intersection=ge,exports.isArray=T,exports.isBoolean=E,exports.isDev=D,exports.isEmpty=k,exports.isFunction=A,exports.isNavigator=j,exports.isNumber=M,exports.isObject=O,exports.isString=N,exports.isSymbol=P,exports.isTokenExpired=F,exports.isUndef=I,exports.isUrl=L,exports.isValidComponentName=_e,exports.isValidJsonString=ve,exports.isValidUrl=ye,exports.joinPaths=t,exports.makeTitle=xe,exports.maxBy=Se,exports.meanBy=Ce,exports.minBy=we,exports.numberToWord=Oe,exports.numberToWordKm=Pe,exports.osMap=S,exports.parseTime=le,exports.partition=ze,exports.pick=K,exports.sample=Be,exports.shuffle=q,exports.sortBy=Ve,exports.sumBy=R,exports.symmetricDifference=He,exports.take=Ue,exports.takeRight=We,exports.toASCII=Te,exports.toBytes=o,exports.toCase=Ke,exports.toIso=Je,exports.toKhmer=Ee,exports.truncateText=Ye,exports.unique=w,exports.uniqueBy=Xe,exports.zip=Qe; //# sourceMappingURL=index.cjs.map