ddan-js 1.3.3 → 1.3.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 i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;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:i=0,minute:s=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${i}:${s}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},i="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self;const o=(i||s||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:l}=Object.prototype,c=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":c&&c in Object(e)?function(e){const t=u.call(e,c),r=e[c];let n=!1;try{e[c]=void 0,n=!0}catch(e){}const i=a.call(e);return n&&(t?e[c]=r:delete e[c]),i}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:l},p="[object Function]",y="[object GeneratorFunction]",h="[object AsyncFunction]",g=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 O(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!j(e)}function $(e){return v(e)&&O(e)}function j(e){var t=b(e)?d.getTag(e):"";return t===p||t===y||t===h}var A={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)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:j,isArray:w,isArrayLikeObject:$,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:O,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return $(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 q=NaN,F=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,E=/^0o[0-7]+$/i,P=parseInt,k=1/0,M=17976931348623157e292;function R(e){if("number"==typeof e)return e;if(A.isSymbol(e))return q;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||E.test(e)?P(e.slice(2),t?2:8):x.test(e)?q:+e}function D(e){return e?(e=R(e))===k||e===-k?(e<0?-1:1)*M:e==e?e:0:0===e?e:0}var T={toNumber:R,toFinite:D,toInteger:function(e){var t=D(e),r=t%1;return t==t?r?t-r:t:0}};const _="Expected a function",N=Math.max,I=Math.min;function C(e,t=0,r={}){var n,i,s,o,a,u,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(_);function p(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function y(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(y(e))return g(e);a=setTimeout(h,function(e){var r=t-(e-u);return f?I(r,s-(e-l)):r}(e))}function g(e){return a=void 0,d&&n?p(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=y(r);if(n=arguments,i=this,u=r,s){if(void 0===a)return function(e){return l=e,a=setTimeout(h,t),c?p(e):o}(u);if(f)return a=setTimeout(h,t),p(u)}return void 0===a&&(a=setTimeout(h,t)),o}return t=T.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?N(T.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=u=i=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class V{source;constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new V(e).run(),debounce:C,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),C(e,t,{leading:n,maxWait:t,trailing:i})}};var U={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let i="";for(let t=0;t<e;t++)i+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+i:i}};function L(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,B=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),H=Math.max;function Y(e,t){var r=A.isArray(e)||A.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,i=!!n;for(var s in e)!t&&!d.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}const G=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]=G(e[r]));return t};var K={...A,...d,includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?Y(e):function(e){if(!A.isPrototype(e))return B(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 i=e.length;return r<0&&(r=H(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,L,r);for(var n=r-1,i=e.length;++n<i;)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:G};class Q{_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 X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],a=re(i),u=re(o);if(i!==o)if(a===te&&u===a&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(a===ee&&u===a&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return z.run(se(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,i)=>({...e,[`${r}[${t+i}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e)))};function ae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ue=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),a=c.substr(f+1)):(n=c,a=""),u=decodeURIComponent(n),l=decodeURIComponent(a),ae(s,u)&&i?Array.isArray(s[u])?s[u].push(l):s[u]=[s[u],l]:s[u]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ue,decode:ue,stringify:ce,encode:ce,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 de=/%[sdj%]/g;let pe=()=>{};function ye(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 he(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(de,(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 ge(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 me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<i?t(e[a],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(pe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,ye(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),u++,u===a)return n(l),l.length?c(new be(l,ye(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(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],(i=r)&&void 0!==i.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 i}}function Oe(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 $e=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ge(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let je;const Ae=/^(([^<>()\[\]\\.,;:\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,}))$/,qe=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.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&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ae),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(je)return je;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}",i=`\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(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${i}$`),u=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${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)}${i}${t(e)}`,"g");const l=u.v4().source,c=u.v6().source;return je=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[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"),je})()),hex:e=>"string"==typeof e&&!!e.match(qe)},xe="enum";var Se={required:$e,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void $e(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?c="number":d?c="string":p&&(c="array"),!c)return!1;p&&(l=t.length),d&&(l=t.replace(u,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ee=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ge(t,s)||Se.type(e,t,n,o,i)}r(o)};var Pe={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ge(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),ge(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ge(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ge(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:Ee,hex:Ee,email:Ee,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function ke(){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 Me=ke();class Re{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Pe[e]=t};static warning=pe;static messages=Me;static validators=Pe;rules={};_messages=Me;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=Oe(ke(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=ke()),Oe(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n={...n}),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:{...s},s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const a={};return ve(o,i,((e,t)=>{const r=e.rule;let s,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 l(s=[]){let l=Array.isArray(s)?s:[s];!0===i.suppressWarning&&l.length&&Re.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let c=l.map(we(r,n));if(i.first&&c.length)return a[r.field]=1,t(c);if(o){if(r.required&&!e.value)return void 0!==r.message?c=[].concat(r.message).map(we(r,n)):i.error&&(c=[i.error(r,he(i.messages.required,r.field))]),t(c);let s={};r.defaultField&&Object.keys(e.value).map((e=>{s[e]=r.defaultField})),s={...s,...e.rule.fields};const o={};Object.keys(s).forEach((e=>{const t=s[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Re(o);a.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),a.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)s=r.asyncValidator(r,e.value,l,e.source,i);else if(r.validator){try{s=r.validator(r,e.value,l,e.source,i)}catch(e){console.error?.(e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===s?l():!1===s?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):s instanceof Array?l(s):s instanceof Error&&l(s.message)}s&&s.then&&s.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=ye(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(he("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]?Pe.required:Pe[this.getType(e)]||void 0}}function De(e){return new Re(e)}var Te={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:De,validate:function(e,t,r={},n=(()=>{})){return z.run(De(e).validate(t,r,n))}};const _e=e=>{const t=new Ne(e.key||"",e.fields);return Object.assign(t,e||{})};class Ne{key;storage=localStorage;fields=[];constructor(e,t){this.key=e,this.fields=t||[]}save(e){this.key&&this.storage&&this.storage?.setItem(this.key,JSON.stringify(e))}read(){if(!this.key||!this.storage)return;const e=this.storage?.getItem(this.key);try{return JSON.parse(e)}catch(t){return e}}}class Ie extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={},this.on("__change__",((e,t,r)=>e?.change(e,t,r)))}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await z.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}change=(e,t,r)=>{if(!e.persist)return;const n=e.persist.fields||[];if(!n.includes(t))return;const i=K.copy(e,n);e.persist.save(i)}}var Ce={gbk:e,time:n,hook:z,math:U,util:K,list:X,mini:oe,url:fe,rule:Te,event:Q,store:Ie,storeRef:(e,t)=>{const r=t?_e(t):void 0,n=Object.assign(new Ie,e||{},r?{persist:r}:{}),i=n.persist?.read()||{},s=Object.assign(n,i);return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(K.isFunction(i)&&!i(e,r))return!0;const s=Reflect.set(e,t,r,n);return s&&(e.emit(t.toString(),r),e.emit("__change__",e,t,r)),s},has:(e,t)=>Reflect.has(e,t)})},persist:Ne,storePersist:_e};export{Ce 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 i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;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:i=0,minute:s=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${i}:${s}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},i="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self;const o=(i||s||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:l}=Object.prototype,c=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":c&&c in Object(e)?function(e){const t=u.call(e,c),r=e[c];let n=!1;try{e[c]=void 0,n=!0}catch(e){}const i=a.call(e);return n&&(t?e[c]=r:delete e[c]),i}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:l},p="[object Function]",y="[object GeneratorFunction]",h="[object AsyncFunction]",g=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 O(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!j(e)}function $(e){return v(e)&&O(e)}function j(e){var t=b(e)?d.getTag(e):"";return t===p||t===y||t===h}var A={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)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:j,isArray:w,isArrayLikeObject:$,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:O,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return $(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 q=NaN,F=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,E=/^0o[0-7]+$/i,P=parseInt,k=1/0,M=17976931348623157e292;function R(e){if("number"==typeof e)return e;if(A.isSymbol(e))return q;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||E.test(e)?P(e.slice(2),t?2:8):x.test(e)?q:+e}function D(e){return e?(e=R(e))===k||e===-k?(e<0?-1:1)*M:e==e?e:0:0===e?e:0}var T={toNumber:R,toFinite:D,toInteger:function(e){var t=D(e),r=t%1;return t==t?r?t-r:t:0}};const _="Expected a function",N=Math.max,I=Math.min;function C(e,t=0,r={}){var n,i,s,o,a,u,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(_);function p(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function y(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(y(e))return g(e);a=setTimeout(h,function(e){var r=t-(e-u);return f?I(r,s-(e-l)):r}(e))}function g(e){return a=void 0,d&&n?p(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=y(r);if(n=arguments,i=this,u=r,s){if(void 0===a)return function(e){return l=e,a=setTimeout(h,t),c?p(e):o}(u);if(f)return a=setTimeout(h,t),p(u)}return void 0===a&&(a=setTimeout(h,t)),o}return t=T.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?N(T.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=u=i=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class V{source;constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new V(e).run(),debounce:C,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),C(e,t,{leading:n,maxWait:t,trailing:i})}};var U={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let i="";for(let t=0;t<e;t++)i+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+i:i}};function L(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,B=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),H=Math.max;function Y(e,t){var r=A.isArray(e)||A.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,i=!!n;for(var s in e)!t&&!d.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}const G=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]=G(e[r]));return t};var K={...A,...d,includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?Y(e):function(e){if(!A.isPrototype(e))return B(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 i=e.length;return r<0&&(r=H(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,L,r);for(var n=r-1,i=e.length;++n<i;)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:G};class Q{_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 X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],a=re(i),u=re(o);if(i!==o)if(a===te&&u===a&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(a===ee&&u===a&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return z.run(se(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,i)=>({...e,[`${r}[${t+i}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e)))};function ae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ue=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),a=c.substr(f+1)):(n=c,a=""),u=decodeURIComponent(n),l=decodeURIComponent(a),ae(s,u)&&i?Array.isArray(s[u])?s[u].push(l):s[u]=[s[u],l]:s[u]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ue,decode:ue,stringify:ce,encode:ce,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 de=/%[sdj%]/g;let pe=()=>{};function ye(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 he(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(de,(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 ge(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 me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<i?t(e[a],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(pe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,ye(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),u++,u===a)return n(l),l.length?c(new be(l,ye(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(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],(i=r)&&void 0!==i.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 i}}function Oe(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 $e=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ge(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let je;const Ae=/^(([^<>()\[\]\\.,;:\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,}))$/,qe=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.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&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ae),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(je)return je;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}",i=`\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(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${i}$`),u=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${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)}${i}${t(e)}`,"g");const l=u.v4().source,c=u.v6().source;return je=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[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"),je})()),hex:e=>"string"==typeof e&&!!e.match(qe)},xe="enum";var Se={required:$e,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void $e(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?c="number":d?c="string":p&&(c="array"),!c)return!1;p&&(l=t.length),d&&(l=t.replace(u,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ee=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ge(t,s)||Se.type(e,t,n,o,i)}r(o)};var Pe={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ge(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),ge(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ge(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ge(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:Ee,hex:Ee,email:Ee,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function ke(){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 Me=ke();class Re{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Pe[e]=t};static warning=pe;static messages=Me;static validators=Pe;rules={};_messages=Me;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=Oe(ke(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=ke()),Oe(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n={...n}),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:{...s},s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const a={};return ve(o,i,((e,t)=>{const r=e.rule;let s,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 l(s=[]){let l=Array.isArray(s)?s:[s];!0===i.suppressWarning&&l.length&&Re.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let c=l.map(we(r,n));if(i.first&&c.length)return a[r.field]=1,t(c);if(o){if(r.required&&!e.value)return void 0!==r.message?c=[].concat(r.message).map(we(r,n)):i.error&&(c=[i.error(r,he(i.messages.required,r.field))]),t(c);let s={};r.defaultField&&Object.keys(e.value).map((e=>{s[e]=r.defaultField})),s={...s,...e.rule.fields};const o={};Object.keys(s).forEach((e=>{const t=s[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Re(o);a.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),a.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)s=r.asyncValidator(r,e.value,l,e.source,i);else if(r.validator){try{s=r.validator(r,e.value,l,e.source,i)}catch(e){console.error?.(e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===s?l():!1===s?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):s instanceof Array?l(s):s instanceof Error&&l(s.message)}s&&s.then&&s.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=ye(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(he("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]?Pe.required:Pe[this.getType(e)]||void 0}}function De(e){return new Re(e)}var Te={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:De,validate:function(e,t,r={},n=(()=>{})){return z.run(De(e).validate(t,r,n))}};const _e=e=>{const t=new Ne(e.key||"",e.fields);return Object.assign(t,e||{})};class Ne{key;storage;fields=[];constructor(e,t){this.key=e,this.fields=t||[]}save(e){this.key&&this.storage&&this.storage?.setItem(this.key,JSON.stringify(e))}read(){if(!this.key||!this.storage)return;const e=this.storage?.getItem(this.key);try{return JSON.parse(e)}catch(t){return e}}}class Ie extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={},this.on("__change__",((e,t,r)=>e?.change(e,t,r)))}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await z.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}change=(e,t,r)=>{if(!e.persist)return;const n=e.persist.fields||[];if(!n.includes(t))return;const i=K.copy(e,n);e.persist.save(i)}}var Ce={gbk:e,time:n,hook:z,math:U,util:K,list:X,mini:oe,url:fe,rule:Te,event:Q,store:Ie,storeRef:(e,t)=>{const r=t?_e(t):void 0,n=Object.assign(new Ie,e||{},r?{persist:r}:{}),i=n.persist?.read()||{},s=Object.assign(n,i);return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(K.isFunction(i)&&!i(e,r))return!0;const s=Reflect.set(e,t,r,n);return s&&(e.emit(t.toString(),r),e.emit("__change__",e,t,r)),s},has:(e,t)=>Reflect.has(e,t)})},persist:Ne,storePersist:_e};export{Ce 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 i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;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:i=0,minute:s=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${i}:${s}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},i="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self;const o=(i||s||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:l}=Object.prototype,c=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":c&&c in Object(e)?function(e){const t=u.call(e,c),r=e[c];let n=!1;try{e[c]=void 0,n=!0}catch(e){}const i=a.call(e);return n&&(t?e[c]=r:delete e[c]),i}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:l},p="[object Function]",y="[object GeneratorFunction]",h="[object AsyncFunction]",g=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 O(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!j(e)}function $(e){return v(e)&&O(e)}function j(e){var t=b(e)?d.getTag(e):"";return t===p||t===y||t===h}var A={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)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:j,isArray:w,isArrayLikeObject:$,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:O,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return $(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 q=NaN,F=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,E=/^0o[0-7]+$/i,P=parseInt,k=1/0,M=17976931348623157e292;function R(e){if("number"==typeof e)return e;if(A.isSymbol(e))return q;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||E.test(e)?P(e.slice(2),t?2:8):x.test(e)?q:+e}function T(e){return e?(e=R(e))===k||e===-k?(e<0?-1:1)*M:e==e?e:0:0===e?e:0}var D={toNumber:R,toFinite:T,toInteger:function(e){var t=T(e),r=t%1;return t==t?r?t-r:t:0}};const _="Expected a function",N=Math.max,I=Math.min;function C(e,t=0,r={}){var n,i,s,o,a,u,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(_);function p(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function y(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(y(e))return g(e);a=setTimeout(h,function(e){var r=t-(e-u);return f?I(r,s-(e-l)):r}(e))}function g(e){return a=void 0,d&&n?p(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=y(r);if(n=arguments,i=this,u=r,s){if(void 0===a)return function(e){return l=e,a=setTimeout(h,t),c?p(e):o}(u);if(f)return a=setTimeout(h,t),p(u)}return void 0===a&&(a=setTimeout(h,t)),o}return t=D.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?N(D.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=u=i=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class V{source;constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new V(e).run(),debounce:C,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),C(e,t,{leading:n,maxWait:t,trailing:i})}};var U={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let i="";for(let t=0;t<e;t++)i+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+i:i}};function L(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,B=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),H=Math.max;function Y(e,t){var r=A.isArray(e)||A.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,i=!!n;for(var s in e)!t&&!d.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}const G=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]=G(e[r]));return t};var K={...A,...d,includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?Y(e):function(e){if(!A.isPrototype(e))return B(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?D.toInteger(r):0;var i=e.length;return r<0&&(r=H(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,L,r);for(var n=r-1,i=e.length;++n<i;)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:G};class Q{_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 X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],a=re(i),u=re(o);if(i!==o)if(a===te&&u===a&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(a===ee&&u===a&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return z.run(se(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,i)=>({...e,[`${r}[${t+i}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e)))};function ae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ue=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),a=c.substr(f+1)):(n=c,a=""),u=decodeURIComponent(n),l=decodeURIComponent(a),ae(s,u)&&i?Array.isArray(s[u])?s[u].push(l):s[u]=[s[u],l]:s[u]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ue,decode:ue,stringify:ce,encode:ce,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 de=/%[sdj%]/g;let pe=()=>{};function ye(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 he(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(de,(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 ge(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 me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<i?t(e[a],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(pe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,ye(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),u++,u===a)return n(l),l.length?c(new be(l,ye(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(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],(i=r)&&void 0!==i.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 i}}function Oe(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 $e=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ge(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let je;const Ae=/^(([^<>()\[\]\\.,;:\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,}))$/,qe=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.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&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ae),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(je)return je;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}",i=`\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(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${i}$`),u=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${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)}${i}${t(e)}`,"g");const l=u.v4().source,c=u.v6().source;return je=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[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"),je})()),hex:e=>"string"==typeof e&&!!e.match(qe)},xe="enum";var Se={required:$e,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void $e(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?c="number":d?c="string":p&&(c="array"),!c)return!1;p&&(l=t.length),d&&(l=t.replace(u,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ee=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ge(t,s)||Se.type(e,t,n,o,i)}r(o)};var Pe={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ge(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),ge(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ge(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ge(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:Ee,hex:Ee,email:Ee,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function ke(){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 Me=ke();class Re{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Pe[e]=t};static warning=pe;static messages=Me;static validators=Pe;rules={};_messages=Me;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=Oe(ke(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=ke()),Oe(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n={...n}),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:{...s},s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const a={};return ve(o,i,((e,t)=>{const r=e.rule;let s,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 l(s=[]){let l=Array.isArray(s)?s:[s];!0===i.suppressWarning&&l.length&&Re.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let c=l.map(we(r,n));if(i.first&&c.length)return a[r.field]=1,t(c);if(o){if(r.required&&!e.value)return void 0!==r.message?c=[].concat(r.message).map(we(r,n)):i.error&&(c=[i.error(r,he(i.messages.required,r.field))]),t(c);let s={};r.defaultField&&Object.keys(e.value).map((e=>{s[e]=r.defaultField})),s={...s,...e.rule.fields};const o={};Object.keys(s).forEach((e=>{const t=s[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Re(o);a.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),a.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)s=r.asyncValidator(r,e.value,l,e.source,i);else if(r.validator){try{s=r.validator(r,e.value,l,e.source,i)}catch(e){console.error?.(e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===s?l():!1===s?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):s instanceof Array?l(s):s instanceof Error&&l(s.message)}s&&s.then&&s.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=ye(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(he("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]?Pe.required:Pe[this.getType(e)]||void 0}}function Te(e){return new Re(e)}var De={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:Te,validate:function(e,t,r={},n=(()=>{})){return z.run(Te(e).validate(t,r,n))}};const _e=e=>{const t=new Ne(e.key||"",e.fields);return Object.assign(t,e||{})};class Ne{key;storage=localStorage;fields=[];constructor(e,t){this.key=e,this.fields=t||[]}save(e){this.key&&this.storage&&this.storage?.setItem(this.key,JSON.stringify(e))}read(){if(!this.key||!this.storage)return;const e=this.storage?.getItem(this.key);try{return JSON.parse(e)}catch(t){return e}}}class Ie extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={},this.on("__change__",((e,t,r)=>e?.change(e,t,r)))}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await z.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}change=(e,t,r)=>{if(!e.persist)return;const n=e.persist.fields||[];if(!n.includes(t))return;const i=K.copy(e,n);e.persist.save(i)}}return{gbk:e,time:n,hook:z,math:U,util:K,list:X,mini:oe,url:fe,rule:De,event:Q,store:Ie,storeRef:(e,t)=>{const r=t?_e(t):void 0,n=Object.assign(new Ie,e||{},r?{persist:r}:{}),i=n.persist?.read()||{},s=Object.assign(n,i);return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(K.isFunction(i)&&!i(e,r))return!0;const s=Reflect.set(e,t,r,n);return s&&(e.emit(t.toString(),r),e.emit("__change__",e,t,r)),s},has:(e,t)=>Reflect.has(e,t)})},persist:Ne,storePersist:_e}}));
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 i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;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:i=0,minute:s=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${i}:${s}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},i="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self;const o=(i||s||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:l}=Object.prototype,c=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":c&&c in Object(e)?function(e){const t=u.call(e,c),r=e[c];let n=!1;try{e[c]=void 0,n=!0}catch(e){}const i=a.call(e);return n&&(t?e[c]=r:delete e[c]),i}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:l},p="[object Function]",y="[object GeneratorFunction]",h="[object AsyncFunction]",g=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 O(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!j(e)}function $(e){return v(e)&&O(e)}function j(e){var t=b(e)?d.getTag(e):"";return t===p||t===y||t===h}var A={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)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:j,isArray:w,isArrayLikeObject:$,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:O,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return $(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 q=NaN,F=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,E=/^0o[0-7]+$/i,P=parseInt,k=1/0,M=17976931348623157e292;function R(e){if("number"==typeof e)return e;if(A.isSymbol(e))return q;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||E.test(e)?P(e.slice(2),t?2:8):x.test(e)?q:+e}function T(e){return e?(e=R(e))===k||e===-k?(e<0?-1:1)*M:e==e?e:0:0===e?e:0}var D={toNumber:R,toFinite:T,toInteger:function(e){var t=T(e),r=t%1;return t==t?r?t-r:t:0}};const _="Expected a function",N=Math.max,I=Math.min;function C(e,t=0,r={}){var n,i,s,o,a,u,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(_);function p(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function y(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(y(e))return g(e);a=setTimeout(h,function(e){var r=t-(e-u);return f?I(r,s-(e-l)):r}(e))}function g(e){return a=void 0,d&&n?p(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=y(r);if(n=arguments,i=this,u=r,s){if(void 0===a)return function(e){return l=e,a=setTimeout(h,t),c?p(e):o}(u);if(f)return a=setTimeout(h,t),p(u)}return void 0===a&&(a=setTimeout(h,t)),o}return t=D.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?N(D.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=u=i=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class V{source;constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new V(e).run(),debounce:C,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),C(e,t,{leading:n,maxWait:t,trailing:i})}};var U={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let i="";for(let t=0;t<e;t++)i+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+i:i}};function L(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,B=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),H=Math.max;function Y(e,t){var r=A.isArray(e)||A.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,i=!!n;for(var s in e)!t&&!d.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}const G=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]=G(e[r]));return t};var K={...A,...d,includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?Y(e):function(e){if(!A.isPrototype(e))return B(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?D.toInteger(r):0;var i=e.length;return r<0&&(r=H(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,L,r);for(var n=r-1,i=e.length;++n<i;)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:G};class Q{_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 X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],a=re(i),u=re(o);if(i!==o)if(a===te&&u===a&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(a===ee&&u===a&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return z.run(se(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,i)=>({...e,[`${r}[${t+i}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e)))};function ae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ue=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),a=c.substr(f+1)):(n=c,a=""),u=decodeURIComponent(n),l=decodeURIComponent(a),ae(s,u)&&i?Array.isArray(s[u])?s[u].push(l):s[u]=[s[u],l]:s[u]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ue,decode:ue,stringify:ce,encode:ce,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 de=/%[sdj%]/g;let pe=()=>{};function ye(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 he(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(de,(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 ge(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 me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<i?t(e[a],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(pe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,ye(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),u++,u===a)return n(l),l.length?c(new be(l,ye(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(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],(i=r)&&void 0!==i.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 i}}function Oe(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 $e=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ge(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let je;const Ae=/^(([^<>()\[\]\\.,;:\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,}))$/,qe=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.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&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ae),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(je)return je;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}",i=`\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(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${i}$`),u=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${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)}${i}${t(e)}`,"g");const l=u.v4().source,c=u.v6().source;return je=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[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"),je})()),hex:e=>"string"==typeof e&&!!e.match(qe)},xe="enum";var Se={required:$e,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void $e(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?c="number":d?c="string":p&&(c="array"),!c)return!1;p&&(l=t.length),d&&(l=t.replace(u,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ee=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ge(t,s)||Se.type(e,t,n,o,i)}r(o)};var Pe={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ge(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),ge(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ge(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ge(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:Ee,hex:Ee,email:Ee,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function ke(){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 Me=ke();class Re{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Pe[e]=t};static warning=pe;static messages=Me;static validators=Pe;rules={};_messages=Me;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=Oe(ke(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=ke()),Oe(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n={...n}),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:{...s},s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const a={};return ve(o,i,((e,t)=>{const r=e.rule;let s,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 l(s=[]){let l=Array.isArray(s)?s:[s];!0===i.suppressWarning&&l.length&&Re.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let c=l.map(we(r,n));if(i.first&&c.length)return a[r.field]=1,t(c);if(o){if(r.required&&!e.value)return void 0!==r.message?c=[].concat(r.message).map(we(r,n)):i.error&&(c=[i.error(r,he(i.messages.required,r.field))]),t(c);let s={};r.defaultField&&Object.keys(e.value).map((e=>{s[e]=r.defaultField})),s={...s,...e.rule.fields};const o={};Object.keys(s).forEach((e=>{const t=s[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Re(o);a.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),a.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)s=r.asyncValidator(r,e.value,l,e.source,i);else if(r.validator){try{s=r.validator(r,e.value,l,e.source,i)}catch(e){console.error?.(e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===s?l():!1===s?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):s instanceof Array?l(s):s instanceof Error&&l(s.message)}s&&s.then&&s.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=ye(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(he("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]?Pe.required:Pe[this.getType(e)]||void 0}}function Te(e){return new Re(e)}var De={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:Te,validate:function(e,t,r={},n=(()=>{})){return z.run(Te(e).validate(t,r,n))}};const _e=e=>{const t=new Ne(e.key||"",e.fields);return Object.assign(t,e||{})};class Ne{key;storage;fields=[];constructor(e,t){this.key=e,this.fields=t||[]}save(e){this.key&&this.storage&&this.storage?.setItem(this.key,JSON.stringify(e))}read(){if(!this.key||!this.storage)return;const e=this.storage?.getItem(this.key);try{return JSON.parse(e)}catch(t){return e}}}class Ie extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={},this.on("__change__",((e,t,r)=>e?.change(e,t,r)))}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await z.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}change=(e,t,r)=>{if(!e.persist)return;const n=e.persist.fields||[];if(!n.includes(t))return;const i=K.copy(e,n);e.persist.save(i)}}return{gbk:e,time:n,hook:z,math:U,util:K,list:X,mini:oe,url:fe,rule:De,event:Q,store:Ie,storeRef:(e,t)=>{const r=t?_e(t):void 0,n=Object.assign(new Ie,e||{},r?{persist:r}:{}),i=n.persist?.read()||{},s=Object.assign(n,i);return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(K.isFunction(i)&&!i(e,r))return!0;const s=Reflect.set(e,t,r,n);return s&&(e.emit(t.toString(),r),e.emit("__change__",e,t,r)),s},has:(e,t)=>Reflect.has(e,t)})},persist:Ne,storePersist:_e}}));
@@ -8,7 +8,7 @@ const storePersist = (param) => {
8
8
  exports.storePersist = storePersist;
9
9
  class DPersist {
10
10
  key;
11
- storage = localStorage;
11
+ storage;
12
12
  fields = [];
13
13
  constructor(key, fields) {
14
14
  this.key = key;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ddan-js",
3
- "version": "1.3.3",
3
+ "version": "1.3.4",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "bin/ddan-js.js",