@wyfex/iutils 0.40.0 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},t=e=>Array.isArray(e),n=e=>e==null,r=e=>!n(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,i=e=>typeof e==`boolean`,a=e=>i(e)||e===`true`||e===`false`,o=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},s=e=>n(e)?!1:b(e)?e.trim().length>0:y(e)?!0:t(e)?e.length>0:c(e)?Object.keys(e).length>0:!1,c=e=>Object.prototype.toString.call(e)===`[object Object]`,l=e=>c(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},u=e=>{if(!c(e))return{};let n={...e};for(let e in n){let r=n[e];if(e.includes(`,`)&&t(r)){let t=e.split(`,`),i=r;t.forEach((e,t)=>{n[e]=i[t]}),delete n[e]}}return n},d=(e,t)=>c(e)?Object.prototype.hasOwnProperty.call(e,t):!1,f=(e,n)=>{if(!c(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},p=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>p(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t];t.startsWith(n)||(r[t]=p(i,n))}return r},m=(e,t=[])=>{if(!c(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},h=(e,n=[])=>{if(!c(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];n.includes(e)&&t(i)&&(r[e]=i.join(`,`))}),r},g=e=>{if(!c(e))return!1;for(let t in e)if(d(e,t))return!1;return!0},_=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,v=e=>typeof e==`function`,y=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),b=e=>Object.prototype.toString.call(e)===`[object String]`,x=e=>y(e)||b(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),S=e=>!t(e)||e.length===0?!1:e.every(e=>c(e)),C=e=>b(e)||y(e)||i(e)||n(e),w=(e,n)=>{if(!S(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>C(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(S(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},T=(e,n)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return t(i)?i.map(a):a(i)},E=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},D=(e,n,r)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=t(r)?r:[r];return s.splice(o+1,0,...c),s},O=(e,n,r=1)=>{if(!t(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},k=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},A=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},j=(e,n=!0)=>{if(!e||!c(e)||t(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>`${n?r(e):e}:${t}`).join(`;`)},M=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:N(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:N(r,t,n)};function N(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var P=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],F=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of P)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},I=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},L=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},R=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),z=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,B=e=>{let t=String(e??``);return t?t.charAt(0).toLowerCase()+t.slice(1):``},V=e=>{let t=String(e??``);return t?t.charAt(0).toUpperCase()+t.slice(1):``};exports.buildTree=e,exports.cleanObjectEmptyValues=l,exports.debounce=L,exports.desensitizePhone=I,exports.expandCommaKeyObject=u,exports.findBy=w,exports.findIndexBy=T,exports.flatTree=E,exports.formatThousand=R,exports.formatTime=M,exports.hasOwnProp=d,exports.insertAfter=D,exports.isArray=t,exports.isArrayLike=r,exports.isBoolean=i,exports.isBooleanLike=a,exports.isDefaultFn=o,exports.isEffectiveData=s,exports.isEmptyObject=g,exports.isFlatPrimArray=_,exports.isFunction=v,exports.isNil=n,exports.isNumber=y,exports.isNumberLike=x,exports.isObject=c,exports.isObjectArray=S,exports.isPrimitive=C,exports.isString=b,exports.lowerFirst=B,exports.objectToStyleString=j,exports.omitObjectProps=f,exports.omitStartWithKeys=p,exports.parseStringFieldsToArray=m,exports.parseValue=z,exports.randomRgb=k,exports.randomRgba=A,exports.removeAfter=O,exports.stringifyArrayFields=h,exports.timeGreetings=F,exports.upperFirst=V;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},t=e=>Array.isArray(e),n=e=>e==null,r=e=>!n(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,i=e=>typeof e==`boolean`,a=e=>i(e)||e===`true`||e===`false`,o=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},s=e=>n(e)?!1:b(e)?e.trim().length>0:y(e)?!0:t(e)?e.length>0:l(e)?Object.keys(e).length>0:!1,c=e=>{if(!l(e))return{};let n=e=>{if(e!=null)return t(e)?e.map(e=>n(e)).filter(e=>e!==void 0):l(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,n(t)]).filter(([e,t])=>t!==void 0)):e};return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,n(t)]).filter(([e,t])=>t!==void 0))},l=e=>Object.prototype.toString.call(e)===`[object Object]`,u=e=>{if(!l(e))return{};let n={...e},r=e=>{let n=Object.keys(e);for(let r of n){let n=e[r];if(r.includes(`,`)&&t(n)){let t=r.split(`,`),i=n;t.forEach((t,n)=>{e[t]=i[n]}),delete e[r]}}Object.values(e).forEach(e=>{l(e)&&r(e)})};return r(n),n},d=(e,t)=>l(e)?Object.prototype.hasOwnProperty.call(e,t):!1,f=(e,n)=>{if(!l(e))return{};let r=e,i=t(n)?n:[n],a={...r};return i.forEach(e=>{delete a[e]}),a},p=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>p(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t];t.startsWith(n)||(r[t]=p(i,n))}return r},m=(e,t=[])=>{if(!l(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},h=(e,n=[])=>{if(!l(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];n.includes(e)&&t(i)&&(r[e]=i.join(`,`))}),r},g=e=>{if(!l(e))return!1;for(let t in e)if(d(e,t))return!1;return!0},_=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,v=e=>typeof e==`function`,y=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),b=e=>Object.prototype.toString.call(e)===`[object String]`,x=e=>y(e)||b(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),S=e=>!t(e)||e.length===0?!1:e.every(e=>l(e)),C=e=>b(e)||y(e)||i(e)||n(e),w=(e,n)=>{if(!S(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>C(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(S(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},T=(e,n)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return t(i)?i.map(a):a(i)},E=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},D=(e,n,r)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=t(r)?r:[r];return s.splice(o+1,0,...c),s},O=(e,n,r=1)=>{if(!t(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},k=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},A=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},j=(e,t=2,n=1024)=>{let r=Number(e)||0,i=Math.max(r,0),a=[{val:n**5,label:`PB`},{val:n**4,label:`TB`},{val:n**3,label:`GB`},{val:n**2,label:`MB`},{val:n,label:`KB`},{val:1,label:`B`}];for(let e of a)if(i>=e.val)return`${(i/e.val).toFixed(t).replace(/\.00$/,``)}${e.label}`;return`${i}B`},M=(e,n=!0)=>{if(!e||!l(e)||t(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>`${n?r(e):e}:${t}`).join(`;`)},N=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:P(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:P(r,t,n)};function P(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var F=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],I=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of F)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},L=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},R=Object.freeze({EMPTY_CONTENT:`复制内容不能为空`,EXEC_COMMAND_FAIL:`execCommand 复制失败`,UNKNOWN:`未知复制错误`,NO_BROWSER_ENV:`当前非浏览器环境,剪贴板不可用`}),z=async(e,t={},n,r)=>{let{trimEmpty:i=!0,logger:a=console}=t;if(typeof document>`u`||typeof navigator>`u`){let e=Error(R.NO_BROWSER_ENV);return a.error(e.message),r?.(e),Promise.reject(e)}let o=i?e.trim():e;if(!o){let e=Error(R.EMPTY_CONTENT);return a.error(e.message),r?.(e),Promise.reject(e)}let s=()=>{n?.()},c=e=>{let t=e instanceof Error?e:Error(R.UNKNOWN);return a.error(`复制剪贴板失败:`,t),r?.(t),Promise.reject(t)};return navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(o).then(s).catch(async()=>{try{await B(o),s()}catch(e){return c(e)}}):B(o).then(s).catch(c)},B=e=>new Promise((t,n)=>{let r=document.createElement(`textarea`);r.value=e,Object.assign(r.style,{position:`absolute`,top:`-9999px`,left:`-9999px`,width:`1px`,height:`1px`,opacity:`0`,pointerEvents:`none`}),document.body.appendChild(r);try{if(r.focus(),r.select(),!document.execCommand(`copy`))throw Error(R.EXEC_COMMAND_FAIL);t()}catch(e){n(e)}finally{r.remove()}}),V=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},H=null,U=(e,t)=>{let n=n=>{t(e),n.preventDefault(),n.stopPropagation()},r=n=>{let{code:r,ctrlKey:i,shiftKey:a,metaKey:o}=n;if(r===`F12`){t(e),n.preventDefault(),n.stopPropagation();return}(i||o)&&a&&[`KeyI`,`KeyJ`,`KeyK`].includes(r)&&(t(e),n.preventDefault(),n.stopPropagation())},i=!1,a=t=>{i||(console.warn(e),(``+t/t).length!==1||t%20,(function(){}).constructor(`debugger`)(),a(++t))};H&&H(),document.addEventListener(`contextmenu`,n),document.addEventListener(`keydown`,r),Promise.resolve().then(()=>a(0));let o=()=>{i=!0,document.removeEventListener(`contextmenu`,n),document.removeEventListener(`keydown`,r),H=null};return H=o,o},W=(e,n)=>{if(!t(e))return 0;let r=0;for(let t of e){let e;e=n?t?.[n]:t;let i=Number(e);r+=Number.isFinite(i)?i:0}let i=10**12;return Math.round(r*i)/i},G=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),K=e=>{if(typeof e!=`string`||e.trim()===``)return{name:``,ext:``};let t=e.trim(),n=t.lastIndexOf(`.`);return n<=0||n===t.length-1?{name:t,ext:``}:{name:t.slice(0,n),ext:t.slice(n)}},q=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,J=e=>{let t=String(e??``);return t?t.charAt(0).toLowerCase()+t.slice(1):``},Y=e=>{let t=String(e??``);return t?t.charAt(0).toUpperCase()+t.slice(1):``};exports.buildTree=e,exports.calcSum=W,exports.cleanObjectEmptyValues=c,exports.copyToClipboard=z,exports.debounce=V,exports.desensitizePhone=L,exports.disableDebug=U,exports.expandCommaKeyObject=u,exports.findBy=w,exports.findIndexBy=T,exports.flatTree=E,exports.formatBytes=j,exports.formatThousand=G,exports.formatTime=N,exports.hasOwnProp=d,exports.insertAfter=D,exports.isArray=t,exports.isArrayLike=r,exports.isBoolean=i,exports.isBooleanLike=a,exports.isDefaultFn=o,exports.isEffectiveData=s,exports.isEmptyObject=g,exports.isFlatPrimArray=_,exports.isFunction=v,exports.isNil=n,exports.isNumber=y,exports.isNumberLike=x,exports.isObject=l,exports.isObjectArray=S,exports.isPrimitive=C,exports.isString=b,exports.lowerFirst=J,exports.objectToStyleString=M,exports.omitObjectProps=f,exports.omitStartWithKeys=p,exports.parseFileName=K,exports.parseStringFieldsToArray=m,exports.parseValue=q,exports.randomRgb=k,exports.randomRgba=A,exports.removeAfter=O,exports.stringifyArrayFields=h,exports.timeGreetings=I,exports.upperFirst=Y;
@@ -1 +1 @@
1
- var WyfeX_IUtils=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},n=e=>Array.isArray(e),r=e=>e==null,i=e=>!r(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,a=e=>typeof e==`boolean`,o=e=>a(e)||e===`true`||e===`false`,s=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},c=e=>r(e)?!1:x(e)?e.trim().length>0:b(e)?!0:n(e)?e.length>0:l(e)?Object.keys(e).length>0:!1,l=e=>Object.prototype.toString.call(e)===`[object Object]`,u=e=>l(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},d=e=>{if(!l(e))return{};let t={...e};for(let e in t){let r=t[e];if(e.includes(`,`)&&n(r)){let n=e.split(`,`),i=r;n.forEach((e,n)=>{t[e]=i[n]}),delete t[e]}}return t},f=(e,t)=>l(e)?Object.prototype.hasOwnProperty.call(e,t):!1,p=(e,t)=>{if(!l(e))return{};let r=n(t)?t:[t],i={...e};return r.forEach(e=>{delete i[e]}),i},m=(e,t=`_`)=>{if(e==null)return e;if(n(e))return e.map(e=>m(e,t)).filter(e=>typeof e==`string`?!e.startsWith(t):typeof e==`number`?!String(e).startsWith(t):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n];n.startsWith(t)||(r[n]=m(i,t))}return r},h=(e,t=[])=>{if(!l(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},g=(e,t=[])=>{if(!l(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];t.includes(e)&&n(i)&&(r[e]=i.join(`,`))}),r},_=e=>{if(!l(e))return!1;for(let t in e)if(f(e,t))return!1;return!0},v=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,y=e=>typeof e==`function`,b=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),x=e=>Object.prototype.toString.call(e)===`[object String]`,S=e=>b(e)||x(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),C=e=>!n(e)||e.length===0?!1:e.every(e=>l(e)),w=e=>x(e)||b(e)||a(e)||r(e),T=(e,t)=>{if(!C(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=t;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>w(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(C(t)){let n=s(e,t);if(n)return n}}};return n(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},E=(e,t)=>{if(!n(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(t)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return n(i)?i.map(a):a(i)},D=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},O=(e,t,r)=>{if(!n(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(t)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=n(r)?r:[r];return s.splice(o+1,0,...c),s},k=(e,t,r=1)=>{if(!n(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(t)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},A=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},j=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},M=(e,t=!0)=>{if(!e||!l(e)||n(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,n])=>`${t?r(e):e}:${n}`).join(`;`)},N=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:P(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:P(r,t,n)};function P(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var F=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}];return e.buildTree=t,e.cleanObjectEmptyValues=u,e.debounce=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},e.desensitizePhone=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},e.expandCommaKeyObject=d,e.findBy=T,e.findIndexBy=E,e.flatTree=D,e.formatThousand=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),e.formatTime=N,e.hasOwnProp=f,e.insertAfter=O,e.isArray=n,e.isArrayLike=i,e.isBoolean=a,e.isBooleanLike=o,e.isDefaultFn=s,e.isEffectiveData=c,e.isEmptyObject=_,e.isFlatPrimArray=v,e.isFunction=y,e.isNil=r,e.isNumber=b,e.isNumberLike=S,e.isObject=l,e.isObjectArray=C,e.isPrimitive=w,e.isString=x,e.lowerFirst=e=>{let t=String(e??``);return t?t.charAt(0).toLowerCase()+t.slice(1):``},e.objectToStyleString=M,e.omitObjectProps=p,e.omitStartWithKeys=m,e.parseStringFieldsToArray=h,e.parseValue=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,e.randomRgb=A,e.randomRgba=j,e.removeAfter=k,e.stringifyArrayFields=g,e.timeGreetings=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of F)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},e.upperFirst=e=>{let t=String(e??``);return t?t.charAt(0).toUpperCase()+t.slice(1):``},e})({});
1
+ var WyfeX_IUtils=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},n=e=>Array.isArray(e),r=e=>e==null,i=e=>!r(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,a=e=>typeof e==`boolean`,o=e=>a(e)||e===`true`||e===`false`,s=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},c=e=>r(e)?!1:x(e)?e.trim().length>0:b(e)?!0:n(e)?e.length>0:u(e)?Object.keys(e).length>0:!1,l=e=>{if(!u(e))return{};let t=e=>{if(e!=null)return n(e)?e.map(e=>t(e)).filter(e=>e!==void 0):u(e)?Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]).filter(([e,t])=>t!==void 0)):e};return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]).filter(([e,t])=>t!==void 0))},u=e=>Object.prototype.toString.call(e)===`[object Object]`,d=e=>{if(!u(e))return{};let t={...e},r=e=>{let t=Object.keys(e);for(let r of t){let t=e[r];if(r.includes(`,`)&&n(t)){let n=r.split(`,`),i=t;n.forEach((t,n)=>{e[t]=i[n]}),delete e[r]}}Object.values(e).forEach(e=>{u(e)&&r(e)})};return r(t),t},f=(e,t)=>u(e)?Object.prototype.hasOwnProperty.call(e,t):!1,p=(e,t)=>{if(!u(e))return{};let r=e,i=n(t)?t:[t],a={...r};return i.forEach(e=>{delete a[e]}),a},m=(e,t=`_`)=>{if(e==null)return e;if(n(e))return e.map(e=>m(e,t)).filter(e=>typeof e==`string`?!e.startsWith(t):typeof e==`number`?!String(e).startsWith(t):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n];n.startsWith(t)||(r[n]=m(i,t))}return r},h=(e,t=[])=>{if(!u(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},g=(e,t=[])=>{if(!u(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];t.includes(e)&&n(i)&&(r[e]=i.join(`,`))}),r},_=e=>{if(!u(e))return!1;for(let t in e)if(f(e,t))return!1;return!0},v=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,y=e=>typeof e==`function`,b=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),x=e=>Object.prototype.toString.call(e)===`[object String]`,S=e=>b(e)||x(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),C=e=>!n(e)||e.length===0?!1:e.every(e=>u(e)),w=e=>x(e)||b(e)||a(e)||r(e),T=(e,t)=>{if(!C(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=t;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>w(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(C(t)){let n=s(e,t);if(n)return n}}};return n(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},E=(e,t)=>{if(!n(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(t)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return n(i)?i.map(a):a(i)},D=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},O=(e,t,r)=>{if(!n(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(t)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=n(r)?r:[r];return s.splice(o+1,0,...c),s},k=(e,t,r=1)=>{if(!n(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(t)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},A=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},j=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},M=(e,t=2,n=1024)=>{let r=Number(e)||0,i=Math.max(r,0),a=[{val:n**5,label:`PB`},{val:n**4,label:`TB`},{val:n**3,label:`GB`},{val:n**2,label:`MB`},{val:n,label:`KB`},{val:1,label:`B`}];for(let e of a)if(i>=e.val)return`${(i/e.val).toFixed(t).replace(/\.00$/,``)}${e.label}`;return`${i}B`},N=(e,t=!0)=>{if(!e||!u(e)||n(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,n])=>`${t?r(e):e}:${n}`).join(`;`)},P=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:F(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:F(r,t,n)};function F(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var I=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],L=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of I)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},R=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},z=Object.freeze({EMPTY_CONTENT:`复制内容不能为空`,EXEC_COMMAND_FAIL:`execCommand 复制失败`,UNKNOWN:`未知复制错误`,NO_BROWSER_ENV:`当前非浏览器环境,剪贴板不可用`}),B=async(e,t={},n,r)=>{let{trimEmpty:i=!0,logger:a=console}=t;if(typeof document>`u`||typeof navigator>`u`){let e=Error(z.NO_BROWSER_ENV);return a.error(e.message),r?.(e),Promise.reject(e)}let o=i?e.trim():e;if(!o){let e=Error(z.EMPTY_CONTENT);return a.error(e.message),r?.(e),Promise.reject(e)}let s=()=>{n?.()},c=e=>{let t=e instanceof Error?e:Error(z.UNKNOWN);return a.error(`复制剪贴板失败:`,t),r?.(t),Promise.reject(t)};return navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(o).then(s).catch(async()=>{try{await V(o),s()}catch(e){return c(e)}}):V(o).then(s).catch(c)},V=e=>new Promise((t,n)=>{let r=document.createElement(`textarea`);r.value=e,Object.assign(r.style,{position:`absolute`,top:`-9999px`,left:`-9999px`,width:`1px`,height:`1px`,opacity:`0`,pointerEvents:`none`}),document.body.appendChild(r);try{if(r.focus(),r.select(),!document.execCommand(`copy`))throw Error(z.EXEC_COMMAND_FAIL);t()}catch(e){n(e)}finally{r.remove()}}),H=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},U=null;return e.buildTree=t,e.calcSum=(e,t)=>{if(!n(e))return 0;let r=0;for(let n of e){let e;e=t?n?.[t]:n;let i=Number(e);r+=Number.isFinite(i)?i:0}let i=10**12;return Math.round(r*i)/i},e.cleanObjectEmptyValues=l,e.copyToClipboard=B,e.debounce=H,e.desensitizePhone=R,e.disableDebug=(e,t)=>{let n=n=>{t(e),n.preventDefault(),n.stopPropagation()},r=n=>{let{code:r,ctrlKey:i,shiftKey:a,metaKey:o}=n;if(r===`F12`){t(e),n.preventDefault(),n.stopPropagation();return}(i||o)&&a&&[`KeyI`,`KeyJ`,`KeyK`].includes(r)&&(t(e),n.preventDefault(),n.stopPropagation())},i=!1,a=t=>{i||(console.warn(e),(``+t/t).length!==1||t%20,(function(){}).constructor(`debugger`)(),a(++t))};U&&U(),document.addEventListener(`contextmenu`,n),document.addEventListener(`keydown`,r),Promise.resolve().then(()=>a(0));let o=()=>{i=!0,document.removeEventListener(`contextmenu`,n),document.removeEventListener(`keydown`,r),U=null};return U=o,o},e.expandCommaKeyObject=d,e.findBy=T,e.findIndexBy=E,e.flatTree=D,e.formatBytes=M,e.formatThousand=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),e.formatTime=P,e.hasOwnProp=f,e.insertAfter=O,e.isArray=n,e.isArrayLike=i,e.isBoolean=a,e.isBooleanLike=o,e.isDefaultFn=s,e.isEffectiveData=c,e.isEmptyObject=_,e.isFlatPrimArray=v,e.isFunction=y,e.isNil=r,e.isNumber=b,e.isNumberLike=S,e.isObject=u,e.isObjectArray=C,e.isPrimitive=w,e.isString=x,e.lowerFirst=e=>{let t=String(e??``);return t?t.charAt(0).toLowerCase()+t.slice(1):``},e.objectToStyleString=N,e.omitObjectProps=p,e.omitStartWithKeys=m,e.parseFileName=e=>{if(typeof e!=`string`||e.trim()===``)return{name:``,ext:``};let t=e.trim(),n=t.lastIndexOf(`.`);return n<=0||n===t.length-1?{name:t,ext:``}:{name:t.slice(0,n),ext:t.slice(n)}},e.parseStringFieldsToArray=h,e.parseValue=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,e.randomRgb=A,e.randomRgba=j,e.removeAfter=k,e.stringifyArrayFields=g,e.timeGreetings=L,e.upperFirst=e=>{let t=String(e??``);return t?t.charAt(0).toUpperCase()+t.slice(1):``},e})({});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var e=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},t=e=>Array.isArray(e),n=e=>e==null,r=e=>!n(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,i=e=>typeof e==`boolean`,a=e=>i(e)||e===`true`||e===`false`,o=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},s=e=>n(e)?!1:b(e)?e.trim().length>0:y(e)?!0:t(e)?e.length>0:c(e)?Object.keys(e).length>0:!1,c=e=>Object.prototype.toString.call(e)===`[object Object]`,l=e=>c(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},u=e=>{if(!c(e))return{};let n={...e};for(let e in n){let r=n[e];if(e.includes(`,`)&&t(r)){let t=e.split(`,`),i=r;t.forEach((e,t)=>{n[e]=i[t]}),delete n[e]}}return n},d=(e,t)=>c(e)?Object.prototype.hasOwnProperty.call(e,t):!1,f=(e,n)=>{if(!c(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},p=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>p(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t];t.startsWith(n)||(r[t]=p(i,n))}return r},m=(e,t=[])=>{if(!c(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},h=(e,n=[])=>{if(!c(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];n.includes(e)&&t(i)&&(r[e]=i.join(`,`))}),r},g=e=>{if(!c(e))return!1;for(let t in e)if(d(e,t))return!1;return!0},_=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,v=e=>typeof e==`function`,y=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),b=e=>Object.prototype.toString.call(e)===`[object String]`,x=e=>y(e)||b(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),S=e=>!t(e)||e.length===0?!1:e.every(e=>c(e)),C=e=>b(e)||y(e)||i(e)||n(e),w=(e,n)=>{if(!S(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>C(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(S(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},T=(e,n)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return t(i)?i.map(a):a(i)},E=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},D=(e,n,r)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=t(r)?r:[r];return s.splice(o+1,0,...c),s},O=(e,n,r=1)=>{if(!t(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},k=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},A=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},j=(e,n=!0)=>{if(!e||!c(e)||t(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>`${n?r(e):e}:${t}`).join(`;`)},M=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:N(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:N(r,t,n)};function N(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var P=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],F=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of P)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},I=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},L=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},R=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),z=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,B=e=>{let t=String(e??``);return t?t.charAt(0).toLowerCase()+t.slice(1):``},V=e=>{let t=String(e??``);return t?t.charAt(0).toUpperCase()+t.slice(1):``};export{e as buildTree,l as cleanObjectEmptyValues,L as debounce,I as desensitizePhone,u as expandCommaKeyObject,w as findBy,T as findIndexBy,E as flatTree,R as formatThousand,M as formatTime,d as hasOwnProp,D as insertAfter,t as isArray,r as isArrayLike,i as isBoolean,a as isBooleanLike,o as isDefaultFn,s as isEffectiveData,g as isEmptyObject,_ as isFlatPrimArray,v as isFunction,n as isNil,y as isNumber,x as isNumberLike,c as isObject,S as isObjectArray,C as isPrimitive,b as isString,B as lowerFirst,j as objectToStyleString,f as omitObjectProps,p as omitStartWithKeys,m as parseStringFieldsToArray,z as parseValue,k as randomRgb,A as randomRgba,O as removeAfter,h as stringifyArrayFields,F as timeGreetings,V as upperFirst};
1
+ var e=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},t=e=>Array.isArray(e),n=e=>e==null,r=e=>!n(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,i=e=>typeof e==`boolean`,a=e=>i(e)||e===`true`||e===`false`,o=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},s=e=>n(e)?!1:b(e)?e.trim().length>0:y(e)?!0:t(e)?e.length>0:l(e)?Object.keys(e).length>0:!1,c=e=>{if(!l(e))return{};let n=e=>{if(e!=null)return t(e)?e.map(e=>n(e)).filter(e=>e!==void 0):l(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,n(t)]).filter(([e,t])=>t!==void 0)):e};return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,n(t)]).filter(([e,t])=>t!==void 0))},l=e=>Object.prototype.toString.call(e)===`[object Object]`,u=e=>{if(!l(e))return{};let n={...e},r=e=>{let n=Object.keys(e);for(let r of n){let n=e[r];if(r.includes(`,`)&&t(n)){let t=r.split(`,`),i=n;t.forEach((t,n)=>{e[t]=i[n]}),delete e[r]}}Object.values(e).forEach(e=>{l(e)&&r(e)})};return r(n),n},d=(e,t)=>l(e)?Object.prototype.hasOwnProperty.call(e,t):!1,f=(e,n)=>{if(!l(e))return{};let r=e,i=t(n)?n:[n],a={...r};return i.forEach(e=>{delete a[e]}),a},p=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>p(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t];t.startsWith(n)||(r[t]=p(i,n))}return r},m=(e,t=[])=>{if(!l(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},h=(e,n=[])=>{if(!l(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];n.includes(e)&&t(i)&&(r[e]=i.join(`,`))}),r},g=e=>{if(!l(e))return!1;for(let t in e)if(d(e,t))return!1;return!0},_=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,v=e=>typeof e==`function`,y=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),b=e=>Object.prototype.toString.call(e)===`[object String]`,x=e=>y(e)||b(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),S=e=>!t(e)||e.length===0?!1:e.every(e=>l(e)),C=e=>b(e)||y(e)||i(e)||n(e),w=(e,n)=>{if(!S(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>C(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(S(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},T=(e,n)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return t(i)?i.map(a):a(i)},E=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},D=(e,n,r)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=t(r)?r:[r];return s.splice(o+1,0,...c),s},O=(e,n,r=1)=>{if(!t(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},k=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},A=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},j=(e,t=2,n=1024)=>{let r=Number(e)||0,i=Math.max(r,0),a=[{val:n**5,label:`PB`},{val:n**4,label:`TB`},{val:n**3,label:`GB`},{val:n**2,label:`MB`},{val:n,label:`KB`},{val:1,label:`B`}];for(let e of a)if(i>=e.val)return`${(i/e.val).toFixed(t).replace(/\.00$/,``)}${e.label}`;return`${i}B`},M=(e,n=!0)=>{if(!e||!l(e)||t(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>`${n?r(e):e}:${t}`).join(`;`)},N=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:P(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:P(r,t,n)};function P(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var F=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],I=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of F)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},L=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},R=Object.freeze({EMPTY_CONTENT:`复制内容不能为空`,EXEC_COMMAND_FAIL:`execCommand 复制失败`,UNKNOWN:`未知复制错误`,NO_BROWSER_ENV:`当前非浏览器环境,剪贴板不可用`}),z=async(e,t={},n,r)=>{let{trimEmpty:i=!0,logger:a=console}=t;if(typeof document>`u`||typeof navigator>`u`){let e=Error(R.NO_BROWSER_ENV);return a.error(e.message),r?.(e),Promise.reject(e)}let o=i?e.trim():e;if(!o){let e=Error(R.EMPTY_CONTENT);return a.error(e.message),r?.(e),Promise.reject(e)}let s=()=>{n?.()},c=e=>{let t=e instanceof Error?e:Error(R.UNKNOWN);return a.error(`复制剪贴板失败:`,t),r?.(t),Promise.reject(t)};return navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(o).then(s).catch(async()=>{try{await B(o),s()}catch(e){return c(e)}}):B(o).then(s).catch(c)},B=e=>new Promise((t,n)=>{let r=document.createElement(`textarea`);r.value=e,Object.assign(r.style,{position:`absolute`,top:`-9999px`,left:`-9999px`,width:`1px`,height:`1px`,opacity:`0`,pointerEvents:`none`}),document.body.appendChild(r);try{if(r.focus(),r.select(),!document.execCommand(`copy`))throw Error(R.EXEC_COMMAND_FAIL);t()}catch(e){n(e)}finally{r.remove()}}),V=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},H=null,U=(e,t)=>{let n=n=>{t(e),n.preventDefault(),n.stopPropagation()},r=n=>{let{code:r,ctrlKey:i,shiftKey:a,metaKey:o}=n;if(r===`F12`){t(e),n.preventDefault(),n.stopPropagation();return}(i||o)&&a&&[`KeyI`,`KeyJ`,`KeyK`].includes(r)&&(t(e),n.preventDefault(),n.stopPropagation())},i=!1,a=t=>{i||(console.warn(e),(``+t/t).length!==1||t%20,(function(){}).constructor(`debugger`)(),a(++t))};H&&H(),document.addEventListener(`contextmenu`,n),document.addEventListener(`keydown`,r),Promise.resolve().then(()=>a(0));let o=()=>{i=!0,document.removeEventListener(`contextmenu`,n),document.removeEventListener(`keydown`,r),H=null};return H=o,o},W=(e,n)=>{if(!t(e))return 0;let r=0;for(let t of e){let e;e=n?t?.[n]:t;let i=Number(e);r+=Number.isFinite(i)?i:0}let i=10**12;return Math.round(r*i)/i},G=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),K=e=>{if(typeof e!=`string`||e.trim()===``)return{name:``,ext:``};let t=e.trim(),n=t.lastIndexOf(`.`);return n<=0||n===t.length-1?{name:t,ext:``}:{name:t.slice(0,n),ext:t.slice(n)}},q=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,J=e=>{let t=String(e??``);return t?t.charAt(0).toLowerCase()+t.slice(1):``},Y=e=>{let t=String(e??``);return t?t.charAt(0).toUpperCase()+t.slice(1):``};export{e as buildTree,W as calcSum,c as cleanObjectEmptyValues,z as copyToClipboard,V as debounce,L as desensitizePhone,U as disableDebug,u as expandCommaKeyObject,w as findBy,T as findIndexBy,E as flatTree,j as formatBytes,G as formatThousand,N as formatTime,d as hasOwnProp,D as insertAfter,t as isArray,r as isArrayLike,i as isBoolean,a as isBooleanLike,o as isDefaultFn,s as isEffectiveData,g as isEmptyObject,_ as isFlatPrimArray,v as isFunction,n as isNil,y as isNumber,x as isNumberLike,l as isObject,S as isObjectArray,C as isPrimitive,b as isString,J as lowerFirst,M as objectToStyleString,f as omitObjectProps,p as omitStartWithKeys,K as parseFileName,m as parseStringFieldsToArray,q as parseValue,k as randomRgb,A as randomRgba,O as removeAfter,h as stringifyArrayFields,I as timeGreetings,Y as upperFirst};
@@ -0,0 +1 @@
1
+ export declare const formatBytes: (size: unknown, decimals?: number, base?: number) => string;
@@ -1 +1,2 @@
1
+ export * from './formatBytes';
1
2
  export * from './objectToStyleString';
