ddan-js 3.6.6 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,41 @@
1
+ type ElementObserverCallbacks = {
2
+ onAppear?: (el: Element) => void;
3
+ onDisappear?: (el: Element) => void;
4
+ onClick?: (el: Element, ev: MouseEvent) => void;
5
+ };
6
+ type ObserveOptions = {
7
+ root?: Element;
8
+ childList?: boolean;
9
+ subtree?: boolean;
10
+ };
11
+ export declare class ElementObserver {
12
+ private callbacks;
13
+ private selector;
14
+ private observer;
15
+ private elementsSeen;
16
+ private clickHandlers;
17
+ private isObserving;
18
+ private root;
19
+ constructor(callbacks?: ElementObserverCallbacks);
20
+ /** 初始化 MutationObserver */
21
+ private initObserver;
22
+ private collectAdded;
23
+ private collectRemoved;
24
+ /** 触发回调 */
25
+ private triggerCallback;
26
+ /** 点击事件绑定 */
27
+ private bindClick;
28
+ /** 点击事件解绑 */
29
+ private unbindClick;
30
+ /** 开始观察 */
31
+ observe(selector: string, options?: ObserveOptions): void;
32
+ /** 动态修改 selector */
33
+ updateObserver(selector?: string): boolean;
34
+ /** 停止观察 */
35
+ disconnect(): void;
36
+ /** 更新回调函数 */
37
+ updateCallbacks(callbacks: ElementObserverCallbacks): void;
38
+ /** 销毁实例 */
39
+ destroy(): void;
40
+ }
41
+ export {};
@@ -1,3 +1,4 @@
1
+ import { ElementObserver } from "./elementObserver";
1
2
  declare const _default: {
2
3
  dataURLtoFile: (dataurl: any, filename: any) => File;
3
4
  dataURLtoBlob: (dataurl: any) => Blob;
@@ -33,5 +34,14 @@ declare const _default: {
33
34
  width: number;
34
35
  height: number;
35
36
  }>;
37
+ ElementObserver: typeof ElementObserver;
38
+ watchTextChange: (element: HTMLElement, callback: (newText: string, oldText: string) => void) => (() => void) | undefined;
39
+ watchAttrChange: typeof import("./watch").watchAttrChange;
40
+ watchElementChange: (element: Element | null, options?: {
41
+ onText?: ((newText: string, oldText: string) => void) | undefined;
42
+ onAttr?: ((name: string, newValue: string | null, oldValue: string | null) => void) | undefined;
43
+ attrFilter?: string[] | null | undefined;
44
+ } | undefined) => (() => void) | undefined;
45
+ waitForElement: (selector: string, timeout?: number) => Promise<Element | null>;
36
46
  };
37
47
  export default _default;
@@ -0,0 +1,28 @@
1
+ /**
2
+ *
3
+ * @param element
4
+ * @param callback
5
+ * @returns
6
+ */
7
+ declare function watchTextChange(element: HTMLElement, callback: (newText: string, oldText: string) => void): (() => void) | undefined;
8
+ /**
9
+ *
10
+ * @param element
11
+ * @param callback
12
+ * @param attrs
13
+ * @returns
14
+ */
15
+ export declare function watchAttrChange(element: HTMLElement | null | undefined, callback: (attrName: string, newValue: string | null, oldValue: string | null) => void, attrs?: string[]): (() => void) | undefined;
16
+ declare function watchElementChange(element: Element | null, options?: {
17
+ onText?: (newText: string, oldText: string) => void;
18
+ onAttr?: (name: string, newValue: string | null, oldValue: string | null) => void;
19
+ attrFilter?: string[] | null;
20
+ }): (() => void) | undefined;
21
+ declare function waitForElement(selector: string, timeout?: number): Promise<Element | null>;
22
+ declare const _default: {
23
+ watchTextChange: typeof watchTextChange;
24
+ watchAttrChange: typeof watchAttrChange;
25
+ watchElementChange: typeof watchElementChange;
26
+ waitForElement: typeof waitForElement;
27
+ };
28
+ export default _default;
@@ -63,7 +63,11 @@ declare const _default: {
63
63
  query: string;
64
64
  params: {};
65
65
  };
66
- isPrivateIP: (addr: string) => boolean;
67
66
  isIP: (addr: string) => boolean;
67
+ isIPv4: (addr: string) => boolean;
68
+ isIPv6: (addr: string) => boolean;
69
+ isPrivateIP: (addr: string) => boolean;
70
+ isPrivateIPv4: (addr: string) => boolean;
71
+ isPrivateIPv6: (addr: string) => boolean;
68
72
  };
69
73
  export default _default;
@@ -56,8 +56,12 @@ declare const dHook: {
56
56
  query: string;
57
57
  params: {};
58
58
  };
59
- isPrivateIP: (addr: string) => boolean;
60
59
  isIP: (addr: string) => boolean;
60
+ isIPv4: (addr: string) => boolean;
61
+ isIPv6: (addr: string) => boolean;
62
+ isPrivateIP: (addr: string) => boolean;
63
+ isPrivateIPv4: (addr: string) => boolean;
64
+ isPrivateIPv6: (addr: string) => boolean;
61
65
  };
62
66
  ali: {
63
67
  urlAuthA: (uri: string, exp?: number, key?: string) => string;
@@ -75,8 +75,12 @@ declare const dMini: {
75
75
  query: string;
76
76
  params: {};
77
77
  };
78
- isPrivateIP: (addr: string) => boolean;
79
78
  isIP: (addr: string) => boolean;
79
+ isIPv4: (addr: string) => boolean;
80
+ isIPv6: (addr: string) => boolean;
81
+ isPrivateIP: (addr: string) => boolean;
82
+ isPrivateIPv4: (addr: string) => boolean;
83
+ isPrivateIPv6: (addr: string) => boolean;
80
84
  };
81
85
  icon: import("../class/icon").DIcon;
82
86
  html: {
@@ -114,6 +118,15 @@ declare const dMini: {
114
118
  width: number;
115
119
  height: number;
116
120
  }>;
121
+ ElementObserver: typeof import("../modules/html/elementObserver").ElementObserver;
122
+ watchTextChange: (element: HTMLElement, callback: (newText: string, oldText: string) => void) => (() => void) | undefined;
123
+ watchAttrChange: typeof import("../modules/html/watch").watchAttrChange;
124
+ watchElementChange: (element: Element | null, options?: {
125
+ onText?: ((newText: string, oldText: string) => void) | undefined;
126
+ onAttr?: ((name: string, newValue: string | null, oldValue: string | null) => void) | undefined;
127
+ attrFilter?: string[] | null | undefined;
128
+ } | undefined) => (() => void) | undefined;
129
+ waitForElement: (selector: string, timeout?: number) => Promise<Element | null>;
117
130
  };
118
131
  };
119
132
  export default dMini;
package/bin/tiny/web.d.ts CHANGED
@@ -107,8 +107,12 @@ declare const dWeb: {
107
107
  query: string;
108
108
  params: {};
109
109
  };
110
- isPrivateIP: (addr: string) => boolean;
111
110
  isIP: (addr: string) => boolean;
111
+ isIPv4: (addr: string) => boolean;
112
+ isIPv6: (addr: string) => boolean;
113
+ isPrivateIP: (addr: string) => boolean;
114
+ isPrivateIPv4: (addr: string) => boolean;
115
+ isPrivateIPv6: (addr: string) => boolean;
112
116
  };
113
117
  icon: import("../class/icon").DIcon;
114
118
  html: {
@@ -146,6 +150,15 @@ declare const dWeb: {
146
150
  width: number;
147
151
  height: number;
148
152
  }>;
153
+ ElementObserver: typeof import("../modules/html/elementObserver").ElementObserver;
154
+ watchTextChange: (element: HTMLElement, callback: (newText: string, oldText: string) => void) => (() => void) | undefined;
155
+ watchAttrChange: typeof import("../modules/html/watch").watchAttrChange;
156
+ watchElementChange: (element: Element | null, options?: {
157
+ onText?: ((newText: string, oldText: string) => void) | undefined;
158
+ onAttr?: ((name: string, newValue: string | null, oldValue: string | null) => void) | undefined;
159
+ attrFilter?: string[] | null | undefined;
160
+ } | undefined) => (() => void) | undefined;
161
+ waitForElement: (selector: string, timeout?: number) => Promise<Element | null>;
149
162
  };
150
163
  rsa: {
151
164
  generateKeys: () => Promise<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ddan-js",
3
- "version": "3.6.6",
3
+ "version": "3.8.0",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "ddan-js",
@@ -19,14 +19,17 @@
19
19
  ],
20
20
  "main": "bin/ddan-js.js",
21
21
  "module": "bin/ddan-js.mjs",
22
- "browser": "bin/ddan-js.browser.js",
22
+ "browser": "bin/ddan-browser.js",
23
23
  "types": "bin/index.d.ts",
