UNPKG

com-tools

Version:

com-tools 提供了一些通用的工具函数;

3 lines (2 loc) 10.9 kB
(function(o,v){typeof exports=="object"&&typeof module<"u"?v(exports):typeof define=="function"&&define.amd?define(["exports"],v):(o=typeof globalThis<"u"?globalThis:o||self,v(o.ComTools={}))})(this,function(o){"use strict";var ke=Object.defineProperty;var De=(o,v,b)=>v in o?ke(o,v,{enumerable:!0,configurable:!0,writable:!0,value:b}):o[v]=b;var N=(o,v,b)=>De(o,typeof v!="symbol"?v+"":v,b);function v(e,n){return JSON.stringify(e)==JSON.stringify(n)}function b({loopCall:e,complete:n,stepComplete:t,thisValue:r,total:i=Number.POSITIVE_INFINITY,step:u=50,delay:s=0}){let c=0,l=0,m=!1;function d(y){y&&(m=y,n&&n.call(r,m,c,l,i))}function h(){let y=c<i;return!y&&n&&n.call(r,!1,c-1,l,i),y}let _=null;function f(){l++;let y=Math.min(c+u,i);function P(){return c<y}for(;P()&&!m;)d(e.call(r,c,l,i)),c++;t&&d(t.call(r,c-1,l,i)),h()&&!m&&(_=setTimeout(f,s))}function a(y){y||(y=!0),clearTimeout(_),d(y)}return h()&&f(),a}let R={multipleLoop:{configurable:!0,writable:!0,enumerable:!1,value:function({loopCall:e,complete:n,stepComplete:t,thisValue:r,step:i,delay:u}){r&&(r=this);let s={loopCall:(c,l)=>e.call(r,this[c],c,l,this),total:this.length,step:i,delay:u};return n&&(s.complete=(c,l,m)=>n.call(r,c,l,m,this)),t&&(s.stepComplete=(c,l)=>t.call(r,c,l,this)),b(s)}}};Object.defineProperties(Array.prototype,R);function B(e,n,t){t==null&&(t=e);let r=[];for(let u of e)r.push(u);return r.filter(function(u){let s=this.indexOf(u);return n.call(t,u,s,e)},r)}function w(e,n,t){let{ready:r=n+"Ready",noEvent:i,event:u=n+"Change",newValueKey:s="value",oldValueKey:c="oldValue",getDefault:l}=t||{},m="_"+r,d="_"+n;if(Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){let f=this||window;if(!f[m]){let a=f[d];a?f[m]=Promise.resolve(a):f[m]=T()}return f[m]},set:function(f){let a=this||window;a[m]=f}}),l)var h=function(){let f=this||window;return!f[d]&&l&&(f[n]=l.call(f,f)),f[d]};else h=function(){return(this||window)[d]};if(i)var _=function(f){let a=this||window;if(f&&f!==a[d]){a[d]=f;let y=a[r];y.resolve?y.resolve(f):a[r]=Promise.resolve(f)}};else _=function(f){let a=this||window;if(f&&f!==a[d]){let y=a[d];a[d]=f;let P=a[r];P.resolve?P.resolve(f):a[r]=Promise.resolve(f);let E=new Event(u,{bubbles:!0});E[s]=f,E[c]=y,window.dispatchEvent(E)}};return Object.defineProperty(e,n,{configurable:!0,enumerable:!0,get:h,set:_}),e}function C(e,n,t){var r=n;return Array.isArray(n)&&(r=n.reduce(function(i,u){return i[u]=t,i},{})),Object.keys(r).forEach(function(i){let u=r[i];w(e,i,u)}),e}function J(e,n,t,r){let i="_"+n;if(r)var u=t;else t?u=function(){let s=this||window;return!s[i]&&t&&(s[n]=t.call(s,s)),s[i]}:u=function(){return(this||window)[i]};Object.defineProperty(e,n,{configurable:!0,enumerable:!0,get:u})}function U(){var e=new Date;return e.getTime().toString()+Math.random()}function T(e,n){let t=typeof e=="function";t&&n==null&&(n=!0);var r={};function i(){c.resolve=void 0,c.reject=void 0,c.clearAdditions=void 0}function u(l){i(),r.resolve(l)}function s(l){i(),r.reject(l)}var c=new Promise(function(l,m){if(r.resolve=l,r.reject=m,t)if(n)setTimeout(e,0,u,s);else return e(u,s)});return c.clearAdditions=i,c.resolve=u,c.reject=s,c}function p(e,n,t,r){var{get:i=!0,set:u=!0,configurable:s=!0,enumerable:c=!0,getDefault:l,setDefault:m}=r||{},d={configurable:s,enumerable:c};return i&&(d.get=function(){var h=n[t];return h===void 0?l:h}),u&&(d.set=function(h){h=h===void 0?m:h,n[t]=h}),Object.defineProperty(e,t,d),e}function W(e,n,t,r){var i=t;return Array.isArray(t)&&(i=t.reduce(function(u,s){return u[s]=r,u},{})),Object.keys(i).forEach(function(u){let s=i[u];p(e,n,u,s)}),e}function z(e){return new Function(`"use strict"; return (${e})`)()}function q(e){const n=M(e);return n.prototype=Object.create(e.prototype),n.prototype.constructor=n,n}function M(e){return F(e.toString(),e.name,!0)}const K=/(^\s*(async\s+)?function\s*(\s|\*)\s*)[A-Za-z_$]+[\w$]*(\s*\()/,X=/^[A-Za-z_$]+[\w$]*$/;function F(e,n,t){const r=K,i=X,u=r.test(e),s=n&&i.test(n);if(u&&s&&!t&&(e=e.replace(r,`$1${n}$4`)),!u&&s)var c=`"use strict"; var ${n} = ${e} ; return ${n}`;else c=`"use strict"; return (${e})`;return new Function(c)()}function Z(e){return function(){return new.target?new e(...arguments):e.apply(this,arguments)}}function Y(e,n){return e>0?new Promise(t=>{setTimeout(t,e,n)}):Promise.resolve(n)}function H(e,n,t){if(t)for(const r in n)e[r]==null&&(e[r]=n[r]);else for(const r in n)e[r]===void 0&&(e[r]=n[r]);return e}class Q{constructor(){N(this,"_decided",!1);N(this,"listeners",[]);N(this,"_value")}get decided(){return this._decided}get value(){return this._value}set value(n){this._value=n,this.resolve()}resolve(){this._decided=!0;const n=this.value;for(const t of this.listeners)t(n);this.listeners=[],this.then=function(t){t(this.value)}}then(n){this.listeners.push(n)}static resolve(n){const t=new this;return t.value=n,t}}function O(e,n){if(n.length===0)return e;for(let t=0;t<n.length;t++){if(e==null)return;e=e[n[t]]}return e}function g(e,n,t){n.length===0&&Object.assign(e,t);const r=n.length-1;for(let i=0;i<r;i++){const u=n[i];e[u]==null&&(e[u]=typeof n[i+1]=="number"?[]:{}),e=e[u]}e[n[r]]=t}function j(e,n,t){const r=typeof t=="function"?t:()=>t;let i=O(e,n);return i===void 0&&(i=r(),g(e,n,i)),i}function V(e,n,t){const r=typeof t=="function"?t:()=>t;let i=O(e,n);return i===void 0&&(i=r(),i instanceof Promise?i.then(u=>g(e,n,u)):g(e,n,i)),i}function L(e,n){if(n.length===0)return!0;const t=n.length-1;for(let r=0;r<t;r++){if(e==null)return!1;e=e[n[r]]}return e==null?!1:delete e[n[t]]}function x(e){return Object.keys(e).forEach(n=>e[n]===void 0&&delete e[n]),e}function ee(e){return Object.keys(e).forEach(n=>e[n]==null&&delete e[n]),e}function ne(e,n){const t={};for(const r of n)t[r]=e[r];return t}function te(e,n){for(const t of n)delete e[t];return e}function re(e,n){const t={};for(const r of n){const i=O(e,r);g(t,r,i)}return t}function ie(e,n){for(const t of n)L(e,t);return e}function ue(e,n,t){n??(n="/"),t??(t="-");for(let r=e.length-1;r>=0&&e[r]==null;r--)e.length=r;return e.map(r=>r??t).join(n)}function oe(e,n,t="/"){return e.split(t,n+1)[n]}function se(e,n,t,r="/"){const i=e.split(r);return i[n]=t,i.join(r)}function ce(e,n,t="/"){const r=[];for(const i of e){const u=i.split(t,n+1)[n];u&&r.push(u)}return r}function fe(e,n){return n.some(t=>e.includes(t))}function le(e,n){return n.some(t=>t.test(e))}function de(e,n){return n.some(function(t){return typeof t=="string"?e.includes(t):t.test(e)})}function ae(e,n,t){if(n===t)return e;const[r]=e.splice(n,1);return e.splice(t,0,r),e}function me(e,n,t){const r=e[n],i=e.filter((u,s)=>s!==n);return i.splice(t,0,r),i}function ye(e,n,t){const r=n.map(function(i,u){return{item:e[i],to:t[u]}});for(const{item:i}of r){const u=e.indexOf(i);e.splice(u,1)}for(const{item:i,to:u}of r)e.splice(u,0,i);return e}function ve(e,n,t){const r=n.map(u=>e[u]),i=e.filter((u,s)=>!n.includes(s));for(let u=0;u<n.length;u++)i.splice(t[u],0,r[u]);return i}function he(e,n){const t="/";let r=typeof n=="string"?n.length:n??0;const i=Math.min(r,1),u=[t,...e,t],s=JSON.stringify(u,null,n),c=s.indexOf(t)+3+i,l=s.lastIndexOf(t)-1-r;return s.slice(c,l)}function be(e,n,t){let r=JSON.stringify(e,null,n)+",";return n&&(t??(t=` `)),t&&(r+=t),r}function k(e,n,t,r){r==null&&(r=e);let i=e.filter(function(u,s){return n.includes(s)});return i.forEach(u=>{let s=e.indexOf(u);t.call(r,u,s,e)}),i}function A(e,n,t,r){r==null&&(r=e);let i=[],u=n.map(s=>(i.push(s),e.indexOf(s)));return i.forEach(s=>{let c=e.indexOf(s);t.call(r,s,c,e)}),u}function ge(e,n,t){return t==null&&(t=e),e.slice().filter(i=>{const u=e.indexOf(i);return n.call(t,i,u,e)})}function Ie(e,n,t,r=1){let i=e.splice(n,r);return e.splice(t,0,...i),i}function _e(e,n,...t){let r=G(e,...t);return e.splice(n,0,...r),r}function Oe(e,n,...t){let r=S(e,...t);return e.splice(n,0,...t),r}function Pe(e,n,t,r){let i=$(e,t,r);return e.splice(n,0,...i),i}function D(e,n,t=0,r){r||(r=function(u,s){return u===s});let i=e.filter(u=>r.call(e,u,n));return S(e,...i),e.splice(t,0,n),i}function Ne(e,n,t,r){return n.reduceRight((i,u)=>{let s=D(e,u,t,r);return i.unshift(...s),i},[])}function Ae(e,n,t){t==null&&(t=n);let r=t+1-n;return e.splice(n,r)}function G(e,...n){return k(e,n,function(t,r,i){i.splice(r,1)},e)}function S(e,...n){return A(e,n,function(t,r,i){i.splice(r,1)},e)}function $(e,n,t){t===void 0&&(t=e);let r=e.filter((i,u,s)=>n.call(t,i,u,s));return A(e,r,function(i,u,s){s.splice(u,1)},e),r}function Se(e,n,t){return t==null&&(t=e),e.reduce(function(r,i,u,s){return n.call(t,i,u,s)&&r.push(u),r},[])}function Ee(e,n,t){return e.length!==n.length?!1:(t||(t=function(r,i){return r===i}),e.every((r,i)=>t(r,n[i])))}function we(e,n){return e.sort((t,r)=>{let i=n.indexOf(t),u=n.indexOf(r);i===-1&&(i=Number.MAX_SAFE_INTEGER),u===-1&&(u=Number.MAX_SAFE_INTEGER);const s=i-u;return s!==0?s:t<r?-1:1})}function Te(e,n){const t={members:[]},r=e.length;for(let i=0;i<r;i++){const u=e[i],s=n(u,i,e),c=j(t,s,()=>({members:[]}));(c.members??(c.members=[])).push(u)}return t}function pe(e){return Object.keys(e).filter(t=>I(e[t]))}function Me(e){return Object.values(e).filter(t=>I(t))}function Fe(e){return Object.entries(e).filter(([t,r])=>I(r))}function I(e){return e&&!Array.isArray(e)&&typeof e=="object"}function je(e){return Object.values(e).some(t=>I(t))}function Le(e){const n=[];let t=[e];for(let r=0;r<t.length;r++){const i=t[r],{members:u,...s}=i;u&&n.push(...u),t.push(...Object.values(s))}return{members:n,nodes:t}}o.Decide=Q,o.array_delete=Ae,o.array_deleteIndexs=G,o.array_deleteItems=S,o.array_deleteUseTest=$,o.array_filterIndexs=Se,o.array_insertItem=D,o.array_insertItemList=Ne,o.array_isEqual=Ee,o.array_move=Ie,o.array_moveItemsTo=Oe,o.array_moveTo=_e,o.array_moveToUseTest=Pe,o.array_safelyFilter=ge,o.array_safelyOperateIndexs=k,o.array_safelyOperateItems=A,o.array_sortByOrder=we,o.assignDefaultValues=H,o.betterEval=z,o.copyConstructor=q,o.copyFunction=M,o.createControllablePromise=T,o.createFunctionBy=F,o.createSingleton=Z,o.createUniqueIdentifier=U,o.defineListenableProperties=C,o.defineListenableProperty=w,o.defineListenablePropertyGetter=J,o.defineProxyProperties=W,o.defineProxyProperty=p,o.deleteMember=L,o.flatGroupTree=Le,o.getMember=O,o.getMemberWithAsyncDefault=V,o.getMemberWithDefault=j,o.getPathPart=oe,o.getSubGroupEntries=Fe,o.getSubGroupNames=pe,o.getSubGroupNodes=Me,o.getValidPathParts=ce,o.groupTreeBy=Te,o.hasSubGroups=je,o.includesPatterns=de,o.includesRegExps=le,o.includesStrings=fe,o.isEqualByJSON=v,o.isGroupTree=I,o.moveItemInArray=ae,o.moveItemInNewArray=me,o.moveItemsInArray=ye,o.moveItemsInNewArray=ve,o.multipleLoop=b,o.omitMembers=te,o.omitMembersByPath=ie,o.pathString=ue,o.pickMembers=ne,o.pickMembersByPath=re,o.removeNull=ee,o.removeUndefined=x,o.replacePathPart=se,o.safelyIterate=B,o.setMember=g,o.toJSONArrayFragment=he,o.toJSONItemFragment=be,o.waitWhile=Y,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});