@@ -0,0 +1,7 @@
1
+ export type CopyToClipboardOptions = {
2
+ trimEmpty?: boolean;
3
+ logger?: {
4
+ error: (...args: any[]) => void;
5
+ };
6
+ };
7
+ export declare const copyToClipboard: (text: string, options?: CopyToClipboardOptions, successCb?: () => void, errorCb?: (err: Error) => void) => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const disableDebug: (tipMsg: string, onWarn: (msg: string) => void | Promise<void>) => () => void;
@@ -1 +1,3 @@
1
+ export * from './copyToClipboard';
1
2
  export * from './debounce';
3
+ export * from './disableDebug';
@@ -0,0 +1 @@
1
+ export declare const calcSum: <T extends Record<string, unknown>>(list: unknown, field?: keyof T) => number;
@@ -1 +1,2 @@
1
+ export * from './calcSum';
1
2
  export * from './formatThousand';
@@ -1 +1 @@
1
- export declare const cleanObjectEmptyValues: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
1
+ export declare const cleanObjectEmptyValues: <T extends Record<string, unknown>>(obj: unknown) => Partial<T>;
@@ -1 +1 @@
1
- export declare const expandCommaKeyObject: (obj: Record<string, unknown>) => Record<string, unknown>;
1
+ export declare const expandCommaKeyObject: (obj: unknown) => Record<string, unknown>;
@@ -1 +1 @@
1
- export declare const omitObjectProps: <T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: K | K[]) => Omit<T, K>;
1
+ export declare const omitObjectProps: <T extends Record<string, unknown>, K extends keyof T>(obj: unknown, keys: (K | string) | (K | string)[]) => Omit<T, K>;
@@ -1 +1 @@
1
- export declare const parseStringFieldsToArray: (obj: Record<string, unknown>, fields?: string[]) => Record<string, unknown>;
1
+ export declare const parseStringFieldsToArray: (obj: unknown, fields?: string[]) => Record<string, unknown>;
@@ -1 +1 @@
1
- export declare const stringifyArrayFields: (obj: Record<string, unknown>, includes?: string[]) => Record<string, unknown>;
1
+ export declare const stringifyArrayFields: (obj: unknown, includes?: string[]) => Record<string, unknown>;
@@ -1 +1,2 @@
1
+ export * from './parseFileName';
1
2
  export * from './parseValue';