24
24
  "exports": {
25
25
  ".": {
26
26
  "types": "./bin/index.d.ts",
27
27
  "import": "./bin/ddan-js.mjs",
28
28
  "require": "./bin/ddan-js.js",
29
- "browser": "./bin/ddan-js.browser.js"
29
+ "browser": {
30
+ "import": "./bin/ddan-browser.mjs",
31
+ "require": "./bin/ddan-browser.js"
32
+ }
30
33
  },
31
34
  "./upload": {
32
35
  "types": "./bin/upload.d.ts",
@@ -1 +0,0 @@
1
- import e from"crypto";const t="0123456789",r="abcdefghijklmnopqrstuvwxyz",n="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var s={keyNumber:t,keyLower:r,keyUpper:n,keyChars:t+r+n};const i=(e=0,t=0)=>e?c(e,"lower",t):a("lower",t),o=(e=0)=>c(32,"lower",e),a=(e="lower",t=0)=>{const r=s.keyChars.split(""),n=[];let i,o;for(t=t||r.length,n[8]=n[13]=n[18]=n[23]="-",n[14]="4",i=0;i<36;i++)n[i]||(o=0|16*Math.random(),n[i]=r[19==i?3&o|8:o]);const a=n.join("");return"upper"===e?a.toUpperCase():a.toLowerCase()},c=(e=32,t="mixin",r=0)=>{const n=s.keyChars.split(""),i=[];let o;for(r=r||n.length,o=0;o<e;o++)i[o]=n[0|Math.random()*r];const a=i.join("");return"lower"===t?a.toLowerCase():"upper"===t?a.toUpperCase():a};class l{__map;__tagList;__eventId="";constructor(){this.__map=new Map,this.__tagList=[],this.__eventId=i()}clear(){return this.__map.clear(),this}on(e,t,r=""){if(!e||!t)return this;let n=this.__map.get(e);return n||(n=new Set,this.__map.set(e,n)),n.add(t),r&&this.__tagList.push({name:e,listener:t,tag:r}),this}emit(e,...t){if(!e)return this;const r=this.__map.get(e);if(!r)return this;return[...r].forEach((e=>e&&e(...t))),this}off(e,t){if(!e||!t)return this;this.__tagList=this.__tagList.filter((r=>r.name!==e||r.listener!==t));const r=this.__map.get(e);return r?(r.delete(t),r.size<=0&&this.__map.delete(e),this):this}remove(e){return e?(this.__tagList=this.__tagList.filter((t=>t.name!==e)),this.__map.delete(e),this):this}removeByTag(e){if(!e)return this;return this.__tagList.filter((t=>t.tag===e)).forEach((e=>{this.off(e.name,e.listener)})),this.__tagList=this.__tagList.filter((t=>t.tag!==e)),this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this.__map.has(e)}}class u{timestamp=0;_key="";_value;constructor(e,t){this._key=e,this._value=t,this.updateAt()}get key(){return this._key}get value(){return this._value}set(e){this._value=e,this.updateAt()}updateAt(){this.timestamp=Date.now()}clear(){this.set(void 0)}}class f{_map=new Map;constructor(){this._map.clear()}get keys(){return Array.from(this._map.keys())}get values(){return Array.from(this._map.values())}get(e){if(!e)return;const t=this._map.get(e);return t?t.value:void 0}getKV(e){if(e)return this._map.get(e)}set(e,t){if(!e)return;const r=this._map.get(e);r?(r.set(t),this.clean()):this._map.set(e,new u(e,t))}delete(e,t){if(!e)return;const r=this._map.get(e);t&&t(r?.value),this._map.delete(e)}clear(){this._map.clear()}clean(e=100,t){try{if(this._map.size<=e)return;if(this.keys.filter((e=>{if(!this._map.has(e))return!1;const t=this._map.get(e);return!t||!t.value})).forEach((e=>{this._map.delete(e)})),this._map.size<=e)return;const r=this.values.sort(((e,t)=>e.timestamp-t.timestamp)),n=r.length-e;if(n<=0)return;r.splice(0,n).forEach((e=>{this.delete(e.key,t)}))}catch(e){console.log("mapping clean",e)}}}const h="object"==typeof global&&null!==global&&global.Object===Object&&global,d="object"==typeof globalThis&&null!==globalThis&&globalThis.Object===Object&&globalThis,p="object"==typeof self&&null!==self&&self.Object===Object&&self,g=d||h||p||Function("return this")(),y=g.Symbol,{toString:m,hasOwnProperty:w,propertyIsEnumerable:b}=Object.prototype,v=y?y.toStringTag:void 0;function _(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":v&&v in Object(e)?function(e){const t=w.call(e,v),r=e[v];let n=!1;try{e[v]=void 0,n=!0}catch(e){}const s=m.call(e);return n&&(t?e[v]=r:delete e[v]),s}(e):m.call(e)}var A={getTag:_,getType:function(e){return(_(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:m,hasOwnProperty:w,propertyIsEnumerable:b};const x="object"==typeof exports&&null!==exports&&!exports.nodeType&&exports,k=x&&"object"==typeof module&&null!==module&&!module.nodeType&&module,S=k&&k.exports===x&&h.process,$=(()=>{try{const e=k&&k.require&&k.require("util").types;return e||S&&S.binding&&S.binding("util")}catch(e){}})();var j="[object Function]",O="[object GeneratorFunction]",C="[object AsyncFunction]",E=9007199254740991;const q=/^(?:0|[1-9]\d*)$/,T=g?.Buffer?.isBuffer,L=/^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array\]$/,B=$&&$.isTypedArray;function P(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function F(e){return null!=e&&"object"==typeof e}const R=Array.isArray;function M(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=E}(e.length)&&!I(e)}function U(e){return F(e)&&M(e)}function I(e){var t=P(e)?A.getTag(e):"";return t===j||t===O||t===C}function D(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)}function z(e){return U(e)&&A.hasOwnProperty.call(e,"callee")&&(!A.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==A.toString.call(e))}const N="undefined"!=typeof window&&void 0!==window.document,K="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,H=B?e=>B(e):e=>F(e)&&L.test(A.getTag(e)),W="function"==typeof T?T:()=>!1;var V={is:function(e,t){return A.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===A.getTag(e)},isString:function(e){return"string"==typeof e||!R(e)&&F(e)&&"[object String]"==A.getTag(e)},isObject:P,isObjectLike:F,isPlainObject:function(e){if(!F(e)||"[object Object]"!=A.getTag(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},isSymbol:function(e){return"symbol"==typeof e||F(e)&&"[object Symbol]"===A.getTag(e)},isFunction:I,isArray:R,isArrayLikeObject:U,isIndex:function(e,t){return!!(t=null==t?E:t)&&("number"==typeof e||q.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:M,isPrototype:D,isArguments:z,isPromise:function(e){return"[object Promise]"===(P(e)?A.getTag(e):"")},isBrowser:N,isNode:K,isBlobOrBuffer:e=>e instanceof Blob||e instanceof ArrayBuffer,isUint8Array:e=>e instanceof Uint8Array,isArrayBuffer:e=>e instanceof ArrayBuffer,isEmpty:e=>{if(null==e)return!0;if(M(e)&&(Array.isArray(e)||"string"==typeof e||"function"==typeof e.splice||W(e)||H(e)||z(e)))return!e.length;const t=A.getTag(e);if("[object Map]"===t||"[object Set]"===t)return!e.size;if(D(e))return!Object.keys(e).length;for(const t in e)if(A.hasOwnProperty.call(e,t))return!1;return!0},isJSONStr:e=>{try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}}};const Z=NaN,J=/^\s+|\s+$/g,G=/^[-+]0x[0-9a-f]+$/i,Q=/^0b[01]+$/i,Y=/^0o[0-7]+$/i,X=parseInt,ee=1/0,te=17976931348623157e292;function re(e){if("number"==typeof e)return e;if(V.isSymbol(e))return Z;if(V.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=V.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(J,"");const t=Q.test(e);return t||Y.test(e)?X(e.slice(2),t?2:8):G.test(e)?Z:+e}function ne(e){return e?(e=re(e))===ee||e===-ee?(e<0?-1:1)*te:e==e?e:0:0===e?e:0}var se={toNumber:re,toFinite:ne,toInteger:function(e){var t=ne(e),r=t%1;return t==t?r?t-r:t:0}};const ie="Expected a function",oe=Math.max,ae=Math.min;function ce(e,t=300,r={}){let n,s,i,o,a,c,l=0,u=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(ie);function d(t){const r=n,i=s;return n=s=void 0,l=t,o=e.apply(i,r),o}function p(e){const r=e-c;return void 0===c||r>=t||r<0||f&&e-l>=i}function g(){const e=Date.now();if(p(e))return y(e);a=setTimeout(g,function(e){const r=t-(e-c);return f?ae(r,i-(e-l)):r}(e))}function y(e){return a=void 0,h&&n?d(e):(n=s=void 0,o)}function m(...e){const r=Date.now(),i=p(r);if(n=e,s=this,c=r,i){if(void 0===a)return function(e){return l=e,a=setTimeout(g,t),u?d(e):o}(c);if(f)return a=setTimeout(g,t),d(c)}return void 0===a&&(a=setTimeout(g,t)),o}return t=se.toNumber(t)||0,V.isObject(r)&&(u=!!r.leading,f="maxWait"in r,i=f?oe(se.toNumber(r.maxWait)||0,t):i,h="trailing"in r?!!r.trailing:h),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=c=s=a=void 0},m.flush=function(){return void 0===a?o:y(Date.now())},m.pending=function(){return void 0!==a},m}class le{__list=[];constructor(e){this.push(e)}push(e){return e&&this.__list.push(e),this}clear(){return this.__list=[],this}_exec(e,t){let r;if(V.isFunction(e))r=e(t);else{if(V.isPromise(e))return e.then((e=>({...t,...e})));r=e}return V.isPromise(r)?r:Promise.resolve({...r,...t})}run(e){try{return this.__list.reduce(((e,t)=>e.then((e=>this._exec(t,e)))),Promise.resolve(e)).then((e=>[void 0,e])).catch((e=>[e,void 0]))}catch(e){return Promise.reject([e,void 0])}}}async function ue(e,t,r){return e.then((e=>(r&&r(),[null,e]))).catch((e=>(t&&Object.assign(e,t),r&&r(),[e,void 0])))}const fe=(e,t)=>{try{let r;return r=V.isFunction(e)?e():e,ue(Promise.resolve(r),void 0,t)}catch(e){return t&&t(),Promise.resolve([e,void 0])}},he=e=>"string"==typeof(e="function"==typeof e?e():e)?new Error(e):e,de=e=>"function"==typeof e?e():e;var pe={to:ue,go:(e,t)=>fe(e,t),delay:(e=1e3)=>new Promise((t=>setTimeout(t,e))),safeRun:fe,toError:he,timeout:(e,t=0,r="timeout")=>{if(t<=0)return fe(e);let n;function s(){n&&clearTimeout(n)}const i=new Promise((e=>{s(),n=setTimeout((()=>e([he(r||"timeout"),void 0])),t)}));return Promise.race([fe(e,s),i])},getValueIf:(e,t,r)=>{const n="function"==typeof e?e():e;return de(n?t:r)},resolveValue:de};class ge{__value=void 0;set(e){this.__value=e}get(){return this.__value}}var ye={singleton:function(){class e{static __instance__;constructor(){}static get Instance(){return e.__instance__||(e.__instance__=new this),e.__instance__}static get I(){return this.Instance}}return e},getset:function(e){const t=new ge;return void 0!==e&&t.set(e),t},singletonFactory:function(e){class t extends e{static __instance__;constructor(...e){super(...e)}static getInstance(){return t.__instance__||(t.__instance__=new t),t.__instance__}static get I(){return this.getInstance()}}return t}};class me{_func;_callback;constructor(e,t){this._func=e,this._callback=t}async run(){return pe.safeRun(this._func).then((e=>{try{this._callback&&this._callback(e)}catch(e){console.log("[ddan] task",e)}finally{return e}}))}}class we{__list=[];__count=0;__max=1;constructor(e=1){this.__count=0,this.__max=e>0?e:1,this.clear()}push(e,t){const r=new me(e,t);return this.__list.push(r),this._step(),this}async exec(e){return new Promise((t=>{this.push(e,((...e)=>{t(...e)}))}))}clear(){return this.__list=[],this.__count=0,this}_step(){if(this.__list.length<=0)return;if(this.__count>=this.__max)return;const e=this.__list.shift();e?(this.__count+=1,e?.run().finally((()=>{try{this.__count>0&&(this.__count-=1),this._step()}catch(e){console.error("[ddan] pipepine step finally",e)}}))):this._step()}async whenAll(){for(;;){if(this.__count<=0)break;await pe.delay(100),this._step()}return this.clear()}}class be extends(ye.singleton()){__lockedMap=new Map;pipeline=new we;constructor(){super()}lock(e,t){if(!e||!t)return;const r=pe.safeRun(t);return this.__lockedMap.set(e,r),r}unlock(e){e&&this.__lockedMap.has(e)&&this.__lockedMap.delete(e)}async exec(e,t){if(!e||!t)return pe.safeRun(e);const r=this.__lockedMap.get(t);if(r)return r;const n=this.lock(t,e);if(!n)return pe.safeRun(e);const s=await n;return this.unlock(t),s}}var ve={toUtf8:e=>{if(!e)return"";const t=e.replace(/\r\n/g,"\n");let r="";for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r+=String.fromCharCode(n):n>127&&n<2048?(r+=String.fromCharCode(n>>6|192),r+=String.fromCharCode(63&n|128)):(r+=String.fromCharCode(n>>12|224),r+=String.fromCharCode(n>>6&63|128),r+=String.fromCharCode(63&n|128))}return r},fromUtf8:e=>{let t="",r=0;if(!e)return"";let n=0,s=0,i=0;for(;r<e.length;)n=e.charCodeAt(r),n<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),i=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3);return t},toUtf8Bytes:e=>{if(!e)return new Uint8Array;const t=e.replace(/\r\n/g,"\n"),r=[];for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);n<128?r.push(n):n<2048?(r.push(n>>6|192),r.push(63&n|128)):(r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128))}return new Uint8Array(r)},fromUtf8Bytes:e=>{let t="",r=0;if(!e||e.length<=0)return"";for(;r<e.length;){let n=e[r];if(n<128)t+=String.fromCharCode(n),r++;else if(n>191&&n<224){const s=e[r+1];t+=String.fromCharCode((31&n)<<6|63&s),r+=2}else{const s=e[r+1],i=e[r+2];t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i),r+=3}}return t}};const _e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var Ae={toBase64:(e="")=>{let t,r,n,s,i,o,a,c="",l=0;for(e=ve.toUtf8(e);l<e.length;)t=e.charCodeAt(l++),r=e.charCodeAt(l++),n=e.charCodeAt(l++),s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),c=c+_e.charAt(s)+_e.charAt(i)+_e.charAt(o)+_e.charAt(a);return c},fromBase64:(e="")=>{let t,r,n,s,i,o,a,c="",l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=_e.indexOf(e.charAt(l++)),i=_e.indexOf(e.charAt(l++)),o=_e.indexOf(e.charAt(l++)),a=_e.indexOf(e.charAt(l++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,c+=String.fromCharCode(t),64!=o&&(c+=String.fromCharCode(r)),64!=a&&(c+=String.fromCharCode(n));return c=ve.fromUtf8(c),c},bytesToBase64:e=>{let t,r,n,s,i,o,a,c="",l=0;if(!e||!V.isArrayLike(e)||!V.isUint8Array(e))return"";for(;l<e.length;)t=e[l++],r=e[l++],n=e[l++],s=t>>2,i=(3&t)<<4|r>>4,o=(15&r)<<2|n>>6,a=63&n,isNaN(r)?o=a=64:isNaN(n)&&(a=64),c=c+_e.charAt(s)+_e.charAt(i)+_e.charAt(o)+_e.charAt(a);return c},base64ToBytes:(e="")=>{let t,r,n,s,i,o,a,c=[],l=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<e.length;)s=_e.indexOf(e.charAt(l++)),i=_e.indexOf(e.charAt(l++)),o=_e.indexOf(e.charAt(l++)),a=_e.indexOf(e.charAt(l++)),t=s<<2|i>>4,r=(15&i)<<4|o>>2,n=(3&o)<<6|a,c.push(t),64!=o&&c.push(r),64!=a&&c.push(n);return new Uint8Array(c)}};function xe(e){return Math.floor(Math.random()*e)}function ke(e,t=10){return+parseFloat(Number(e).toExponential(t))}const Se=180/Math.PI;var $e={random:xe,randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randoms:function(e,t=1,r=!1){const n=[];for(;;){if(n.length>=t)break;if(!r&&n.length>=e)break;const s=xe(e);r?n.push(s):n.includes(s)||n.push(s)}return n},strip:ke,float:function(e,{digits:t=2,fixed:r=!1}={}){const n=ke(e).toFixed(t);return r||!t?+n:+n.replace(/(\.[1-9]?)0+$/,"$1").replace(/\.$/,"")},radian2degree:function(e){return e*Se},degree2radian:function(e){return e/Se},calcDataSize:function(e){const t={gb:0,mb:0,kb:0,b:0,total:e,desc:""},r=[{name:"gb",divisor:1<<30},{name:"mb",divisor:1<<20},{name:"kb",divisor:1024},{name:"b",divisor:1}];for(const n of r){const r=Math.floor(e/n.divisor);t[n.name]=r,e-=r*n.divisor}return t.gb>0?t.desc=(t.gb+t.mb/1024).toFixed(2)+"GB":t.mb>0?t.desc=(t.mb+t.kb/1024).toFixed(2)+"MB":t.kb>0?t.desc=(t.kb+t.b/1024).toFixed(2)+"KB":t.desc=t.b+"B",t}};var je={bytes2str:e=>{if(!e||!V.isArrayLike(e))return"";return e.reduce(((e,t)=>e+String.fromCharCode(t)),"")},str2bytes:(e="")=>{const t=e,r=new Uint8Array(t.length);for(let e=0,n=t.length;e<n;e++)r[e]=t.charCodeAt(e);return r},str2hex:e=>{let t="";for(let r=0;r<e.length;r++)t+=e.charCodeAt(r).toString(16).padStart(2,"0");return t},hex2str:e=>{let t="";for(let r=0;r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t},concatBytes:(...e)=>{const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r},uint32ToBytes:e=>{const t=new Uint8Array(8);return t[0]=e[0]>>>24&255,t[1]=e[0]>>>16&255,t[2]=e[0]>>>8&255,t[3]=255&e[0],t[4]=e[1]>>>24&255,t[5]=e[1]>>>16&255,t[6]=e[1]>>>8&255,t[7]=255&e[1],t},bytesToUint32:e=>{const t=new Uint32Array(2);return t[0]=e[0]<<24|e[1]<<16|e[2]<<8|e[3],t[1]=e[4]<<24|e[5]<<16|e[6]<<8|e[7],t},hex2bytes:e=>{let t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++)t[r]=parseInt(e.substr(2*r,2),16);return t},bytes2hex:e=>Array.from(e).map((e=>e.toString(16).padStart(2,"0"))).join(""),toUint32:e=>{const t=Math.ceil(e.length/4),r=new Uint32Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(4*n)<<24|e.charCodeAt(4*n+1)<<16|e.charCodeAt(4*n+2)<<8|e.charCodeAt(4*n+3);return r},fromUint32:e=>{let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]>>>24&255,e[r]>>>16&255,e[r]>>>8&255,255&e[r]);return t.replace(/\0+$/,"")},flatten:function e(t,r=!1,n=[]){for(let s=0;s<t.length;s+=1){const i=t[s];r&&Array.isArray(i)?e(i,r,n):n.push(i)}return n}};var Oe={pkcs7Padding:(e,t)=>{const r=t-e.length%t,n=new Uint8Array(r).fill(r);return je.concatBytes(e,n)},pkcs7Unpadding:e=>{const t=e[e.length-1];return e.slice(0,-t)}};function Ce(e,t){return e<<t|e>>>32-t}function Ee(e,t){let r,n,s,i,o;return s=2147483648&e,i=2147483648&t,r=1073741824&e,n=1073741824&t,o=(1073741823&e)+(1073741823&t),r&n?2147483648^o^s^i:r|n?1073741824&o?3221225472^o^s^i:1073741824^o^s^i:o^s^i}function qe(e,t,r,n,s,i,o){return e=Ee(e,Ee(Ee(function(e,t,r){return e&t|~e&r}(t,r,n),s),o)),Ee(Ce(e,i),t)}function Te(e,t,r,n,s,i,o){return e=Ee(e,Ee(Ee(function(e,t,r){return e&r|t&~r}(t,r,n),s),o)),Ee(Ce(e,i),t)}function Le(e,t,r,n,s,i,o){return e=Ee(e,Ee(Ee(function(e,t,r){return e^t^r}(t,r,n),s),o)),Ee(Ce(e,i),t)}function Be(e,t,r,n,s,i,o){return e=Ee(e,Ee(Ee(function(e,t,r){return t^(e|~r)}(t,r,n),s),o)),Ee(Ce(e,i),t)}function Pe(e){let t,r,n="",s="";for(r=0;r<=3;r++)t=e>>>8*r&255,s="0"+t.toString(16),n+=s.substr(s.length-2,2);return n}function Fe(e){let t,r,n,s,i,o,a,c,l,u=[];for(u=function(e){let t;const r=e.length,n=r+8,s=16*((n-n%64)/64+1),i=Array(s-1).fill(0);let o=0,a=0;for(;a<r;)t=(a-a%4)/4,o=a%4*8,i[t]=i[t]|e[a]<<o,a++;return t=(a-a%4)/4,o=a%4*8,i[t]=i[t]|128<<o,i[s-2]=r<<3,i[s-1]=r>>>29,i}(e),o=1732584193,a=4023233417,c=2562383102,l=271733878,t=0;t<u.length;t+=16)r=o,n=a,s=c,i=l,o=qe(o,a,c,l,u[t+0],7,3614090360),l=qe(l,o,a,c,u[t+1],12,3905402710),c=qe(c,l,o,a,u[t+2],17,606105819),a=qe(a,c,l,o,u[t+3],22,3250441966),o=qe(o,a,c,l,u[t+4],7,4118548399),l=qe(l,o,a,c,u[t+5],12,1200080426),c=qe(c,l,o,a,u[t+6],17,2821735955),a=qe(a,c,l,o,u[t+7],22,4249261313),o=qe(o,a,c,l,u[t+8],7,1770035416),l=qe(l,o,a,c,u[t+9],12,2336552879),c=qe(c,l,o,a,u[t+10],17,4294925233),a=qe(a,c,l,o,u[t+11],22,2304563134),o=qe(o,a,c,l,u[t+12],7,1804603682),l=qe(l,o,a,c,u[t+13],12,4254626195),c=qe(c,l,o,a,u[t+14],17,2792965006),a=qe(a,c,l,o,u[t+15],22,1236535329),o=Te(o,a,c,l,u[t+1],5,4129170786),l=Te(l,o,a,c,u[t+6],9,3225465664),c=Te(c,l,o,a,u[t+11],14,643717713),a=Te(a,c,l,o,u[t+0],20,3921069994),o=Te(o,a,c,l,u[t+5],5,3593408605),l=Te(l,o,a,c,u[t+10],9,38016083),c=Te(c,l,o,a,u[t+15],14,3634488961),a=Te(a,c,l,o,u[t+4],20,3889429448),o=Te(o,a,c,l,u[t+9],5,568446438),l=Te(l,o,a,c,u[t+14],9,3275163606),c=Te(c,l,o,a,u[t+3],14,4107603335),a=Te(a,c,l,o,u[t+8],20,1163531501),o=Te(o,a,c,l,u[t+13],5,2850285829),l=Te(l,o,a,c,u[t+2],9,4243563512),c=Te(c,l,o,a,u[t+7],14,1735328473),a=Te(a,c,l,o,u[t+12],20,2368359562),o=Le(o,a,c,l,u[t+5],4,4294588738),l=Le(l,o,a,c,u[t+8],11,2272392833),c=Le(c,l,o,a,u[t+11],16,1839030562),a=Le(a,c,l,o,u[t+14],23,4259657740),o=Le(o,a,c,l,u[t+1],4,2763975236),l=Le(l,o,a,c,u[t+4],11,1272893353),c=Le(c,l,o,a,u[t+7],16,4139469664),a=Le(a,c,l,o,u[t+10],23,3200236656),o=Le(o,a,c,l,u[t+13],4,681279174),l=Le(l,o,a,c,u[t+0],11,3936430074),c=Le(c,l,o,a,u[t+3],16,3572445317),a=Le(a,c,l,o,u[t+6],23,76029189),o=Le(o,a,c,l,u[t+9],4,3654602809),l=Le(l,o,a,c,u[t+12],11,3873151461),c=Le(c,l,o,a,u[t+15],16,530742520),a=Le(a,c,l,o,u[t+2],23,3299628645),o=Be(o,a,c,l,u[t+0],6,4096336452),l=Be(l,o,a,c,u[t+7],10,1126891415),c=Be(c,l,o,a,u[t+14],15,2878612391),a=Be(a,c,l,o,u[t+5],21,4237533241),o=Be(o,a,c,l,u[t+12],6,1700485571),l=Be(l,o,a,c,u[t+3],10,2399980690),c=Be(c,l,o,a,u[t+10],15,4293915773),a=Be(a,c,l,o,u[t+1],21,2240044497),o=Be(o,a,c,l,u[t+8],6,1873313359),l=Be(l,o,a,c,u[t+15],10,4264355552),c=Be(c,l,o,a,u[t+6],15,2734768916),a=Be(a,c,l,o,u[t+13],21,1309151649),o=Be(o,a,c,l,u[t+4],6,4149444226),l=Be(l,o,a,c,u[t+11],10,3174756917),c=Be(c,l,o,a,u[t+2],15,718787259),a=Be(a,c,l,o,u[t+9],21,3951481745),o=Ee(o,r),a=Ee(a,n),c=Ee(c,s),l=Ee(l,i);return Pe(o)+Pe(a)+Pe(c)+Pe(l)}const Re=e=>{if("string"!=typeof e&&!(e instanceof Uint8Array))return"";return Fe("string"==typeof e?ve.toUtf8Bytes(e):e)};var Me={md5:Re,md5Base64:e=>{const t=Re(e);if(!t)return"";const r=je.hex2bytes(t);return Ae.bytesToBase64(r)}};const Ue=(e,t=!1)=>{const r=new Uint8Array(e);return t?Ae.bytesToBase64(r):r.reduce(((e,t)=>e+String.fromCharCode(t)),"")};var Ie={...je,...Oe,...ve,...Ae,...Me,str2ab:(e="",t=!1)=>{if(t)return Ae.base64ToBytes(e).buffer;{const t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return t}},ab2str:Ue,utf8ToBase64:e=>V.isBrowser?btoa(e):Buffer.from(e,"utf-8").toString("base64"),base64ToUtf8:e=>V.isBrowser?atob(e):Buffer.from(e,"base64").toString("utf-8"),getRandomBytes:e=>{const t=new Uint8Array(e);for(let r=0;r<e;r++)t[r]=$e.random(256);return t},textEncode:e=>ve.toUtf8Bytes(e),textDecode:e=>ve.fromUtf8Bytes(new Uint8Array(e)),toDataUrl:(e,t="text/plain")=>e?"string"==typeof e?`data:${t};base64,`+Ae.toBase64(e):V.isArrayBuffer(e)?`data:${t};base64,`+Ue(e,!0):"":""};const De=e=>{try{const t=Ie.ab2str(e,!0);return t.match(/.{1,64}/g)?.join("\n")||""}catch(e){return""}},ze=(e="",t="PUBLIC KEY")=>`-----BEGIN ${t}-----\n${e}\n-----END ${t}-----`;var Ne={RSAPublicKey:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApiLWsPmoaiGdr02AmPYS\n4/VgxyJNNJSK2VICirXl4P8qAP3b/6GIs7Hwnsmmuj7gledJ0XiZodFjDNgQEZEG\nj4K9KX8NixcrJwnTQV5UebiERdj+64ihwqPVWo9dIOj43ZPJ8f4dritJv5tnQaBb\nb9zTkU3Ofzk1g8RU00Ith6quOGZcU2IWC4OQ+5YiZvzrCBKEvjFwK2OvGq43tI51\nGaZdI9H09jisypqefsMvv6esjEQQOtl+WGlI5fof7KZUt3dppvuDI4CYgeXIoKKL\n9T9qDl8F9aNSs3XHx32YyA7L1FraFD6PjqRjueIFp2emsXQcIMeMqqgVyV+4qb+0\nuwIDAQAB",RSAPrivateKey:"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmItaw+ahqIZ2v\nTYCY9hLj9WDHIk00lIrZUgKKteXg/yoA/dv/oYizsfCeyaa6PuCV50nReJmh0WMM\n2BARkQaPgr0pfw2LFysnCdNBXlR5uIRF2P7riKHCo9Vaj10g6Pjdk8nx/h2uK0m/\nm2dBoFtv3NORTc5/OTWDxFTTQi2Hqq44ZlxTYhYLg5D7liJm/OsIEoS+MXArY68a\nrje0jnUZpl0j0fT2OKzKmp5+wy+/p6yMRBA62X5YaUjl+h/splS3d2mm+4MjgJiB\n5cigoov1P2oOXwX1o1KzdcfHfZjIDsvUWtoUPo+OpGO54gWnZ6axdBwgx4yqqBXJ\nX7ipv7S7AgMBAAECggEAE1kuWLkSsJ2OoDpt9iJ+a7cJmNd5V1zPWOTwr9fkWFJP\nQYNPKlPVOFxKUivY84rcHAkuMyuQ9OQOXZISOQGDWpZW0mzeFmtR1r+Rr2S9gNmI\n6huOAL9OW306HUxiA7GuPhv2omy+Zyjac2q1WVLEI2B78Um2+WEfxuNIH7xu0gRR\nz/wluevMBQlv6hSeMESP6e9s2kB+FuM4bL7+1sexwS1TudKbHybujaiB8un9E2V3\nC9BkE6yf00Rhvii6Q4E4w3PFQfcBEFnjOD0S2Watx8GIbYjlYvtquy8Yj7OtyZB6\nw5sxyaYhKVVnkpGAbOgaCj94ABYF47VuwXr45I4PzQKBgQDp6svzD+QKlARjcWgO\nrH7UEpFX6m49G6Ib4c63xEg9+GesTgfDxoYxtXDKsC7I8OwMrmffJGbyfjaAvzmg\nicM3Y7kF6UPO9+q2mBRsyhoJSNONTeUVyoFSc+QDsVgndlTZIjqC5XLrONGaSPLJ\n7jJzqKhp3NQcpO8+xY0d7Efm1QKBgQC10fCNuF1LUTYgsWvvGxTiCCAIBurZmHU+\nGMb2Okfoco/P+QNl1jEba91AC7FudW3g/lRn0vTnDajlNoz2/CKunrTKN4/9lEBI\ntiwEOvhc5FtapRifSfrrNwFqPM+LijvOkcteWVhAUWCEP1eLmpnXGqfmZxnTaaVe\n5DyDgyAVTwKBgQDhEawfOQEANJ9sV2f6BnsZ7quuXcCoR3hZP5G5O8EO735BSesq\nsk/YcG4QeCjr6vQU15LWH552YH5srpHyJ9uP5gHW8DTwZZaPDhFJA8S9fjcfVP3B\nU9HO1fdknjTl83N8YPTPkZpbPZZfzyTcqrYclwFEqtfkn8YbLdW0Hu6n6QKBgDEv\njvS3uD1ExfDILlurptWSvx+Mx4F/1c+roj8/+u3t9+uaAIpPDE/PuTW3NBOens/r\n3WeM0QWkU1lWjYHPKY61jlDaARDnRxCkf3nRfhibCf+Wg/erar6wzagwtTCZf55d\nIHfwkYgsu4BrJkK02wMuydbxczIW9U6bTaeCFG7PAoGAN3oHYzTEBwZ7ZKv11QiQ\nEp/HeHBvD8fH/e1uVyBel4Co7NO5pV2s8qjS8+3+jxumKLNXCirjqwHo03YCdzxi\ncy4GFDsukHmDQ7FF9VC4QV0fJ0F7jGYE9nNZ+K9qwS5KrihOSBPxj0HptrF6TSOw\nBTSwr0byL3TC0m0StkSNKpo=",generateKeys:async e=>{try{const t=await e.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},!0,["encrypt","decrypt"]),r=await window.crypto.subtle.exportKey("spki",t.publicKey),n=De(r),s=ze(n,"PUBLIC KEY"),i=await window.crypto.subtle.exportKey("pkcs8",t.privateKey),o=De(i);return{publicKey:n,publicKeyPem:s,privateKey:o,privateKeyPem:ze(o,"PRIVATE KEY")}}catch(e){return console.error("generateKeys failed:",e),{publicKey:"",publicKeyPem:"",privateKey:"",privateKeyPem:""}}},format_pem_key:ze,format_pem_content:De,encrypt:async(e,t,r)=>{try{const n=(new TextEncoder).encode(t),s=await e.importKey("spki",Ie.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["encrypt"]),i=[];for(let t=0;t<n.length;t+=190){let r=n.slice(t,t+190),o=await e.encrypt({name:"RSA-OAEP"},s,r);i.push(new Uint8Array(o))}const o=Ie.concatBytes(...i);return Ie.bytesToBase64(o)}catch(e){return console.error("[debug] encrypt",e),""}},decrypt:async(e,t,r)=>{try{const n=Ie.base64ToBytes(t),s=await e.importKey("pkcs8",Ie.str2ab(r,!0),{name:"RSA-OAEP",hash:"SHA-256"},!0,["decrypt"]),i=[],o=256;for(let t=0;t<n.length;t+=o){let r=n.slice(t,t+o),a=await e.decrypt({name:"RSA-OAEP"},s,r);i.push(new Uint8Array(a))}const a=Ie.concatBytes(...i);return(new TextDecoder).decode(a)}catch(e){return console.error("decrypt failed:",e),""}}};const Ke=()=>e.webcrypto.subtle;var He=async e=>Ne.encrypt(Ke(),e,Ne.RSAPublicKey),We=async e=>Ne.decrypt(Ke(),e,Ne.RSAPrivateKey);const Ve="undefined"!=typeof window?window.crypto.subtle:{};var Ze={generateKeys:()=>Ne.generateKeys(Ve),encrypt:async(e,t)=>Ne.encrypt(Ve,e,t),decrypt:async(e,t)=>Ne.decrypt(Ve,e,t),encode:async e=>Ne.encrypt(Ve,e,Ne.RSAPublicKey),decode:async e=>Ne.decrypt(Ve,e,Ne.RSAPrivateKey)};const Je=2654435769,Ge=(e,t)=>{let r=0;for(let n=0;n<32;n++)r=r+Je>>>0,e[0]=e[0]+((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,e[1]=e[1]+((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0;return e},Qe=(e,t)=>{let r=3337565984;for(let n=0;n<32;n++)e[1]=e[1]-((e[0]<<4)+t[2]^e[0]+r^(e[0]>>>5)+t[3])>>>0,e[0]=e[0]-((e[1]<<4)+t[0]^e[1]+r^(e[1]>>>5)+t[1])>>>0,r=r-Je>>>0;return e},Ye=e=>{const t=Ie.str2bytes(e),r=new Uint32Array(4);return r[0]=t[0]<<24|t[1]<<16|t[2]<<8|t[3],r[1]=t[4]<<24|t[5]<<16|t[6]<<8|t[7],r[2]=t[8]<<24|t[9]<<16|t[10]<<8|t[11],r[3]=t[12]<<24|t[13]<<16|t[14]<<8|t[15],r},Xe=(e,t)=>{const r=Ie.pkcs7Padding(e,8),n=Ye(t),s=[];for(let e=0;e<r.length;e+=8){const t=Ie.bytesToUint32(r.slice(e,e+8)),i=Ge(t,n);s.push(Ie.uint32ToBytes(i))}return Ie.concatBytes(...s)},et=(e,t)=>{const r=Ye(t),n=[];for(let t=0;t<e.length;t+=8){const s=Ie.bytesToUint32(e.slice(t,t+8)),i=Qe(s,r);n.push(Ie.uint32ToBytes(i))}const s=Ie.concatBytes(...n);return Ie.pkcs7Unpadding(s)};var tt={TEAKey:"33576f37387276645054657a6831686e454664424e5652456f47794835795942",encrypt:Ge,decrypt:Qe,toTeaKey:Ye,encode:(e,t)=>{const r=Ie.textEncode(e),n=Xe(r,t);return Ie.bytesToBase64(n)},decode:(e,t)=>{const r=Ie.base64ToBytes(e),n=et(r,t);return Ie.textDecode(n.buffer)},encodeBytes:Xe,decodeBytes:et};function rt(e,t,r){const{length:n}=e;return r=void 0===r?n:r,!t&&r>=n?e:function(e,t,r){let n=null==e?0:e.length;if(!n)return[];(t=null==t?0:t)<0&&(t=-t>n?0:n+t),(r=(r=void 0===r?n:r)>n?n:r)<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;let s=-1;const i=new Array(n);for(;++s<n;)i[s]=e[s+t];return i}(e,t,r)}const nt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff\\ufe0e\\ufe0f]");function st(e){return nt.test(e)}const it="\\ud800-\\udfff",ot=`[${it}]`,at="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",ct="\\ud83c[\\udffb-\\udfff]",lt=`[^${it}]`,ut="(?:\\ud83c[\\udde6-\\uddff]){2}",ft="[\\ud800-\\udbff][\\udc00-\\udfff]",ht=`${`(?:${at}|${ct})`}?`,dt="[\\ufe0e\\ufe0f]?",pt=dt+ht+`(?:\\u200d(?:${[lt,ut,ft].join("|")})${dt+ht})*`,gt=`(?:${[`${lt}${at}?`,at,ut,ft,ot].join("|")})`,yt=RegExp(`${ct}(?=${ct})|${gt+pt}`,"g");function mt(e){return st(e)?function(e){return e.match(yt)||[]}(e):function(e){return e.split("")}(e)}function wt(e){return t=>{if(!t)return"";const r=st(t)?mt(t):void 0,n=r?r[0]:t[0],s=r?rt(r,1).join(""):t.slice(1);return n[e]()+s}}const bt="\\ud800-\\udfff",vt="\\u2700-\\u27bf",_t="a-z\\xdf-\\xf6\\xf8-\\xff",At="A-Z\\xc0-\\xd6\\xd8-\\xde",xt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",kt="['’]",St=`[${xt}]`,$t=`[${vt}]`,jt=`[${_t}]`,Ot=`[^${bt}${xt+"\\d"+vt+_t+At}]`,Ct="(?:\\ud83c[\\udde6-\\uddff]){2}",Et="[\\ud800-\\udbff][\\udc00-\\udfff]",qt=`[${At}]`,Tt=`(?:${jt}|${Ot})`,Lt=`(?:${qt}|${Ot})`,Bt=`(?:${kt}(?:d|ll|m|re|s|t|ve))?`,Pt=`(?:${kt}(?:D|LL|M|RE|S|T|VE))?`,Ft="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]|\\ud83c[\\udffb-\\udfff])?",Rt="[\\ufe0e\\ufe0f]?",Mt=Rt+Ft+`(?:\\u200d(?:${[`[^${bt}]`,Ct,Et].join("|")})${Rt+Ft})*`,Ut=`(?:${[$t,Ct,Et].join("|")})${Mt}`,It=RegExp([`${qt}?${jt}+${Bt}(?=${[St,qt,"$"].join("|")})`,`${Lt}+${Pt}(?=${[St,qt+Tt,"$"].join("|")})`,`${qt}?${Tt}+${Bt}`,`${qt}+${Pt}`,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",Ut].join("|"),"g");const Dt=RegExp.prototype.test.bind(/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/),zt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Nt(e,t){if(void 0===t){const t=Dt(e)?function(e){return e.match(It)}(e):function(e){return e.match(zt)}(e);return t||[]}return e.match(t)||[]}function Kt(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return`${e.map((e=>null==e?e:Kt(e)))}`;if(V.isSymbol(e))return e.toString();const t=`${e}`;return"0"==t&&1/e==-Infinity?"-0":t}const Ht=wt("toUpperCase"),Wt=wt("toLowerCase");var Vt={toString:Kt,startCase:e=>Nt(`${e}`.replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+Ht(t)),""),snakeCase:e=>Nt(Kt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"_":"")+t.toLowerCase()),""),kebabCase:e=>Nt(Kt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?"-":"")+t.toLowerCase()),""),camelCase:e=>Nt(Kt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>(t=t.toLowerCase(),e+(r?Ht(t):t))),""),upperCase:e=>Nt(Kt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toUpperCase()),""),upperFirst:Ht,lowerCase:e=>Nt(Kt(e).replace(/['\u2019]/g,"")).reduce(((e,t,r)=>e+(r?" ":"")+t.toLowerCase()),""),lowerFirst:Wt,splitOnFirst:(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===e||""===t)return[];const r=e.indexOf(t);return-1===r?[]:[e.slice(0,r),e.slice(r+t.length)]},parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{let n=e;return e&&"string"==typeof e?(t&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?n=Number(e):!r||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(n="true"===e.toLowerCase()),n):n},replace:(e,t)=>{if(!e)return e;if(!t)return e;let r=e;return((Array.isArray(t)?t:[t])||[]).forEach((e=>{e.key&&e.value&&(r=r.replace(new RegExp(e.key,e.flag||""),e.value))})),r},jsonFormat:e=>{try{if(!e)return"";const t=JSON.parse(e);return JSON.stringify(t,null,2)}catch(t){return e}},toLines:(e,t="\n")=>e?e.split(t).map((e=>e.trim())).filter((e=>!!e)):[]};var Zt={logString:e=>{try{const t=JSON.stringify(e);return void 0===t?"":tt.encode(t,Ie.hex2str(tt.TEAKey))}catch(e){return""}},logParse:e=>{try{if(!e)return"";const t=tt.decode(e,Ie.hex2str(tt.TEAKey));return Vt.jsonFormat(t)}catch(e){return""}},logRString:async e=>{try{const t=JSON.stringify(e);if(void 0===t)return"";return V.isBrowser?await Ze.encode(t):await He(t)}catch(e){return""}},logRParse:async e=>{try{if(!e)return"";const t=V.isBrowser?await Ze.decode(e):await We(e);return Vt.jsonFormat(t)}catch(e){return""}}};const Jt=(e,t,r)=>e*(1-r)+t*r,Gt=(e,t,r)=>e===t?0:(r-e)/(t-e),Qt=(e,t,r)=>({x:Jt(e.x,t.x,r),y:Jt(e.y,t.y,r)}),Yt=(e,t,r,n)=>{const s=Qt(e,t,n),i=Qt(t,r,n);return Qt(s,i,n)},Xt=(e,t)=>{if(1===e.length)return e[0];const r=[];for(let n=0;n<e.length-1;n++)r.push({x:(1-t)*e[n].x+t*e[n+1].x,y:(1-t)*e[n].y+t*e[n+1].y});return Xt(r,t)},er=(e,t)=>{if(0===t||t===e)return 1;let r=1;for(let n=1;n<=t;n++)r=r*(e-n+1)/n;return r};var tr={bezier1:Qt,bezier2:Yt,bezier3:(e,t,r,n,s)=>{const i=Yt(e,t,r,s),o=Yt(t,r,n,s);return Qt(i,o,s)},bezier:Xt,bezierCurve:(e,t)=>{const r=e.length-1;let n=0,s=0;for(let i=0;i<=r;i++){const o=er(r,i)*Math.pow(1-t,r-i)*Math.pow(t,i);n+=o*e[i].x,s+=o*e[i].y}return{x:n,y:s}},lerp:Jt,lerpAverage:(e,t,r="")=>{if(e.length<=0)return 0;if(1===e.length)return e[0].x;if(2===e.length)return Jt(e[0].y,e[1].y,.5);const n=[],s=e.slice().sort(((e,t)=>e.x-t.x)),i=s.length,o=s[0].x,a=s[i-1].x;for(let e=o;e<=a;e+=t){let t=0;for(let n=0;n<i-1;n++){const i=s[n],o=s[n+1];if(e>=i.x&&e<=o.x){if("lerp"===r){const r=Gt(i.x,o.x,e);t=Qt(i,o,r).y}else t=i.y;break}}e>s[i-1].x&&(t=s[i-1].y),n.push(t)}return n.reduce(((e,t)=>e+t),0)/n.length},proportion:Gt};var rr={anySuccess:async e=>await Promise.any(e.map((e=>e?e?.then((e=>!!e||Promise.reject())):Promise.reject()))).catch((()=>!1))};var nr={...pe,...Zt,...tr,...rr,sleep:pe.delay,run:async function(e,t=0){if(t<=0)return pe.safeRun(e);const r=t>0?Date.now():0,n=await pe.safeRun(e),s=Date.now()-r;return s<t&&await pe.delay(t-s),n},exec:(e,t="")=>be.I.exec(e,t),debounce:ce,throttle:function(e,t=300,r={}){let n=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return V.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),ce(e,t,{leading:n,maxWait:t,trailing:s})},task:e=>new le(e),mutex:function(e){var t=null;return async function(...r){if((t=this||t||{}).__ddMutex)return!1;t.__ddMutex=!0;try{e&&await Promise.resolve(e.apply(this,r))}catch(e){console.log(e)}finally{t.__ddMutex=!1}}},polling:async function(e={}){const{func:t,interval:r=100,times:n=1e3}=e;let s=n;const i=r<1?100:r;do{if(!t)break;const[e,r]=await pe.to(Promise.resolve(t()));if(e||!1===r)break;s>0&&s--,0!==s&&await pe.delay(i)}while(-1===n||s>0)},pipe:(e,t)=>be.I.pipeline.push(e,t),pipeline:(e=1)=>new we(e),safeTask:(e,t)=>new me(e,t),pipeAsync:e=>be.I.pipeline.exec(e),runAsync:async(e,t={pipe:!1,mutex:""})=>{let r;r=t.pipe?be.I.pipeline.exec(e):be.I.exec(e,t.mutex||"");const[n,s]=await r;if(!n)return s}};const sr=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]=sr(e[r]));return t};const ir=(e,t,r={})=>{const n=e||{},{ignoreUndefined:s=!0,cover:i=!1}=r;if(!t)return n;for(const o in t){if(!t.hasOwnProperty(o))continue;const a=t[o];"object"!=typeof a||"object"!=typeof e[o]||i?s&&void 0===a||r.ignoreNull&&null===a||r.ignoreZero&&0===a||r.ignoreEmptyArray&&Array.isArray(a)&&a.length<=0||r.ignoreEmptyString&&"string"==typeof a&&""===a.trim()||(n[o]=a):n[o]=or(e[o],a,r)}return n},or=(e,t,r={})=>{let n={};return n=e&&"object"==typeof e&&!Array.isArray(e)?ir(e,t,r):ir({...e},t,r),n},ar=(e,t,r={})=>ir({...e},t,{cover:!0,...r}),cr=(e,t,r,n,s=!1)=>{if(!e||!t||!r)return;let i=e[t];null!==i&&"object"==typeof i&&s&&Object.keys(i).forEach((e=>{cr(i,e,r,n,s)})),Object.defineProperty(e,t,{configurable:!0,enumerable:!0,set:o=>{r.call(n,o,i),i=o,s&&cr(e,t,r,n,s)},get:()=>i})};var lr={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))return r;const{fields:n=[],camel:s=!1,pure:i=!0}=t;if((!n||n.length<=0)&&!s)return r;const o={};for(const e in r){if(!r.hasOwnProperty(e))continue;const a=s?i&&e.startsWith("_")?e:Vt.camelCase(e):e;if(n.length>0&&!n.includes(e)&&!n.includes(a))continue;const c=r[e];t.ignoreNull&&null===c||(t.ignoreZero&&0===c||t.ignoreEmptyArray&&Array.isArray(c)&&c.length<=0||t.ignoreEmptyString&&"string"==typeof c&&""===c.trim()||(o[a]=c))}return o},clone:sr,merge:or,isEmpty:e=>0!==e&&(!e||"object"==typeof e&&(Array.isArray(e)?!e.length:Object.keys(e).length<=0)),parseValue:(e,{number:t=!1,boolean:r=!1}={})=>{if(!e&&"object"!=typeof e)return e;for(const[n,s]of Object.entries(e))if("object"==typeof s&&null!==s)for(const[e,n]of Object.entries(s))s[e]=Vt.parseValue(n,{number:t,boolean:r});else e[n]=Vt.parseValue(s,{number:t,boolean:r});return e},cloneClass:function(e){return e?"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e)):e},combine:ar,combines:(e,t={})=>{let r={};if(!e||e.length<=0)return r;const{ignoreUndefined:n=!0,ignoreNull:s=!0,ignoreZero:i=!0,ignoreEmptyArray:o=!0,ignoreEmptyString:a=!0,cover:c=!0}=t;return e.forEach((e=>r=ar(r,e,{ignoreUndefined:n,ignoreNull:s,ignoreZero:i,ignoreEmptyArray:o,ignoreEmptyString:a,cover:c}))),r},observe:cr,find:(e,t)=>{if(e&&"object"==typeof e)return Object.entries(e||{}).find((([e,r])=>!(!t||!t(e,r))))}};const ur=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!0,uri:i=!0,parseNumber:o=!1,parseBoolean:a=!1}={}){t=t||"&",r=r||"=";const c={};if("string"!=typeof e||0===e.length)return c;const l=/\+/g,u=n||1e3;let f=(e=e.split(t)).length;u>0&&f>u&&(f=u);for(let t=0;t<f;++t){let n,o,a,u,f=e[t].replace(l,"%20"),h=f.indexOf(r);h>=0?(n=f.substr(0,h),o=f.substr(h+1)):(n=f,o=""),a=i?decodeURIComponent(n):n,u=i?decodeURIComponent(o):o,A.hasOwnProperty.call(c,a)&&s?Array.isArray(c[a])?c[a].push(u):c[a]=[c[a],u]:c[a]=u}return lr.parseValue(c,{number:o,boolean:a}),c},fr=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},hr=function(e,t=!0){return t?encodeURIComponent(e):e},dr=function(e,{cleanZero:t=!1,cleanNull:r=!1,cleanWhitespace:n=!1}={}){return!(!t||0!==e)||(!(!r||null!=e)||!(!n||"string"!=typeof e||""!==e.trim()))},pr=/^(https?):\/\/([\w.\_\-]+)(?::(\d+))?/,gr=e=>{const t=(e||"").replace(/\\/g,"/").split("?")[0],r=t.match(/[\/]?([\w\_\-]+)[.]?[\w]*[?]?$/),n=r?r[1]:"",s=t.lastIndexOf("/")+1,i=t.substring(s),o=i.lastIndexOf("."),a=i.substring(0,o)||"",c=o>=0?i.substring(o):"";return{route:t.substring(0,s)||"",page:n,name:i,withoutExtension:a,extname:c}},yr=e=>{const t={href:e,url:"",origin:"",protocol:"",host:"",port:"",query:""};if(!e)return t;const r=e.match(pr);if(!r||r.length<4)return t;const n=r[3]||"",s=e.split("?");return t.url=s[0],t.origin=r[0],t.protocol=`${r[1]}:`,t.host=`${r[2]}${n?":"+n:""}`,t.port=n,t.query=s.length>1?s[1]:"",t},mr=(e,t)=>{if(e===t)return!0;if(!e)return!1;if(!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var wr={parse:ur,stringify:function(e,{sep:t="&",eq:r="=",name:n=null,uri:s=!0,cleanZero:i=!1,cleanNull:o=!1,cleanWhitespace:a=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const c=hr(fr(n),s)+r,l=e[n];return Array.isArray(l)?l.map((function(e){return c+hr(fr(e),s)})).join(t):dr(l,{cleanZero:i,cleanNull:o,cleanWhitespace:a})?"":c+hr(fr(l),s)})).filter(Boolean).join(t):n?hr(fr(n),s)+r+hr(fr(e),s):""},https:e=>e?e.replace(/^http[s]?/,"https"):e,parseUrl:e=>{const t=yr(e),{origin:r="",url:n="",query:s=""}=t,i=gr(n),o=ur(s,{multiple:!0,uri:!1});return{...t,...i,pathname:n.substring(n.indexOf(r||"")+r.length),params:o}},parsePath:gr,parseHost:yr,join:(...e)=>{const t=[];let r=!1;return e.forEach((e=>{const n=e.trim();if(""===n)return;if(/^(\w+):\/\//.test(n))return t.length=0,t.push(n),void(r=!0);n.split("/").forEach((e=>{"."!==e&&""!==e&&(".."===e?t.length>0&&".."!==t[t.length-1]?t.pop():r||t.push(".."):t.push(e))}))})),t.join("/")},urlJoin:(...e)=>{if(0===e.length)return"";const t=e.filter((e=>null!=e&&""!==e)).map((e=>e.trim()));if(0===t.length)return"";if(1===t.length)return t[0];let r="",n="";const s=[];let i=!1,o=!1,a=!1,c=!1,l=!1;for(let e=0;e<t.length;e++){let u=t[e];if(!i){const e=u.match(/^([a-zA_Z][a-zA-Z\d+\-.]*):\/\/([^/#?]+)/i);if(e)r=e[1].toLowerCase(),n=e[2],i=!0,c="file"===r,u=u.slice(e[0].length),u.startsWith("/")&&(o=!0);else{const e=u.match(/^file:(\/\/)?\/?/i);e&&e[0]&&(r="file",i=!0,c=!0,n="",u=u.slice(e[0].length),(u.startsWith("/")||e[0].includes("/"))&&(o=!0))}}if(0!==e||i||(u.startsWith("/")?o=!0:(u.startsWith("./")||u.startsWith("../"))&&(a=!0)),c&&!l){const e=u.match(/^([a-zA-Z]:)/);e&&(l=!0,0===s.length&&(s.push(e[1]),u=u.slice(e[1].length)))}if(!u)continue;const f=u.split("/").filter((e=>""!==e&&"."!==e));for(const e of f)if(c&&!l&&e.match(/^[a-zA-Z]:$/))l=!0,s.push(e);else if(".."===e)if(s.length>0&&".."!==s[s.length-1]){if(s[s.length-1].match(/^[a-zA-Z]:$/))continue;s.pop()}else i||o||s.push("..");else s.push(e)}let u=s.join("/");if(o?u="/"+u:!a||u.startsWith("./")||u.startsWith("../")||(u="./"+u),i){let e=u;return c?(l?(e.match(/^\/?[a-zA-Z]:/)||(e="/"+e),e=e.replace(/^(\/?[a-zA-Z]:)([^/]|$)/,"$1/$2")):e&&!e.startsWith("/")&&(e="/"+e),`file://${e}`):(!e||e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||(e="/"+e),`${r}://${n}${e}`)}return u},shExpMatch:mr,isLocalIPAddress:e=>!!e&&!!(mr(e,"127.0.0.1")||mr(e,"localhost")||mr(e,"192.168.*.*")),parseFileUrl:e=>{const t={href:e,file:"",url:"",protocol:"",host:"",query:"",params:{}};if(!e)return t;let r=e?e.replace(/\\/g,"/"):"";r.startsWith("file://")&&!r.startsWith("file:///")?r="file:///"+r.slice(7):r.startsWith("file:/")&&!r.startsWith("file:///")&&(r="file:///"+r.slice(6));const n=r.match(/^file:\/\/(?:([^\/\\]+))?(\/.*)?$/);if(!n||n.length<3)return t;t.protocol="file:";const s=n[1]||"",i=n[2]||"";t.host=s;const o=i.split("?");return t.url=t.protocol+`//${t.host}`+o[0],t.file=o[0],t.query=o.length>1?o[1]:"",t.params=ur(t.query,{multiple:!0,uri:!1}),t},isPrivateIP:e=>!!e&&!!(mr(e,"localhost")||mr(e,"127.0.0.1")||mr(e,"127.*")||mr(e,"10.*")||mr(e,"172.16.*")||mr(e,"172.17.*")||mr(e,"172.18.*")||mr(e,"172.19.*")||mr(e,"172.2?.*")||mr(e,"172.3[0-1].*")||mr(e,"192.168.*")),isIP:e=>{const t=(e||"").trim();return/^(\d+).(\d+).(\d+).(\d+)$/.test(t)}};class br{_loopTimer;_event=new l;started=!1;interval=0;constructor(e=0){this.interval=e||500}start(){return this.started||(this.stop(),this._loopTimer=setInterval((()=>{this._handleLoop()}),this.interval),this.started=!0),this}stop(){return this._loopTimer?(clearInterval(this._loopTimer),this._loopTimer=0,this.started=!1,this):this}restart(){return this.stop(),this.start(),this}on(e){return this._event.on("frame",e),this}off(e){return e?(this._event.off("frame",e),this):this}_handleLoop(){this._event.emit("frame")}}var vr={oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};class _r{date;timestamp=0;yyyy=0;yy="";M=0;MM="";d=0;dd="";h=0;hh="";m=0;mm="";s=0;ss="";S=0;SS="";SSS="";constructor(e){if(!e)return;const t="string"==typeof e||"number"==typeof e?new Date(e):e;t&&(this.date=t,this.timestamp=t.getTime(),this.toDate())}toDate(){return this.date?(this.yyyy=this.date.getFullYear(),this.yy=`${this.yyyy}`.substr(2),this.M=this.date.getMonth()+1,this.MM=(this.M<10?"0":"")+this.M,this.d=this.date.getDate(),this.dd=(this.d<10?"0":"")+this.d,this.h=this.date.getHours(),this.hh=(this.h<10?"0":"")+this.h,this.m=this.date.getMinutes(),this.mm=(this.m<10?"0":"")+this.m,this.s=this.date.getSeconds(),this.ss=(this.s<10?"0":"")+this.s,this.S=this.date.getMilliseconds(),this.SS=(this.S<10?"0":"")+this.S,this.SSS=this.S.toString().padStart(3,"0"),this):this}toCountdown(e=""){const t={countdown:0,timestamp:0,seconds:0,d:0,dd:"",h:0,hh:"",m:0,mm:"",s:0,ss:"",S:0,SS:"",SSS:"",desc:""};if(!this.timestamp)return t;t.timestamp=this.timestamp,t.countdown=Math.max(t.timestamp-Date.now(),0),t.seconds=Math.floor(t.countdown/vr.oneSecond);let r=t.countdown;t.d=Math.floor(r/vr.oneDay),t.dd=(t.d<10?"0":"")+t.d,r%=vr.oneDay,t.h=Math.floor(r/vr.oneHour),t.hh=(t.h<10?"0":"")+t.h,r%=vr.oneHour,t.m=Math.floor(r/vr.oneMinute),t.mm=(t.m<10?"0":"")+t.m,r%=vr.oneMinute,t.s=Math.floor(r/vr.oneSecond),t.ss=(t.s<10?"0":"")+t.s,r%=vr.oneSecond,t.S=r,t.SS=(t.S<10?"0":"")+t.S,t.SSS=t.S.toString().padStart(3,"0");let n=e;return n||(n=t.countdown>vr.oneHour?"hh:mm:ss":t.countdown>vr.oneMinute?"mm:ss":"ss"),t.desc=n.replace(/\bdd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>t[e])),t}add(e=0){return e?(this.timestamp=this.timestamp+e,this.date=new Date(this.timestamp),this.toDate(),this):this}format(e="yyyy-MM-dd hh:mm:ss"){return e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>this[e]))}static get timezoneOffset(){return(new Date).getTimezoneOffset()/60}static getLocalTime(e=0){const t=new Date,r=t.getTime(),n=6e4*t.getTimezoneOffset();return new Date(r+n+36e5*e)}}const Ar=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?Sr(e):e;return r?xr(r).format(t):""},xr=e=>{const t="string"==typeof e||"number"==typeof e?Sr(e):e;return new _r(t||0)};function kr({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:i=0}){const o=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${i}`;return new Date(Ar(Date.now(),o)).getTime()}function Sr(e){if(!e)return;let t;return"string"==typeof e?t=new Date(e):"number"==typeof e&&(t=10==e.toString().length?new Date(1e3*e):new Date(e)),t}var $r={...vr,now:function(){return xr(new Date)},isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),parseTimestamp:kr,todayZero:()=>kr({}),format:Ar,countdown:(e,t="")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";return xr(r).toCountdown(t)},dtime:xr,loopFrame:(e=500)=>new br(e),getTimezoneOffset:()=>_r.timezoneOffset,getLocalTime:_r.getLocalTime,toDate:Sr};const jr=e=>Ae.toBase64(e);var Or={encode:jr,decode:e=>Ae.fromBase64(e),encodeByOss:e=>jr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};var Cr={...s,base64:Or,tea:tt,uuid:i,guid:(e=0,t=!1,r="")=>{let n="";return n=e<=0?i():c(e||32,"lower"),t?$r.now().format("yyyyMMddhhmmss")+r+n:n},UUID:a,uuid32:o,randomID:c,getHexString:e=>{const t=s.keyChars;let r="";const n=t.length;for(let s=0;s<e;s++)r+=t.charAt(Math.floor(Math.random()*n));return r}};const Er=(e,t,r=8)=>{if(e===t)return!0;if(null==e||null==t||"object"!=typeof e||"object"!=typeof t)return!1;if(r<=0)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;switch(n){case"[object Array]":return qr(e,t,r);case"[object Map]":return Tr(e,t,r);case"[object Set]":return Lr(e,t,r);case"[object Object]":return Br(e,t,r);default:return Pr(e,t,n)}},qr=(e,t,r=1/0)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Er(e[n],t[n],r-1))return!1;return!0},Tr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const[n,s]of e)if(!t.has(n)||!Er(s,t.get(n),r-1))return!1;return!0},Lr=(e,t,r=1/0)=>{if(e.size!==t.size)return!1;for(const n of e)if(![...t].some((e=>Er(n,e,r-1))))return!1;return!0},Br=(e,t,r=1/0)=>{const n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(const i of n)if(!s.includes(i)||!Er(e[i],t[i],r-1))return!1;const i=Object.getOwnPropertySymbols(e),o=Object.getOwnPropertySymbols(t);if(i.length!==o.length)return!1;for(const n of i)if(!o.includes(n)||!Er(Reflect.get(e,n),Reflect.get(t,n),r-1))return!1;return!0},Pr=(e,t,r)=>{switch(r){case"[object RegExp]":return String(e)===String(t);case"[object Date]":return e.getTime()===t.getTime();case"[object ArrayBuffer]":return Fr(e,t);default:return e===t}},Fr=(e,t)=>{if(e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e),n=new Uint8Array(t);for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0};var Rr={isEqual:Er,isEqualArray:qr,isEqualObject:Br,isEqualValue:Pr,isEqualAB:Fr,isEqualDeep:(e,t)=>Er(e,t,1/0)};const Mr=(e,t=new WeakMap)=>{if(null===e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);let r;if(Array.isArray(e)){r=[],t.set(e,r);for(const n of e)r.push(Mr(n,t))}else if(e instanceof Date)r=new Date(e);else if(e instanceof RegExp)r=new RegExp(e.source,e.flags);else if(e instanceof Map){r=new Map,t.set(e,r);for(const[n,s]of e.entries())r.set(Mr(n,t),Mr(s,t))}else if(e instanceof Set){r=new Set,t.set(e,r);for(const n of e.values())r.add(Mr(n,t))}else if("object"==typeof e){r={},t.set(e,r);for(const[n,s]of Object.entries(e))r[n]=Mr(s,t)}return r};var Ur={copy:(e,t={})=>{if(null==e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r||null===r)return r;if(Array.isArray(r))return r;const{fields:n=[],camel:s=!1,pure:i=!0,...o}=t,a={},c=[{condition:o.ignoreNull,test:e=>null===e},{condition:o.ignoreZero,test:e=>0===e},{condition:o.ignoreEmptyArray,test:e=>Array.isArray(e)&&0===e.length},{condition:o.ignoreEmptyString,test:e=>"string"==typeof e&&""===e.trim()}].filter((e=>e.condition));for(const[e,t]of Object.entries(r)){const r=!s||i&&e.startsWith("_")?e:Vt.camelCase(e);n.length>0&&!n.includes(e)&&!n.includes(r)||(c.some((e=>e.test(t)))||(a[r]=t))}return a},clone:Mr,cloneClass:function(e){return null==e||"object"!=typeof e?e:Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}};const Ir=(e,t)=>{if(e===t)return!0;if(!e||!t)return!1;if("*"===t)return!0;const r=t.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp("^"+r+"$").test(e)};var Dr={shExpMatch:Ir,shExpMatchs:(e,t)=>{if(!e||!t)return!1;let r=[];if(Array.isArray(t))r=t;else{if("string"!=typeof t)return!1;r=[t]}for(const t of r){if("*"===t)return!0;if(Ir(e,t))return!0}return!1}};const zr="[object Object]",Nr="[object Array]",Kr=A.getTag,Hr=e=>{if(Kr(e)!==zr)return e;const t={};for(const r in e)if(/\w+\.\w+/g.test(r)&&!r.includes("[")){const n=r.split(".");let s=t;for(let e=0;e<n.length-1;e++){const t=n[e];Kr(s[t])!==zr&&(s[t]={}),s=s[t]}s[n[n.length-1]]=e[r]}else t[r]=e[r];return t},Wr=(e,t,r=!1)=>{if(e===t)return;const n=Kr(e);if(n===Kr(t))if(n===Nr&&e.length>=t.length)for(let r=0;r<t.length;r++)Wr(e[r],t[r]);else if(n===zr&&Object.keys(e).length>=Object.keys(t).length)for(const n in t)r||void 0!==e[n]?Wr(e[n],t[n]):e[n]=null},Vr=(e,t)=>Wr(e,t,!0),Zr=(e,t,r={},n="",s=!1)=>{if(e===t)return r;const i=Kr(e),o=Kr(t);if(i===Nr&&o===i&&e.length>=t.length){for(let s=0;s<e.length;s++)Zr(e[s],t[s],r,`${n}[${s}]`,!1);return r}if(i===zr&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=Kr(s),c=Kr(o);if(s!==o)if(a===Nr&&c===a&&s.length>=o.length)for(let e=0;e<s.length;e++)Zr(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`,!1);else if(a===zr&&c===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)Zr(s[e],o[e],r,`${n?n+".":""}${i}.${e}`,!1);else null!==s&&(r[`${n?n+".":""}${i}`]=s)}return r}return r[n]=e,r};var Jr={...Rr,...Ur,...Dr,...{flattenPath:Hr,normalizeStructure:Vr,diffPath:(e,t)=>{const r=Hr(e),n=Hr(t);return Vr(r,n),Zr(r,n)}}};var Gr={urlAuthA:(e,t=Date.now()+2*vr.oneDay,r="AM3FUIg6Gh8MAtb3XTHB")=>{const n=/^(http:\/\/|https:\/\/)?([^\/?]+)(\/[^?]*)?(\?.*)?$/.exec(e);if(!n)return"";const s=Math.floor(t/1e3);let[,i,a,c,l]=n;i||(i="http://"),c||(c="/"),l||(l="");const u=o(),f=`${s}-${u}-0-${Me.md5(`${c}-${s}-${u}-0-${r}`)}`;return l?`${i}${a}${c}${l}&auth_key=${f}`:`${i}${a}${c}${l}?auth_key=${f}`}};const Qr={...Jr,...Ie,...Cr,...nr,...Vt,...$e,...ye,qs:wr,ali:Gr};var Yr={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};function Xr(e){return e!=e}function en(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var tn,rn,nn=(tn=Object.keys,rn=Object,function(e){return tn(rn(e))}),sn=Math.max;function on(e,t){var r=V.isArray(e)||V.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var i in e)!t&&!A.hasOwnProperty.call(e,i)||s&&("length"==i||V.isIndex(i,n))||r.push(i);return r}var an={...V,...A,...lr,...ye,includes:function(e,t,r,n){e=V.isArrayLike(e)?e:function(e){return e?en(e,function(e){return V.isArrayLike(e)?on(e):function(e){if(!V.isPrototype(e))return nn(e);var t=[];for(var r in Object(e))A.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?se.toInteger(r):0;var s=e.length;return r<0&&(r=sn(s+r,0)),V.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,i=r+(n?1:-1);n?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,Xr,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},forof:(e,t)=>{if(!e)return;let r;if(V.isObject(e)&&(r=V.isArray(e)?e.entries():Object.entries(e),r))for(const[e,n]of r)t&&t(e,n)}};var cn={...{groupBy:function(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})},first:function(e){if(!e)return;return e.length<=0?void 0:e[0]},last:function(e){if(!e)return;const t=e.length;return t<=0?void 0:e[t-1]},toList:function(e){return Array.isArray(e)?e:e?[e]:[]}},stepAction:function(e,t,r=100){if(!V.isFunction(t))return;if(!V.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,i=e.slice(n,s);t&&t(i),n=s}},skip:function(e,t){if(!V.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:function(e,t,r=0){if(!V.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:function(e){return!V.isArray(e)||e.length<=0?[]:[...new Set(e)]},randoms:function(e,t=1,r=!1){const n=e.length||0;return $e.randoms(n,t,r).map((t=>e[t]))||[]},toKV:(e,t,r)=>{const n={};return t&&r?((e||[]).forEach((e=>{if(!e||!V.isObject(e))return;const s=e[t];(V.isString(s)&&""!==s||V.isNumber(s))&&(n[s]=e[r])})),n):n}};const ln=/%[sdj%]/g;let un=()=>{};function fn(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 hn(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(ln,(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 dn(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 pn(e,t,r){let n=0;const s=e.length;!function i(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<s?t(e[a],i):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(un=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class gn extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function yn(e,t,r,n,s){if(t.first){const t=new Promise(((t,i)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);pn(o,r,(e=>(n(e),e.length?i(new gn(e,fn(e))):t(s))))}));return t.catch((e=>e)),t}const i=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let c=0;const l=[],u=new Promise(((t,u)=>{const f=e=>{if(l.push.apply(l,e),c++,c===a)return n(l),l.length?u(new gn(l,fn(l))):t(s)};o.length||(n(l),t(s)),o.forEach((t=>{const n=e[t];-1!==i.indexOf(t)?pn(n,r,f):function(e,t,r){const n=[];let s=0;const i=e.length;function o(e){n.push(...e||[]),s++,s===i&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return u.catch((e=>e)),u}function mn(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function wn(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 bn=(e,t,r,n,s,i)=>{!e.required||r.hasOwnProperty(e.field||"")&&!dn(t,i||e.type)||n.push(hn(s.messages.required,e.fullField))};let vn;const _n=/^(([^<>()\[\]\\.,;:\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,}))$/,An=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,xn={integer:e=>xn.number(e)&&parseInt(e,10)===e,float:e=>xn.number(e)&&!xn.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&&!xn.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(_n),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(vn)return vn;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),i=new RegExp(`(?:^${r}$)|(?:^${s}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),c=e=>e&&e.exact?i:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");c.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),c.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const l=c.v4().source,u=c.v6().source;return vn=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${u}|(?:(?:[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"),vn})()),hex:e=>"string"==typeof e&&!!e.match(An)},kn="enum";var Sn={required:bn,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(hn(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void bn(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?xn[i](t)||n.push(hn(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(hn(s.messages.types[i],e.fullField,e.type))},range:(e,t,r,n,s)=>{const i="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,u="";const f="number"==typeof t,h="string"==typeof t,d=Array.isArray(t);if(f?u="number":h?u="string":d&&(u="array"),!u)return!1;d&&(l=t.length),h&&(l=t.replace(c,"_").length),i?l!==e.len&&n.push(hn(s.messages[u].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(hn(s.messages[u].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(hn(s.messages[u].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(hn(s.messages[u].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[kn]=Array.isArray(e[kn])?e[kn]:[],-1===e[kn].indexOf(t)&&n.push(hn(s.messages[kn],e.fullField,e[kn].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(hn(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(hn(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const $n=(e,t,r,n,s)=>{const i=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t,i)&&!e.required)return r();Sn.required(e,t,n,o,s,i),dn(t,i)||Sn.type(e,t,n,o,s)}r(o)};var jn={string:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(dn(t,"string")&&!e.required)return r();Sn.required(e,t,n,i,s,"string"),dn(t,"string")||(Sn.type(e,t,n,i,s),Sn.range(e,t,n,i,s),Sn.pattern(e,t,n,i,s),!0===e.whitespace&&Sn.whitespace(e,t,n,i,s))}r(i)},method:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),void 0!==t&&Sn.type(e,t,n,i,s)}r(i)},number:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),void 0!==t&&(Sn.type(e,t,n,i,s),Sn.range(e,t,n,i,s))}r(i)},boolean:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),void 0!==t&&Sn.type(e,t,n,i,s)}r(i)},regexp:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),dn(t)||Sn.type(e,t,n,i,s)}r(i)},integer:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),void 0!==t&&(Sn.type(e,t,n,i,s),Sn.range(e,t,n,i,s))}r(i)},float:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),void 0!==t&&(Sn.type(e,t,n,i,s),Sn.range(e,t,n,i,s))}r(i)},array:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Sn.required(e,t,n,i,s,"array"),null!=t&&(Sn.type(e,t,n,i,s),Sn.range(e,t,n,i,s))}r(i)},object:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),void 0!==t&&Sn.type(e,t,n,i,s)}r(i)},enum:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s),void 0!==t&&Sn.enum(e,t,n,i,s)}r(i)},pattern:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t,"string")&&!e.required)return r();Sn.required(e,t,n,i,s),dn(t,"string")||Sn.pattern(e,t,n,i,s)}r(i)},date:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t,"date")&&!e.required)return r();if(Sn.required(e,t,n,i,s),!dn(t,"date")){let r;r=t instanceof Date?t:new Date(t),Sn.type(e,r,n,i,s),r&&Sn.range(e,r.getTime(),n,i,s)}}r(i)},url:$n,hex:$n,email:$n,required:(e,t,r,n,s)=>{const i=[],o=Array.isArray(t)?"array":typeof t;Sn.required(e,t,n,i,s,o),r(i)},any:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(dn(t)&&!e.required)return r();Sn.required(e,t,n,i,s)}r(i)}};function On(){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 Cn=On();class En{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");jn[e]=t};static warning=un;static messages=Cn;static validators=jn;rules={};_messages=Cn;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=wn(On(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,i=r;if("function"==typeof s&&(i=s,s={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===Cn&&(e=On()),wn(e,s.messages),s.messages=e}else s.messages=this.messages();const o={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let i=r;"function"==typeof i.transform&&(n===e&&(n={...n}),s=n[t]=i.transform(s)),i="function"==typeof i?{validator:i}:{...i},i.validator=this.getValidationMethod(i),i.validator&&(i.field=t,i.fullField=i.fullField||t,i.type=this.getType(i),o[t]=o[t]||[],o[t].push({rule:i,value:s,source:n,field:t}))}))}));const a={};return yn(o,s,((e,t)=>{const r=e.rule;let i,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function c(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function l(i=[]){let l=Array.isArray(i)?i:[i];!0===s.suppressWarning&&l.length&&En.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let u=l.map(mn(r,n));if(s.first&&u.length)return a[r.field]=1,t(u);if(o){if(r.required&&!e.value)return void 0!==r.message?u=[].concat(r.message).map(mn(r,n)):s.error&&(u=[s.error(r,hn(s.messages.required,r.field))]),t(u);let i={};r.defaultField&&Object.keys(e.value).map((e=>{i[e]=r.defaultField})),i={...i,...e.rule.fields};const o={};Object.keys(i).forEach((e=>{const t=i[e],r=Array.isArray(t)?t:[t];o[e]=r.map(c.bind(null,e))}));const a=new En(o);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];u&&u.length&&r.push(...u),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(u)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)i=r.asyncValidator(r,e.value,l,e.source,s);else if(r.validator){try{i=r.validator(r,e.value,l,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===i?l():!1===i?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):i instanceof Array?l(i):i instanceof Error&&l(i.message)}i&&i.then&&i.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=fn(t),i(t,r)):i(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!jn.hasOwnProperty(e.type))throw new Error(hn("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]?jn.required:jn[this.getType(e)]||void 0}}function qn(e){return new En(e)}var Tn={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:qn,validate:function(e,t,r={},n=(()=>{})){return nr.run(qn(e).validate(t,r,n))},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isNumber:function(e){return!!e&&!!/^[0-9]+$/.test(e)},isFloat:function(e){return!!e&&!!/^(\-|\+)?\d+(\.\d+)?$/.test(e)},isPhoneNumber:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)}};var Ln={stringify:function(e){try{if(!(e instanceof Map))return;return JSON.stringify([...e.entries()])}catch(e){return}},parse:function(e){try{if("string"!=typeof e)return;const t=JSON.parse(e);if(!Array.isArray(t))return;return new Map(t)}catch(e){return}},deepStringify:function e(t){try{if(!(t instanceof Map))return;const r=[...t.entries()].map((([t,r])=>r instanceof Map?[t,JSON.parse(e(r))]:r instanceof Set?[t,[...r]]:[t,r]));return JSON.stringify(r)}catch(e){return}},deepParse:function e(t){try{if("string"!=typeof t)return;const r=JSON.parse(t);if(!Array.isArray(r))return;return new Map(r.map((([t,r])=>{if(Array.isArray(r)&&r.every((e=>Array.isArray(e)&&2===e.length))){return[t,e(JSON.stringify(r))]}return[t,r]})))}catch(e){return}}};const Bn={gbk:Yr,math:$e,list:cn,string:Vt,time:$r,obj:lr,rule:Tn,regex:{pattern:{num:"0-9",zh:"一-龥",en:"A-Za-z"},regex:(e,t)=>new RegExp(e,t),entire:{chinese:/^[\u4E00-\u9FA5]+$/,real:/^(\-|\+)?\d+(\.\d+)?$/,cssReal:/^(\-|\+)?\d*(\.)?\d+$/,id:/^[A-Za-z0-9]+$/,yyyyMMdd:/^(\d{4})-?(\d{2})-?(\d{2})$/}},...Ie,...Cr,...an,Event:l,map:Ln},Pn="[object Object]",Fn="[object Array]",Rn=e=>Object.prototype.toString.call(e),Mn=(e,t,r=!1)=>{if(e===t)return;const n=Rn(e);if(n===Rn(t))if(n===Fn&&e.length>=t.length)for(let r=0;r<t.length;r++)Mn(e[r],t[r]);else if(n===Pn&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?Mn(e[n],t[n]):e[n]=null},Un=(e,t,r,n="",s=!1)=>{if(e===t)return;const i=Rn(e),o=Rn(t);if(i===Fn&&o===i&&e.length>=t.length)for(let s=0;s<e.length;s++)Un(e[s],t[s],r,`${n}[${s}]`);else if(i===Pn&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=Rn(s),c=Rn(o);if(s!==o)if(a===Fn&&c===a&&s.length>=o.length)for(let e=0;e<s.length;e++)Un(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`);else if(a===Pn&&c===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)Un(s[e],o[e],r,`${n?n+".":""}${i}.${e}`);else r[`${n?n+".":""}${i}`]=s}}else r[n]=e};class In{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class Dn{reqConfig={};handleRequest;handleEncrypt;handleDecrypt;handleError;interceptors={request:new In,response:new In};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleError:s,api:i}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleError=s,this.handleRequest=i}static blockId="blockid";static requestLock={};lockR(e,t){Dn.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete Dn.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=lr.copy(this.reqConfig[e]),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let i;try{if("block"===n.model)this.lockR(Dn.blockId,(()=>this._fetch(s,n.hasEncrypt))),i=await Dn.requestLock[Dn.blockId].request;else if(Dn.requestLock[Dn.blockId]&&Dn.requestLock[Dn.blockId].lock&&await Dn.requestLock[Dn.blockId].request,"debounce"===n.model||"debounceUrl"===n.model){let e;e="debounceUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),Dn.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),i=await Dn.requestLock[e].request,this.unlockR(e)}else i=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleError&&this.handleError(e)}return this.interceptors.response.invoke({res:i,config:r,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const zn=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var Nn={diff:function(e,t){const r={};return(e=>{if(Rn(e)===Pn)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];Rn(n[t])!==Pn&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),Mn(e,t,!0),Un(e,t,r,"",!0),r},promixify:zn,run:(e,t={})=>e?nr.run(zn(e)(t)):nr.run(e),formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),Http:Dn,setWatcher:e=>{let t=e.data,r=e.watch;Object.keys(r).forEach((n=>{let s=t,i=n.split(".");for(let e=0;e<i.length-1;e++)s=s[i[e]];let o=i[i.length-1],a=r[n].handler||r[n],c=r[n].deep;lr.observe(s,o,a,e,c)}))}};const Kn=e=>{if(!e)return"";if(!an.isObject(e))return"";let t="";return an.forof(e,((e,r)=>{r&&(t+=`${Vt.kebabCase(e)}:${r};`)})),t},Hn=["display","position","top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","fontSize","textAlign","fontFamily","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius","background","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","color","overflow","opacity","flexDirection","justifyContent","alignItems","flexWrap","alignContent","alignSelf","flex","flexBasis","flexFlow","flexShrink","pointerEvents"],Wn=["top","bottom","left","right","padding","margin","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","height","width","border","borderLeft","borderRight","borderTop","borderBottom","borderColor","borderRadius"],Vn=(e,t="px")=>e&&t?"0"===e?e:Tn.isFloat(e.toString())?`${e}${t}`:e:e;var Zn={stringify:Kn,parse:(e,{camel:t=!1,pure:r=!0}={})=>{if(!e.trim())return;const n=wr.parse(e,{sep:";",eq:":",uri:!1}),s={};return an.forof(n,((e,n)=>{if(!n)return;const i=t?r&&e.startsWith("_")?e:Vt.camelCase(e):e;Tn.isFloat(n)||n.length>=2&&n.startsWith(".")&&Tn.isNumber(n.substr(1))?s[i]=+n:s[i]=n})),s},fixValue:Vn,style:(e,t="px")=>{if(!e)return"";const r=an.copy(e,{fields:Hn});an.forof(r,((e,n)=>{(Wn.includes(e)||Wn.includes(Vt.camelCase(e)))&&(r[e]=Vn(n,t))}));return Kn(r)},commonFields:Hn};const Jn=(e,t="",r=!1)=>{try{if(!e)return;const n=wr.parseUrl(e),s=t||n.name;if(!t||!r||!n.origin||n.origin===window.location.origin)((e,t)=>{try{const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}catch(t){console.error(`[ddan] _downloadUrl ${e}`,t)}})(e,s);else{const t=n.params;t.t=Date.now();const r=`${n.url}?${wr.stringify(t,{uri:!1})}`,i=new XMLHttpRequest;i.open("GET",r,!0),i.responseType="blob",i.onload=function(){Gn(i.response,s)},i.onerror=function(t){console.error(`[ddan] downloadUrl ${e}`,t)},i.send()}}catch(t){console.error(`[ddan] downloadUrl ${e}`,t)}},Gn=(e,t="")=>{try{if(!e)return;const r=URL?.createObjectURL(e);if(!r)return;Jn(r,t),URL?.revokeObjectURL(r)}catch(e){console.error("[ddan] downloadFile",e)}},Qn=e=>{try{const t=document.createElement("textarea");document.body.appendChild(t),t.style.position="fixed",t.style.clip="rect(0 0 0 0)",t.style.top="10px",t.style.opacity="0",t.value=e??"",t.select();const r=document.execCommand("copy");return document.body.removeChild(t),r}catch(e){return console.error("[ddan] copyText",e),!1}},Yn=(e,t="denied")=>new Promise((r=>{const n=navigator?.permissions;if(!n||!n.query)return r(t);const s={name:e};n.query(s).then((e=>r(e.state))).catch((()=>r(t)))})),Xn=(e,t=!0)=>!(!t||"prompt"!==e)||"granted"===e,es=(e,t)=>{if(!e||!t)return[];const r=[];let n;for(;null!==(n=t.exec(e));)r.push(n[1]);return r},ts=(e,t="application/javascript")=>{const r=new Blob([e],{type:t});return URL.createObjectURL(r)};var rs={dataURLtoFile:(e,t)=>{let r=e.split(","),n=r[0].match(/:(.*?);/)[1],s=window.atob(r[1]),i=s.length,o=new Uint8Array(i);for(;i--;)o[i]=s.charCodeAt(i);return new File([o],t,{type:n})},dataURLtoBlob:e=>{let t=e.split(","),r=t[0].match(/:(.*?);/)[1],n=window.atob(t[1]),s=n.length,i=new Uint8Array(s);for(;s--;)i[s]=n.charCodeAt(s);return new Blob([i],{type:r})},blobToFile:(e,t)=>(e.lastModifiedDate=new Date,e.name=t,e),readAsDataURL:(e,t)=>{var r=new FileReader;r.readAsDataURL(e),r.onloadend=function(e){t&&t(e.target?.result)}},downloadUrl:Jn,download:(e,t="")=>{e&&("string"!=typeof e?Gn(e,t):Jn(e,t))},downloadFile:Gn,downloadImage:e=>{try{if(!e)return;const t=e.match(/\/(\w+.\w+)$/)[1],r=new Image;r.onload=()=>{let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let n=e.getContext("2d");n&&n.drawImage(r,0,0,r.width,r.height);let s=e.toDataURL();Jn(s,t)},r.src=e,r.setAttribute("crossOrigin","Anonymous")}catch(e){console.error("[ddan] downloadImage",e)}return Promise.resolve()},watermark:(e,{width:t=400,height:r=300,angle:n=0,fillStyle:s="rgba(0, 0, 0, 0.2)",font:i="16px Arial",textAlign:o="left",textBaseline:a="middle"}={})=>{try{if(!e)return"";const c=document.createElement("canvas");c.width=t,c.height=r;const l=c.getContext("2d");return l?(n&&l.rotate(n*Math.PI/180),s&&(l.fillStyle=s),i&&(l.font=i),o&&(l.textAlign=o),a&&(l.textBaseline=a),l.fillText(e,c.width/10,c.height/2),`url(${c.toDataURL()})`):""}catch(e){return console.error("[ddan] watermark",e),""}},copyText:(e,t=!1)=>new Promise((r=>{!t&&navigator.clipboard?Yn("clipboard-write").then((t=>{Xn(t,!1)?navigator.clipboard.writeText(e).then((()=>r(!0))).catch((()=>r(Qn(e)))):r(Qn(e))})).catch((()=>{r(Qn(e))})):r(Qn(e))})),queryPermission:Yn,isAllowed:Xn,legacyCopy:Qn,takeHtmlLinks:e=>{if(!e)return[];const t=[];return[/<script[^>]+src="([^"]+)"/g,/<link[^>]+rel="stylesheet"[^>]+href="([^"]+)"/g,/<link[^>]+rel="icon"[^>]+href="([^"]+)"/g].forEach((r=>{const n=es(e,r);t.push(n)})),[].concat(...t)},takeHtml:es,toBlobUrl:ts,workerURL:e=>ts(`(${e.toString()})()`,"text/javascript"),getVideoMetadata:(e,t=3e4)=>new Promise(((r,n)=>{let s=null,i=null,o=null;const a=e=>{o&&(clearTimeout(o),o=null),s&&(s.onerror=null,s.onloadedmetadata=null,s.remove(),s=null),i&&(URL.revokeObjectURL(i),i=null),e&&n(e)};try{if(s=document.createElement("video"),o=setTimeout((()=>{a(new Error(`操作超时(${t}ms)`))}),t),e instanceof File||e instanceof Blob||e instanceof MediaSource)i=URL.createObjectURL(e),s.src=i;else{if("string"!=typeof e)throw new Error("无效的视频源类型");s.crossOrigin="anonymous",s.src=e}s.onloadedmetadata=()=>{r({width:s?.videoWidth||0,height:s?.videoHeight||0,duration:s?.duration||0}),a()},s.onerror=()=>{a(new Error(`视频加载失败: ${s?.error?.message||"未知错误"}`))}}catch(e){a(e instanceof Error?e:new Error("未知同步错误"))}})),getImageMetadata:(e,t=5e3)=>new Promise(((r,n)=>{const s=new Image;let i=null,o=null;const a=e=>{o&&(clearTimeout(o),o=null),s.onload=null,s.onerror=null,i&&(URL.revokeObjectURL(i),i=null),e&&n(e)};o=setTimeout((()=>{a(new Error(`图片加载超时(${t}ms)`))}),t),s.onload=()=>{r({width:s.naturalWidth,height:s.naturalHeight}),a()},s.onerror=()=>{a(new Error(`无法加载图片: ${s.src||"未知资源"}`))};try{if(e instanceof File||e instanceof Blob)i=URL.createObjectURL(e),s.src=i;else{if("string"!=typeof e)throw new Error("无效的图片源类型");s.setAttribute("crossOrigin","Anonymous"),s.src=e}}catch(e){e instanceof Error?a(e):a(new Error("未知同步错误"))}}))};const ns=new class{__defStyle="vertical-align: middle; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; -webkit-mask-position: 50% 50%; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100%; background-color: currentColor;";__map={back:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M609.408 149.376L277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"/></svg>',right:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"/></svg>',home:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 19.8h3.8v-7h3.303L12 4.697 3.897 12.8H7.2v7H11V17h2v2.8zm5 .2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-6H3.414a1 1 0 0 1-.707-1.707l8.586-8.586a1 1 0 0 1 1.414 0l8.586 8.586A1 1 0 0 1 20.586 14H18v6z" fill-rule="evenodd" fill-opacity=".9"/></svg>',close:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M764.288 214.592L512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"/></svg>',close_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M466.752 512l-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',close_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"/></svg>',warning:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M928.99 755.83L574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z" fill="currentColor"/></svg>',play:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024zm3.008-92.992a416 416 0 1 0 0-832 416 416 0 0 0 0 832zM383.232 287.616l384 224.896-384 223.104v-448z" fill="currentColor"/></svg>',lock:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z"/><path fill="currentColor" d="M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z"/></svg>',lock_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path d="M467.2 713.92v115.968a44.8 44.8 0 0 0 89.6 0V713.92c26.752-14.72 44.8-42.304 44.8-73.92 0-47.104-40.128-85.312-89.6-85.312-49.472 0-89.6 38.208-89.6 85.312 0 31.616 18.048 59.136 44.8 73.92zM64 384h896v640H64V384zm268.8 0h358.4V256c0-94.272-80.256-170.688-179.2-170.688-98.944 0-179.2 76.416-179.2 170.688v128zM512 0c148.48 0 268.8 114.56 268.8 256v128H243.2V256C243.2 114.56 363.52 0 512 0z" fill="currentColor"/></svg>',plus:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"/></svg>',plus_circle:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z"/><path fill="currentColor" d="M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z"/><path fill="currentColor" d="M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"/></svg>',plus_circle_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z"/></svg>',star:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 747.84l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"/></svg>',star_fill:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M283.84 867.84L512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z"/></svg>',share:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M679.872 348.8l-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"/></svg>',love:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M171.712 571.648l.352.32 287.904 252.8a64 64 0 0 0 82.912 1.344l296.832-244.544a215.584 215.584 0 1 0-301.824-300.576L512 316.672l-25.888-35.616a215.584 215.584 0 1 0-314.4 290.624zM32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512l-295.36 243.392a128 128 0 0 1-165.888-2.592L129.984 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>',love_fill:'<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M32 407.584A279.584 279.584 0 0 1 512 212.64a279.584 279.584 0 0 1 480 194.944 278.144 278.144 0 0 1-113.024 224.512L562.592 892.8a96 96 0 0 1-124.416-1.952L130.016 620.16A278.976 278.976 0 0 1 32 407.584z"/></svg>'};getBase64=e=>{const t=this.getSVG(e);return t?.url||""};getSVG=e=>{if(!e)return;const t=this.__map[e];if(!t)return;return{url:this.toBase64(t),escape:this.toEscape(t)}};toBase64=e=>{if(!e)return"";const t=this._tiny(e);return`data:image/svg+xml;base64,${Or.encode(t)}`};_tiny=e=>e?e.replace(/<!--(.*)-->/g,"").replace(/[\r\n]/g," ").replace(/"/g,"'"):"";toEscape=e=>{if(!e)return"";return`data:image/svg+xml,${this._tiny(e).replace(/%/g,"%25").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(/</g,"%3C").replace(/>/g,"%3E")}`};getStyle(e,t={}){if(!e)return"";const r=this.__map[e];return r?this.toStyle(r,t):""}toStyle(e,t={}){if(!e)return"";const r=this.toBase64(e);return r?this.getStyleByUrl(r,t):""}getStyleByUrl(e,t={}){if(!e)return"";const{key:r="mask-image",gradientValue:n="radial-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5))",gradient:s=!1,defStyle:i=this.__defStyle}=t,o=s&&n?`${n}, url("${e}")`:`url("${e}")`;return`${r}:${o};-webkit-${r}:${o};${i}`}},ss={mini:Nn,css:Zn,qs:wr,icon:ns,html:rs},is=({url:e,options:t})=>{const r={"Content-Type":"application/json; charset=utf-8",...t.headers||{}};return t.headers=r,new Promise(((r,n)=>{fetch(e,t).then((e=>{r(e.json())})).catch((e=>{n(e)}))}))};function os(e){const{response:t}=e;return 0===t.code?Promise.resolve(t):Promise.reject(t)}function as(e){const{url:t="",host:r,options:n}=e,s=e;if(t.startsWith("http://")||t.startsWith("https://")||(s.url=(r||"")+t),"GET"===n.method.toUpperCase()&&n.body){const e=JSON.parse(n.body);if(an.isPlainObject(e)){const r=wr.stringify(e),n=-1===t.indexOf("?")?"?":"&";s.url=`${s.url||""}${n}${r}`,delete s.options.body}}return n&&n.plugins&&delete s.options?.plugins,n&&n.model&&delete s.options?.model,s}class cs{host="";reqConfig={};handleError;interceptors={request:new In,response:new In};constructor(e){this.host=e.host||"",this.reqConfig=e.config,this.interceptors.request.use(e.handleRequest||[]),this.interceptors.request.use(as),this.interceptors.response.use(e.handleResponse||os),this.handleError=e.handleError}static blockId="blockid";static requestLock={};lockR(e,t){cs.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete cs.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}async fetch(e,t){const r=an.copy(this.reqConfig[e])||{},n={host:this.host,url:r.url||"",options:{...r||{},body:JSON.stringify({...t||{}})}};try{const s=await this.interceptors.request.invoke(n);let i;if(delete s.options.plugins,"block"===r.model)this.lockR(cs.blockId,(()=>is(s))),i=await cs.requestLock[cs.blockId].request;else if(cs.requestLock[cs.blockId]&&cs.requestLock[cs.blockId].lock&&await cs.requestLock[cs.blockId].request,"debounce"===r.model||"debounceUrl"===r.model){let e;e="debounceUrl"===r.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),cs.requestLock[e]||this.lockR(e,(()=>is(s))),i=await cs.requestLock[e].request,this.unlockR(e)}else i=await is(s);return this.interceptors.response.invoke({response:i,config:r,refetch:()=>({sig:"REFETCH",result:this.fetch(e,t)})})}catch(e){return this.handleError&&this.handleError(e),Promise.reject(e)}}}var ls={getDataURL:(e,t)=>{const r={contentType:"",dataUrl:""};return pe.to(fetch(e,{cache:t}).then((e=>(r.contentType=e.headers.get("content-type")||"",e.arrayBuffer()))).then((e=>(r.dataUrl=`data:${r.contentType};base64,`+Ie.ab2str(e,!0),r))))},getArrayBuffer:async(e,t)=>pe.to(fetch(e,{cache:t}).then((e=>e.arrayBuffer()))),getJson:async(e,t)=>pe.to(fetch(e,{cache:t}).then((e=>e.json()))),download:(e,t={})=>new Promise((r=>fetch(e).then((async e=>{if(!e.ok||200!==e.status)throw new Error(e.statusText);const n=+(e.headers.get("content-length")||""),s=e.body?.getReader();let i=0;const o=[];for(;;){const{done:e,value:r}=await s.read();if(e)break;o.push(r),i+=r.length;const a=$e.float(100*i/n,{digits:2});t?.progress&&t?.progress(a,i,n)}const a=new Uint8Array(i);let c=0;for(const e of o)a.set(e,c),c+=e.length;t?.success&&t?.success(a),r(a)})).catch((e=>{t?.fail&&t?.fail(e),r(void 0)})))),getText:async(e,t)=>pe.to(fetch(e,{cache:t}).then((e=>e.text()))),cache:async(e,t="no-cache")=>pe.to(fetch(e,{cache:t}).then((()=>!0))),Fetch:class{baseURL;defaultHeaders;constructor(e={}){this.baseURL=e.baseURL||"",this.defaultHeaders=e.headers||{}}query(e,t={}){return new Promise(((r,n)=>{let s=e.url||"";const i={...this.defaultHeaders,...e?.headers||{}},o={method:e?.method||"GET",headers:i,cache:e?.cache},a=o.method?.toUpperCase();"POST"===a&&(o.body=JSON.stringify(t||{}),i["Content-Type"]||(i["Content-Type"]="application/json"),o.headers=i),fetch(s,o).then((async e=>{const t=await e.text();e.ok?r(t):n(this.formatError(e,t))})).catch((e=>{n(this.formatError(null,null,e))}))}))}request(e,t={}){const{method:r="GET",baseURL:n=this.baseURL,headers:s,params:i,cache:o}=t,a="GET"===r.toUpperCase(),c=a&&i?`?${wr.stringify(i)}`:"",l={url:`${wr.urlJoin(n,e)}${c}`,method:r,headers:{"Content-Type":"application/json",...s},cache:o};return this.query(l,a?void 0:i)}formatError(e,t,r){const n={timestamp:(new Date).toISOString(),type:r?"NetworkError":"HttpError",message:r?r.message:`HTTP ${e?.status}: ${e?.statusText}`};return e&&(n.status=e.status,n.statusText=e.statusText,n.url=e.url,n.data=t,n.response={status:e.status,statusText:e.statusText,data:t,headers:Object.fromEntries(e.headers.entries())}),r&&(n.originalError=r,n.code=r.code),n}}};const us={fetch:ls,Http:cs,css:Zn,qs:wr,icon:ns,html:rs,rsa:Ze,...{Ecdh:class{publicKey="";privateKey="";iv="";__privateCryptoKey;__sharedSecret;__curve;__keyFormat;__subtle;constructor(e="P-256",t="raw"){this.__curve=e,this.__keyFormat=t||"raw","undefined"!=typeof window?this.__subtle=window.crypto.subtle:this.__subtle={}}async generateKeys(){const e=await this.__subtle.generateKey({name:"ECDH",namedCurve:this.__curve},!0,["deriveKey","deriveBits"]);return this.__privateCryptoKey=e.privateKey,this.publicKey=await this.exportKey(e.publicKey),this.privateKey=await this.exportKey(e.privateKey,"pkcs8"),this}async exportKey(e,t="raw"){const r=await this.__subtle.exportKey(t||this.__keyFormat,e);return Ie.ab2str(r,!0)}async importKey(e,t="raw",r=[]){const n=Ie.base64ToBytes(e);return await this.__subtle.importKey(t||this.__keyFormat||"raw",n,{name:"ECDH",namedCurve:this.__curve},!0,r)}async setPrivateKey(e){if(!e)return!1;const t=await this.importKey(e,"pkcs8",["deriveKey","deriveBits"]);return this.privateKey=await this.exportKey(t,"pkcs8"),this.__privateCryptoKey=t,!0}async deriveSharedSecret(e,t){if(!this.__privateCryptoKey)return!1;const r=await this.importKey(e),n=await this.__subtle.deriveKey({name:"ECDH",public:r},this.__privateCryptoKey,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]);return this.__sharedSecret=n,this.iv=t||"",!0}async encode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Ie.base64ToBytes(r),s=Ie.textEncode(e),i=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s);return Ie.ab2str(i,!0)}async encodeiv(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv,n=r?Ie.base64ToBytes(r):Ie.getRandomBytes(12),s=Ie.textEncode(e),i=await this.__subtle.encrypt({name:"AES-GCM",iv:n},this.__sharedSecret,s),o=Ie.concatBytes(new Uint8Array(i),n);return Ie.bytesToBase64(o)}async decode(e,t){if(!this.__sharedSecret)return"";const r=t||this.iv;if(!r)return"";const n=Ie.base64ToBytes(e),s=Ie.base64ToBytes(r),i=await this.__subtle.decrypt({name:"AES-GCM",iv:s},this.__sharedSecret,n);return Ie.textDecode(i)}async decodeiv(e){if(!this.__sharedSecret)return"";const t=Ie.base64ToBytes(e);if(t.length<12)return"";const r=t.slice(t.length-12),n=t.slice(0,t.length-12),s=await this.__subtle.decrypt({name:"AES-GCM",iv:r},this.__sharedSecret,n);return Ie.textDecode(s)}}}};var fs={ossImage:(e,t={})=>{if(!e)return e;const r=wr.parseUrl(e).url;if(t.domain){if(!e.startsWith("http"))return e;const r=cn.toList(t.domain||""),n=e.match(/^http[s]?:\/\/([\w.]+)[\w\W]+/)[1]||"";if(!n||!r.includes(n))return e}const n=[];return t.webp&&!r.endsWith(".gif")&&n.push("format,webp"),t.resize&&n.push(`resize,s_${t.resize}`),t.interlace&&(n.push("interlace,1"),!n.every((e=>!e.startsWith("format")))||r.endsWith(".gif")||r.endsWith(".jpg")||n.push("format,jpg")),n.length<=0?e:`${r}?x-oss-process=image/${n.join("/")}`},ossSnapshot:(e,t={})=>{if(!e)return e;const r=wr.parseUrl(e).url,n=["snapshot"],{m:s="fast",f:i="jpg"}=t;return(t.t||0===t.t)&&n.push(`t_${t.t}`),t.w&&n.push(`w_${t.w}`),t.h&&n.push(`h_${t.h}`),s&&n.push(`m_${s}`),i&&n.push(`f_${i}`),t.ar&&n.push(`ar_${t.ar}`),`${r}?x-oss-process=video/${n.join(",")}`},ossBase64:e=>Ae.toBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};const hs={overrode:!1,tag:!1,format:"hh:mm:ss.SSS"},ds=e=>(...t)=>{const r=console[e];hs.overrode?r(...t):ps(r,e,...t)},ps=(e,t,...r)=>{const n=$r.format(new Date,hs.format),s=hs.tag?`[${t}]`:"";s&&n?e.apply(console,[`${n} ${s}`,...r]):n?e.apply(console,[`${n}`,...r]):s?e.apply(console,[`${s}`,...r]):e.apply(console,[...r])};var gs={override:()=>{if(hs.overrode)return;hs.overrode=!0;["log","info","warn","error"].forEach((e=>{const t=console[e];console[e]=(...r)=>{ps(t,e,...r)}}))},log:ds("log"),info:ds("info"),warn:ds("warn"),error:ds("error"),config:({tag:e=hs.tag,format:t=hs.format}={})=>{hs.tag=e,hs.format=t}};class ys{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=nr.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=lr.copy(e,{fields:this.fields});this.save(r)}}class ms extends l{setters={};getters={};actions={};persist;constructor(){super()}async dispatch(e,t=void 0){const r=this,n=Reflect.get(r.actions,e);if(!V.isFunction(n))return;const[,s]=await nr.run(n({...r,commit:r.commit.bind(r),query:r.query.bind(r),dispatch:r.dispatch.bind(r)},t));return s}async query(e){const t=Reflect.get(this,e);let r;if(null!=t&&""!==t)r=lr.copy(t);else{const[,t]=await nr.exec((()=>this.dispatch(e)),`${this.__eventId}_${e}`);r=t}return r}commit(e,t){V.isObject(t)&&(t=lr.copy(t)),this[e]=t}}const ws=(e,t)=>{const r=Object.assign(new ms,e||{});r.__persist=new ys(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return V.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(V.isFunction(s)&&!s(e,r))return!0;const i=Reflect.set(e,t,r,n);return i&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),i},has:(e,t)=>Reflect.has(e,t)})};class bs{host="";list=[];constructor(e,t={}){this._parseHost(e);const{width:r=500,height:n=400}=t,s=wr.parseUrl(e)?.params||{};s["x-oss-process"]=`image/resize,w_${r},h_${n},m_fill`;const i=wr.stringify(s,{uri:!1});this.list.push(`${e}?${i}`)}_parseHost(e){e&&!this.host&&/^http[s]?:\/\/([\w.]+)/.test(e)&&(this.host=e.replace(/^http[s]?:\/\/([\w.]+)[\w\W]+/,"$1"))}image(e,t={}){if(!e||!e.includes(this.host))return;if(this.list.length<=0)return;const r={g:"nw",...t},n=e.replace(/^http[s]?:\/\/[\w.]+\/([\w-.,_/?%&=]+)$/,"$1"),s=Cr.base64.encodeByOss(n),i=wr.stringify({image:s,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}text(e,t={},r={}){if(!e)return;const n={g:"nw",...t},s=Cr.base64.encodeByOss(e),i=wr.stringify({text:s,...n,...r},{sep:",",eq:"_"});this.list.push(`/watermark,${i}`)}result(){return this.list.join("")}}class vs{__list=[];constructor(){this.clear()}add(e){const t=nr.run(e);return this.__list.push(t),this}clear(){return this.__list=[],this}wait(){const e=this.__list;return this.clear(),Promise.allSettled(e)}}const _s=new class{state=ws(new ms);frame=new br;cache=new Map;cacheTime=new Map;setCache=(e,t)=>null!=t&&(!!e&&(this.cache.set(e,t),this.cacheTime.set(e,Date.now()),!0));hasCache=e=>{if(!e)return!1;this.cache.has(e)};getCache=e=>{if(e)return this.cache.get(e)};getCacheTime=e=>e&&this.cacheTime.get(e)||0;removeCache=e=>{e&&(this.cache.delete(e),this.cacheTime.delete(e))};cacheId=e=>`_${e}_cache_`;timesRecord=(e,t={})=>{if(!e)return;const{mode:r="running",cycle:n="day"}=t||{},s=this.cacheId(r),i=this.getCache(s)||{},o=Date.now(),a=i[e],c={time:o,count:1,cycle:n};return a&&("day"!==n||$r.isToday(a.time||0))&&(c.count=1+(a.count||0)),i[e]=c,this.setCache(s,i),i};timesValid=(e,t={})=>{if(!e)return!1;const{max:r=1,interval:n=0,mode:s="running",cycle:i="day"}=t||{},o=this.cacheId(s);let a=this.getCache(o);if(!a)return!0;const c=a[e];if(!c)return!0;if("day"===i&&!$r.isToday(c.time||0))return!0;if(r<=(c.count||0))return!1;return!(Date.now()-(c.time||0)<n)};timesClean=(e="running")=>{const t=this.cacheId(e),r=this.getCache(t);if(!r)return;const n=an.copy(r);an.forof(n,((e,t)=>{"day"!==t.cycle&&void 0!==t.cycle||$r.isToday(t.time||0)||delete r[e]})),this.setCache(t,r)};parallel=()=>new vs};class As{id="";start=0;end=0;cost=0;name="";type="";desc="";timeStartDesc="";timeEndDesc="";isDone=!1;flag=0;constructor(){this.id=i(),this.start=Date.now(),this.timeStartDesc=$r.format(this.start,"hh:mm:ss.SSS")}get time(){return this.flag?this.end:this.start}get timeDesc(){return this.flag?this.timeEndDesc:this.timeStartDesc}done=(e=Date.now())=>{this.start&&(this.end=e,this.cost=this.end-this.start,this.timeEndDesc=$r.format(this.end,"hh:mm:ss.SSS"),this.isDone=!0)}}const xs=new class{__map=new Map;__trackList=[];opened=!0;clear(){return this.__map.clear(),this.__trackList=[],this}add(e,{desc:t="",type:r=""}={}){if(!e||!this.opened)return"";const n=new As;return n.name=e,n.type=r,n.desc=t,this.__trackList.push(n),n.id}done(e){if(!e||!this.opened)return;const t=this.__trackList.find((t=>t.id===e));if(!t||t.isDone)return;t.done();const r=lr.cloneClass(t);r.id=this._endId(e),r.flag=1,r.desc=`${t.desc} | end`,this.__trackList.push(r)}getTrack(e){return this.__trackList.find((t=>t.id===e))}getLine(e){if(!e||e.endsWith("-end"))return[];const t=this.__trackList.findIndex((t=>t.id===e));if(t<0)return[];const r=this._endId(e),n=this.__trackList.findIndex((e=>e.id===r)),s=n<0?this.__trackList.length-t:n-t+1;return cn.take(this.__trackList,s,t)}getList(e,t=""){if(!e)return[];const r=this.__trackList.filter((t=>t.name===e));if(r.length<=0)return[];if(!t)return r;const n=this._endId(t);return this.__trackList.filter((e=>e.id===t||e.id===n))}get list(){return this.__trackList}get size(){return this.__trackList.length}_endId=e=>`${e}-end`;report(e){const t=this.list;if(!t||t.length<=0)return;const r=t[0].time;t.forEach((t=>e&&e(t,r)))}},ks={cdn:fs,watermark:(e,t)=>new bs(e,t)},Ss={Store:ms,storeRef:ws,Persist:ys,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})},$s=_s,js=xs,Os=gs;export{l as Event,u as KValue,f as Mapping,ks as dCdn,Qr as dHook,$s as dJoker,Os as dLogger,ss as dMini,Ss as dStore,js as dTracker,Bn as dUtil,us as dWeb};