ddan-js 1.5.2 → 1.5.4

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.
@@ -1 +1 @@
1
- var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};const t=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";const n={};return n.yyyy=r.getFullYear(),n.yy=`${n.yyyy}`.substr(2),n.M=r.getMonth()+1,n.MM=(n.M<10?"0":"")+n.M,n.d=r.getDate(),n.dd=(n.d<10?"0":"")+n.d,n.h=r.getHours(),n.hh=(n.h<10?"0":"")+n.h,n.m=r.getMinutes(),n.mm=(n.m<10?"0":"")+n.m,n.s=r.getSeconds(),n.ss=(n.s<10?"0":"")+n.s,n.S=r.getMilliseconds(),n.SS=(n.S<10?"0":"")+n.S,n.SSS=n.S.toString().padStart(3,0),t.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>n[e]))};function r(){return Date.now()}var n={now:r,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),format:t,parseTime:function({year:e=0,month:r=0,date:n=0,hour:s=0,minute:o=0,second:i=0}){const u=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${s}:${o}:${i}`;return new Date(t(Date.now(),u)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},s="object"==typeof global&&global&&global.Object===Object&&global,o="object"==typeof self&&self&&self.Object===Object&&self;const i=(s||o||Function("return this")()).Symbol,{toString:u,hasOwnProperty:a,propertyIsEnumerable:c}=Object.prototype,l=i?i.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":l&&l in Object(e)?function(e){const t=a.call(e,l),r=e[l];let n=!1;try{e[l]=void 0,n=!0}catch(e){}const s=u.call(e);return n&&(t?e[l]=r:delete e[l]),s}(e):u.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:u,hasOwnProperty:a,propertyIsEnumerable:c},h="[object Function]",p="[object GeneratorFunction]",g="[object AsyncFunction]",y=9007199254740991;const m=/^(?:0|[1-9]\d*)$/;function b(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function v(e){return null!=e&&"object"==typeof e}const w=Array.isArray;function $(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=y}(e.length)&&!A(e)}function q(e){return v(e)&&$(e)}function A(e){var t=b(e)?d.getTag(e):"";return t===h||t===p||t===g}var O={is:function(e,t){return d.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===d.getTag(e)},isString:function(e){return"string"==typeof e||!w(e)&&v(e)&&"[object String]"==d.getTag(e)},isObject:b,isObjectLike:v,isPlainObject:function(e){if(!v(e)||"[object Object]"!=d.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:A,isArray:w,isArrayLikeObject:q,isIndex:function(e,t){return!!(t=null==t?y:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:$,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return q(e)&&d.hasOwnProperty.call(e,"callee")&&(!d.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==d.toString.call(e))},isPromise:function(e){return"[object Promise]"===(b(e)?d.getTag(e):"")}};const j=NaN,k=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,F=/^0b[01]+$/i,C=/^0o[0-7]+$/i,S=parseInt,E=1/0,R=17976931348623157e292;function P(e){if("number"==typeof e)return e;if(O.isSymbol(e))return j;if(O.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=O.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(k,"");const t=F.test(e);return t||C.test(e)?S(e.slice(2),t?2:8):x.test(e)?j:+e}function I(e){return e?(e=P(e))===E||e===-E?(e<0?-1:1)*R:e==e?e:0:0===e?e:0}var T={toNumber:P,toFinite:I,toInteger:function(e){var t=I(e),r=t%1;return t==t?r?t-r:t:0}};const D="Expected a function",L=Math.max,N=Math.min;function _(e,t=0,r={}){var n,s,o,i,u,a,c=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(D);function h(t){var r=n,o=s;return n=s=void 0,c=t,i=e.apply(o,r)}function p(e){var r=e-a;return void 0===a||r>=t||r<0||f&&e-c>=o}function g(){var e=Date.now();if(p(e))return y(e);u=setTimeout(g,function(e){var r=t-(e-a);return f?N(r,o-(e-c)):r}(e))}function y(e){return u=void 0,d&&n?h(e):(n=s=void 0,i)}function m(...e){var r=Date.now(),o=p(r);if(n=arguments,s=this,a=r,o){if(void 0===u)return function(e){return c=e,u=setTimeout(g,t),l?h(e):i}(a);if(f)return u=setTimeout(g,t),h(a)}return void 0===u&&(u=setTimeout(g,t)),i}return t=T.toNumber(t)||0,O.isObject(r)&&(l=!!r.leading,o=(f="maxWait"in r)?L(T.toNumber(r.maxWait)||0,t):o,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==u&&clearTimeout(u),c=0,n=a=s=u=void 0},m.flush=function(){return void 0===u?i:y(Date.now())},m}class M{source;constructor(e){this.source=e}run(){let e;try{let t;return t=O.isFunction(this.source)?this.source():this.source,e=O.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}class U{_list=[];constructor(e){this.push(e)}push(e){return e&&this._list.push(e),this}clear(){return this._list=[],this}_exec(e,t){let r;if(O.isFunction(e))r=e(t);else{if(O.isPromise(e))return e.then((e=>({...t,...e})));r=e}return O.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this._list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new M(e).run(),debounce:_,throttle:function(e,t=0,r={}){var n=!1,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return O.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),_(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new U(e)};function V(e){return Math.floor(Math.random()*e)}var Z={random:V,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=V(e);r?n.push(s):n.includes(s)||n.push(s)}return n}};function J(e){return e!=e}function H(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var B,W,G=(B=Object.keys,W=Object,function(e){return B(W(e))}),Y=Math.max;function K(e,t){var r=O.isArray(e)||O.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var o in e)!t&&!d.hasOwnProperty.call(e,o)||s&&("length"==o||O.isIndex(o,n))||r.push(o);return r}const Q=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=Q(e[r]));return t};var X={...O,...d,includes:function(e,t,r,n){e=O.isArrayLike(e)?e:function(e){return e?H(e,function(e){return O.isArrayLike(e)?K(e):function(e){if(!O.isPrototype(e))return G(e);var t=[];for(var r in Object(e))d.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?T.toInteger(r):0;var s=e.length;return r<0&&(r=Y(s+r,0)),O.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,o=r+(n?1:-1);n?o--:++o<s;)if(t(e[o],o,e))return o;return-1}(e,J,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:Q,forof:(e,t)=>{if(!e)return;let r;if(O.isObject(e)&&(r=O.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};class ee{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var te={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!O.isFunction(t))return;if(!O.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,o=e.slice(n,s);t&&t(o),n=s}},skip:(e,t)=>{if(!O.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!O.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:e=>!O.isArray(e)||e.length<=0?[]:[...new Set(e)],random:(e,t=1,r=!1)=>{const n=e.length||0;return Z.randoms(n,t,r).map((t=>e[t]))||[]}};const re="[object Object]",ne="[object Array]",se=e=>Object.prototype.toString.call(e),oe=(e,t,r=!1)=>{if(e===t)return;const n=se(e);if(n===se(t))if(n===ne&&e.length>=t.length)for(let r=0;r<t.length;r++)oe(e[r],t[r]);else if(n===re&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?oe(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",s=!1)=>{if(e===t)return;const o=se(e),i=se(t);if(o===ne&&i===o&&e.length>=t.length)for(let s=0;s<e.length;s++)ie(e[s],t[s],r,`${n}[${s}]`);else if(o===re&&i===o&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let o of s){const s=e[o],i=t[o],u=se(s),a=se(i);if(s!==i)if(u===ne&&a===u&&s.length>=i.length)for(let e=0;e<s.length;e++)ie(s[e],i[e],r,`${n?n+".":""}${o}[${e}]`);else if(u===re&&a===u&&Object.keys(s).length>=Object.keys(i).length)for(let e in s)ie(s[e],i[e],r,`${n?n+".":""}${o}.${e}`);else r[`${n?n+".":""}${o}`]=s}}else r[n]=e};class ue{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class ae{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new ue,response:new ue};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:o}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=o}static blockId="blockid";static requestLock={};lockR(e,t){ae.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete ae.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=X.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let o;try{if("block"===n.model)this.lockR(ae.blockId,(()=>this._fetch(s,n.hasEncrypt))),o=await ae.requestLock[ae.blockId].request;else if(ae.requestLock[ae.blockId]&&ae.requestLock[ae.blockId].lock&&await ae.requestLock[ae.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),ae.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),o=await ae.requestLock[e].request,this.unlockR(e)}else o=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:o,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const ce=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var le={diff:function(e,t){const r={};return(e=>{if(se(e)===re)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];se(n[t])!==re&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),oe(e,t,!0),ie(e,t,r,"",!0),r},promixify:ce,run:(e,t={})=>{if(e)return z.run(ce(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:ae};const fe=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!1,uri:o=!0}={}){t=t||"&",r=r||"=";const i={};if("string"!=typeof e||0===e.length)return i;const u=/\+/g,a=n||1e3;let c=(e=e.split(t)).length;a>0&&c>a&&(c=a);for(let t=0;t<c;++t){let n,a,c,l,f=e[t].replace(u,"%20"),h=f.indexOf(r);h>=0?(n=f.substr(0,h),a=f.substr(h+1)):(n=f,a=""),c=o?decodeURIComponent(n):n,l=o?decodeURIComponent(a):a,d.hasOwnProperty.call(i,c)&&s?Array.isArray(i[c])?i[c].push(l):i[c]=[i[c],l]:i[c]=l}return i},de=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},he=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:s=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const o=encodeURIComponent(de(n))+r;return s&&Array.isArray(e[n])?e[n].map((function(e){return o+encodeURIComponent(de(e))})).join(t):o+encodeURIComponent(de(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(de(n))+r+encodeURIComponent(de(e)):""};var pe={parse:fe,decode:fe,stringify:he,encode:he,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const ge=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function ye(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function me(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(X.isPlainObject(e)){const r=Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&"),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class be{host="";reqConfig={};handleError;interceptors={request:new ue,response:new ue};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(me),this.interceptors.response.use(e.handleResponse||ye),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){be.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete be.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=X.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let o;if(delete s.options.plugins,"block"===r.model)this.lockR(be.blockId,(()=>ge(s))),o=await be.requestLock[be.blockId].request;else if(be.requestLock[be.blockId]&&be.requestLock[be.blockId].lock&&await be.requestLock[be.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),be.requestLock[e]||this.lockR(e,(()=>ge(s))),o=await be.requestLock[e].request,this.unlockR(e)}else o=await ge(s);return this.interceptors.response.invoke({response:o,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}const ve=/%[sdj%]/g;let we=()=>{};function $e(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function qe(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(ve,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function Ae(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Oe(e,t,r){let n=0;const s=e.length;!function o(i){if(i&&i.length)return void r(i);const u=n;n+=1,u<s?t(e[u],o):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(we=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class je extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ke(e,t,r,n,s){if(t.first){const t=new Promise(((t,o)=>{const i=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);Oe(i,r,(e=>(n(e),e.length?o(new je(e,$e(e))):t(s))))}));return t.catch((e=>e)),t}const o=!0===t.firstFields?Object.keys(e):t.firstFields||[],i=Object.keys(e),u=i.length;let a=0;const c=[],l=new Promise(((t,l)=>{const f=e=>{if(c.push.apply(c,e),a++,a===u)return n(c),c.length?l(new je(c,$e(c))):t(s)};i.length||(n(c),t(s)),i.forEach((t=>{const n=e[t];-1!==o.indexOf(t)?Oe(n,r,f):function(e,t,r){const n=[];let s=0;const o=e.length;function i(e){n.push(...e||[]),s++,s===o&&r(n)}e.forEach((e=>{t(e,i)}))}(n,r,f)}))}));return l.catch((e=>e)),l}function xe(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function Fe(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const Ce=(e,t,r,n,s,o)=>{!e.required||r.hasOwnProperty(e.field||"")&&!Ae(t,o||e.type)||n.push(qe(s.messages.required,e.fullField))};let Se;const Ee=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,Re=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Pe={integer:e=>Pe.number(e)&&parseInt(e,10)===e,float:e=>Pe.number(e)&&!Pe.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Pe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ee),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(Se)return Se;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),o=new RegExp(`(?:^${r}$)|(?:^${s}$)`),i=new RegExp(`^${r}$`),u=new RegExp(`^${s}$`),a=e=>e&&e.exact?o:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");a.v4=e=>e&&e.exact?i:new RegExp(`${t(e)}${r}${t(e)}`,"g"),a.v6=e=>e&&e.exact?u:new RegExp(`${t(e)}${s}${t(e)}`,"g");const c=a.v4().source,l=a.v6().source;return Se=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${c}|${l}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),Se})()),hex:e=>"string"==typeof e&&!!e.match(Re)},Ie="enum";var Te={required:Ce,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(qe(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void Ce(e,t,r,n,s);const o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?Pe[o](t)||n.push(qe(s.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&n.push(qe(s.messages.types[o],e.fullField,e.type))},range:(e,t,r,n,s)=>{const o="number"==typeof e.len,i="number"==typeof e.min,u="number"==typeof e.max,a=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let c=t,l="";const f="number"==typeof t,d="string"==typeof t,h=Array.isArray(t);if(f?l="number":d?l="string":h&&(l="array"),!l)return!1;h&&(c=t.length),d&&(c=t.replace(a,"_").length),o?c!==e.len&&n.push(qe(s.messages[l].len,e.fullField,e.len)):i&&!u&&c<e.min?n.push(qe(s.messages[l].min,e.fullField,e.min)):u&&!i&&c>e.max?n.push(qe(s.messages[l].max,e.fullField,e.max)):i&&u&&(c<e.min||c>e.max)&&n.push(qe(s.messages[l].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[Ie]=Array.isArray(e[Ie])?e[Ie]:[],-1===e[Ie].indexOf(t)&&n.push(qe(s.messages[Ie],e.fullField,e[Ie].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(qe(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(qe(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const De=(e,t,r,n,s)=>{const o=e.type,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t,o)&&!e.required)return r();Te.required(e,t,n,i,s,o),Ae(t,o)||Te.type(e,t,n,i,s)}r(i)};var Le={string:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(Ae(t,"string")&&!e.required)return r();Te.required(e,t,n,o,s,"string"),Ae(t,"string")||(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s),Te.pattern(e,t,n,o,s),!0===e.whitespace&&Te.whitespace(e,t,n,o,s))}r(o)},method:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.type(e,t,n,o,s)}r(o)},number:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},boolean:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.type(e,t,n,o,s)}r(o)},regexp:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),Ae(t)||Te.type(e,t,n,o,s)}r(o)},integer:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},float:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},array:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Te.required(e,t,n,o,s,"array"),null!=t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},object:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.type(e,t,n,o,s)}r(o)},enum:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.enum(e,t,n,o,s)}r(o)},pattern:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t,"string")&&!e.required)return r();Te.required(e,t,n,o,s),Ae(t,"string")||Te.pattern(e,t,n,o,s)}r(o)},date:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t,"date")&&!e.required)return r();if(Te.required(e,t,n,o,s),!Ae(t,"date")){let r;r=t instanceof Date?t:new Date(t),Te.type(e,r,n,o,s),r&&Te.range(e,r.getTime(),n,o,s)}}r(o)},url:De,hex:De,email:De,required:(e,t,r,n,s)=>{const o=[],i=Array.isArray(t)?"array":typeof t;Te.required(e,t,n,o,s,i),r(o)},any:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s)}r(o)}};function Ne(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const _e=Ne();class Me{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Le[e]=t};static warning=we;static messages=_e;static validators=Le;rules={};_messages=_e;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=Fe(Ne(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,o=r;if("function"==typeof s&&(o=s,s={}),!this.rules||0===Object.keys(this.rules).length)return o&&o(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===_e&&(e=Ne()),Fe(e,s.messages),s.messages=e}else s.messages=this.messages();const i={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let o=r;"function"==typeof o.transform&&(n===e&&(n={...n}),s=n[t]=o.transform(s)),o="function"==typeof o?{validator:o}:{...o},o.validator=this.getValidationMethod(o),o.validator&&(o.field=t,o.fullField=o.fullField||t,o.type=this.getType(o),i[t]=i[t]||[],i[t].push({rule:o,value:s,source:n,field:t}))}))}));const u={};return ke(i,s,((e,t)=>{const r=e.rule;let o,i=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function a(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function c(o=[]){let c=Array.isArray(o)?o:[o];!0===s.suppressWarning&&c.length&&Me.warning("async-validator:",c),c.length&&void 0!==r.message&&(c=[].concat(r.message));let l=c.map(xe(r,n));if(s.first&&l.length)return u[r.field]=1,t(l);if(i){if(r.required&&!e.value)return void 0!==r.message?l=[].concat(r.message).map(xe(r,n)):s.error&&(l=[s.error(r,qe(s.messages.required,r.field))]),t(l);let o={};r.defaultField&&Object.keys(e.value).map((e=>{o[e]=r.defaultField})),o={...o,...e.rule.fields};const i={};Object.keys(o).forEach((e=>{const t=o[e],r=Array.isArray(t)?t:[t];i[e]=r.map(a.bind(null,e))}));const u=new Me(i);u.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),u.validate(e.value,e.rule.options||s,(e=>{const r=[];l&&l.length&&r.push(...l),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(l)}if(i=i&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)o=r.asyncValidator(r,e.value,c,e.source,s);else if(r.validator){try{o=r.validator(r,e.value,c,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===o?c():!1===o?c("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):o instanceof Array?c(o):o instanceof Error&&c(o.message)}o&&o.then&&o.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=$e(t),o(t,r)):o(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Le.hasOwnProperty(e.type))throw new Error(qe("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Le.required:Le[this.getType(e)]||void 0}}function Ue(e){return new Me(e)}var ze={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Ue,validate:function(e,t,r={},n=(()=>{})){return z.run(Ue(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};function Ve(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const o=new Array(n);for(;++s<n;)o[s]=e[s+t];return o}(e,t,r)}const Ze=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function Je(e){return Ze.test(e)}const He="\\ud800-\\udfff",Be=`[${He}]`,We="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",Ge="\\ud83c[\\udffb-\\udfff]",Ye=`[^${He}]`,Ke="(?:\\ud83c[\\udde6-\\uddff]){2}",Qe="[\\ud800-\\udbff][\\udc00-\\udfff]",Xe=`${`(?:${We}|${Ge})`}?`,et="[\\ufe0e\\ufe0f]?",tt=et+Xe+`(?:\\u200d(?:${[Ye,Ke,Qe].join("|")})${et+Xe})*`,rt=`(?:${[`${Ye}${We}?`,We,Ke,Qe,Be].join("|")})`,nt=RegExp(`${Ge}(?=${Ge})|${rt+tt}`,"g");function st(e){return Je(e)?function(e){return e.match(nt)||[]}(e):function(e){return e.split("")}(e)}function ot(e){return t=>{if(!t)return"";const r=Je(t)?st(t):void 0,n=r?r[0]:t[0],s=r?Ve(r,1).join(""):t.slice(1);return n[e]()+s}}const it="\\ud800-\\udfff",ut="\\u2700-\\u27bf",at="a-z\\xdf-\\xf6\\xf8-\\xff",ct="A-Z\\xc0-\\xd6\\xd8-\\xde",lt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ft="['’]",dt=`[${lt}]`,ht=`[${ut}]`,pt=`[${at}]`,gt=`[^${it}${lt+"\\d"+ut+at+ct}]`,yt="(?:\\ud83c[\\udde6-\\uddff]){2}",mt="[\\ud800-\\udbff][\\udc00-\\udfff]",bt=`[${ct}]`,vt=`(?:${pt}|${gt})`,wt=`(?:${bt}|${gt})`,$t=`(?:${ft}(?:d|ll|m|re|s|t|ve))?`,qt=`(?:${ft}(?:D|LL|M|RE|S|T|VE))?`,At="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Ot="[\\ufe0e\\ufe0f]?",jt=Ot+At+`(?:\\u200d(?:${[`[^${it}]`,yt,mt].join("|")})${Ot+At})*`,kt=`(?:${[ht,yt,mt].join("|")})${jt}`,xt=RegExp([`${bt}?${pt}+${$t}(?=${[dt,bt,"$"].join("|")})`,`${wt}+${qt}(?=${[dt,bt+vt,"$"].join("|")})`,`${bt}?${vt}+${$t}`,`${bt}+${qt}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",kt].join("|"),"g");const Ft=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),Ct=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function St(e,t){if(void 0===t){const t=Ft(e)?function(e){return e.match(xt)}(e):function(e){return e.match(Ct)}(e);return t||[]}return e.match(t)||[]}function Et(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:Et(e)))}`;if(X.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const Rt=ot("toUpperCase"),Pt=ot("toLowerCase");var It={toString:Et,startCase:e=>St(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+Rt(t)),""),snakeCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?Rt(t):t))),""),upperCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:Rt,lowerCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:Pt};const Tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Dt=e=>{let t,r,n,s,o,i,u,a="",c=0;for(e=Lt(e);c<e.length;)t=e.charCodeAt(c++),r=e.charCodeAt(c++),n=e.charCodeAt(c++),s=t>>2,o=(3&t)<<4|r>>4,i=(15&r)<<2|n>>6,u=63&n,isNaN(r)?i=u=64:isNaN(n)&&(u=64),a=a+Tt.charAt(s)+Tt.charAt(o)+Tt.charAt(i)+Tt.charAt(u);return a},Lt=e=>{const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},Nt=e=>{let t="",r=0,n=0,s=0,o=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),o=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&o),r+=3);return t};var _t={...It,uint8ArrayToString:function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},stringToArrayBuffer:function(e){const t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;r++)n[r]=e.charCodeAt(r);return r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let s="";for(let t=0;t<e;t++)s+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+s:s},base64:{encode:Dt,decode:e=>{let t,r,n,s,o,i,u,a="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c<e.length;)s=Tt.indexOf(e.charAt(c++)),o=Tt.indexOf(e.charAt(c++)),i=Tt.indexOf(e.charAt(c++)),u=Tt.indexOf(e.charAt(c++)),t=s<<2|o>>4,r=(15&o)<<4|i>>2,n=(3&i)<<6|u,a+=String.fromCharCode(t),64!=i&&(a+=String.fromCharCode(r)),64!=u&&(a+=String.fromCharCode(n));return a=Nt(a),a},encodeToOss:e=>Dt(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}};var Mt={stringify:e=>{if(!e)return"";if(!X.isObject(e))return"";let t="";return X.forof(e,((e,r)=>{r&&(t+=`${_t.kebabCase(e)}:${r};`)})),t},parse:(e,t=!1)=>{if(!e.trim())return;const r=pe.parse(e,{sep:";",eq:":",uri:!1}),n={};return X.forof(r,((e,r)=>{if(!r)return;const s=t?_t.camelCase(e):e;ze.isFloat(r)||r.length>=2&&r.startsWith(".")&&ze.isNumber(r.substr(1))?n[s]=+r:n[s]=r})),n}};const Ut=(e,t)=>{const r=document.createElement("a");r.href=t,r.download=e,r.click()};var zt={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),o=s.length,i=new Uint8Array(o);for(;o--;)i[o]=s.charCodeAt(o);return new File([i],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,o=new Uint8Array(s);for(;s--;)o[s]=n.charCodeAt(s);return new Blob([o],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadFile:Ut,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();Ut(t,s)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.log("[ddan] downloadImageUrl",e)}return Promise.resolve()}};class Vt{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=z.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=X.copy(e,this.fields);this.save(r)}}class Zt extends ee{setters={};getters={};actions={};persist;constructor(){super()}dispatch=async(e,t=void 0)=>{const r=Reflect.get(this.actions,e);if(!X.isFunction(r))return;const[,n]=await z.run(r(this,t));return n};query=async e=>{const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?X.copy(t):await this.dispatch(e),r};commit=(e,t)=>{X.isObject(t)&&(t=X.copy(t)),this[e]=t}}var Jt={gbk:e,time:n,hook:z,math:Z,util:X,list:te,mini:le,url:pe,css:Mt,html:zt,rule:ze,convert:_t,Event:ee,Http:be,Store:Zt,storeRef:(e,t)=>{const r=Object.assign(new Zt,e||{});r.__persist=new Vt(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return X.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(X.isFunction(s)&&!s(e,r))return!0;const o=Reflect.set(e,t,r,n);return o&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),o},has:(e,t)=>Reflect.has(e,t)})},Persist:Vt,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})};export{Jt as default};
1
+ var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};class t{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}class r{_loopTimer;_event=new t;started=!1;interval=0;constructor(e=0){this.interval=e||500}start(){this.started||(this.stop(),this._loopTimer=setInterval((()=>{this._handleLoop()}),this.interval))}stop(){this._loopTimer&&(clearInterval(this._loopTimer),this._loopTimer=0,this.started=!1)}restart(){this.stop(),this.start()}on(e){this._event.on("frame",e)}off(e){this._event.off("frame",e)}_handleLoop(){this._event.emit("frame")}}class n{date;countdown=0;countdownS=0;timestamp=0;yyyy=0;yy="";M=0;MM="";d=0;dd="";h=0;hh="";m=0;mm="";s=0;ss="";S=0;SS="";SSS="";constructor(e){if(!e)return;const t="string"==typeof e||"number"==typeof e?new Date(e):e;t&&(this.date=t,this.timestamp=t.getTime())}toDate(){return this.date?(this.yyyy=this.date.getFullYear(),this.yy=`${this.yyyy}`.substr(2),this.M=this.date.getMonth()+1,this.MM=(this.M<10?"0":"")+this.M,this.d=this.date.getDate(),this.dd=(this.d<10?"0":"")+this.d,this.h=this.date.getHours(),this.hh=(this.h<10?"0":"")+this.h,this.m=this.date.getMinutes(),this.mm=(this.m<10?"0":"")+this.m,this.s=this.date.getSeconds(),this.ss=(this.s<10?"0":"")+this.s,this.S=this.date.getMilliseconds(),this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this):this}toCountdown(){if(!this.timestamp)return this;this.countdown=Math.max(this.timestamp-l(),0),this.countdownS=Math.floor(this.countdown/a);let e=this.countdown;return this.d=Math.floor(e/s),this.dd=(this.d<10?"0":"")+this.d,e%=s,this.h=Math.floor(e/i),this.hh=(this.h<10?"0":"")+this.h,e%=i,this.m=Math.floor(e/o),this.mm=(this.m<10?"0":"")+this.m,e%=o,this.s=Math.floor(e/a),this.ss=(this.s<10?"0":"")+this.s,e%=a,this.S=e,this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this}format(e="yyyy-MM-dd hh:mm:ss"){return e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}countdownFormat(e=""){let t=e;return t||(t=this.countdown>i?"hh:mm:ss":this.countdown>o?"mm:ss":"ss"),t.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}}const s=864e5,i=36e5,o=6e4,a=1e3,u=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return c(r).toDate().format(t)},c=e=>{const t="string"==typeof e||"number"==typeof e?new Date(e):e;return new n(t||0)};function l(){return Date.now()}var f={now:l,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),parseTime:function({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:i=0}){const o=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${i}`;return new Date(u(Date.now(),o)).getTime()},todayZero:()=>new Date(u(l(),"yyyy/MM/dd 00:00:00")).getTime(),format:u,countdown:(e,t="")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return c(r).toCountdown().countdownFormat(t)},timeformat:c,oneDay:s,oneHour:i,oneMinute:o,oneSecond:a,loopFrame:(e=500)=>new r(e)},d="object"==typeof global&&global&&global.Object===Object&&global,h="object"==typeof self&&self&&self.Object===Object&&self;const p=(d||h||Function("return this")()).Symbol,{toString:g,hasOwnProperty:y,propertyIsEnumerable:m}=Object.prototype,b=p?p.toStringTag:void 0;function w(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":b&&b in Object(e)?function(e){const t=y.call(e,b),r=e[b];let n=!1;try{e[b]=void 0,n=!0}catch(e){}const s=g.call(e);return n&&(t?e[b]=r:delete e[b]),s}(e):g.call(e)}var v={getTag:w,getType:function(e){return(w(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:g,hasOwnProperty:y,propertyIsEnumerable:m},$="[object Function]",q="[object GeneratorFunction]",A="[object AsyncFunction]",O=9007199254740991;const j=/^(?:0|[1-9]\d*)$/;function k(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function x(e){return null!=e&&"object"==typeof e}const S=Array.isArray;function F(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=O}(e.length)&&!E(e)}function C(e){return x(e)&&F(e)}function E(e){var t=k(e)?v.getTag(e):"";return t===$||t===q||t===A}var R={is:function(e,t){return v.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===v.getTag(e)},isString:function(e){return"string"==typeof e||!S(e)&&x(e)&&"[object String]"==v.getTag(e)},isObject:k,isObjectLike:x,isPlainObject:function(e){if(!x(e)||"[object Object]"!=v.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||x(e)&&"[object Symbol]"===v.getTag(e)},isFunction:E,isArray:S,isArrayLikeObject:C,isIndex:function(e,t){return!!(t=null==t?O:t)&&("number"==typeof e||j.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:F,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return C(e)&&v.hasOwnProperty.call(e,"callee")&&(!v.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==v.toString.call(e))},isPromise:function(e){return"[object Promise]"===(k(e)?v.getTag(e):"")}};const P=NaN,_=/^\s+|\s+$/g,I=/^[-+]0x[0-9a-f]+$/i,T=/^0b[01]+$/i,D=/^0o[0-7]+$/i,M=parseInt,L=1/0,N=17976931348623157e292;function U(e){if("number"==typeof e)return e;if(R.isSymbol(e))return P;if(R.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=R.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(_,"");const t=T.test(e);return t||D.test(e)?M(e.slice(2),t?2:8):I.test(e)?P:+e}function z(e){return e?(e=U(e))===L||e===-L?(e<0?-1:1)*N:e==e?e:0:0===e?e:0}var V={toNumber:U,toFinite:z,toInteger:function(e){var t=z(e),r=t%1;return t==t?r?t-r:t:0}};const Z="Expected a function",H=Math.max,J=Math.min;function W(e,t=0,r={}){var n,s,i,o,a,u,c=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(Z);function h(t){var r=n,i=s;return n=s=void 0,c=t,o=e.apply(i,r)}function p(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-c>=i}function g(){var e=Date.now();if(p(e))return y(e);a=setTimeout(g,function(e){var r=t-(e-u);return f?J(r,i-(e-c)):r}(e))}function y(e){return a=void 0,d&&n?h(e):(n=s=void 0,o)}function m(...e){var r=Date.now(),i=p(r);if(n=arguments,s=this,u=r,i){if(void 0===a)return function(e){return c=e,a=setTimeout(g,t),l?h(e):o}(u);if(f)return a=setTimeout(g,t),h(u)}return void 0===a&&(a=setTimeout(g,t)),o}return t=V.toNumber(t)||0,R.isObject(r)&&(l=!!r.leading,i=(f="maxWait"in r)?H(V.toNumber(r.maxWait)||0,t):i,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=u=s=a=void 0},m.flush=function(){return void 0===a?o:y(Date.now())},m}class B{source;constructor(e){this.source=e}run(){let e;try{let t;return t=R.isFunction(this.source)?this.source():this.source,e=R.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}class G{_list=[];constructor(e){this.push(e)}push(e){return e&&this._list.push(e),this}clear(){return this._list=[],this}_exec(e,t){let r;if(R.isFunction(e))r=e(t);else{if(R.isPromise(e))return e.then((e=>({...t,...e})));r=e}return R.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this._list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}var Y={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new B(e).run(),debounce:W,throttle:function(e,t=0,r={}){var n=!1,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return R.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),W(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new G(e)};function K(e){return Math.floor(Math.random()*e)}var Q={random:K,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=K(e);r?n.push(s):n.includes(s)||n.push(s)}return n}};function X(e){return e!=e}function ee(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var te,re,ne=(te=Object.keys,re=Object,function(e){return te(re(e))}),se=Math.max;function ie(e,t){var r=R.isArray(e)||R.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var i in e)!t&&!v.hasOwnProperty.call(e,i)||s&&("length"==i||R.isIndex(i,n))||r.push(i);return r}const oe=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=oe(e[r]));return t};var ae={...R,...v,includes:function(e,t,r,n){e=R.isArrayLike(e)?e:function(e){return e?ee(e,function(e){return R.isArrayLike(e)?ie(e):function(e){if(!R.isPrototype(e))return ne(e);var t=[];for(var r in Object(e))v.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?V.toInteger(r):0;var s=e.length;return r<0&&(r=se(s+r,0)),R.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,i=r+(n?1:-1);n?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,X,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:oe,forof:(e,t)=>{if(!e)return;let r;if(R.isObject(e)&&(r=R.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};var ue={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!R.isFunction(t))return;if(!R.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,i=e.slice(n,s);t&&t(i),n=s}},skip:(e,t)=>{if(!R.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!R.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:e=>!R.isArray(e)||e.length<=0?[]:[...new Set(e)],random:(e,t=1,r=!1)=>{const n=e.length||0;return Q.randoms(n,t,r).map((t=>e[t]))||[]}};const ce="[object Object]",le="[object Array]",fe=e=>Object.prototype.toString.call(e),de=(e,t,r=!1)=>{if(e===t)return;const n=fe(e);if(n===fe(t))if(n===le&&e.length>=t.length)for(let r=0;r<t.length;r++)de(e[r],t[r]);else if(n===ce&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?de(e[n],t[n]):e[n]=null},he=(e,t,r,n="",s=!1)=>{if(e===t)return;const i=fe(e),o=fe(t);if(i===le&&o===i&&e.length>=t.length)for(let s=0;s<e.length;s++)he(e[s],t[s],r,`${n}[${s}]`);else if(i===ce&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=fe(s),u=fe(o);if(s!==o)if(a===le&&u===a&&s.length>=o.length)for(let e=0;e<s.length;e++)he(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`);else if(a===ce&&u===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)he(s[e],o[e],r,`${n?n+".":""}${i}.${e}`);else r[`${n?n+".":""}${i}`]=s}}else r[n]=e};class pe{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class ge{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new pe,response:new pe};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:i}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=i}static blockId="blockid";static requestLock={};lockR(e,t){ge.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete ge.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=ae.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let i;try{if("block"===n.model)this.lockR(ge.blockId,(()=>this._fetch(s,n.hasEncrypt))),i=await ge.requestLock[ge.blockId].request;else if(ge.requestLock[ge.blockId]&&ge.requestLock[ge.blockId].lock&&await ge.requestLock[ge.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),ge.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),i=await ge.requestLock[e].request,this.unlockR(e)}else i=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:i,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const ye=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var me={diff:function(e,t){const r={};return(e=>{if(fe(e)===ce)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];fe(n[t])!==ce&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),de(e,t,!0),he(e,t,r,"",!0),r},promixify:ye,run:(e,t={})=>{if(e)return Y.run(ye(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:ge};const be=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!1,uri:i=!0}={}){t=t||"&",r=r||"=";const o={};if("string"!=typeof e||0===e.length)return o;const a=/\+/g,u=n||1e3;let c=(e=e.split(t)).length;u>0&&c>u&&(c=u);for(let t=0;t<c;++t){let n,u,c,l,f=e[t].replace(a,"%20"),d=f.indexOf(r);d>=0?(n=f.substr(0,d),u=f.substr(d+1)):(n=f,u=""),c=i?decodeURIComponent(n):n,l=i?decodeURIComponent(u):u,v.hasOwnProperty.call(o,c)&&s?Array.isArray(o[c])?o[c].push(l):o[c]=[o[c],l]:o[c]=l}return o},we=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ve=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:s=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const i=encodeURIComponent(we(n))+r;return s&&Array.isArray(e[n])?e[n].map((function(e){return i+encodeURIComponent(we(e))})).join(t):i+encodeURIComponent(we(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(we(n))+r+encodeURIComponent(we(e)):""};var $e={parse:be,decode:be,stringify:ve,encode:ve,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const qe=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function Ae(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function Oe(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(ae.isPlainObject(e)){const r=Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&"),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class je{host="";reqConfig={};handleError;interceptors={request:new pe,response:new pe};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(Oe),this.interceptors.response.use(e.handleResponse||Ae),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){je.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete je.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=ae.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let i;if(delete s.options.plugins,"block"===r.model)this.lockR(je.blockId,(()=>qe(s))),i=await je.requestLock[je.blockId].request;else if(je.requestLock[je.blockId]&&je.requestLock[je.blockId].lock&&await je.requestLock[je.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),je.requestLock[e]||this.lockR(e,(()=>qe(s))),i=await je.requestLock[e].request,this.unlockR(e)}else i=await qe(s);return this.interceptors.response.invoke({response:i,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}const ke=/%[sdj%]/g;let xe=()=>{};function Se(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function Fe(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(ke,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function Ce(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Ee(e,t,r){let n=0;const s=e.length;!function i(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<s?t(e[a],i):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(xe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class Re extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function Pe(e,t,r,n,s){if(t.first){const t=new Promise(((t,i)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);Ee(o,r,(e=>(n(e),e.length?i(new Re(e,Se(e))):t(s))))}));return t.catch((e=>e)),t}const i=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const c=[],l=new Promise(((t,l)=>{const f=e=>{if(c.push.apply(c,e),u++,u===a)return n(c),c.length?l(new Re(c,Se(c))):t(s)};o.length||(n(c),t(s)),o.forEach((t=>{const n=e[t];-1!==i.indexOf(t)?Ee(n,r,f):function(e,t,r){const n=[];let s=0;const i=e.length;function o(e){n.push(...e||[]),s++,s===i&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return l.catch((e=>e)),l}function _e(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function Ie(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const Te=(e,t,r,n,s,i)=>{!e.required||r.hasOwnProperty(e.field||"")&&!Ce(t,i||e.type)||n.push(Fe(s.messages.required,e.fullField))};let De;const Me=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,Le=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Ne={integer:e=>Ne.number(e)&&parseInt(e,10)===e,float:e=>Ne.number(e)&&!Ne.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Ne.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Me),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(De)return De;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),i=new RegExp(`(?:^${r}$)|(?:^${s}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),u=e=>e&&e.exact?i:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");u.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),u.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const c=u.v4().source,l=u.v6().source;return De=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${c}|${l}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),De})()),hex:e=>"string"==typeof e&&!!e.match(Le)},Ue="enum";var ze={required:Te,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(Fe(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void Te(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?Ne[i](t)||n.push(Fe(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(Fe(s.messages.types[i],e.fullField,e.type))},range:(e,t,r,n,s)=>{const i="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let c=t,l="";const f="number"==typeof t,d="string"==typeof t,h=Array.isArray(t);if(f?l="number":d?l="string":h&&(l="array"),!l)return!1;h&&(c=t.length),d&&(c=t.replace(u,"_").length),i?c!==e.len&&n.push(Fe(s.messages[l].len,e.fullField,e.len)):o&&!a&&c<e.min?n.push(Fe(s.messages[l].min,e.fullField,e.min)):a&&!o&&c>e.max?n.push(Fe(s.messages[l].max,e.fullField,e.max)):o&&a&&(c<e.min||c>e.max)&&n.push(Fe(s.messages[l].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[Ue]=Array.isArray(e[Ue])?e[Ue]:[],-1===e[Ue].indexOf(t)&&n.push(Fe(s.messages[Ue],e.fullField,e[Ue].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(Fe(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(Fe(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ve=(e,t,r,n,s)=>{const i=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t,i)&&!e.required)return r();ze.required(e,t,n,o,s,i),Ce(t,i)||ze.type(e,t,n,o,s)}r(o)};var Ze={string:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(Ce(t,"string")&&!e.required)return r();ze.required(e,t,n,i,s,"string"),Ce(t,"string")||(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s),ze.pattern(e,t,n,i,s),!0===e.whitespace&&ze.whitespace(e,t,n,i,s))}r(i)},method:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.type(e,t,n,i,s)}r(i)},number:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},boolean:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.type(e,t,n,i,s)}r(i)},regexp:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),Ce(t)||ze.type(e,t,n,i,s)}r(i)},integer:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},float:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},array:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();ze.required(e,t,n,i,s,"array"),null!=t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},object:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.type(e,t,n,i,s)}r(i)},enum:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.enum(e,t,n,i,s)}r(i)},pattern:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t,"string")&&!e.required)return r();ze.required(e,t,n,i,s),Ce(t,"string")||ze.pattern(e,t,n,i,s)}r(i)},date:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t,"date")&&!e.required)return r();if(ze.required(e,t,n,i,s),!Ce(t,"date")){let r;r=t instanceof Date?t:new Date(t),ze.type(e,r,n,i,s),r&&ze.range(e,r.getTime(),n,i,s)}}r(i)},url:Ve,hex:Ve,email:Ve,required:(e,t,r,n,s)=>{const i=[],o=Array.isArray(t)?"array":typeof t;ze.required(e,t,n,i,s,o),r(i)},any:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s)}r(i)}};function He(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const Je=He();class We{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Ze[e]=t};static warning=xe;static messages=Je;static validators=Ze;rules={};_messages=Je;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=Ie(He(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,i=r;if("function"==typeof s&&(i=s,s={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===Je&&(e=He()),Ie(e,s.messages),s.messages=e}else s.messages=this.messages();const o={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let i=r;"function"==typeof i.transform&&(n===e&&(n={...n}),s=n[t]=i.transform(s)),i="function"==typeof i?{validator:i}:{...i},i.validator=this.getValidationMethod(i),i.validator&&(i.field=t,i.fullField=i.fullField||t,i.type=this.getType(i),o[t]=o[t]||[],o[t].push({rule:i,value:s,source:n,field:t}))}))}));const a={};return Pe(o,s,((e,t)=>{const r=e.rule;let i,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function u(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function c(i=[]){let c=Array.isArray(i)?i:[i];!0===s.suppressWarning&&c.length&&We.warning("async-validator:",c),c.length&&void 0!==r.message&&(c=[].concat(r.message));let l=c.map(_e(r,n));if(s.first&&l.length)return a[r.field]=1,t(l);if(o){if(r.required&&!e.value)return void 0!==r.message?l=[].concat(r.message).map(_e(r,n)):s.error&&(l=[s.error(r,Fe(s.messages.required,r.field))]),t(l);let i={};r.defaultField&&Object.keys(e.value).map((e=>{i[e]=r.defaultField})),i={...i,...e.rule.fields};const o={};Object.keys(i).forEach((e=>{const t=i[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new We(o);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];l&&l.length&&r.push(...l),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(l)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)i=r.asyncValidator(r,e.value,c,e.source,s);else if(r.validator){try{i=r.validator(r,e.value,c,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===i?c():!1===i?c("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):i instanceof Array?c(i):i instanceof Error&&c(i.message)}i&&i.then&&i.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=Se(t),i(t,r)):i(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Ze.hasOwnProperty(e.type))throw new Error(Fe("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Ze.required:Ze[this.getType(e)]||void 0}}function Be(e){return new We(e)}var Ge={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Be,validate:function(e,t,r={},n=(()=>{})){return Y.run(Be(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};function Ye(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const i=new Array(n);for(;++s<n;)i[s]=e[s+t];return i}(e,t,r)}const Ke=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function Qe(e){return Ke.test(e)}const Xe="\\ud800-\\udfff",et=`[${Xe}]`,tt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",rt="\\ud83c[\\udffb-\\udfff]",nt=`[^${Xe}]`,st="(?:\\ud83c[\\udde6-\\uddff]){2}",it="[\\ud800-\\udbff][\\udc00-\\udfff]",ot=`${`(?:${tt}|${rt})`}?`,at="[\\ufe0e\\ufe0f]?",ut=at+ot+`(?:\\u200d(?:${[nt,st,it].join("|")})${at+ot})*`,ct=`(?:${[`${nt}${tt}?`,tt,st,it,et].join("|")})`,lt=RegExp(`${rt}(?=${rt})|${ct+ut}`,"g");function ft(e){return Qe(e)?function(e){return e.match(lt)||[]}(e):function(e){return e.split("")}(e)}function dt(e){return t=>{if(!t)return"";const r=Qe(t)?ft(t):void 0,n=r?r[0]:t[0],s=r?Ye(r,1).join(""):t.slice(1);return n[e]()+s}}const ht="\\ud800-\\udfff",pt="\\u2700-\\u27bf",gt="a-z\\xdf-\\xf6\\xf8-\\xff",yt="A-Z\\xc0-\\xd6\\xd8-\\xde",mt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",bt="['’]",wt=`[${mt}]`,vt=`[${pt}]`,$t=`[${gt}]`,qt=`[^${ht}${mt+"\\d"+pt+gt+yt}]`,At="(?:\\ud83c[\\udde6-\\uddff]){2}",Ot="[\\ud800-\\udbff][\\udc00-\\udfff]",jt=`[${yt}]`,kt=`(?:${$t}|${qt})`,xt=`(?:${jt}|${qt})`,St=`(?:${bt}(?:d|ll|m|re|s|t|ve))?`,Ft=`(?:${bt}(?:D|LL|M|RE|S|T|VE))?`,Ct="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Et="[\\ufe0e\\ufe0f]?",Rt=Et+Ct+`(?:\\u200d(?:${[`[^${ht}]`,At,Ot].join("|")})${Et+Ct})*`,Pt=`(?:${[vt,At,Ot].join("|")})${Rt}`,_t=RegExp([`${jt}?${$t}+${St}(?=${[wt,jt,"$"].join("|")})`,`${xt}+${Ft}(?=${[wt,jt+kt,"$"].join("|")})`,`${jt}?${kt}+${St}`,`${jt}+${Ft}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",Pt].join("|"),"g");const It=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),Tt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Dt(e,t){if(void 0===t){const t=It(e)?function(e){return e.match(_t)}(e):function(e){return e.match(Tt)}(e);return t||[]}return e.match(t)||[]}function Mt(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:Mt(e)))}`;if(ae.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const Lt=dt("toUpperCase"),Nt=dt("toLowerCase");var Ut={toString:Mt,startCase:e=>Dt(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+Lt(t)),""),snakeCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?Lt(t):t))),""),upperCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:Lt,lowerCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:Nt};const zt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Vt=e=>{let t,r,n,s,i,o,a,u="",c=0;for(e=Zt(e);c<e.length;)t=e.charCodeAt(c++),r=e.charCodeAt(c++),n=e.charCodeAt(c++),s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),u=u+zt.charAt(s)+zt.charAt(i)+zt.charAt(o)+zt.charAt(a);return u},Zt=e=>{const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},Ht=e=>{let t="",r=0,n=0,s=0,i=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),i=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3);return t};var Jt={...Ut,uint8ArrayToString:function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},stringToArrayBuffer:function(e){const t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;r++)n[r]=e.charCodeAt(r);return r},randomString:function(e,t=!1,r=""){e=e||32;const n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let s="";for(let t=0;t<e;t++)s+=n.charAt(Math.floor(62*Math.random()));return t?f.format(new Date,"yyyyMMddhhmmss")+r+s:s},base64:{encode:Vt,decode:e=>{let t,r,n,s,i,o,a,u="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c<e.length;)s=zt.indexOf(e.charAt(c++)),i=zt.indexOf(e.charAt(c++)),o=zt.indexOf(e.charAt(c++)),a=zt.indexOf(e.charAt(c++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,u+=String.fromCharCode(t),64!=o&&(u+=String.fromCharCode(r)),64!=a&&(u+=String.fromCharCode(n));return u=Ht(u),u},encodeToOss:e=>Vt(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}};var Wt={stringify:e=>{if(!e)return"";if(!ae.isObject(e))return"";let t="";return ae.forof(e,((e,r)=>{r&&(t+=`${Jt.kebabCase(e)}:${r};`)})),t},parse:(e,t=!1)=>{if(!e.trim())return;const r=$e.parse(e,{sep:";",eq:":",uri:!1}),n={};return ae.forof(r,((e,r)=>{if(!r)return;const s=t?Jt.camelCase(e):e;Ge.isFloat(r)||r.length>=2&&r.startsWith(".")&&Ge.isNumber(r.substr(1))?n[s]=+r:n[s]=r})),n}};const Bt=(e,t)=>{const r=document.createElement("a");r.href=t,r.download=e,r.click()};var Gt={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),i=s.length,o=new Uint8Array(i);for(;i--;)o[i]=s.charCodeAt(i);return new File([o],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,i=new Uint8Array(s);for(;s--;)i[s]=n.charCodeAt(s);return new Blob([i],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadFile:Bt,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();Bt(t,s)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.log("[ddan] downloadImageUrl",e)}return Promise.resolve()}};class Yt{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=Y.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=ae.copy(e,this.fields);this.save(r)}}class Kt extends t{setters={};getters={};actions={};persist;constructor(){super()}dispatch=async(e,t=void 0)=>{const r=Reflect.get(this.actions,e);if(!ae.isFunction(r))return;const[,n]=await Y.run(r(this,t));return n};query=async e=>{const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?ae.copy(t):await this.dispatch(e),r};commit=(e,t)=>{ae.isObject(t)&&(t=ae.copy(t)),this[e]=t}}class Qt{host="";list=[];constructor(e,t={}){this._parseHost(e);const{width:r=500,height:n=400}=t;this.list.push(`${e}?x-oss-process=image/resize,w_${r},h_${n},m_fill`)}_parseHost(e){e&&!this.host&&/^http[s]?:\/\/([\w.]+)/.test(e)&&(this.host=e.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/,"$1"))}image(e,t={}){if(!e||!e.includes(this.host))return;if(this.list.length<=0)return;const r={g:"nw",...t},n=e.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/,"$1"),s=Jt.base64.encodeToOss(n),i=$e.stringify({image:s,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}text(e,t={},r={}){if(!e)return;const n={g:"nw",...t},s=Jt.base64.encodeToOss(e),i=$e.stringify({text:s,...n,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}result(){return this.list.join("")}}var Xt={gbk:e,time:f,hook:Y,math:Q,util:ae,list:ue,mini:me,url:$e,css:Wt,html:Gt,rule:Ge,convert:Jt,Event:t,Http:je,Store:Kt,storeRef:(e,t)=>{const r=Object.assign(new Kt,e||{});r.__persist=new Yt(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return ae.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(ae.isFunction(s)&&!s(e,r))return!0;const i=Reflect.set(e,t,r,n);return i&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),i},has:(e,t)=>Reflect.has(e,t)})},Persist:Yt,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r}),watermark:(e,t)=>new Qt(e,t)};export{Xt as default};
package/bin/ddan-js.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).ddan=t()}(this,(function(){"use strict";var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};const t=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";const n={};return n.yyyy=r.getFullYear(),n.yy=`${n.yyyy}`.substr(2),n.M=r.getMonth()+1,n.MM=(n.M<10?"0":"")+n.M,n.d=r.getDate(),n.dd=(n.d<10?"0":"")+n.d,n.h=r.getHours(),n.hh=(n.h<10?"0":"")+n.h,n.m=r.getMinutes(),n.mm=(n.m<10?"0":"")+n.m,n.s=r.getSeconds(),n.ss=(n.s<10?"0":"")+n.s,n.S=r.getMilliseconds(),n.SS=(n.S<10?"0":"")+n.S,n.SSS=n.S.toString().padStart(3,0),t.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>n[e]))};function r(){return Date.now()}var n={now:r,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),format:t,parseTime:function({year:e=0,month:r=0,date:n=0,hour:s=0,minute:o=0,second:i=0}){const u=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${s}:${o}:${i}`;return new Date(t(Date.now(),u)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},s="object"==typeof global&&global&&global.Object===Object&&global,o="object"==typeof self&&self&&self.Object===Object&&self;const i=(s||o||Function("return this")()).Symbol,{toString:u,hasOwnProperty:a,propertyIsEnumerable:c}=Object.prototype,l=i?i.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":l&&l in Object(e)?function(e){const t=a.call(e,l),r=e[l];let n=!1;try{e[l]=void 0,n=!0}catch(e){}const s=u.call(e);return n&&(t?e[l]=r:delete e[l]),s}(e):u.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:u,hasOwnProperty:a,propertyIsEnumerable:c},h="[object Function]",p="[object GeneratorFunction]",g="[object AsyncFunction]",y=9007199254740991;const m=/^(?:0|[1-9]\d*)$/;function b(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function v(e){return null!=e&&"object"==typeof e}const w=Array.isArray;function $(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=y}(e.length)&&!A(e)}function q(e){return v(e)&&$(e)}function A(e){var t=b(e)?d.getTag(e):"";return t===h||t===p||t===g}var O={is:function(e,t){return d.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===d.getTag(e)},isString:function(e){return"string"==typeof e||!w(e)&&v(e)&&"[object String]"==d.getTag(e)},isObject:b,isObjectLike:v,isPlainObject:function(e){if(!v(e)||"[object Object]"!=d.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:A,isArray:w,isArrayLikeObject:q,isIndex:function(e,t){return!!(t=null==t?y:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:$,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return q(e)&&d.hasOwnProperty.call(e,"callee")&&(!d.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==d.toString.call(e))},isPromise:function(e){return"[object Promise]"===(b(e)?d.getTag(e):"")}};const j=NaN,k=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,F=/^0b[01]+$/i,C=/^0o[0-7]+$/i,S=parseInt,E=1/0,R=17976931348623157e292;function P(e){if("number"==typeof e)return e;if(O.isSymbol(e))return j;if(O.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=O.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(k,"");const t=F.test(e);return t||C.test(e)?S(e.slice(2),t?2:8):x.test(e)?j:+e}function I(e){return e?(e=P(e))===E||e===-E?(e<0?-1:1)*R:e==e?e:0:0===e?e:0}var T={toNumber:P,toFinite:I,toInteger:function(e){var t=I(e),r=t%1;return t==t?r?t-r:t:0}};const D="Expected a function",L=Math.max,N=Math.min;function _(e,t=0,r={}){var n,s,o,i,u,a,c=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(D);function h(t){var r=n,o=s;return n=s=void 0,c=t,i=e.apply(o,r)}function p(e){var r=e-a;return void 0===a||r>=t||r<0||f&&e-c>=o}function g(){var e=Date.now();if(p(e))return y(e);u=setTimeout(g,function(e){var r=t-(e-a);return f?N(r,o-(e-c)):r}(e))}function y(e){return u=void 0,d&&n?h(e):(n=s=void 0,i)}function m(...e){var r=Date.now(),o=p(r);if(n=arguments,s=this,a=r,o){if(void 0===u)return function(e){return c=e,u=setTimeout(g,t),l?h(e):i}(a);if(f)return u=setTimeout(g,t),h(a)}return void 0===u&&(u=setTimeout(g,t)),i}return t=T.toNumber(t)||0,O.isObject(r)&&(l=!!r.leading,o=(f="maxWait"in r)?L(T.toNumber(r.maxWait)||0,t):o,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==u&&clearTimeout(u),c=0,n=a=s=u=void 0},m.flush=function(){return void 0===u?i:y(Date.now())},m}class M{source;constructor(e){this.source=e}run(){let e;try{let t;return t=O.isFunction(this.source)?this.source():this.source,e=O.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}class U{_list=[];constructor(e){this.push(e)}push(e){return e&&this._list.push(e),this}clear(){return this._list=[],this}_exec(e,t){let r;if(O.isFunction(e))r=e(t);else{if(O.isPromise(e))return e.then((e=>({...t,...e})));r=e}return O.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this._list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new M(e).run(),debounce:_,throttle:function(e,t=0,r={}){var n=!1,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return O.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),_(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new U(e)};function V(e){return Math.floor(Math.random()*e)}var Z={random:V,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=V(e);r?n.push(s):n.includes(s)||n.push(s)}return n}};function J(e){return e!=e}function H(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var B,W,G=(B=Object.keys,W=Object,function(e){return B(W(e))}),Y=Math.max;function K(e,t){var r=O.isArray(e)||O.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var o in e)!t&&!d.hasOwnProperty.call(e,o)||s&&("length"==o||O.isIndex(o,n))||r.push(o);return r}const Q=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=Q(e[r]));return t};var X={...O,...d,includes:function(e,t,r,n){e=O.isArrayLike(e)?e:function(e){return e?H(e,function(e){return O.isArrayLike(e)?K(e):function(e){if(!O.isPrototype(e))return G(e);var t=[];for(var r in Object(e))d.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?T.toInteger(r):0;var s=e.length;return r<0&&(r=Y(s+r,0)),O.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,o=r+(n?1:-1);n?o--:++o<s;)if(t(e[o],o,e))return o;return-1}(e,J,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:Q,forof:(e,t)=>{if(!e)return;let r;if(O.isObject(e)&&(r=O.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};class ee{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var te={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!O.isFunction(t))return;if(!O.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,o=e.slice(n,s);t&&t(o),n=s}},skip:(e,t)=>{if(!O.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!O.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:e=>!O.isArray(e)||e.length<=0?[]:[...new Set(e)],random:(e,t=1,r=!1)=>{const n=e.length||0;return Z.randoms(n,t,r).map((t=>e[t]))||[]}};const re="[object Object]",ne="[object Array]",se=e=>Object.prototype.toString.call(e),oe=(e,t,r=!1)=>{if(e===t)return;const n=se(e);if(n===se(t))if(n===ne&&e.length>=t.length)for(let r=0;r<t.length;r++)oe(e[r],t[r]);else if(n===re&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?oe(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",s=!1)=>{if(e===t)return;const o=se(e),i=se(t);if(o===ne&&i===o&&e.length>=t.length)for(let s=0;s<e.length;s++)ie(e[s],t[s],r,`${n}[${s}]`);else if(o===re&&i===o&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let o of s){const s=e[o],i=t[o],u=se(s),a=se(i);if(s!==i)if(u===ne&&a===u&&s.length>=i.length)for(let e=0;e<s.length;e++)ie(s[e],i[e],r,`${n?n+".":""}${o}[${e}]`);else if(u===re&&a===u&&Object.keys(s).length>=Object.keys(i).length)for(let e in s)ie(s[e],i[e],r,`${n?n+".":""}${o}.${e}`);else r[`${n?n+".":""}${o}`]=s}}else r[n]=e};class ue{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class ae{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new ue,response:new ue};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:o}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=o}static blockId="blockid";static requestLock={};lockR(e,t){ae.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete ae.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=X.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let o;try{if("block"===n.model)this.lockR(ae.blockId,(()=>this._fetch(s,n.hasEncrypt))),o=await ae.requestLock[ae.blockId].request;else if(ae.requestLock[ae.blockId]&&ae.requestLock[ae.blockId].lock&&await ae.requestLock[ae.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),ae.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),o=await ae.requestLock[e].request,this.unlockR(e)}else o=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:o,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const ce=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var le={diff:function(e,t){const r={};return(e=>{if(se(e)===re)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];se(n[t])!==re&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),oe(e,t,!0),ie(e,t,r,"",!0),r},promixify:ce,run:(e,t={})=>{if(e)return z.run(ce(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:ae};const fe=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!1,uri:o=!0}={}){t=t||"&",r=r||"=";const i={};if("string"!=typeof e||0===e.length)return i;const u=/\+/g,a=n||1e3;let c=(e=e.split(t)).length;a>0&&c>a&&(c=a);for(let t=0;t<c;++t){let n,a,c,l,f=e[t].replace(u,"%20"),h=f.indexOf(r);h>=0?(n=f.substr(0,h),a=f.substr(h+1)):(n=f,a=""),c=o?decodeURIComponent(n):n,l=o?decodeURIComponent(a):a,d.hasOwnProperty.call(i,c)&&s?Array.isArray(i[c])?i[c].push(l):i[c]=[i[c],l]:i[c]=l}return i},de=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},he=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:s=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const o=encodeURIComponent(de(n))+r;return s&&Array.isArray(e[n])?e[n].map((function(e){return o+encodeURIComponent(de(e))})).join(t):o+encodeURIComponent(de(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(de(n))+r+encodeURIComponent(de(e)):""};var pe={parse:fe,decode:fe,stringify:he,encode:he,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const ge=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function ye(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function me(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(X.isPlainObject(e)){const r=Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&"),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class be{host="";reqConfig={};handleError;interceptors={request:new ue,response:new ue};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(me),this.interceptors.response.use(e.handleResponse||ye),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){be.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete be.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=X.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let o;if(delete s.options.plugins,"block"===r.model)this.lockR(be.blockId,(()=>ge(s))),o=await be.requestLock[be.blockId].request;else if(be.requestLock[be.blockId]&&be.requestLock[be.blockId].lock&&await be.requestLock[be.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),be.requestLock[e]||this.lockR(e,(()=>ge(s))),o=await be.requestLock[e].request,this.unlockR(e)}else o=await ge(s);return this.interceptors.response.invoke({response:o,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}const ve=/%[sdj%]/g;let we=()=>{};function $e(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function qe(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(ve,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function Ae(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Oe(e,t,r){let n=0;const s=e.length;!function o(i){if(i&&i.length)return void r(i);const u=n;n+=1,u<s?t(e[u],o):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(we=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class je extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ke(e,t,r,n,s){if(t.first){const t=new Promise(((t,o)=>{const i=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);Oe(i,r,(e=>(n(e),e.length?o(new je(e,$e(e))):t(s))))}));return t.catch((e=>e)),t}const o=!0===t.firstFields?Object.keys(e):t.firstFields||[],i=Object.keys(e),u=i.length;let a=0;const c=[],l=new Promise(((t,l)=>{const f=e=>{if(c.push.apply(c,e),a++,a===u)return n(c),c.length?l(new je(c,$e(c))):t(s)};i.length||(n(c),t(s)),i.forEach((t=>{const n=e[t];-1!==o.indexOf(t)?Oe(n,r,f):function(e,t,r){const n=[];let s=0;const o=e.length;function i(e){n.push(...e||[]),s++,s===o&&r(n)}e.forEach((e=>{t(e,i)}))}(n,r,f)}))}));return l.catch((e=>e)),l}function xe(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function Fe(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const Ce=(e,t,r,n,s,o)=>{!e.required||r.hasOwnProperty(e.field||"")&&!Ae(t,o||e.type)||n.push(qe(s.messages.required,e.fullField))};let Se;const Ee=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,Re=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Pe={integer:e=>Pe.number(e)&&parseInt(e,10)===e,float:e=>Pe.number(e)&&!Pe.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Pe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ee),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(Se)return Se;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),o=new RegExp(`(?:^${r}$)|(?:^${s}$)`),i=new RegExp(`^${r}$`),u=new RegExp(`^${s}$`),a=e=>e&&e.exact?o:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");a.v4=e=>e&&e.exact?i:new RegExp(`${t(e)}${r}${t(e)}`,"g"),a.v6=e=>e&&e.exact?u:new RegExp(`${t(e)}${s}${t(e)}`,"g");const c=a.v4().source,l=a.v6().source;return Se=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${c}|${l}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),Se})()),hex:e=>"string"==typeof e&&!!e.match(Re)},Ie="enum";var Te={required:Ce,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(qe(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void Ce(e,t,r,n,s);const o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?Pe[o](t)||n.push(qe(s.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&n.push(qe(s.messages.types[o],e.fullField,e.type))},range:(e,t,r,n,s)=>{const o="number"==typeof e.len,i="number"==typeof e.min,u="number"==typeof e.max,a=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let c=t,l="";const f="number"==typeof t,d="string"==typeof t,h=Array.isArray(t);if(f?l="number":d?l="string":h&&(l="array"),!l)return!1;h&&(c=t.length),d&&(c=t.replace(a,"_").length),o?c!==e.len&&n.push(qe(s.messages[l].len,e.fullField,e.len)):i&&!u&&c<e.min?n.push(qe(s.messages[l].min,e.fullField,e.min)):u&&!i&&c>e.max?n.push(qe(s.messages[l].max,e.fullField,e.max)):i&&u&&(c<e.min||c>e.max)&&n.push(qe(s.messages[l].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[Ie]=Array.isArray(e[Ie])?e[Ie]:[],-1===e[Ie].indexOf(t)&&n.push(qe(s.messages[Ie],e.fullField,e[Ie].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(qe(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(qe(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const De=(e,t,r,n,s)=>{const o=e.type,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t,o)&&!e.required)return r();Te.required(e,t,n,i,s,o),Ae(t,o)||Te.type(e,t,n,i,s)}r(i)};var Le={string:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(Ae(t,"string")&&!e.required)return r();Te.required(e,t,n,o,s,"string"),Ae(t,"string")||(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s),Te.pattern(e,t,n,o,s),!0===e.whitespace&&Te.whitespace(e,t,n,o,s))}r(o)},method:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.type(e,t,n,o,s)}r(o)},number:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},boolean:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.type(e,t,n,o,s)}r(o)},regexp:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),Ae(t)||Te.type(e,t,n,o,s)}r(o)},integer:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},float:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},array:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Te.required(e,t,n,o,s,"array"),null!=t&&(Te.type(e,t,n,o,s),Te.range(e,t,n,o,s))}r(o)},object:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.type(e,t,n,o,s)}r(o)},enum:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s),void 0!==t&&Te.enum(e,t,n,o,s)}r(o)},pattern:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t,"string")&&!e.required)return r();Te.required(e,t,n,o,s),Ae(t,"string")||Te.pattern(e,t,n,o,s)}r(o)},date:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t,"date")&&!e.required)return r();if(Te.required(e,t,n,o,s),!Ae(t,"date")){let r;r=t instanceof Date?t:new Date(t),Te.type(e,r,n,o,s),r&&Te.range(e,r.getTime(),n,o,s)}}r(o)},url:De,hex:De,email:De,required:(e,t,r,n,s)=>{const o=[],i=Array.isArray(t)?"array":typeof t;Te.required(e,t,n,o,s,i),r(o)},any:(e,t,r,n,s)=>{const o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ae(t)&&!e.required)return r();Te.required(e,t,n,o,s)}r(o)}};function Ne(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const _e=Ne();class Me{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Le[e]=t};static warning=we;static messages=_e;static validators=Le;rules={};_messages=_e;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=Fe(Ne(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,o=r;if("function"==typeof s&&(o=s,s={}),!this.rules||0===Object.keys(this.rules).length)return o&&o(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===_e&&(e=Ne()),Fe(e,s.messages),s.messages=e}else s.messages=this.messages();const i={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let o=r;"function"==typeof o.transform&&(n===e&&(n={...n}),s=n[t]=o.transform(s)),o="function"==typeof o?{validator:o}:{...o},o.validator=this.getValidationMethod(o),o.validator&&(o.field=t,o.fullField=o.fullField||t,o.type=this.getType(o),i[t]=i[t]||[],i[t].push({rule:o,value:s,source:n,field:t}))}))}));const u={};return ke(i,s,((e,t)=>{const r=e.rule;let o,i=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function a(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function c(o=[]){let c=Array.isArray(o)?o:[o];!0===s.suppressWarning&&c.length&&Me.warning("async-validator:",c),c.length&&void 0!==r.message&&(c=[].concat(r.message));let l=c.map(xe(r,n));if(s.first&&l.length)return u[r.field]=1,t(l);if(i){if(r.required&&!e.value)return void 0!==r.message?l=[].concat(r.message).map(xe(r,n)):s.error&&(l=[s.error(r,qe(s.messages.required,r.field))]),t(l);let o={};r.defaultField&&Object.keys(e.value).map((e=>{o[e]=r.defaultField})),o={...o,...e.rule.fields};const i={};Object.keys(o).forEach((e=>{const t=o[e],r=Array.isArray(t)?t:[t];i[e]=r.map(a.bind(null,e))}));const u=new Me(i);u.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),u.validate(e.value,e.rule.options||s,(e=>{const r=[];l&&l.length&&r.push(...l),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(l)}if(i=i&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)o=r.asyncValidator(r,e.value,c,e.source,s);else if(r.validator){try{o=r.validator(r,e.value,c,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===o?c():!1===o?c("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):o instanceof Array?c(o):o instanceof Error&&c(o.message)}o&&o.then&&o.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=$e(t),o(t,r)):o(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Le.hasOwnProperty(e.type))throw new Error(qe("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Le.required:Le[this.getType(e)]||void 0}}function Ue(e){return new Me(e)}var ze={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Ue,validate:function(e,t,r={},n=(()=>{})){return z.run(Ue(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};function Ve(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const o=new Array(n);for(;++s<n;)o[s]=e[s+t];return o}(e,t,r)}const Ze=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function Je(e){return Ze.test(e)}const He="\\ud800-\\udfff",Be=`[${He}]`,We="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",Ge="\\ud83c[\\udffb-\\udfff]",Ye=`[^${He}]`,Ke="(?:\\ud83c[\\udde6-\\uddff]){2}",Qe="[\\ud800-\\udbff][\\udc00-\\udfff]",Xe=`${`(?:${We}|${Ge})`}?`,et="[\\ufe0e\\ufe0f]?",tt=et+Xe+`(?:\\u200d(?:${[Ye,Ke,Qe].join("|")})${et+Xe})*`,rt=`(?:${[`${Ye}${We}?`,We,Ke,Qe,Be].join("|")})`,nt=RegExp(`${Ge}(?=${Ge})|${rt+tt}`,"g");function st(e){return Je(e)?function(e){return e.match(nt)||[]}(e):function(e){return e.split("")}(e)}function ot(e){return t=>{if(!t)return"";const r=Je(t)?st(t):void 0,n=r?r[0]:t[0],s=r?Ve(r,1).join(""):t.slice(1);return n[e]()+s}}const it="\\ud800-\\udfff",ut="\\u2700-\\u27bf",at="a-z\\xdf-\\xf6\\xf8-\\xff",ct="A-Z\\xc0-\\xd6\\xd8-\\xde",lt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ft="['’]",dt=`[${lt}]`,ht=`[${ut}]`,pt=`[${at}]`,gt=`[^${it}${lt+"\\d"+ut+at+ct}]`,yt="(?:\\ud83c[\\udde6-\\uddff]){2}",mt="[\\ud800-\\udbff][\\udc00-\\udfff]",bt=`[${ct}]`,vt=`(?:${pt}|${gt})`,wt=`(?:${bt}|${gt})`,$t=`(?:${ft}(?:d|ll|m|re|s|t|ve))?`,qt=`(?:${ft}(?:D|LL|M|RE|S|T|VE))?`,At="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Ot="[\\ufe0e\\ufe0f]?",jt=Ot+At+`(?:\\u200d(?:${[`[^${it}]`,yt,mt].join("|")})${Ot+At})*`,kt=`(?:${[ht,yt,mt].join("|")})${jt}`,xt=RegExp([`${bt}?${pt}+${$t}(?=${[dt,bt,"$"].join("|")})`,`${wt}+${qt}(?=${[dt,bt+vt,"$"].join("|")})`,`${bt}?${vt}+${$t}`,`${bt}+${qt}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",kt].join("|"),"g");const Ft=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),Ct=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function St(e,t){if(void 0===t){const t=Ft(e)?function(e){return e.match(xt)}(e):function(e){return e.match(Ct)}(e);return t||[]}return e.match(t)||[]}function Et(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:Et(e)))}`;if(X.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const Rt=ot("toUpperCase"),Pt=ot("toLowerCase");var It={toString:Et,startCase:e=>St(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+Rt(t)),""),snakeCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?Rt(t):t))),""),upperCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:Rt,lowerCase:e=>St(Et(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:Pt};const Tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Dt=e=>{let t,r,n,s,o,i,u,a="",c=0;for(e=Lt(e);c<e.length;)t=e.charCodeAt(c++),r=e.charCodeAt(c++),n=e.charCodeAt(c++),s=t>>2,o=(3&t)<<4|r>>4,i=(15&r)<<2|n>>6,u=63&n,isNaN(r)?i=u=64:isNaN(n)&&(u=64),a=a+Tt.charAt(s)+Tt.charAt(o)+Tt.charAt(i)+Tt.charAt(u);return a},Lt=e=>{const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},Nt=e=>{let t="",r=0,n=0,s=0,o=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),o=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&o),r+=3);return t};var _t={...It,uint8ArrayToString:function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},stringToArrayBuffer:function(e){const t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;r++)n[r]=e.charCodeAt(r);return r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let s="";for(let t=0;t<e;t++)s+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+s:s},base64:{encode:Dt,decode:e=>{let t,r,n,s,o,i,u,a="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c<e.length;)s=Tt.indexOf(e.charAt(c++)),o=Tt.indexOf(e.charAt(c++)),i=Tt.indexOf(e.charAt(c++)),u=Tt.indexOf(e.charAt(c++)),t=s<<2|o>>4,r=(15&o)<<4|i>>2,n=(3&i)<<6|u,a+=String.fromCharCode(t),64!=i&&(a+=String.fromCharCode(r)),64!=u&&(a+=String.fromCharCode(n));return a=Nt(a),a},encodeToOss:e=>Dt(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}};var Mt={stringify:e=>{if(!e)return"";if(!X.isObject(e))return"";let t="";return X.forof(e,((e,r)=>{r&&(t+=`${_t.kebabCase(e)}:${r};`)})),t},parse:(e,t=!1)=>{if(!e.trim())return;const r=pe.parse(e,{sep:";",eq:":",uri:!1}),n={};return X.forof(r,((e,r)=>{if(!r)return;const s=t?_t.camelCase(e):e;ze.isFloat(r)||r.length>=2&&r.startsWith(".")&&ze.isNumber(r.substr(1))?n[s]=+r:n[s]=r})),n}};const Ut=(e,t)=>{const r=document.createElement("a");r.href=t,r.download=e,r.click()};var zt={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),o=s.length,i=new Uint8Array(o);for(;o--;)i[o]=s.charCodeAt(o);return new File([i],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,o=new Uint8Array(s);for(;s--;)o[s]=n.charCodeAt(s);return new Blob([o],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadFile:Ut,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();Ut(t,s)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.log("[ddan] downloadImageUrl",e)}return Promise.resolve()}};class Vt{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=z.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=X.copy(e,this.fields);this.save(r)}}class Zt extends ee{setters={};getters={};actions={};persist;constructor(){super()}dispatch=async(e,t=void 0)=>{const r=Reflect.get(this.actions,e);if(!X.isFunction(r))return;const[,n]=await z.run(r(this,t));return n};query=async e=>{const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?X.copy(t):await this.dispatch(e),r};commit=(e,t)=>{X.isObject(t)&&(t=X.copy(t)),this[e]=t}}var Jt={gbk:e,time:n,hook:z,math:Z,util:X,list:te,mini:le,url:pe,css:Mt,html:zt,rule:ze,convert:_t,Event:ee,Http:be,Store:Zt,storeRef:(e,t)=>{const r=Object.assign(new Zt,e||{});r.__persist=new Vt(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return X.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(X.isFunction(s)&&!s(e,r))return!0;const o=Reflect.set(e,t,r,n);return o&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),o},has:(e,t)=>Reflect.has(e,t)})},Persist:Vt,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})};return Jt}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).ddan=t()}(this,(function(){"use strict";var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};class t{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}class r{_loopTimer;_event=new t;started=!1;interval=0;constructor(e=0){this.interval=e||500}start(){this.started||(this.stop(),this._loopTimer=setInterval((()=>{this._handleLoop()}),this.interval))}stop(){this._loopTimer&&(clearInterval(this._loopTimer),this._loopTimer=0,this.started=!1)}restart(){this.stop(),this.start()}on(e){this._event.on("frame",e)}off(e){this._event.off("frame",e)}_handleLoop(){this._event.emit("frame")}}class n{date;countdown=0;countdownS=0;timestamp=0;yyyy=0;yy="";M=0;MM="";d=0;dd="";h=0;hh="";m=0;mm="";s=0;ss="";S=0;SS="";SSS="";constructor(e){if(!e)return;const t="string"==typeof e||"number"==typeof e?new Date(e):e;t&&(this.date=t,this.timestamp=t.getTime())}toDate(){return this.date?(this.yyyy=this.date.getFullYear(),this.yy=`${this.yyyy}`.substr(2),this.M=this.date.getMonth()+1,this.MM=(this.M<10?"0":"")+this.M,this.d=this.date.getDate(),this.dd=(this.d<10?"0":"")+this.d,this.h=this.date.getHours(),this.hh=(this.h<10?"0":"")+this.h,this.m=this.date.getMinutes(),this.mm=(this.m<10?"0":"")+this.m,this.s=this.date.getSeconds(),this.ss=(this.s<10?"0":"")+this.s,this.S=this.date.getMilliseconds(),this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this):this}toCountdown(){if(!this.timestamp)return this;this.countdown=Math.max(this.timestamp-l(),0),this.countdownS=Math.floor(this.countdown/a);let e=this.countdown;return this.d=Math.floor(e/s),this.dd=(this.d<10?"0":"")+this.d,e%=s,this.h=Math.floor(e/i),this.hh=(this.h<10?"0":"")+this.h,e%=i,this.m=Math.floor(e/o),this.mm=(this.m<10?"0":"")+this.m,e%=o,this.s=Math.floor(e/a),this.ss=(this.s<10?"0":"")+this.s,e%=a,this.S=e,this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this}format(e="yyyy-MM-dd hh:mm:ss"){return e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}countdownFormat(e=""){let t=e;return t||(t=this.countdown>i?"hh:mm:ss":this.countdown>o?"mm:ss":"ss"),t.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}}const s=864e5,i=36e5,o=6e4,a=1e3,u=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return c(r).toDate().format(t)},c=e=>{const t="string"==typeof e||"number"==typeof e?new Date(e):e;return new n(t||0)};function l(){return Date.now()}var f={now:l,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),parseTime:function({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:i=0}){const o=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${i}`;return new Date(u(Date.now(),o)).getTime()},todayZero:()=>new Date(u(l(),"yyyy/MM/dd 00:00:00")).getTime(),format:u,countdown:(e,t="")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return c(r).toCountdown().countdownFormat(t)},timeformat:c,oneDay:s,oneHour:i,oneMinute:o,oneSecond:a,loopFrame:(e=500)=>new r(e)},d="object"==typeof global&&global&&global.Object===Object&&global,h="object"==typeof self&&self&&self.Object===Object&&self;const p=(d||h||Function("return this")()).Symbol,{toString:g,hasOwnProperty:y,propertyIsEnumerable:m}=Object.prototype,b=p?p.toStringTag:void 0;function w(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":b&&b in Object(e)?function(e){const t=y.call(e,b),r=e[b];let n=!1;try{e[b]=void 0,n=!0}catch(e){}const s=g.call(e);return n&&(t?e[b]=r:delete e[b]),s}(e):g.call(e)}var v={getTag:w,getType:function(e){return(w(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:g,hasOwnProperty:y,propertyIsEnumerable:m},$="[object Function]",q="[object GeneratorFunction]",A="[object AsyncFunction]",O=9007199254740991;const j=/^(?:0|[1-9]\d*)$/;function k(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function x(e){return null!=e&&"object"==typeof e}const S=Array.isArray;function F(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=O}(e.length)&&!E(e)}function C(e){return x(e)&&F(e)}function E(e){var t=k(e)?v.getTag(e):"";return t===$||t===q||t===A}var R={is:function(e,t){return v.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===v.getTag(e)},isString:function(e){return"string"==typeof e||!S(e)&&x(e)&&"[object String]"==v.getTag(e)},isObject:k,isObjectLike:x,isPlainObject:function(e){if(!x(e)||"[object Object]"!=v.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||x(e)&&"[object Symbol]"===v.getTag(e)},isFunction:E,isArray:S,isArrayLikeObject:C,isIndex:function(e,t){return!!(t=null==t?O:t)&&("number"==typeof e||j.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:F,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return C(e)&&v.hasOwnProperty.call(e,"callee")&&(!v.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==v.toString.call(e))},isPromise:function(e){return"[object Promise]"===(k(e)?v.getTag(e):"")}};const P=NaN,_=/^\s+|\s+$/g,T=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,D=/^0o[0-7]+$/i,M=parseInt,L=1/0,N=17976931348623157e292;function U(e){if("number"==typeof e)return e;if(R.isSymbol(e))return P;if(R.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=R.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(_,"");const t=I.test(e);return t||D.test(e)?M(e.slice(2),t?2:8):T.test(e)?P:+e}function z(e){return e?(e=U(e))===L||e===-L?(e<0?-1:1)*N:e==e?e:0:0===e?e:0}var V={toNumber:U,toFinite:z,toInteger:function(e){var t=z(e),r=t%1;return t==t?r?t-r:t:0}};const Z="Expected a function",H=Math.max,J=Math.min;function W(e,t=0,r={}){var n,s,i,o,a,u,c=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(Z);function h(t){var r=n,i=s;return n=s=void 0,c=t,o=e.apply(i,r)}function p(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-c>=i}function g(){var e=Date.now();if(p(e))return y(e);a=setTimeout(g,function(e){var r=t-(e-u);return f?J(r,i-(e-c)):r}(e))}function y(e){return a=void 0,d&&n?h(e):(n=s=void 0,o)}function m(...e){var r=Date.now(),i=p(r);if(n=arguments,s=this,u=r,i){if(void 0===a)return function(e){return c=e,a=setTimeout(g,t),l?h(e):o}(u);if(f)return a=setTimeout(g,t),h(u)}return void 0===a&&(a=setTimeout(g,t)),o}return t=V.toNumber(t)||0,R.isObject(r)&&(l=!!r.leading,i=(f="maxWait"in r)?H(V.toNumber(r.maxWait)||0,t):i,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=u=s=a=void 0},m.flush=function(){return void 0===a?o:y(Date.now())},m}class B{source;constructor(e){this.source=e}run(){let e;try{let t;return t=R.isFunction(this.source)?this.source():this.source,e=R.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}class G{_list=[];constructor(e){this.push(e)}push(e){return e&&this._list.push(e),this}clear(){return this._list=[],this}_exec(e,t){let r;if(R.isFunction(e))r=e(t);else{if(R.isPromise(e))return e.then((e=>({...t,...e})));r=e}return R.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this._list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}var Y={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new B(e).run(),debounce:W,throttle:function(e,t=0,r={}){var n=!1,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return R.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),W(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new G(e)};function K(e){return Math.floor(Math.random()*e)}var Q={random:K,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=K(e);r?n.push(s):n.includes(s)||n.push(s)}return n}};function X(e){return e!=e}function ee(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var te,re,ne=(te=Object.keys,re=Object,function(e){return te(re(e))}),se=Math.max;function ie(e,t){var r=R.isArray(e)||R.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var i in e)!t&&!v.hasOwnProperty.call(e,i)||s&&("length"==i||R.isIndex(i,n))||r.push(i);return r}const oe=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=oe(e[r]));return t};var ae={...R,...v,includes:function(e,t,r,n){e=R.isArrayLike(e)?e:function(e){return e?ee(e,function(e){return R.isArrayLike(e)?ie(e):function(e){if(!R.isPrototype(e))return ne(e);var t=[];for(var r in Object(e))v.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?V.toInteger(r):0;var s=e.length;return r<0&&(r=se(s+r,0)),R.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,i=r+(n?1:-1);n?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,X,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:oe,forof:(e,t)=>{if(!e)return;let r;if(R.isObject(e)&&(r=R.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};var ue={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!R.isFunction(t))return;if(!R.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,i=e.slice(n,s);t&&t(i),n=s}},skip:(e,t)=>{if(!R.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!R.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:e=>!R.isArray(e)||e.length<=0?[]:[...new Set(e)],random:(e,t=1,r=!1)=>{const n=e.length||0;return Q.randoms(n,t,r).map((t=>e[t]))||[]}};const ce="[object Object]",le="[object Array]",fe=e=>Object.prototype.toString.call(e),de=(e,t,r=!1)=>{if(e===t)return;const n=fe(e);if(n===fe(t))if(n===le&&e.length>=t.length)for(let r=0;r<t.length;r++)de(e[r],t[r]);else if(n===ce&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?de(e[n],t[n]):e[n]=null},he=(e,t,r,n="",s=!1)=>{if(e===t)return;const i=fe(e),o=fe(t);if(i===le&&o===i&&e.length>=t.length)for(let s=0;s<e.length;s++)he(e[s],t[s],r,`${n}[${s}]`);else if(i===ce&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=fe(s),u=fe(o);if(s!==o)if(a===le&&u===a&&s.length>=o.length)for(let e=0;e<s.length;e++)he(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`);else if(a===ce&&u===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)he(s[e],o[e],r,`${n?n+".":""}${i}.${e}`);else r[`${n?n+".":""}${i}`]=s}}else r[n]=e};class pe{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class ge{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new pe,response:new pe};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:i}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=i}static blockId="blockid";static requestLock={};lockR(e,t){ge.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete ge.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=ae.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let i;try{if("block"===n.model)this.lockR(ge.blockId,(()=>this._fetch(s,n.hasEncrypt))),i=await ge.requestLock[ge.blockId].request;else if(ge.requestLock[ge.blockId]&&ge.requestLock[ge.blockId].lock&&await ge.requestLock[ge.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),ge.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),i=await ge.requestLock[e].request,this.unlockR(e)}else i=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:i,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const ye=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var me={diff:function(e,t){const r={};return(e=>{if(fe(e)===ce)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];fe(n[t])!==ce&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),de(e,t,!0),he(e,t,r,"",!0),r},promixify:ye,run:(e,t={})=>{if(e)return Y.run(ye(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:ge};const be=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!1,uri:i=!0}={}){t=t||"&",r=r||"=";const o={};if("string"!=typeof e||0===e.length)return o;const a=/\+/g,u=n||1e3;let c=(e=e.split(t)).length;u>0&&c>u&&(c=u);for(let t=0;t<c;++t){let n,u,c,l,f=e[t].replace(a,"%20"),d=f.indexOf(r);d>=0?(n=f.substr(0,d),u=f.substr(d+1)):(n=f,u=""),c=i?decodeURIComponent(n):n,l=i?decodeURIComponent(u):u,v.hasOwnProperty.call(o,c)&&s?Array.isArray(o[c])?o[c].push(l):o[c]=[o[c],l]:o[c]=l}return o},we=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ve=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:s=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const i=encodeURIComponent(we(n))+r;return s&&Array.isArray(e[n])?e[n].map((function(e){return i+encodeURIComponent(we(e))})).join(t):i+encodeURIComponent(we(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(we(n))+r+encodeURIComponent(we(e)):""};var $e={parse:be,decode:be,stringify:ve,encode:ve,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const qe=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function Ae(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function Oe(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(ae.isPlainObject(e)){const r=Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&"),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class je{host="";reqConfig={};handleError;interceptors={request:new pe,response:new pe};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(Oe),this.interceptors.response.use(e.handleResponse||Ae),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){je.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete je.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=ae.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let i;if(delete s.options.plugins,"block"===r.model)this.lockR(je.blockId,(()=>qe(s))),i=await je.requestLock[je.blockId].request;else if(je.requestLock[je.blockId]&&je.requestLock[je.blockId].lock&&await je.requestLock[je.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),je.requestLock[e]||this.lockR(e,(()=>qe(s))),i=await je.requestLock[e].request,this.unlockR(e)}else i=await qe(s);return this.interceptors.response.invoke({response:i,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}const ke=/%[sdj%]/g;let xe=()=>{};function Se(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function Fe(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(ke,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function Ce(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Ee(e,t,r){let n=0;const s=e.length;!function i(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<s?t(e[a],i):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(xe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class Re extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function Pe(e,t,r,n,s){if(t.first){const t=new Promise(((t,i)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);Ee(o,r,(e=>(n(e),e.length?i(new Re(e,Se(e))):t(s))))}));return t.catch((e=>e)),t}const i=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const c=[],l=new Promise(((t,l)=>{const f=e=>{if(c.push.apply(c,e),u++,u===a)return n(c),c.length?l(new Re(c,Se(c))):t(s)};o.length||(n(c),t(s)),o.forEach((t=>{const n=e[t];-1!==i.indexOf(t)?Ee(n,r,f):function(e,t,r){const n=[];let s=0;const i=e.length;function o(e){n.push(...e||[]),s++,s===i&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return l.catch((e=>e)),l}function _e(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function Te(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const Ie=(e,t,r,n,s,i)=>{!e.required||r.hasOwnProperty(e.field||"")&&!Ce(t,i||e.type)||n.push(Fe(s.messages.required,e.fullField))};let De;const Me=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,Le=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Ne={integer:e=>Ne.number(e)&&parseInt(e,10)===e,float:e=>Ne.number(e)&&!Ne.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Ne.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Me),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(De)return De;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),i=new RegExp(`(?:^${r}$)|(?:^${s}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),u=e=>e&&e.exact?i:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");u.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),u.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const c=u.v4().source,l=u.v6().source;return De=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${c}|${l}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),De})()),hex:e=>"string"==typeof e&&!!e.match(Le)},Ue="enum";var ze={required:Ie,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(Fe(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void Ie(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?Ne[i](t)||n.push(Fe(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(Fe(s.messages.types[i],e.fullField,e.type))},range:(e,t,r,n,s)=>{const i="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let c=t,l="";const f="number"==typeof t,d="string"==typeof t,h=Array.isArray(t);if(f?l="number":d?l="string":h&&(l="array"),!l)return!1;h&&(c=t.length),d&&(c=t.replace(u,"_").length),i?c!==e.len&&n.push(Fe(s.messages[l].len,e.fullField,e.len)):o&&!a&&c<e.min?n.push(Fe(s.messages[l].min,e.fullField,e.min)):a&&!o&&c>e.max?n.push(Fe(s.messages[l].max,e.fullField,e.max)):o&&a&&(c<e.min||c>e.max)&&n.push(Fe(s.messages[l].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[Ue]=Array.isArray(e[Ue])?e[Ue]:[],-1===e[Ue].indexOf(t)&&n.push(Fe(s.messages[Ue],e.fullField,e[Ue].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(Fe(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(Fe(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ve=(e,t,r,n,s)=>{const i=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t,i)&&!e.required)return r();ze.required(e,t,n,o,s,i),Ce(t,i)||ze.type(e,t,n,o,s)}r(o)};var Ze={string:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(Ce(t,"string")&&!e.required)return r();ze.required(e,t,n,i,s,"string"),Ce(t,"string")||(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s),ze.pattern(e,t,n,i,s),!0===e.whitespace&&ze.whitespace(e,t,n,i,s))}r(i)},method:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.type(e,t,n,i,s)}r(i)},number:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},boolean:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.type(e,t,n,i,s)}r(i)},regexp:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),Ce(t)||ze.type(e,t,n,i,s)}r(i)},integer:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},float:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},array:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();ze.required(e,t,n,i,s,"array"),null!=t&&(ze.type(e,t,n,i,s),ze.range(e,t,n,i,s))}r(i)},object:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.type(e,t,n,i,s)}r(i)},enum:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s),void 0!==t&&ze.enum(e,t,n,i,s)}r(i)},pattern:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t,"string")&&!e.required)return r();ze.required(e,t,n,i,s),Ce(t,"string")||ze.pattern(e,t,n,i,s)}r(i)},date:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t,"date")&&!e.required)return r();if(ze.required(e,t,n,i,s),!Ce(t,"date")){let r;r=t instanceof Date?t:new Date(t),ze.type(e,r,n,i,s),r&&ze.range(e,r.getTime(),n,i,s)}}r(i)},url:Ve,hex:Ve,email:Ve,required:(e,t,r,n,s)=>{const i=[],o=Array.isArray(t)?"array":typeof t;ze.required(e,t,n,i,s,o),r(i)},any:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ce(t)&&!e.required)return r();ze.required(e,t,n,i,s)}r(i)}};function He(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const Je=He();class We{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Ze[e]=t};static warning=xe;static messages=Je;static validators=Ze;rules={};_messages=Je;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=Te(He(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,i=r;if("function"==typeof s&&(i=s,s={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===Je&&(e=He()),Te(e,s.messages),s.messages=e}else s.messages=this.messages();const o={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let i=r;"function"==typeof i.transform&&(n===e&&(n={...n}),s=n[t]=i.transform(s)),i="function"==typeof i?{validator:i}:{...i},i.validator=this.getValidationMethod(i),i.validator&&(i.field=t,i.fullField=i.fullField||t,i.type=this.getType(i),o[t]=o[t]||[],o[t].push({rule:i,value:s,source:n,field:t}))}))}));const a={};return Pe(o,s,((e,t)=>{const r=e.rule;let i,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function u(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function c(i=[]){let c=Array.isArray(i)?i:[i];!0===s.suppressWarning&&c.length&&We.warning("async-validator:",c),c.length&&void 0!==r.message&&(c=[].concat(r.message));let l=c.map(_e(r,n));if(s.first&&l.length)return a[r.field]=1,t(l);if(o){if(r.required&&!e.value)return void 0!==r.message?l=[].concat(r.message).map(_e(r,n)):s.error&&(l=[s.error(r,Fe(s.messages.required,r.field))]),t(l);let i={};r.defaultField&&Object.keys(e.value).map((e=>{i[e]=r.defaultField})),i={...i,...e.rule.fields};const o={};Object.keys(i).forEach((e=>{const t=i[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new We(o);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];l&&l.length&&r.push(...l),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(l)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)i=r.asyncValidator(r,e.value,c,e.source,s);else if(r.validator){try{i=r.validator(r,e.value,c,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===i?c():!1===i?c("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):i instanceof Array?c(i):i instanceof Error&&c(i.message)}i&&i.then&&i.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=Se(t),i(t,r)):i(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Ze.hasOwnProperty(e.type))throw new Error(Fe("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Ze.required:Ze[this.getType(e)]||void 0}}function Be(e){return new We(e)}var Ge={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Be,validate:function(e,t,r={},n=(()=>{})){return Y.run(Be(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};function Ye(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const i=new Array(n);for(;++s<n;)i[s]=e[s+t];return i}(e,t,r)}const Ke=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function Qe(e){return Ke.test(e)}const Xe="\\ud800-\\udfff",et=`[${Xe}]`,tt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",rt="\\ud83c[\\udffb-\\udfff]",nt=`[^${Xe}]`,st="(?:\\ud83c[\\udde6-\\uddff]){2}",it="[\\ud800-\\udbff][\\udc00-\\udfff]",ot=`${`(?:${tt}|${rt})`}?`,at="[\\ufe0e\\ufe0f]?",ut=at+ot+`(?:\\u200d(?:${[nt,st,it].join("|")})${at+ot})*`,ct=`(?:${[`${nt}${tt}?`,tt,st,it,et].join("|")})`,lt=RegExp(`${rt}(?=${rt})|${ct+ut}`,"g");function ft(e){return Qe(e)?function(e){return e.match(lt)||[]}(e):function(e){return e.split("")}(e)}function dt(e){return t=>{if(!t)return"";const r=Qe(t)?ft(t):void 0,n=r?r[0]:t[0],s=r?Ye(r,1).join(""):t.slice(1);return n[e]()+s}}const ht="\\ud800-\\udfff",pt="\\u2700-\\u27bf",gt="a-z\\xdf-\\xf6\\xf8-\\xff",yt="A-Z\\xc0-\\xd6\\xd8-\\xde",mt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",bt="['’]",wt=`[${mt}]`,vt=`[${pt}]`,$t=`[${gt}]`,qt=`[^${ht}${mt+"\\d"+pt+gt+yt}]`,At="(?:\\ud83c[\\udde6-\\uddff]){2}",Ot="[\\ud800-\\udbff][\\udc00-\\udfff]",jt=`[${yt}]`,kt=`(?:${$t}|${qt})`,xt=`(?:${jt}|${qt})`,St=`(?:${bt}(?:d|ll|m|re|s|t|ve))?`,Ft=`(?:${bt}(?:D|LL|M|RE|S|T|VE))?`,Ct="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Et="[\\ufe0e\\ufe0f]?",Rt=Et+Ct+`(?:\\u200d(?:${[`[^${ht}]`,At,Ot].join("|")})${Et+Ct})*`,Pt=`(?:${[vt,At,Ot].join("|")})${Rt}`,_t=RegExp([`${jt}?${$t}+${St}(?=${[wt,jt,"$"].join("|")})`,`${xt}+${Ft}(?=${[wt,jt+kt,"$"].join("|")})`,`${jt}?${kt}+${St}`,`${jt}+${Ft}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",Pt].join("|"),"g");const Tt=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),It=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Dt(e,t){if(void 0===t){const t=Tt(e)?function(e){return e.match(_t)}(e):function(e){return e.match(It)}(e);return t||[]}return e.match(t)||[]}function Mt(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:Mt(e)))}`;if(ae.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const Lt=dt("toUpperCase"),Nt=dt("toLowerCase");var Ut={toString:Mt,startCase:e=>Dt(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+Lt(t)),""),snakeCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?Lt(t):t))),""),upperCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:Lt,lowerCase:e=>Dt(Mt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:Nt};const zt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Vt=e=>{let t,r,n,s,i,o,a,u="",c=0;for(e=Zt(e);c<e.length;)t=e.charCodeAt(c++),r=e.charCodeAt(c++),n=e.charCodeAt(c++),s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),u=u+zt.charAt(s)+zt.charAt(i)+zt.charAt(o)+zt.charAt(a);return u},Zt=e=>{const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},Ht=e=>{let t="",r=0,n=0,s=0,i=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),i=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3);return t};var Jt={...Ut,uint8ArrayToString:function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},stringToArrayBuffer:function(e){const t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;r++)n[r]=e.charCodeAt(r);return r},randomString:function(e,t=!1,r=""){e=e||32;const n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let s="";for(let t=0;t<e;t++)s+=n.charAt(Math.floor(62*Math.random()));return t?f.format(new Date,"yyyyMMddhhmmss")+r+s:s},base64:{encode:Vt,decode:e=>{let t,r,n,s,i,o,a,u="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c<e.length;)s=zt.indexOf(e.charAt(c++)),i=zt.indexOf(e.charAt(c++)),o=zt.indexOf(e.charAt(c++)),a=zt.indexOf(e.charAt(c++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,u+=String.fromCharCode(t),64!=o&&(u+=String.fromCharCode(r)),64!=a&&(u+=String.fromCharCode(n));return u=Ht(u),u},encodeToOss:e=>Vt(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}};var Wt={stringify:e=>{if(!e)return"";if(!ae.isObject(e))return"";let t="";return ae.forof(e,((e,r)=>{r&&(t+=`${Jt.kebabCase(e)}:${r};`)})),t},parse:(e,t=!1)=>{if(!e.trim())return;const r=$e.parse(e,{sep:";",eq:":",uri:!1}),n={};return ae.forof(r,((e,r)=>{if(!r)return;const s=t?Jt.camelCase(e):e;Ge.isFloat(r)||r.length>=2&&r.startsWith(".")&&Ge.isNumber(r.substr(1))?n[s]=+r:n[s]=r})),n}};const Bt=(e,t)=>{const r=document.createElement("a");r.href=t,r.download=e,r.click()};var Gt={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),i=s.length,o=new Uint8Array(i);for(;i--;)o[i]=s.charCodeAt(i);return new File([o],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,i=new Uint8Array(s);for(;s--;)i[s]=n.charCodeAt(s);return new Blob([i],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadFile:Bt,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();Bt(t,s)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.log("[ddan] downloadImageUrl",e)}return Promise.resolve()}};class Yt{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=Y.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=ae.copy(e,this.fields);this.save(r)}}class Kt extends t{setters={};getters={};actions={};persist;constructor(){super()}dispatch=async(e,t=void 0)=>{const r=Reflect.get(this.actions,e);if(!ae.isFunction(r))return;const[,n]=await Y.run(r(this,t));return n};query=async e=>{const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?ae.copy(t):await this.dispatch(e),r};commit=(e,t)=>{ae.isObject(t)&&(t=ae.copy(t)),this[e]=t}}class Qt{host="";list=[];constructor(e,t={}){this._parseHost(e);const{width:r=500,height:n=400}=t;this.list.push(`${e}?x-oss-process=image/resize,w_${r},h_${n},m_fill`)}_parseHost(e){e&&!this.host&&/^http[s]?:\/\/([\w.]+)/.test(e)&&(this.host=e.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/,"$1"))}image(e,t={}){if(!e||!e.includes(this.host))return;if(this.list.length<=0)return;const r={g:"nw",...t},n=e.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/,"$1"),s=Jt.base64.encodeToOss(n),i=$e.stringify({image:s,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}text(e,t={},r={}){if(!e)return;const n={g:"nw",...t},s=Jt.base64.encodeToOss(e),i=$e.stringify({text:s,...n,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}result(){return this.list.join("")}}var Xt={gbk:e,time:f,hook:Y,math:Q,util:ae,list:ue,mini:me,url:$e,css:Wt,html:Gt,rule:Ge,convert:Jt,Event:t,Http:je,Store:Kt,storeRef:(e,t)=>{const r=Object.assign(new Kt,e||{});r.__persist=new Yt(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return ae.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(ae.isFunction(s)&&!s(e,r))return!0;const i=Reflect.set(e,t,r,n);return i&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),i},has:(e,t)=>Reflect.has(e,t)})},Persist:Yt,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r}),watermark:(e,t)=>new Qt(e,t)};return Xt}));
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DWatermark = void 0;
4
+ const convert_1 = require("../modules/convert");
5
+ const url_1 = require("../modules/url");
6
+ class DWatermark {
7
+ host = "";
8
+ list = [];
9
+ constructor(bg, size = {}) {
10
+ this._parseHost(bg);
11
+ const { width = 500, height = 400 } = size;
12
+ this.list.push(`${bg}?x-oss-process=image/resize,w_${width},h_${height},m_fill`);
13
+ }
14
+ _parseHost(url) {
15
+ if (!url || this.host)
16
+ return;
17
+ if (/^http[s]?:\/\/([\w.]+)/.test(url)) {
18
+ this.host = url.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/, "$1");
19
+ }
20
+ ;
21
+ }
22
+ image(url, params = {}) {
23
+ if (!url || !url.includes(this.host))
24
+ return;
25
+ if (this.list.length <= 0)
26
+ return;
27
+ const opts = { g: "nw", ...params };
28
+ const link = url.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/, "$1");
29
+ const watermark = convert_1.default.base64.encodeToOss(link);
30
+ const str = url_1.default.stringify({ image: watermark, ...opts }, { sep: ",", eq: "_" });
31
+ this.list.push(`/watermark,${str}`);
32
+ }
33
+ text(content, params = {}, iText = {}) {
34
+ if (!content)
35
+ return;
36
+ const opts = { g: "nw", ...params };
37
+ const watermark = convert_1.default.base64.encodeToOss(content);
38
+ const str = url_1.default.stringify({ text: watermark, ...opts, ...iText, }, { sep: ",", eq: "_" });
39
+ this.list.push(`/watermark,${str}`);
40
+ }
41
+ result() {
42
+ return this.list.join("");
43
+ }
44
+ }
45
+ exports.DWatermark = DWatermark;
46
+ const watermark = (bg, size) => new DWatermark(bg, size);
47
+ exports.default = watermark;
package/bin/lib/index.js CHANGED
@@ -16,6 +16,7 @@ const html_1 = require("./modules/html");
16
16
  const convert_1 = require("./modules/convert");
17
17
  const store_1 = require("./class/store");
18
18
  const persist_1 = require("./class/persist");
19
+ const watermark_1 = require("./class/watermark");
19
20
  exports.default = {
20
21
  gbk: gbk_1.default,
21
22
  time: time_1.default,
@@ -34,5 +35,6 @@ exports.default = {
34
35
  Store: store_1.default,
35
36
  storeRef: store_1.storeRef,
36
37
  Persist: persist_1.default,
37
- persistConfig: persist_1.persistConfig
38
+ persistConfig: persist_1.persistConfig,
39
+ watermark: watermark_1.default
38
40
  };
@@ -19,7 +19,7 @@ function stringToArrayBuffer(str) {
19
19
  }
20
20
  return buffer;
21
21
  }
22
- function randomString(len, prefix = false) {
22
+ function randomString(len, prefix = false, sep = "") {
23
23
  len = len || 32;
24
24
  const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
25
25
  const maxPos = chars.length;
@@ -29,7 +29,7 @@ function randomString(len, prefix = false) {
29
29
  }
30
30
  if (!prefix)
31
31
  return pwd;
32
- return time_1.default.format(new Date, "yyyyMMddhhmmss") + pwd;
32
+ return time_1.default.format(new Date, "yyyyMMddhhmmss") + sep + pwd;
33
33
  }
34
34
  exports.default = {
35
35
  ...string_1.default,
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // pattern
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.default = {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const event_1 = require("../../class/event");
4
+ class DLoopFrame {
5
+ _loopTimer;
6
+ _event = new event_1.default();
7
+ started = false;
8
+ interval = 0;
9
+ constructor(interval = 0) {
10
+ this.interval = interval || 500;
11
+ }
12
+ start() {
13
+ if (this.started)
14
+ return;
15
+ this.stop();
16
+ this._loopTimer = setInterval(() => {
17
+ this._handleLoop();
18
+ }, this.interval);
19
+ }
20
+ stop() {
21
+ if (!this._loopTimer)
22
+ return;
23
+ clearInterval(this._loopTimer);
24
+ this._loopTimer = 0;
25
+ this.started = false;
26
+ }
27
+ restart() {
28
+ this.stop();
29
+ this.start();
30
+ }
31
+ on(cb) {
32
+ this._event.on("frame", cb);
33
+ }
34
+ off(cb) {
35
+ this._event.off("frame", cb);
36
+ }
37
+ _handleLoop() {
38
+ this._event.emit("frame");
39
+ }
40
+ }
41
+ exports.default = DLoopFrame;
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DTimeFormat = void 0;
4
+ const frame_1 = require("./frame");
5
+ class DTimeFormat {
6
+ date;
7
+ countdown = 0;
8
+ countdownS = 0;
9
+ timestamp = 0;
10
+ yyyy = 0;
11
+ yy = "";
12
+ M = 0;
13
+ MM = "";
14
+ d = 0;
15
+ dd = "";
16
+ h = 0;
17
+ hh = "";
18
+ m = 0;
19
+ mm = "";
20
+ s = 0;
21
+ ss = "";
22
+ S = 0;
23
+ SS = "";
24
+ SSS = "";
25
+ constructor(time) {
26
+ if (!time)
27
+ return;
28
+ const date = typeof time === "string" || typeof time === "number" ? new Date(time) : time;
29
+ if (!date)
30
+ return;
31
+ this.date = date;
32
+ this.timestamp = date.getTime();
33
+ }
34
+ toDate() {
35
+ if (!this.date)
36
+ return this;
37
+ this.yyyy = this.date.getFullYear();
38
+ this.yy = `${this.yyyy}`.substr(2);
39
+ this.M = this.date.getMonth() + 1;
40
+ this.MM = (this.M < 10 ? "0" : "") + this.M;
41
+ this.d = this.date.getDate();
42
+ this.dd = (this.d < 10 ? "0" : "") + this.d;
43
+ this.h = this.date.getHours();
44
+ this.hh = (this.h < 10 ? "0" : "") + this.h;
45
+ this.m = this.date.getMinutes();
46
+ this.mm = (this.m < 10 ? "0" : "") + this.m;
47
+ this.s = this.date.getSeconds();
48
+ this.ss = (this.s < 10 ? "0" : "") + this.s;
49
+ this.S = this.date.getMilliseconds();
50
+ this.SS = (this.S < 10 ? "0" : "") + this.S;
51
+ this.SSS = this.S.toString().padStart(3, "0");
52
+ return this;
53
+ }
54
+ toCountdown() {
55
+ if (!this.timestamp)
56
+ return this;
57
+ this.countdown = Math.max(this.timestamp - now(), 0);
58
+ this.countdownS = Math.floor(this.countdown / oneSecond);
59
+ let amount = this.countdown;
60
+ this.d = Math.floor(amount / oneDay);
61
+ this.dd = (this.d < 10 ? "0" : "") + this.d;
62
+ amount = amount % oneDay;
63
+ this.h = Math.floor(amount / oneHour);
64
+ this.hh = (this.h < 10 ? "0" : "") + this.h;
65
+ amount = amount % oneHour;
66
+ this.m = Math.floor(amount / oneMinute);
67
+ this.mm = (this.m < 10 ? "0" : "") + this.m;
68
+ amount = amount % oneMinute;
69
+ this.s = Math.floor(amount / oneSecond);
70
+ this.ss = (this.s < 10 ? "0" : "") + this.s;
71
+ amount = amount % oneSecond;
72
+ this.S = amount;
73
+ this.SS = (this.S < 10 ? "0" : "") + this.S;
74
+ this.SSS = this.S.toString().padStart(3, "0");
75
+ return this;
76
+ }
77
+ format(reg = "yyyy-MM-dd hh:mm:ss") {
78
+ return reg.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g, ($1) => this[$1]);
79
+ }
80
+ countdownFormat(reg = "") {
81
+ let _reg = reg;
82
+ if (!_reg) {
83
+ if (this.countdown > oneHour) {
84
+ _reg = "hh:mm:ss";
85
+ }
86
+ else if (this.countdown > oneMinute) {
87
+ _reg = "mm:ss";
88
+ }
89
+ else {
90
+ _reg = "ss";
91
+ }
92
+ }
93
+ return _reg.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g, ($1) => this[$1]);
94
+ }
95
+ ;
96
+ }
97
+ exports.DTimeFormat = DTimeFormat;
98
+ /**
99
+ * 是否是今天
100
+ * @param {*} date
101
+ * @returns
102
+ */
103
+ const isToday = (date) => date && new Date().toDateString() === new Date(date).toDateString();
104
+ /**
105
+ * 当天零点
106
+ */
107
+ const todayZero = () => new Date(format(now(), "yyyy/MM/dd 00:00:00")).getTime();
108
+ /** 1天ms数 */
109
+ const oneDay = 86400000;
110
+ /** 1小时ms数 */
111
+ const oneHour = 3600000;
112
+ /** 1分ms数 */
113
+ const oneMinute = 60000;
114
+ /** 1秒ms数 */
115
+ const oneSecond = 1000;
116
+ /**
117
+ * 时间格式化
118
+ * @param {string|number|Date} time
119
+ * @param {string} reg "yyyyMMdd hhmmss"
120
+ * @returns
121
+ */
122
+ const format = (time, reg = "yyyy-MM-dd hh:mm:ss") => {
123
+ const date = typeof time === "string" || typeof time === "number" ? new Date(time) : time;
124
+ if (!date)
125
+ return "";
126
+ const map = timeformat(date);
127
+ return map.toDate().format(reg);
128
+ };
129
+ const timeformat = (time) => {
130
+ const date = typeof time === "string" || typeof time === "number" ? new Date(time) : time;
131
+ if (!date)
132
+ return new DTimeFormat(0);
133
+ return new DTimeFormat(date);
134
+ };
135
+ /**
136
+ * 解析时间
137
+ * @param param0
138
+ * @returns
139
+ */
140
+ function parseTime({ year = 0, month = 0, date = 0, hour = 0, minute = 0, second = 0 }) {
141
+ const _format = `${year || "yyyy"}/${month || "MM"}/${date || "dd"} ${hour}:${minute}:${second}`;
142
+ return new Date(format(Date.now(), _format)).getTime();
143
+ }
144
+ /** 当前时间 */
145
+ function now() {
146
+ return Date.now();
147
+ }
148
+ ;
149
+ /**
150
+ * 倒计时格式
151
+ * @param endTime 结束时间
152
+ * @param reg 格式
153
+ * @param def
154
+ * @returns
155
+ */
156
+ const countdown = (endTime, reg = "") => {
157
+ const date = typeof endTime === "string" || typeof endTime === "number" ? new Date(endTime) : endTime;
158
+ if (!date)
159
+ return "";
160
+ const map = timeformat(date);
161
+ return map.toCountdown().countdownFormat(reg);
162
+ };
163
+ const loopFrame = (interval = 500) => {
164
+ return new frame_1.default(interval);
165
+ };
166
+ exports.default = { now, isToday, parseTime, todayZero, format, countdown, timeformat, oneDay, oneHour, oneMinute, oneSecond, loopFrame };
@@ -0,0 +1,37 @@
1
+ export interface IDWatermarkParams {
2
+ [key: string]: any;
3
+ t?: number;
4
+ g?: "nw" | "north" | "ne" | "west" | "center" | " east" | "sw" | "south " | "se";
5
+ x?: number;
6
+ y?: number;
7
+ voffset?: number;
8
+ fill?: 0 | 1;
9
+ padx?: number;
10
+ pady?: number;
11
+ }
12
+ export interface IDWatermarkText {
13
+ type?: "d3F5LXplbmhlaQ" | "d3F5LW1pY3JvaGVp" | "ZmFuZ3poZW5nc2h1c29uZw" | "ZmFuZ3poZW5na2FpdGk" | "ZmFuZ3poZW5naGVpdGk" | "ZmFuZ3poZW5nZmFuZ3Nvbmc" | "ZHJvaWRzYW5zZmFsbGJhY2s";
14
+ color?: string;
15
+ size?: number;
16
+ shadow?: number;
17
+ rotate?: number;
18
+ padx?: number;
19
+ pady?: number;
20
+ }
21
+ export declare class DWatermark {
22
+ host: string;
23
+ list: string[];
24
+ constructor(bg: string, size?: {
25
+ width?: number;
26
+ height?: number;
27
+ });
28
+ _parseHost(url: string): void;
29
+ image(url: string, params?: IDWatermarkParams): void;
30
+ text(content: string, params?: IDWatermarkParams, iText?: IDWatermarkText): void;
31
+ result(): string;
32
+ }
33
+ declare const watermark: (bg: string, size?: {
34
+ width?: number;
35
+ height?: number;
36
+ }) => DWatermark;
37
+ export default watermark;
@@ -10,7 +10,6 @@ declare const _default: {
10
10
  time: {
11
11
  now: () => number;
12
12
  isToday: (date: any) => any;
13
- format: (time: string | number | Date, reg?: string) => string;
14
13
  parseTime: ({ year, month, date, hour, minute, second }: {
15
14
  year?: number | undefined;
16
15
  month?: number | undefined;
@@ -20,10 +19,14 @@ declare const _default: {
20
19
  second?: number | undefined;
21
20
  }) => number;
22
21
  todayZero: () => number;
22
+ format: (time: string | number | Date, reg?: string) => string;
23
+ countdown: (endTime: string | number | Date, reg?: string) => string;
24
+ timeformat: (time: string | number | Date) => import("./modules/time").DTimeFormat;
23
25
  oneDay: number;
24
26
  oneHour: number;
25
27
  oneMinute: number;
26
28
  oneSecond: number;
29
+ loopFrame: (interval?: number) => import("./modules/time/frame").default;
27
30
  };
28
31
  hook: {
29
32
  sleep: (time?: number) => Promise<unknown>;
@@ -136,11 +139,11 @@ declare const _default: {
136
139
  convert: {
137
140
  uint8ArrayToString: (arr: any) => string;
138
141
  stringToArrayBuffer: (str: any) => ArrayBuffer;
139
- randomString: (len: any, prefix?: boolean) => string;
142
+ randomString: (len: number, prefix?: boolean, sep?: string) => string;
140
143
  base64: {
141
144
  encode: (input: string) => string;
142
145
  decode: (input: string) => string;
143
- encodeToOss: (input: any) => any;
146
+ encodeToOss: (input: string) => string;
144
147
  };
145
148
  toString: (value: any) => any;
146
149
  startCase: (string: any) => any;
@@ -158,5 +161,9 @@ declare const _default: {
158
161
  storeRef: (source: import("./typings").IDStore, persistConfig?: import("./typings").IDPersistConfig | undefined) => any;
159
162
  Persist: typeof Persist;
160
163
  persistConfig: (key: string, fields: string[], storage: import("./typings").DStorage) => import("./typings").IDPersistConfig;
164
+ watermark: (bg: string, size?: {
165
+ width?: number | undefined;
166
+ height?: number | undefined;
167
+ } | undefined) => import("./class/watermark").DWatermark;
161
168
  };
162
169
  export default _default;
@@ -1,6 +1,6 @@
1
1
  declare function uint8ArrayToString(arr: any): string;
2
2
  declare function stringToArrayBuffer(str: any): ArrayBuffer;
3
- declare function randomString(len: any, prefix?: boolean): string;
3
+ declare function randomString(len: number, prefix?: boolean, sep?: string): string;
4
4
  declare const _default: {
5
5
  uint8ArrayToString: typeof uint8ArrayToString;
6
6
  stringToArrayBuffer: typeof stringToArrayBuffer;
@@ -8,7 +8,7 @@ declare const _default: {
8
8
  base64: {
9
9
  encode: (input: string) => string;
10
10
  decode: (input: string) => string;
11
- encodeToOss: (input: any) => any;
11
+ encodeToOss: (input: string) => string;
12
12
  };
13
13
  toString: (value: any) => any;
14
14
  startCase: (string: any) => any;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import DEvent from "../../class/event";
3
+ export default class DLoopFrame {
4
+ _loopTimer: string | number | NodeJS.Timeout | undefined;
5
+ _event: DEvent;
6
+ started: boolean;
7
+ interval: number;
8
+ constructor(interval?: number);
9
+ start(): void;
10
+ stop(): void;
11
+ restart(): void;
12
+ on(cb: Function): void;
13
+ off(cb: Function | undefined): void;
14
+ _handleLoop(): void;
15
+ }
@@ -0,0 +1,57 @@
1
+ import DLoopFrame from "./frame";
2
+ export declare class DTimeFormat {
3
+ date?: Date;
4
+ countdown: number;
5
+ countdownS: number;
6
+ timestamp: number;
7
+ yyyy?: number;
8
+ yy?: string;
9
+ M?: number;
10
+ MM?: string;
11
+ d: number;
12
+ dd: string;
13
+ h: number;
14
+ hh: string;
15
+ m: number;
16
+ mm: string;
17
+ s: number;
18
+ ss: string;
19
+ S: number;
20
+ SS: string;
21
+ SSS: string;
22
+ constructor(time: string | number | Date);
23
+ toDate(): this;
24
+ toCountdown(): this;
25
+ format(reg?: string): string;
26
+ countdownFormat(reg?: string): string;
27
+ }
28
+ /**
29
+ * 解析时间
30
+ * @param param0
31
+ * @returns
32
+ */
33
+ declare function parseTime({ year, month, date, hour, minute, second }: {
34
+ year?: number | undefined;
35
+ month?: number | undefined;
36
+ date?: number | undefined;
37
+ hour?: number | undefined;
38
+ minute?: number | undefined;
39
+ second?: number | undefined;
40
+ }): number;
41
+ /** 当前时间 */
42
+ declare function now(): number;
43
+ declare const _default: {
44
+ now: typeof now;
45
+ isToday: (date: any) => any;
46
+ parseTime: typeof parseTime;
47
+ todayZero: () => number;
48
+ format: (time: string | number | Date, reg?: string) => string;
49
+ countdown: (endTime: string | number | Date, reg?: string) => string;
50
+ timeformat: (time: string | number | Date) => DTimeFormat;
51
+ oneDay: number;
52
+ oneHour: number;
53
+ oneMinute: number;
54
+ oneSecond: number;
55
+ loopFrame: (interval?: number) => DLoopFrame;
56
+ };
57
+ export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ddan-js",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "bin/ddan-js.js",
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * 是否是今天
5
- * @param {*} date
6
- * @returns
7
- */
8
- const isToday = (date) => date && new Date().toDateString() === new Date(date).toDateString();
9
- /**
10
- * 当天零点
11
- */
12
- const todayZero = () => new Date(format(now(), "yyyy/MM/dd 00:00:00")).getTime();
13
- /** 1天ms数 */
14
- const oneDay = 86400000;
15
- /** 1小时ms数 */
16
- const oneHour = 3600000;
17
- /** 1分ms数 */
18
- const oneMinute = 60000;
19
- /** 1秒ms数 */
20
- const oneSecond = 1000;
21
- /**
22
- * 时间格式化
23
- * @param {string|number|Date} time
24
- * @param {string} reg "yyyyMMdd hhmmss"
25
- * @returns
26
- */
27
- const format = (time, reg = "yyyy-MM-dd hh:mm:ss") => {
28
- const date = typeof time === "string" || typeof time === "number" ? new Date(time) : time;
29
- if (!date)
30
- return "";
31
- const map = {};
32
- map.yyyy = date.getFullYear();
33
- map.yy = `${map.yyyy}`.substr(2);
34
- map.M = date.getMonth() + 1;
35
- map.MM = (map.M < 10 ? "0" : "") + map.M;
36
- map.d = date.getDate();
37
- map.dd = (map.d < 10 ? "0" : "") + map.d;
38
- map.h = date.getHours();
39
- map.hh = (map.h < 10 ? "0" : "") + map.h;
40
- map.m = date.getMinutes();
41
- map.mm = (map.m < 10 ? "0" : "") + map.m;
42
- map.s = date.getSeconds();
43
- map.ss = (map.s < 10 ? "0" : "") + map.s;
44
- map.S = date.getMilliseconds();
45
- map.SS = (map.S < 10 ? "0" : "") + map.S;
46
- map.SSS = map.S.toString().padStart(3, 0);
47
- return reg.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g, ($1) => map[$1]);
48
- };
49
- /**
50
- * 解析时间
51
- * @param param0
52
- * @returns
53
- */
54
- function parseTime({ year = 0, month = 0, date = 0, hour = 0, minute = 0, second = 0 }) {
55
- const _format = `${year || "yyyy"}/${month || "MM"}/${date || "dd"} ${hour}:${minute}:${second}`;
56
- return new Date(format(Date.now(), _format)).getTime();
57
- }
58
- /** 当前时间 */
59
- function now() {
60
- return Date.now();
61
- }
62
- ;
63
- exports.default = { now, isToday, format, parseTime, todayZero, oneDay, oneHour, oneMinute, oneSecond };
@@ -1,27 +0,0 @@
1
- /**
2
- * 解析时间
3
- * @param param0
4
- * @returns
5
- */
6
- declare function parseTime({ year, month, date, hour, minute, second }: {
7
- year?: number | undefined;
8
- month?: number | undefined;
9
- date?: number | undefined;
10
- hour?: number | undefined;
11
- minute?: number | undefined;
12
- second?: number | undefined;
13
- }): number;
14
- /** 当前时间 */
15
- declare function now(): number;
16
- declare const _default: {
17
- now: typeof now;
18
- isToday: (date: any) => any;
19
- format: (time: string | number | Date, reg?: string) => string;
20
- parseTime: typeof parseTime;
21
- todayZero: () => number;
22
- oneDay: number;
23
- oneHour: number;
24
- oneMinute: number;
25
- oneSecond: number;
26
- };
27
- export default _default;