@wyfex/iutils 0.30.0 → 0.40.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/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  万有前端 X 体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库
4
4
 
5
5
  ## 文档地址
6
- > https://wyfe.top/idocs/iutils
6
+ > https://wyfex.top/idocs/iutils
7
7
 
8
8
  ## npm下载(支持pnpm/yarn/cnpm/npm)
9
9
  ```shell
@@ -12,7 +12,7 @@ $ pnpm i @wyfex/iutils
12
12
 
13
13
  ## 版本号规则
14
14
  + 仅升级工具库依赖(vite版本满足如下要求),修改第1位。eg:1.x.x;
15
- > @wyfex/iutils0.x.x对应于vite8.0.x,当vite升级到8.1.x时@wyfex/iutils升级为1.x.x,以此类推。
15
+ > @wyfex/iutils0.x对应于vite8.x,当vite升级到9.x时@wyfex/iutils升级为1.x,以此类推。
16
16
  + 仅新增工具函数,修改第2位。eg:x.6.x;
17
17
  + 仅修复、优化现有工具函数,修改第3位。eg:x.x.1;
18
18
  + 以上3项都有变更或部分有变更则按照对应变更修改对应版本号位置;
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=>n(e)?!1:c(e)?e.trim().length>0:s(e)?!0:t(e)?e.length>0:u(e)?Object.keys(e).length>0:!1,s=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),c=e=>Object.prototype.toString.call(e)===`[object String]`,l=e=>s(e)||c(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),u=e=>Object.prototype.toString.call(e)===`[object Object]`,d=e=>!t(e)||e.length===0?!1:e.every(e=>u(e)),f=e=>c(e)||s(e)||i(e)||n(e),p=(e,n)=>{if(!d(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>f(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(d(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},m=(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)},h=(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},g=(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},_=(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},v=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},y=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},b=(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:x(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:x(r,t,n)};function x(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 S=(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},C=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),w=e=>u(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},T=e=>{if(!u(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},E=(e,n)=>{if(!u(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},D=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>D(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]=D(i,n))}return r},O=(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},k=(e,n=[])=>{if(!u(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},A=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;exports.buildTree=e,exports.cleanObjectEmptyValues=w,exports.debounce=S,exports.expandCommaKeyObject=T,exports.findBy=p,exports.findIndexBy=m,exports.flatTree=h,exports.formatThousand=C,exports.formatTime=b,exports.insertAfter=g,exports.isArray=t,exports.isArrayLike=r,exports.isBoolean=i,exports.isBooleanLike=a,exports.isEffectiveData=o,exports.isNil=n,exports.isNumber=s,exports.isNumberLike=l,exports.isObject=u,exports.isObjectArray=d,exports.isPrimitive=f,exports.isString=c,exports.omitObjectProps=E,exports.omitStartWithKeys=D,exports.parseStringFieldsToArray=O,exports.parseValue=A,exports.randomRgb=v,exports.randomRgba=y,exports.removeAfter=_,exports.stringifyArrayFields=k;
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 +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=>r(e)?!1:l(e)?e.trim().length>0:c(e)?!0:n(e)?e.length>0:d(e)?Object.keys(e).length>0:!1,c=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),l=e=>Object.prototype.toString.call(e)===`[object String]`,u=e=>c(e)||l(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),d=e=>Object.prototype.toString.call(e)===`[object Object]`,f=e=>!n(e)||e.length===0?!1:e.every(e=>d(e)),p=e=>l(e)||c(e)||a(e)||r(e),m=(e,t)=>{if(!f(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=t;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>p(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(f(t)){let n=s(e,t);if(n)return n}}};return n(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},h=(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)},g=(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},_=(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},v=(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},y=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},b=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},x=(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:S(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:S(r,t,n)};function S(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 C=(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},w=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),T=e=>d(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},E=e=>{if(!d(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},D=(e,t)=>{if(!d(e))return{};let r=n(t)?t:[t],i={...e};return r.forEach(e=>{delete i[e]}),i},O=(e,t=`_`)=>{if(e==null)return e;if(n(e))return e.map(e=>O(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]=O(i,t))}return r};return e.buildTree=t,e.cleanObjectEmptyValues=T,e.debounce=C,e.expandCommaKeyObject=E,e.findBy=m,e.findIndexBy=h,e.flatTree=g,e.formatThousand=w,e.formatTime=x,e.insertAfter=_,e.isArray=n,e.isArrayLike=i,e.isBoolean=a,e.isBooleanLike=o,e.isEffectiveData=s,e.isNil=r,e.isNumber=c,e.isNumberLike=u,e.isObject=d,e.isObjectArray=f,e.isPrimitive=p,e.isString=l,e.omitObjectProps=D,e.omitStartWithKeys=O,e.parseStringFieldsToArray=(e,t=[])=>{if(!d(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},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=y,e.randomRgba=b,e.removeAfter=v,e.stringifyArrayFields=(e,t=[])=>{if(!d(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})({});
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})({});
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=>n(e)?!1:c(e)?e.trim().length>0:s(e)?!0:t(e)?e.length>0:u(e)?Object.keys(e).length>0:!1,s=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),c=e=>Object.prototype.toString.call(e)===`[object String]`,l=e=>s(e)||c(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),u=e=>Object.prototype.toString.call(e)===`[object Object]`,d=e=>!t(e)||e.length===0?!1:e.every(e=>u(e)),f=e=>c(e)||s(e)||i(e)||n(e),p=(e,n)=>{if(!d(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>f(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(d(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},m=(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)},h=(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},g=(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},_=(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},v=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},y=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},b=(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:x(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:x(r,t,n)};function x(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 S=(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},C=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),w=e=>u(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},T=e=>{if(!u(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},E=(e,n)=>{if(!u(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},D=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>D(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]=D(i,n))}return r},O=(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},k=(e,n=[])=>{if(!u(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},A=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;export{e as buildTree,w as cleanObjectEmptyValues,S as debounce,T as expandCommaKeyObject,p as findBy,m as findIndexBy,h as flatTree,C as formatThousand,b as formatTime,g as insertAfter,t as isArray,r as isArrayLike,i as isBoolean,a as isBooleanLike,o as isEffectiveData,n as isNil,s as isNumber,l as isNumberLike,u as isObject,d as isObjectArray,f as isPrimitive,c as isString,E as omitObjectProps,D as omitStartWithKeys,O as parseStringFieldsToArray,A as parseValue,v as randomRgb,y as randomRgba,_ as removeAfter,k as stringifyArrayFields};
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,8 +1,11 @@
1
1
  export * from './modules/array';
2
2
  export * from './modules/color';
3
+ export * from './modules/convert';
3
4
  export * from './modules/date';
5
+ export * from './modules/desensitize';
4
6
  export * from './modules/function';
5
7
  export * from './modules/number';
6
8
  export * from './modules/object';
7
9
  export * from './modules/parse';
10
+ export * from './modules/string';
8
11
  export * from './modules/type';
@@ -0,0 +1 @@
1
+ export * from './objectToStyleString';
@@ -0,0 +1 @@
1
+ export declare const objectToStyleString: (styles: unknown, kebabCase?: boolean) => string;
@@ -1 +1,2 @@
1
1
  export * from './formatTime';
2
+ export * from './timeGreetings';
@@ -0,0 +1 @@
1
+ export declare const timeGreetings: (time?: Date | number) => string;
@@ -0,0 +1 @@
1
+ export declare const desensitizePhone: (str: unknown) => string | unknown;
@@ -0,0 +1 @@
1
+ export * from './desensitizePhone';
@@ -0,0 +1 @@
1
+ export declare const hasOwnProp: (target: unknown, key: string | symbol) => boolean;
@@ -1,5 +1,6 @@
1
1
  export * from './cleanObjectEmptyValues';
2
2
  export * from './expandCommaKeyObject';
3
+ export * from './hasOwnProp';
3
4
  export * from './omitObjectProps';
4
5
  export * from './omitStartWithKeys';
5
6
  export * from './parseStringFieldsToArray';
@@ -0,0 +1,2 @@
1
+ export * from './lowerFirst';
2
+ export * from './upperFirst';
@@ -0,0 +1 @@
1
+ export declare const lowerFirst: (str: unknown) => string;
@@ -0,0 +1 @@
1
+ export declare const upperFirst: (str: unknown) => string;
@@ -2,7 +2,11 @@ export * from './isArray';
2
2
  export * from './isArrayLike';
3
3
  export * from './isBoolean';
4
4
  export * from './isBooleanLike';
5
+ export * from './isDefaultFn';
5
6
  export * from './isEffectiveData';
7
+ export * from './isEmptyObject';
8
+ export * from './isFlatPrimArray';
9
+ export * from './isFunction';
6
10
  export * from './isNil';
7
11
  export * from './isNumber';
8
12
  export * from './isNumberLike';
@@ -0,0 +1 @@
1
+ export declare const isDefaultFn: (fn: unknown) => boolean;
@@ -0,0 +1 @@
1
+ export declare const isEmptyObject: (v: unknown) => v is Record<string, never>;
@@ -0,0 +1 @@
1
+ export declare const isFlatPrimArray: (val: unknown, strict?: boolean) => val is (string | number | boolean | null | undefined | symbol | bigint)[];
@@ -0,0 +1 @@
1
+ export declare const isFunction: (v: unknown) => v is Function;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@wyfex/iutils",
3
- "version": "0.30.0",
3
+ "version": "0.40.0",
4
4
  "description": "万有前端 X 体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库",
5
- "homepage": "https://wyfe.top/idocs/iutils",
5
+ "homepage": "https://wyfex.top/idocs/iutils",
6
6
  "type": "module",
7
7
  "main": "dist/index.cjs",
8
8
  "module": "dist/index.js",
@@ -38,8 +38,8 @@
38
38
  "author": "Symbol(王独秀) <963569210@qq.com>",
39
39
  "license": "MIT",
40
40
  "devDependencies": {
41
- "@types/node": "^25.9.1",
41
+ "@types/node": "^26.0.1",
42
42
  "typescript": "^6.0.3",
43
- "vite": "^8.0.16"
43
+ "vite": "^8.1.2"
44
44
  }
45
45
  }