@@ -0,0 +1,4 @@
1
+ export declare const parseFileName: (filename: unknown) => {
2
+ name: string;
3
+ ext: string;
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wyfex/iutils",
3
- "version": "0.40.0",
3
+ "version": "0.45.0",
4
4
  "description": "万有前端 X 体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库",
5
5
  "homepage": "https://wyfex.top/idocs/iutils",
6
6
  "type": "module",
@@ -15,7 +15,8 @@
15
15
  "import": "./dist/index.js",
16
16
  "require": "./dist/index.cjs",
17
17
  "types": "./dist/types/index.d.ts"
18
- }
18
+ },
19
+ "./*": "./*"
19
20
  },
20
21
  "sideEffects": false,
21
22
  "scripts": {
@@ -25,9 +26,7 @@
25
26
  "tgz": "pnpm build && pnpm pack"
26
27
  },
27
28
  "keywords": [
28
- "万有前端",
29
29
  "万有前端 X",
30
- "万有前端 · iUtils",
31
30
  "万有前端 X ·iUtils",
32
31
  "wyfex",
33
32
  "wyfex-iutils"
@@ -38,8 +37,8 @@
38
37
  "author": "Symbol(王独秀) <963569210@qq.com>",
39
38
  "license": "MIT",
40
39
  "devDependencies": {
41
- "@types/node": "^26.0.1",
40
+ "@types/node": "^26.1.0",
42
41
  "typescript": "^6.0.3",
43
- "vite": "^8.1.2"
42
+ "vite": "^8.1.3"
44
43
  }
45
44
  }