diff --git a/README.md b/README.md index f5e034e..f9c61dd 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,21 @@ # 版本更新介绍 -> 最新更新:2025-10-12 +> 最新更新:2025-10-26 -> 0.0.66 公测版本介绍 如果你要使用本插件请务必进我们的官方 QQ 群(1018231382)! +> 0.0.67 公测版本介绍 如果你要使用本插件请务必进我们的官方 QQ 群(1018231382)! +> +> 1. 修复一键翻译不全的问题 +> +> 2. 合并PR [#46](https://github.com/weilin9999/WeiLin-Comfyui-Tools/pull/46) 感谢各位小伙伴的帮助 +> +> 3. 新增功能:在Tag中的右侧添加了一个删除按钮,方便删除Tag +> + +
+点击查看往期更多更新内容 + +> 0.0.66 公测版本介绍 2025-10-12 > > 1. 修复了一些已知的BUG > @@ -41,9 +53,6 @@ > 4. 翻译大修改!本次更新将翻译功能全部重改了,使用AI进行翻译,对接硅基AI进行调用API翻译,如果你想要对接其它的AI平台你可以进群提交建议,后续更新会添加新的平台 > -
-点击查看往期更多更新内容 - > 0.0.65 公测版本介绍 2025-09-23 > > 1. 修复了一些已知的BUG diff --git a/README_EN.md b/README_EN.md index 3f48664..f55fc26 100644 --- a/README_EN.md +++ b/README_EN.md @@ -24,21 +24,31 @@ Due to limited personal time, the frequency of updating plug-ins will not be ver # Version update introduction -> Last updated: 2025-10-12 +> Last updated: 2025-10-26 -> 0.0.66 Public Beta Version Introduction: If you want to use this plugin, please be sure to join our official QQ group (1018231382)! +> 0.0.67 Public Beta Version Introduction: If you want to use this plugin, please be sure to join our official QQ group (1018231382)! +> +> 1. Fixed the issue of incomplete one-click translation +> +> 2. Merger PR [#46](https://github.com/weilin9999/WeiLin-Comfyui-Tools/pull/46) thank you for your friend's help +> +> 3. New feature: A delete button has been added to the right side of the Tag for convenient Tag deletion +> + +
+Click here for more updates from the past + +> 0.0.66 Public Beta Version 2025-10-12 > > 1. Fixed some known bugs > -> 2. Merger PR # [44] (https://github.com/weilin9999/WeiLin-Comfyui-Tools/pull/44) thank you for your friend's help +> 2. Merger PR [#44](https://github.com/weilin9999/WeiLin-Comfyui-Tools/pull/44) thank you for your friend's help > > 3. New features: Tags can be bookmarked with one click in the Tag control bar. The ability to add a newline character has also been added > > 4. Translation overhaul! This update has changed all the translation functions, using AI for translation, and docking silicon based AI for API translation. If you want to connect with other AI platforms, you can submit suggestions in the group, and a new platform will be added in the subsequent update > -
-Click here for more updates from the past > 0.0.65 Public Beta Version 2025-09-23 > diff --git a/app/server/ai_server/siliconflow.py b/app/server/ai_server/siliconflow.py index 226a009..b64966f 100644 --- a/app/server/ai_server/siliconflow.py +++ b/app/server/ai_server/siliconflow.py @@ -61,7 +61,16 @@ async def translateObject(objectData: str, target_lang_code: str = "zh") -> str: response = requests.post(url, json=payload, headers=headers) dataResponse = response.json() - print(f"💡[WeiLin-Comfyui-Tools] 硅基AI翻译接口-翻译完成,以下是使用信息:\n - PromptToken:{dataResponse['usage']['total_tokens']},\n - CompletionTokens:{dataResponse['usage']['completion_tokens']},\n - TotalTokens:{dataResponse['usage']['total_tokens']}") + if response.status_code != 200: + raise RuntimeError( + f"📌[WeiLin-Comfyui-Tools] 硅基AI接口错误: {response.status_code} {dataResponse}") + + print("💡[WeiLin-Comfyui-Tools] 硅基AI翻译接口-翻译结果:", dataResponse["choices"][0]["message"]["content"][:20], "...") + try: + print(f"💡[WeiLin-Comfyui-Tools] 硅基AI翻译接口-翻译完成,以下是使用信息:\n - PromptToken:{dataResponse['usage']['total_tokens']},\n - CompletionTokens:{dataResponse['usage']['completion_tokens']},\n - TotalTokens:{dataResponse['usage']['total_tokens']}") + except KeyError as e: + print("💡[WeiLin-Comfyui-Tools] 硅基AI翻译接口-使用信息获取失败,可能是接口返回异常,错误信息:", str(e)) + print("💡[WeiLin-Comfyui-Tools] 硅基AI翻译接口:", dataResponse["choices"][0]["finish_reason"]) return dataResponse["choices"][0]["message"]["content"] @@ -79,4 +88,8 @@ def getModelList() -> dict: response = requests.get(url, headers=headers, params=querystring) + if response.status_code != 200: + raise RuntimeError( + f"📌[WeiLin-Comfyui-Tools] 硅基AI接口错误: {response.status_code} {response.json()}") + return response.json() diff --git a/dist/javascript/main.entry.js b/dist/javascript/main.entry.js index fc96b26..d5b5f0c 100644 --- a/dist/javascript/main.entry.js +++ b/dist/javascript/main.entry.js @@ -6,18 +6,18 @@ * @vue/reactivity v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,a;if(this.scopes)for(t=0,a=this.scopes.length;t0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const a=t.next;t.next=void 0,t.flags&=-9,t=a}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const a=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=a}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,a=e.depsTail,n=a;for(;n;){const o=n.prevDep;n.version===-1?(n===a&&(a=o),removeSub(n),removeDep(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=o}e.deps=t,e.depsTail=a}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion))return;e.globalVersion=globalVersion;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!isDirty(e)){e.flags&=-3;return}const a=activeSub,n=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const o=e.fn(e._value);(t.version===0||hasChanged(o,e._value))&&(e._value=o,t.version++)}catch(o){throw t.version++,o}finally{activeSub=a,shouldTrack=n,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:a,prevSub:n,nextSub:o}=e;if(n&&(n.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=n,e.nextSub=void 0),a.subs===e&&(a.subs=n,!n&&a.computed)){a.computed.flags&=-5;for(let r=a.computed.deps;r;r=r.nextDep)removeSub(r,!0)}!t&&!--a.sc&&a.map&&a.map.delete(a.key)}function removeDep(e){const{prevDep:t,nextDep:a}=e;t&&(t.nextDep=a,e.prevDep=void 0),a&&(a.prevDep=t,e.nextDep=void 0)}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const a=activeSub;activeSub=void 0;try{t()}finally{activeSub=a}}}let globalVersion=0;class Link{constructor(t,a){this.sub=t,this.dep=a,this.version=a.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let a=this.activeLink;if(a===void 0||a.sub!==activeSub)a=this.activeLink=new Link(activeSub,this),activeSub.deps?(a.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=a,activeSub.depsTail=a):activeSub.deps=activeSub.depsTail=a,addSub(a);else if(a.version===-1&&(a.version=this.version,a.nextDep)){const n=a.nextDep;n.prevDep=a.prevDep,a.prevDep&&(a.prevDep.nextDep=n),a.prevDep=activeSub.depsTail,a.nextDep=void 0,activeSub.depsTail.nextDep=a,activeSub.depsTail=a,activeSub.deps===a&&(activeSub.deps=n)}return a}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let a=this.subs;a;a=a.prevSub)a.sub.notify()&&a.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)addSub(n)}const a=e.dep.subs;a!==e&&(e.prevSub=a,a&&(a.nextSub=e)),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol(""),MAP_KEY_ITERATE_KEY=Symbol(""),ARRAY_ITERATE_KEY=Symbol("");function track(e,t,a){if(shouldTrack&&activeSub){let n=targetMap.get(e);n||targetMap.set(e,n=new Map);let o=n.get(a);o||(n.set(a,o=new Dep),o.map=n,o.key=a),o.track()}}function trigger(e,t,a,n,o,r){const s=targetMap.get(e);if(!s){globalVersion++;return}const l=c=>{c&&c.trigger()};if(startBatch(),t==="clear")s.forEach(l);else{const c=isArray$2(e),f=c&&isIntegerKey(a);if(c&&a==="length"){const u=Number(n);s.forEach((d,m)=>{(m==="length"||m===ARRAY_ITERATE_KEY||!isSymbol(m)&&m>=u)&&l(d)})}else switch((a!==void 0||s.has(void 0))&&l(s.get(a)),f&&l(s.get(ARRAY_ITERATE_KEY)),t){case"add":c?f&&l(s.get("length")):(l(s.get(ITERATE_KEY)),isMap(e)&&l(s.get(MAP_KEY_ITERATE_KEY)));break;case"delete":c||(l(s.get(ITERATE_KEY)),isMap(e)&&l(s.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(e)&&l(s.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const a=targetMap.get(e);return a&&a.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$2(t)?reactiveReadArray(t):t))},entries(){return iterator(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply$1(this,"every",e,t,void 0,arguments)},filter(e,t){return apply$1(this,"filter",e,t,a=>a.map(toReactive),arguments)},find(e,t){return apply$1(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply$1(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply$1(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply$1(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply$1(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply$1(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply$1(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator(this,"values",toReactive)}};function iterator(e,t,a){const n=shallowReadArray(e),o=n[t]();return n!==e&&!isShallow(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.value&&(r.value=a(r.value)),r}),o}const arrayProto=Array.prototype;function apply$1(e,t,a,n,o,r){const s=shallowReadArray(e),l=s!==e&&!isShallow(e),c=s[t];if(c!==arrayProto[t]){const d=c.apply(e,r);return l?toReactive(d):d}let f=a;s!==e&&(l?f=function(d,m){return a.call(this,toReactive(d),m,e)}:a.length>2&&(f=function(d,m){return a.call(this,d,m,e)}));const u=c.call(s,f,n);return l&&o?o(u):u}function reduce(e,t,a,n){const o=shallowReadArray(e);let r=a;return o!==e&&(isShallow(e)?a.length>3&&(r=function(s,l,c){return a.call(this,s,l,c,e)}):r=function(s,l,c){return a.call(this,s,toReactive(l),c,e)}),o[t](r,...n)}function searchProxy(e,t,a){const n=toRaw(e);track(n,"iterate",ARRAY_ITERATE_KEY);const o=n[t](...a);return(o===-1||o===!1)&&isProxy(a[0])?(a[0]=toRaw(a[0]),n[t](...a)):o}function noTracking(e,t,a=[]){pauseTracking(),startBatch();const n=toRaw(e)[t].apply(e,a);return endBatch(),resetTracking(),n}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol));function hasOwnProperty$2(e){isSymbol(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,a=!1){this._isReadonly=t,this._isShallow=a}get(t,a,n){if(a==="__v_skip")return t.__v_skip;const o=this._isReadonly,r=this._isShallow;if(a==="__v_isReactive")return!o;if(a==="__v_isReadonly")return o;if(a==="__v_isShallow")return r;if(a==="__v_raw")return n===(o?r?shallowReadonlyMap:readonlyMap:r?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=isArray$2(t);if(!o){let c;if(s&&(c=arrayInstrumentations[a]))return c;if(a==="hasOwnProperty")return hasOwnProperty$2}const l=Reflect.get(t,a,isRef(t)?t:n);return(isSymbol(a)?builtInSymbols.has(a):isNonTrackableKeys(a))||(o||track(t,"get",a),r)?l:isRef(l)?s&&isIntegerKey(a)?l:l.value:isObject$3(l)?o?readonly(l):reactive(l):l}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,a,n,o){let r=t[a];if(!this._isShallow){const c=isReadonly(r);if(!isShallow(n)&&!isReadonly(n)&&(r=toRaw(r),n=toRaw(n)),!isArray$2(t)&&isRef(r)&&!isRef(n))return c?!1:(r.value=n,!0)}const s=isArray$2(t)&&isIntegerKey(a)?Number(a)e,getProto=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,a){return function(...n){const o=this.__v_raw,r=toRaw(o),s=isMap(r),l=e==="entries"||e===Symbol.iterator&&s,c=e==="keys"&&s,f=o[e](...n),u=a?toShallow:t?toReadonly:toReactive;return!t&&track(r,"iterate",c?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:d,done:m}=f.next();return m?{value:d,done:m}:{value:l?[u(d[0]),u(d[1])]:u(d),done:m}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const a={get(o){const r=this.__v_raw,s=toRaw(r),l=toRaw(o);e||(hasChanged(o,l)&&track(s,"get",o),track(s,"get",l));const{has:c}=getProto(s),f=t?toShallow:e?toReadonly:toReactive;if(c.call(s,o))return f(r.get(o));if(c.call(s,l))return f(r.get(l));r!==s&&r.get(o)},get size(){const o=this.__v_raw;return!e&&track(toRaw(o),"iterate",ITERATE_KEY),Reflect.get(o,"size",o)},has(o){const r=this.__v_raw,s=toRaw(r),l=toRaw(o);return e||(hasChanged(o,l)&&track(s,"has",o),track(s,"has",l)),o===l?r.has(o):r.has(o)||r.has(l)},forEach(o,r){const s=this,l=s.__v_raw,c=toRaw(l),f=t?toShallow:e?toReadonly:toReactive;return!e&&track(c,"iterate",ITERATE_KEY),l.forEach((u,d)=>o.call(r,f(u),f(d),s))}};return extend$2(a,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(o){!t&&!isShallow(o)&&!isReadonly(o)&&(o=toRaw(o));const r=toRaw(this);return getProto(r).has.call(r,o)||(r.add(o),trigger(r,"add",o,o)),this},set(o,r){!t&&!isShallow(r)&&!isReadonly(r)&&(r=toRaw(r));const s=toRaw(this),{has:l,get:c}=getProto(s);let f=l.call(s,o);f||(o=toRaw(o),f=l.call(s,o));const u=c.call(s,o);return s.set(o,r),f?hasChanged(r,u)&&trigger(s,"set",o,r):trigger(s,"add",o,r),this},delete(o){const r=toRaw(this),{has:s,get:l}=getProto(r);let c=s.call(r,o);c||(o=toRaw(o),c=s.call(r,o)),l&&l.call(r,o);const f=r.delete(o);return c&&trigger(r,"delete",o,void 0),f},clear(){const o=toRaw(this),r=o.size!==0,s=o.clear();return r&&trigger(o,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(o=>{a[o]=createIterableMethod(o,e,t)}),a}function createInstrumentationGetter(e,t){const a=createInstrumentations(e,t);return(n,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?n:Reflect.get(hasOwn$1(a,o)&&o in n?a:n,o,r)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,a,n,o){if(!isObject$3(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=o.get(e);if(r)return r;const s=getTargetType(e);if(s===0)return e;const l=new Proxy(e,s===2?n:a);return o.set(e,l),l}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$1(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,a){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=a?t:toRaw(t),this._value=a?t:toReactive(t),this.__v_isShallow=a}get value(){return this.dep.track(),this._value}set value(t){const a=this._rawValue,n=this.__v_isShallow||isShallow(t)||isReadonly(t);t=n?t:toRaw(t),hasChanged(t,a)&&(this._rawValue=t,this._value=n?t:toReactive(t),this.dep.trigger())}}function unref(e){return isRef(e)?e.value:e}const shallowUnwrapHandlers={get:(e,t,a)=>t==="__v_raw"?e:unref(Reflect.get(e,t,a)),set:(e,t,a,n)=>{const o=e[t];return isRef(o)&&!isRef(a)?(o.value=a,!0):Reflect.set(e,t,a,n)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}function toRefs(e){const t=isArray$2(e)?new Array(e.length):{};for(const a in e)t[a]=propertyToRef(e,a);return t}class ObjectRefImpl{constructor(t,a,n){this._object=t,this._key=a,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}function propertyToRef(e,t,a){const n=e[t];return isRef(n)?n:new ObjectRefImpl(e,t,a)}class ComputedRefImpl{constructor(t,a,n){this.fn=t,this.setter=a,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!a,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track();return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function computed$1(e,t,a=!1){let n,o;return isFunction$2(e)?n=e:(n=e.get,o=e.set),new ComputedRefImpl(n,o,a)}const INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function onWatcherCleanup(e,t=!1,a=activeWatcher){if(a){let n=cleanupMap.get(a);n||cleanupMap.set(a,n=[]),n.push(e)}}function watch$1(e,t,a=EMPTY_OBJ){const{immediate:n,deep:o,once:r,scheduler:s,augmentJob:l,call:c}=a,f=y=>o?y:isShallow(y)||o===!1||o===0?traverse(y,1):traverse(y);let u,d,m,g,v=!1,b=!1;if(isRef(e)?(d=()=>e.value,v=isShallow(e)):isReactive(e)?(d=()=>f(e),v=!0):isArray$2(e)?(b=!0,v=e.some(y=>isReactive(y)||isShallow(y)),d=()=>e.map(y=>{if(isRef(y))return y.value;if(isReactive(y))return f(y);if(isFunction$2(y))return c?c(y,2):y()})):isFunction$2(e)?t?d=c?()=>c(e,2):e:d=()=>{if(m){pauseTracking();try{m()}finally{resetTracking()}}const y=activeWatcher;activeWatcher=u;try{return c?c(e,3,[g]):e(g)}finally{activeWatcher=y}}:d=NOOP,t&&o){const y=d,E=o===!0?1/0:o;d=()=>traverse(y(),E)}const $=getCurrentScope(),w=()=>{u.stop(),$&&$.active&&remove($.effects,u)};if(r&&t){const y=t;t=(...E)=>{y(...E),w()}}let N=b?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const P=y=>{if(!(!(u.flags&1)||!u.dirty&&!y))if(t){const E=u.run();if(o||v||(b?E.some((R,F)=>hasChanged(R,N[F])):hasChanged(E,N))){m&&m();const R=activeWatcher;activeWatcher=u;try{const F=[E,N===INITIAL_WATCHER_VALUE?void 0:b&&N[0]===INITIAL_WATCHER_VALUE?[]:N,g];c?c(t,3,F):t(...F),N=E}finally{activeWatcher=R}}}else u.run()};return l&&l(P),u=new ReactiveEffect(d),u.scheduler=s?()=>s(P,!1):P,g=y=>onWatcherCleanup(y,!1,u),m=u.onStop=()=>{const y=cleanupMap.get(u);if(y){if(c)c(y,4);else for(const E of y)E();cleanupMap.delete(u)}},t?n?P(!0):N=u.run():s?s(P.bind(null,!0),!0):u.run(),w.pause=u.pause.bind(u),w.resume=u.resume.bind(u),w.stop=w,w}function traverse(e,t=1/0,a){if(t<=0||!isObject$3(e)||e.__v_skip||(a=a||new Set,a.has(e)))return e;if(a.add(e),t--,isRef(e))traverse(e.value,t,a);else if(isArray$2(e))for(let n=0;n{traverse(n,t,a)});else if(isPlainObject$3(e)){for(const n in e)traverse(e[n],t,a);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&traverse(e[n],t,a)}return e}/** +**/let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,a;if(this.scopes)for(t=0,a=this.scopes.length;t0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const a=t.next;t.next=void 0,t.flags&=-9,t=a}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const a=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=a}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,a=e.depsTail,n=a;for(;n;){const o=n.prevDep;n.version===-1?(n===a&&(a=o),removeSub(n),removeDep(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=o}e.deps=t,e.depsTail=a}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion))return;e.globalVersion=globalVersion;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!isDirty(e)){e.flags&=-3;return}const a=activeSub,n=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const o=e.fn(e._value);(t.version===0||hasChanged(o,e._value))&&(e._value=o,t.version++)}catch(o){throw t.version++,o}finally{activeSub=a,shouldTrack=n,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:a,prevSub:n,nextSub:o}=e;if(n&&(n.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=n,e.nextSub=void 0),a.subs===e&&(a.subs=n,!n&&a.computed)){a.computed.flags&=-5;for(let r=a.computed.deps;r;r=r.nextDep)removeSub(r,!0)}!t&&!--a.sc&&a.map&&a.map.delete(a.key)}function removeDep(e){const{prevDep:t,nextDep:a}=e;t&&(t.nextDep=a,e.prevDep=void 0),a&&(a.prevDep=t,e.nextDep=void 0)}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const a=activeSub;activeSub=void 0;try{t()}finally{activeSub=a}}}let globalVersion=0;class Link{constructor(t,a){this.sub=t,this.dep=a,this.version=a.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let a=this.activeLink;if(a===void 0||a.sub!==activeSub)a=this.activeLink=new Link(activeSub,this),activeSub.deps?(a.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=a,activeSub.depsTail=a):activeSub.deps=activeSub.depsTail=a,addSub(a);else if(a.version===-1&&(a.version=this.version,a.nextDep)){const n=a.nextDep;n.prevDep=a.prevDep,a.prevDep&&(a.prevDep.nextDep=n),a.prevDep=activeSub.depsTail,a.nextDep=void 0,activeSub.depsTail.nextDep=a,activeSub.depsTail=a,activeSub.deps===a&&(activeSub.deps=n)}return a}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let a=this.subs;a;a=a.prevSub)a.sub.notify()&&a.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)addSub(n)}const a=e.dep.subs;a!==e&&(e.prevSub=a,a&&(a.nextSub=e)),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol(""),MAP_KEY_ITERATE_KEY=Symbol(""),ARRAY_ITERATE_KEY=Symbol("");function track(e,t,a){if(shouldTrack&&activeSub){let n=targetMap.get(e);n||targetMap.set(e,n=new Map);let o=n.get(a);o||(n.set(a,o=new Dep),o.map=n,o.key=a),o.track()}}function trigger(e,t,a,n,o,r){const s=targetMap.get(e);if(!s){globalVersion++;return}const l=c=>{c&&c.trigger()};if(startBatch(),t==="clear")s.forEach(l);else{const c=isArray$2(e),f=c&&isIntegerKey(a);if(c&&a==="length"){const u=Number(n);s.forEach((d,m)=>{(m==="length"||m===ARRAY_ITERATE_KEY||!isSymbol(m)&&m>=u)&&l(d)})}else switch((a!==void 0||s.has(void 0))&&l(s.get(a)),f&&l(s.get(ARRAY_ITERATE_KEY)),t){case"add":c?f&&l(s.get("length")):(l(s.get(ITERATE_KEY)),isMap(e)&&l(s.get(MAP_KEY_ITERATE_KEY)));break;case"delete":c||(l(s.get(ITERATE_KEY)),isMap(e)&&l(s.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(e)&&l(s.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const a=targetMap.get(e);return a&&a.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$2(t)?reactiveReadArray(t):t))},entries(){return iterator(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply$1(this,"every",e,t,void 0,arguments)},filter(e,t){return apply$1(this,"filter",e,t,a=>a.map(toReactive),arguments)},find(e,t){return apply$1(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply$1(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply$1(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply$1(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply$1(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply$1(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply$1(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator(this,"values",toReactive)}};function iterator(e,t,a){const n=shallowReadArray(e),o=n[t]();return n!==e&&!isShallow(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.value&&(r.value=a(r.value)),r}),o}const arrayProto=Array.prototype;function apply$1(e,t,a,n,o,r){const s=shallowReadArray(e),l=s!==e&&!isShallow(e),c=s[t];if(c!==arrayProto[t]){const d=c.apply(e,r);return l?toReactive(d):d}let f=a;s!==e&&(l?f=function(d,m){return a.call(this,toReactive(d),m,e)}:a.length>2&&(f=function(d,m){return a.call(this,d,m,e)}));const u=c.call(s,f,n);return l&&o?o(u):u}function reduce(e,t,a,n){const o=shallowReadArray(e);let r=a;return o!==e&&(isShallow(e)?a.length>3&&(r=function(s,l,c){return a.call(this,s,l,c,e)}):r=function(s,l,c){return a.call(this,s,toReactive(l),c,e)}),o[t](r,...n)}function searchProxy(e,t,a){const n=toRaw(e);track(n,"iterate",ARRAY_ITERATE_KEY);const o=n[t](...a);return(o===-1||o===!1)&&isProxy(a[0])?(a[0]=toRaw(a[0]),n[t](...a)):o}function noTracking(e,t,a=[]){pauseTracking(),startBatch();const n=toRaw(e)[t].apply(e,a);return endBatch(),resetTracking(),n}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol));function hasOwnProperty$2(e){isSymbol(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,a=!1){this._isReadonly=t,this._isShallow=a}get(t,a,n){if(a==="__v_skip")return t.__v_skip;const o=this._isReadonly,r=this._isShallow;if(a==="__v_isReactive")return!o;if(a==="__v_isReadonly")return o;if(a==="__v_isShallow")return r;if(a==="__v_raw")return n===(o?r?shallowReadonlyMap:readonlyMap:r?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=isArray$2(t);if(!o){let c;if(s&&(c=arrayInstrumentations[a]))return c;if(a==="hasOwnProperty")return hasOwnProperty$2}const l=Reflect.get(t,a,isRef(t)?t:n);return(isSymbol(a)?builtInSymbols.has(a):isNonTrackableKeys(a))||(o||track(t,"get",a),r)?l:isRef(l)?s&&isIntegerKey(a)?l:l.value:isObject$3(l)?o?readonly(l):reactive(l):l}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,a,n,o){let r=t[a];if(!this._isShallow){const c=isReadonly(r);if(!isShallow(n)&&!isReadonly(n)&&(r=toRaw(r),n=toRaw(n)),!isArray$2(t)&&isRef(r)&&!isRef(n))return c?!1:(r.value=n,!0)}const s=isArray$2(t)&&isIntegerKey(a)?Number(a)e,getProto=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,a){return function(...n){const o=this.__v_raw,r=toRaw(o),s=isMap(r),l=e==="entries"||e===Symbol.iterator&&s,c=e==="keys"&&s,f=o[e](...n),u=a?toShallow:t?toReadonly:toReactive;return!t&&track(r,"iterate",c?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:d,done:m}=f.next();return m?{value:d,done:m}:{value:l?[u(d[0]),u(d[1])]:u(d),done:m}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const a={get(o){const r=this.__v_raw,s=toRaw(r),l=toRaw(o);e||(hasChanged(o,l)&&track(s,"get",o),track(s,"get",l));const{has:c}=getProto(s),f=t?toShallow:e?toReadonly:toReactive;if(c.call(s,o))return f(r.get(o));if(c.call(s,l))return f(r.get(l));r!==s&&r.get(o)},get size(){const o=this.__v_raw;return!e&&track(toRaw(o),"iterate",ITERATE_KEY),Reflect.get(o,"size",o)},has(o){const r=this.__v_raw,s=toRaw(r),l=toRaw(o);return e||(hasChanged(o,l)&&track(s,"has",o),track(s,"has",l)),o===l?r.has(o):r.has(o)||r.has(l)},forEach(o,r){const s=this,l=s.__v_raw,c=toRaw(l),f=t?toShallow:e?toReadonly:toReactive;return!e&&track(c,"iterate",ITERATE_KEY),l.forEach((u,d)=>o.call(r,f(u),f(d),s))}};return extend$2(a,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(o){!t&&!isShallow(o)&&!isReadonly(o)&&(o=toRaw(o));const r=toRaw(this);return getProto(r).has.call(r,o)||(r.add(o),trigger(r,"add",o,o)),this},set(o,r){!t&&!isShallow(r)&&!isReadonly(r)&&(r=toRaw(r));const s=toRaw(this),{has:l,get:c}=getProto(s);let f=l.call(s,o);f||(o=toRaw(o),f=l.call(s,o));const u=c.call(s,o);return s.set(o,r),f?hasChanged(r,u)&&trigger(s,"set",o,r):trigger(s,"add",o,r),this},delete(o){const r=toRaw(this),{has:s,get:l}=getProto(r);let c=s.call(r,o);c||(o=toRaw(o),c=s.call(r,o)),l&&l.call(r,o);const f=r.delete(o);return c&&trigger(r,"delete",o,void 0),f},clear(){const o=toRaw(this),r=o.size!==0,s=o.clear();return r&&trigger(o,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(o=>{a[o]=createIterableMethod(o,e,t)}),a}function createInstrumentationGetter(e,t){const a=createInstrumentations(e,t);return(n,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?n:Reflect.get(hasOwn$1(a,o)&&o in n?a:n,o,r)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,a,n,o){if(!isObject$3(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=o.get(e);if(r)return r;const s=getTargetType(e);if(s===0)return e;const l=new Proxy(e,s===2?n:a);return o.set(e,l),l}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$1(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,a){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=a?t:toRaw(t),this._value=a?t:toReactive(t),this.__v_isShallow=a}get value(){return this.dep.track(),this._value}set value(t){const a=this._rawValue,n=this.__v_isShallow||isShallow(t)||isReadonly(t);t=n?t:toRaw(t),hasChanged(t,a)&&(this._rawValue=t,this._value=n?t:toReactive(t),this.dep.trigger())}}function unref(e){return isRef(e)?e.value:e}const shallowUnwrapHandlers={get:(e,t,a)=>t==="__v_raw"?e:unref(Reflect.get(e,t,a)),set:(e,t,a,n)=>{const o=e[t];return isRef(o)&&!isRef(a)?(o.value=a,!0):Reflect.set(e,t,a,n)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}function toRefs(e){const t=isArray$2(e)?new Array(e.length):{};for(const a in e)t[a]=propertyToRef(e,a);return t}class ObjectRefImpl{constructor(t,a,n){this._object=t,this._key=a,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}function propertyToRef(e,t,a){const n=e[t];return isRef(n)?n:new ObjectRefImpl(e,t,a)}class ComputedRefImpl{constructor(t,a,n){this.fn=t,this.setter=a,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!a,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track();return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function computed$1(e,t,a=!1){let n,o;return isFunction$2(e)?n=e:(n=e.get,o=e.set),new ComputedRefImpl(n,o,a)}const INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function onWatcherCleanup(e,t=!1,a=activeWatcher){if(a){let n=cleanupMap.get(a);n||cleanupMap.set(a,n=[]),n.push(e)}}function watch$1(e,t,a=EMPTY_OBJ){const{immediate:n,deep:o,once:r,scheduler:s,augmentJob:l,call:c}=a,f=y=>o?y:isShallow(y)||o===!1||o===0?traverse(y,1):traverse(y);let u,d,m,g,v=!1,b=!1;if(isRef(e)?(d=()=>e.value,v=isShallow(e)):isReactive(e)?(d=()=>f(e),v=!0):isArray$2(e)?(b=!0,v=e.some(y=>isReactive(y)||isShallow(y)),d=()=>e.map(y=>{if(isRef(y))return y.value;if(isReactive(y))return f(y);if(isFunction$2(y))return c?c(y,2):y()})):isFunction$2(e)?t?d=c?()=>c(e,2):e:d=()=>{if(m){pauseTracking();try{m()}finally{resetTracking()}}const y=activeWatcher;activeWatcher=u;try{return c?c(e,3,[g]):e(g)}finally{activeWatcher=y}}:d=NOOP,t&&o){const y=d,E=o===!0?1/0:o;d=()=>traverse(y(),E)}const $=getCurrentScope(),w=()=>{u.stop(),$&&$.active&&remove($.effects,u)};if(r&&t){const y=t;t=(...E)=>{y(...E),w()}}let C=b?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const P=y=>{if(!(!(u.flags&1)||!u.dirty&&!y))if(t){const E=u.run();if(o||v||(b?E.some((R,F)=>hasChanged(R,C[F])):hasChanged(E,C))){m&&m();const R=activeWatcher;activeWatcher=u;try{const F=[E,C===INITIAL_WATCHER_VALUE?void 0:b&&C[0]===INITIAL_WATCHER_VALUE?[]:C,g];c?c(t,3,F):t(...F),C=E}finally{activeWatcher=R}}}else u.run()};return l&&l(P),u=new ReactiveEffect(d),u.scheduler=s?()=>s(P,!1):P,g=y=>onWatcherCleanup(y,!1,u),m=u.onStop=()=>{const y=cleanupMap.get(u);if(y){if(c)c(y,4);else for(const E of y)E();cleanupMap.delete(u)}},t?n?P(!0):C=u.run():s?s(P.bind(null,!0),!0):u.run(),w.pause=u.pause.bind(u),w.resume=u.resume.bind(u),w.stop=w,w}function traverse(e,t=1/0,a){if(t<=0||!isObject$3(e)||e.__v_skip||(a=a||new Set,a.has(e)))return e;if(a.add(e),t--,isRef(e))traverse(e.value,t,a);else if(isArray$2(e))for(let n=0;n{traverse(n,t,a)});else if(isPlainObject$3(e)){for(const n in e)traverse(e[n],t,a);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&traverse(e[n],t,a)}return e}/** * @vue/runtime-core v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/const stack=[];let isWarning=!1;function warn$1(e,...t){if(isWarning)return;isWarning=!0,pauseTracking();const a=stack.length?stack[stack.length-1].component:null,n=a&&a.appContext.config.warnHandler,o=getComponentTrace();if(n)callWithErrorHandling(n,a,11,[e+t.map(r=>{var s,l;return(l=(s=r.toString)==null?void 0:s.call(r))!=null?l:JSON.stringify(r)}).join(""),a&&a.proxy,o.map(({vnode:r})=>`at <${formatComponentName(a,r.type)}>`).join(` `),o]);else{const r=[`[Vue warn]: ${e}`,...t];o.length&&r.push(` `,...formatTrace(o)),console.warn(...r)}resetTracking(),isWarning=!1}function getComponentTrace(){let e=stack[stack.length-1];if(!e)return[];const t=[];for(;e;){const a=t[0];a&&a.vnode===e?a.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function formatTrace(e){const t=[];return e.forEach((a,n)=>{t.push(...n===0?[]:[` -`],...formatTraceEntry(a))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const a=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,o=` at <${formatComponentName(e.component,e.type,n)}`,r=">"+a;return e.props?[o,...formatProps(e.props),r]:[o+r]}function formatProps(e){const t=[],a=Object.keys(e);return a.slice(0,3).forEach(n=>{t.push(...formatProp(n,e[n]))}),a.length>3&&t.push(" ..."),t}function formatProp(e,t,a){return isString$2(t)?(t=JSON.stringify(t),a?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?a?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),a?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),a?t:[`${e}=`,t])}function callWithErrorHandling(e,t,a,n){try{return n?e(...n):e()}catch(o){handleError(o,t,a)}}function callWithAsyncErrorHandling(e,t,a,n){if(isFunction$2(e)){const o=callWithErrorHandling(e,t,a,n);return o&&isPromise$1(o)&&o.catch(r=>{handleError(r,t,a)}),o}if(isArray$2(e)){const o=[];for(let r=0;r>>1,o=queue[n],r=getId(o);r=getId(a)?queue.push(e):queue.splice(findInsertionIndex(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$2(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,a=flushIndex+1){for(;agetId(a)-getId(n));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){try{for(flushIndex=0;flushIndex{n._d&&setBlockTracking(-1);const r=setCurrentRenderingInstance(t);let s;try{s=e(...o)}finally{setCurrentRenderingInstance(r),n._d&&setBlockTracking(1)}return s};return n._n=!0,n._c=!0,n._d=!0,n}function withDirectives(e,t){if(currentRenderingInstance===null)return e;const a=getComponentPublicInstance(currentRenderingInstance),n=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const a=e&&e.to;return isString$2(a)?t?t(a):null:a},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,a,n,o,r,s,l,c,f){const{mc:u,pc:d,pbc:m,o:{insert:g,querySelector:v,createText:b,createComment:$}}=f,w=isTeleportDisabled(t.props);let{shapeFlag:N,children:P,dynamicChildren:y}=t;if(e==null){const E=t.el=b(""),R=t.anchor=b("");g(E,a,n),g(R,a,n);const F=(j,fe)=>{N&16&&(o&&o.isCE&&(o.ce._teleportTarget=j),u(P,j,fe,o,r,s,l,c))},H=()=>{const j=t.target=resolveTarget(t.props,v),fe=prepareAnchor(j,t,b,g);j&&(s!=="svg"&&isTargetSVG(j)?s="svg":s!=="mathml"&&isTargetMathML(j)&&(s="mathml"),w||(F(j,fe),updateCssVars(t,!1)))};w&&(F(a,R),updateCssVars(t,!0)),isTeleportDeferred(t.props)?queuePostRenderEffect(()=>{H(),t.el.__isMounted=!0},r):H()}else{if(isTeleportDeferred(t.props)&&!e.el.__isMounted){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,a,n,o,r,s,l,c,f),delete e.el.__isMounted},r);return}t.el=e.el,t.targetStart=e.targetStart;const E=t.anchor=e.anchor,R=t.target=e.target,F=t.targetAnchor=e.targetAnchor,H=isTeleportDisabled(e.props),j=H?a:R,fe=H?E:F;if(s==="svg"||isTargetSVG(R)?s="svg":(s==="mathml"||isTargetMathML(R))&&(s="mathml"),y?(m(e.dynamicChildren,y,j,o,r,s,l),traverseStaticChildren(e,t,!0)):c||d(e,t,j,fe,o,r,s,l,!1),w)H?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,a,E,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const oe=t.target=resolveTarget(t.props,v);oe&&moveTeleport(t,oe,null,f,0)}else H&&moveTeleport(t,R,F,f,1);updateCssVars(t,w)}},remove(e,t,a,{um:n,o:{remove:o}},r){const{shapeFlag:s,children:l,anchor:c,targetStart:f,targetAnchor:u,target:d,props:m}=e;if(d&&(o(f),o(u)),r&&o(c),s&16){const g=r||!isTeleportDisabled(m);for(let v=0;v{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const a=getCurrentInstance(),n=useTransitionState();return()=>{const o=t.default&&getTransitionRawChildren(t.default(),!0);if(!o||!o.length)return;const r=findNonCommentChild(o),s=toRaw(e),{mode:l}=s;if(n.isLeaving)return emptyPlaceholder(r);const c=getInnerChild$1(r);if(!c)return emptyPlaceholder(r);let f=resolveTransitionHooks(c,s,n,a,d=>f=d);c.type!==Comment&&setTransitionHooks(c,f);let u=a.subTree&&getInnerChild$1(a.subTree);if(u&&u.type!==Comment&&!isSameVNodeType(c,u)&&recursiveGetSubtree(a).type!==Comment){let d=resolveTransitionHooks(u,s,n,a);if(setTransitionHooks(u,d),l==="out-in"&&c.type!==Comment)return n.isLeaving=!0,d.afterLeave=()=>{n.isLeaving=!1,a.job.flags&8||a.update(),delete d.afterLeave,u=void 0},emptyPlaceholder(r);l==="in-out"&&c.type!==Comment?d.delayLeave=(m,g,v)=>{const b=getLeavingNodesForType(n,u);b[String(u.key)]=u,m[leaveCbKey]=()=>{g(),m[leaveCbKey]=void 0,delete f.delayedLeave,u=void 0},f.delayedLeave=()=>{v(),delete f.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){for(const a of e)if(a.type!==Comment){t=a;break}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:a}=e;let n=a.get(t.type);return n||(n=Object.create(null),a.set(t.type,n)),n}function resolveTransitionHooks(e,t,a,n,o){const{appear:r,mode:s,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:m,onLeave:g,onAfterLeave:v,onLeaveCancelled:b,onBeforeAppear:$,onAppear:w,onAfterAppear:N,onAppearCancelled:P}=t,y=String(e.key),E=getLeavingNodesForType(a,e),R=(j,fe)=>{j&&callWithAsyncErrorHandling(j,n,9,fe)},F=(j,fe)=>{const oe=fe[1];R(j,fe),isArray$2(j)?j.every(V=>V.length<=1)&&oe():j.length<=1&&oe()},H={mode:s,persisted:l,beforeEnter(j){let fe=c;if(!a.isMounted)if(r)fe=$||c;else return;j[leaveCbKey]&&j[leaveCbKey](!0);const oe=E[y];oe&&isSameVNodeType(e,oe)&&oe.el[leaveCbKey]&&oe.el[leaveCbKey](),R(fe,[j])},enter(j){let fe=f,oe=u,V=d;if(!a.isMounted)if(r)fe=w||f,oe=N||u,V=P||d;else return;let q=!1;const Q=j[enterCbKey$1]=O=>{q||(q=!0,O?R(V,[j]):R(oe,[j]),H.delayedLeave&&H.delayedLeave(),j[enterCbKey$1]=void 0)};fe?F(fe,[j,Q]):Q()},leave(j,fe){const oe=String(e.key);if(j[enterCbKey$1]&&j[enterCbKey$1](!0),a.isUnmounting)return fe();R(m,[j]);let V=!1;const q=j[leaveCbKey]=Q=>{V||(V=!0,fe(),Q?R(b,[j]):R(v,[j]),j[leaveCbKey]=void 0,E[oe]===e&&delete E[oe])};E[oe]=e,g?F(g,[j,q]):q()},clone(j){const fe=resolveTransitionHooks(j,t,a,n,o);return o&&o(fe),fe}};return H}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;const{shapeFlag:t,children:a}=e;if(a){if(t&16)return a[0];if(t&32&&isFunction$2(a.default))return a.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,a){let n=[],o=0;for(let r=0;r1)for(let r=0;rsetRef(v,t&&(isArray$2(t)?t[b]:t),a,n,o));return}if(isAsyncWrapper(n)&&!o){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&setRef(e,t,a,n.component.subTree);return}const r=n.shapeFlag&4?getComponentPublicInstance(n.component):n.el,s=o?null:r,{i:l,r:c}=e,f=t&&t.r,u=l.refs===EMPTY_OBJ?l.refs={}:l.refs,d=l.setupState,m=toRaw(d),g=d===EMPTY_OBJ?()=>!1:v=>hasOwn$1(m,v);if(f!=null&&f!==c&&(isString$2(f)?(u[f]=null,g(f)&&(d[f]=null)):isRef(f)&&(f.value=null)),isFunction$2(c))callWithErrorHandling(c,l,12,[s,u]);else{const v=isString$2(c),b=isRef(c);if(v||b){const $=()=>{if(e.f){const w=v?g(c)?d[c]:u[c]:c.value;o?isArray$2(w)&&remove(w,r):isArray$2(w)?w.includes(r)||w.push(r):v?(u[c]=[r],g(c)&&(d[c]=u[c])):(c.value=[r],e.k&&(u[e.k]=c.value))}else v?(u[c]=s,g(c)&&(d[c]=s)):b&&(c.value=s,e.k&&(u[e.k]=s))};s?($.id=-1,queuePostRenderEffect($,a)):$()}}}getGlobalThis$1().requestIdleCallback,getGlobalThis$1().cancelIdleCallback;const isAsyncWrapper=e=>!!e.type.__asyncLoader,isKeepAlive=e=>e.type.__isKeepAlive;function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,a=currentInstance){const n=e.__wdc||(e.__wdc=()=>{let o=a;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(injectHook(t,n,a),a){let o=a.parent;for(;o&&o.parent;)isKeepAlive(o.parent.vnode)&&injectToKeepAliveRoot(n,t,a,o),o=o.parent}}function injectToKeepAliveRoot(e,t,a,n){const o=injectHook(t,e,n,!0);onUnmounted(()=>{remove(n[t],o)},a)}function injectHook(e,t,a=currentInstance,n=!1){if(a){const o=a[e]||(a[e]=[]),r=t.__weh||(t.__weh=(...s)=>{pauseTracking();const l=setCurrentInstance(a),c=callWithAsyncErrorHandling(t,a,e,s);return l(),resetTracking(),c});return n?o.unshift(r):o.push(r),r}}const createHook=e=>(t,a=currentInstance)=>{(!isInSSRComponentSetup||e==="sp")&&injectHook(e,(...n)=>t(...n),a)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}const COMPONENTS="components";function resolveComponent(e,t){return resolveAsset(COMPONENTS,e,!0,t)||e}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveAsset(e,t,a=!0,n=!1){const o=currentRenderingInstance||currentInstance;if(o){const r=o.type;{const l=getComponentName(r,!1);if(l&&(l===t||l===camelize(t)||l===capitalize$1(camelize(t))))return r}const s=resolve(o[e]||r[e],t)||resolve(o.appContext[e],t);return!s&&n?r:s}}function resolve(e,t){return e&&(e[t]||e[camelize(t)]||e[capitalize$1(camelize(t))])}function renderList(e,t,a,n){let o;const r=a,s=isArray$2(e);if(s||isString$2(e)){const l=s&&isReactive(e);let c=!1;l&&(c=!isShallow(e),e=shallowReadArray(e)),o=new Array(e.length);for(let f=0,u=e.length;ft(l,c,void 0,r));else{const l=Object.keys(e);o=new Array(l.length);for(let c=0,f=l.length;cisVNode$1(t)?!(t.type===Comment||t.type===Fragment&&!ensureValidVNode(t.children)):!0)?e:null}const getPublicInstance=e=>e?isStatefulComponent(e)?getComponentPublicInstance(e):getPublicInstance(e.parent):null,publicPropertiesMap=extend$2(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>{queueJob(e.update)}),$nextTick:e=>e.n||(e.n=nextTick.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),hasSetupBinding=(e,t)=>e!==EMPTY_OBJ&&!e.__isScriptSetup&&hasOwn$1(e,t),PublicInstanceProxyHandlers={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:a,setupState:n,data:o,props:r,accessCache:s,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const g=s[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return o[t];case 4:return a[t];case 3:return r[t]}else{if(hasSetupBinding(n,t))return s[t]=1,n[t];if(o!==EMPTY_OBJ&&hasOwn$1(o,t))return s[t]=2,o[t];if((f=e.propsOptions[0])&&hasOwn$1(f,t))return s[t]=3,r[t];if(a!==EMPTY_OBJ&&hasOwn$1(a,t))return s[t]=4,a[t];shouldCacheAccess&&(s[t]=0)}}const u=publicPropertiesMap[t];let d,m;if(u)return t==="$attrs"&&track(e.attrs,"get",""),u(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(a!==EMPTY_OBJ&&hasOwn$1(a,t))return s[t]=4,a[t];if(m=c.config.globalProperties,hasOwn$1(m,t))return m[t]},set({_:e},t,a){const{data:n,setupState:o,ctx:r}=e;return hasSetupBinding(o,t)?(o[t]=a,!0):n!==EMPTY_OBJ&&hasOwn$1(n,t)?(n[t]=a,!0):hasOwn$1(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=a,!0)},has({_:{data:e,setupState:t,accessCache:a,ctx:n,appContext:o,propsOptions:r}},s){let l;return!!a[s]||e!==EMPTY_OBJ&&hasOwn$1(e,s)||hasSetupBinding(t,s)||(l=r[0])&&hasOwn$1(l,s)||hasOwn$1(n,s)||hasOwn$1(publicPropertiesMap,s)||hasOwn$1(o.config.globalProperties,s)},defineProperty(e,t,a){return a.get!=null?e._.accessCache[t]=0:hasOwn$1(a,"value")&&this.set(e,t,a.value,null),Reflect.defineProperty(e,t,a)}};function normalizePropsOrEmits(e){return isArray$2(e)?e.reduce((t,a)=>(t[a]=null,t),{}):e}let shouldCacheAccess=!0;function applyOptions(e){const t=resolveMergedOptions(e),a=e.proxy,n=e.ctx;shouldCacheAccess=!1,t.beforeCreate&&callHook$1(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:s,watch:l,provide:c,inject:f,created:u,beforeMount:d,mounted:m,beforeUpdate:g,updated:v,activated:b,deactivated:$,beforeDestroy:w,beforeUnmount:N,destroyed:P,unmounted:y,render:E,renderTracked:R,renderTriggered:F,errorCaptured:H,serverPrefetch:j,expose:fe,inheritAttrs:oe,components:V,directives:q,filters:Q}=t;if(f&&resolveInjections(f,n,null),s)for(const ee in s){const A=s[ee];isFunction$2(A)&&(n[ee]=A.bind(a))}if(o){const ee=o.call(a,a);isObject$3(ee)&&(e.data=reactive(ee))}if(shouldCacheAccess=!0,r)for(const ee in r){const A=r[ee],D=isFunction$2(A)?A.bind(a,a):isFunction$2(A.get)?A.get.bind(a,a):NOOP,W=!isFunction$2(A)&&isFunction$2(A.set)?A.set.bind(a):NOOP,ae=computed({get:D,set:W});Object.defineProperty(n,ee,{enumerable:!0,configurable:!0,get:()=>ae.value,set:Y=>ae.value=Y})}if(l)for(const ee in l)createWatcher(l[ee],n,a,ee);if(c){const ee=isFunction$2(c)?c.call(a):c;Reflect.ownKeys(ee).forEach(A=>{provide(A,ee[A])})}u&&callHook$1(u,e,"c");function G(ee,A){isArray$2(A)?A.forEach(D=>ee(D.bind(a))):A&&ee(A.bind(a))}if(G(onBeforeMount,d),G(onMounted,m),G(onBeforeUpdate,g),G(onUpdated,v),G(onActivated,b),G(onDeactivated,$),G(onErrorCaptured,H),G(onRenderTracked,R),G(onRenderTriggered,F),G(onBeforeUnmount,N),G(onUnmounted,y),G(onServerPrefetch,j),isArray$2(fe))if(fe.length){const ee=e.exposed||(e.exposed={});fe.forEach(A=>{Object.defineProperty(ee,A,{get:()=>a[A],set:D=>a[A]=D})})}else e.exposed||(e.exposed={});E&&e.render===NOOP&&(e.render=E),oe!=null&&(e.inheritAttrs=oe),V&&(e.components=V),q&&(e.directives=q),j&&markAsyncBoundary(e)}function resolveInjections(e,t,a=NOOP){isArray$2(e)&&(e=normalizeInject(e));for(const n in e){const o=e[n];let r;isObject$3(o)?"default"in o?r=inject(o.from||n,o.default,!0):r=inject(o.from||n):r=inject(o),isRef(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function callHook$1(e,t,a){callWithAsyncErrorHandling(isArray$2(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,a)}function createWatcher(e,t,a,n){let o=n.includes(".")?createPathGetter(a,n):()=>a[n];if(isString$2(e)){const r=t[e];isFunction$2(r)&&watch(o,r)}else if(isFunction$2(e))watch(o,e.bind(a));else if(isObject$3(e))if(isArray$2(e))e.forEach(r=>createWatcher(r,t,a,n));else{const r=isFunction$2(e.handler)?e.handler.bind(a):t[e.handler];isFunction$2(r)&&watch(o,r,e)}}function resolveMergedOptions(e){const t=e.type,{mixins:a,extends:n}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,l=r.get(t);let c;return l?c=l:!o.length&&!a&&!n?c=t:(c={},o.length&&o.forEach(f=>mergeOptions(c,f,s,!0)),mergeOptions(c,t,s)),isObject$3(t)&&r.set(t,c),c}function mergeOptions(e,t,a,n=!1){const{mixins:o,extends:r}=t;r&&mergeOptions(e,r,a,!0),o&&o.forEach(s=>mergeOptions(e,s,a,!0));for(const s in t)if(!(n&&s==="expose")){const l=internalOptionMergeStrats[s]||a&&a[s];e[s]=l?l(e[s],t[s]):t[s]}return e}const internalOptionMergeStrats={data:mergeDataFn,props:mergeEmitsOrPropsOptions,emits:mergeEmitsOrPropsOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(e,t){return t?e?function(){return extend$2(isFunction$2(e)?e.call(this,this):e,isFunction$2(t)?t.call(this,this):t)}:t:e}function mergeInject(e,t){return mergeObjectOptions(normalizeInject(e),normalizeInject(t))}function normalizeInject(e){if(isArray$2(e)){const t={};for(let a=0;a1)return a&&isFunction$2(t)?t.call(n&&n.proxy):t}}function hasInjectionContext(){return!!(currentInstance||currentRenderingInstance||currentApp)}const internalObjectProto={},createInternalObject=()=>Object.create(internalObjectProto),isInternalObject=e=>Object.getPrototypeOf(e)===internalObjectProto;function initProps(e,t,a,n=!1){const o={},r=createInternalObject();e.propsDefaults=Object.create(null),setFullProps(e,t,o,r);for(const s in e.propsOptions[0])s in o||(o[s]=void 0);a?e.props=n?o:shallowReactive(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function updateProps(e,t,a,n){const{props:o,attrs:r,vnode:{patchFlag:s}}=e,l=toRaw(o),[c]=e.propsOptions;let f=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[m,g]=normalizePropsOptions(d,t,!0);extend$2(s,m),g&&l.push(...g)};!a&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!c)return isObject$3(e)&&n.set(e,EMPTY_ARR),EMPTY_ARR;if(isArray$2(r))for(let u=0;ue[0]==="_"||e==="$stable",normalizeSlotValue=e=>isArray$2(e)?e.map(normalizeVNode):[normalizeVNode(e)],normalizeSlot=(e,t,a)=>{if(t._n)return t;const n=withCtx((...o)=>normalizeSlotValue(t(...o)),a);return n._c=!1,n},normalizeObjectSlots=(e,t,a)=>{const n=e._ctx;for(const o in e){if(isInternalKey(o))continue;const r=e[o];if(isFunction$2(r))t[o]=normalizeSlot(o,r,n);else if(r!=null){const s=normalizeSlotValue(r);t[o]=()=>s}}},normalizeVNodeSlots=(e,t)=>{const a=normalizeSlotValue(t);e.slots.default=()=>a},assignSlots=(e,t,a)=>{for(const n in t)(a||n!=="_")&&(e[n]=t[n])},initSlots=(e,t,a)=>{const n=e.slots=createInternalObject();if(e.vnode.shapeFlag&32){const o=t._;o?(assignSlots(n,t,a),a&&def(n,"_",o,!0)):normalizeObjectSlots(t,n)}else t&&normalizeVNodeSlots(e,t)},updateSlots=(e,t,a)=>{const{vnode:n,slots:o}=e;let r=!0,s=EMPTY_OBJ;if(n.shapeFlag&32){const l=t._;l?a&&l===1?r=!1:assignSlots(o,t,a):(r=!t.$stable,normalizeObjectSlots(t,o)),s=t}else t&&(normalizeVNodeSlots(e,t),s={default:1});if(r)for(const l in o)!isInternalKey(l)&&s[l]==null&&delete o[l]},queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(e){return baseCreateRenderer(e)}function baseCreateRenderer(e,t){const a=getGlobalThis$1();a.__VUE__=!0;const{insert:n,remove:o,patchProp:r,createElement:s,createText:l,createComment:c,setText:f,setElementText:u,parentNode:d,nextSibling:m,setScopeId:g=NOOP,insertStaticContent:v}=e,b=(x,S,I,X=null,ie=null,pe=null,k=void 0,_=null,M=!!S.dynamicChildren)=>{if(x===S)return;x&&!isSameVNodeType(x,S)&&(X=B(x),Y(x,ie,pe,!0),x=null),S.patchFlag===-2&&(M=!1,S.dynamicChildren=null);const{type:U,ref:_e,shapeFlag:me}=S;switch(U){case Text:$(x,S,I,X);break;case Comment:w(x,S,I,X);break;case Static:x==null&&N(S,I,X,k);break;case Fragment:V(x,S,I,X,ie,pe,k,_,M);break;default:me&1?E(x,S,I,X,ie,pe,k,_,M):me&6?q(x,S,I,X,ie,pe,k,_,M):(me&64||me&128)&&U.process(x,S,I,X,ie,pe,k,_,M,L)}_e!=null&&ie&&setRef(_e,x&&x.ref,pe,S||x,!S)},$=(x,S,I,X)=>{if(x==null)n(S.el=l(S.children),I,X);else{const ie=S.el=x.el;S.children!==x.children&&f(ie,S.children)}},w=(x,S,I,X)=>{x==null?n(S.el=c(S.children||""),I,X):S.el=x.el},N=(x,S,I,X)=>{[x.el,x.anchor]=v(x.children,S,I,X,x.el,x.anchor)},P=({el:x,anchor:S},I,X)=>{let ie;for(;x&&x!==S;)ie=m(x),n(x,I,X),x=ie;n(S,I,X)},y=({el:x,anchor:S})=>{let I;for(;x&&x!==S;)I=m(x),o(x),x=I;o(S)},E=(x,S,I,X,ie,pe,k,_,M)=>{S.type==="svg"?k="svg":S.type==="math"&&(k="mathml"),x==null?R(S,I,X,ie,pe,k,_,M):j(x,S,ie,pe,k,_,M)},R=(x,S,I,X,ie,pe,k,_)=>{let M,U;const{props:_e,shapeFlag:me,transition:J,dirs:ue}=x;if(M=x.el=s(x.type,pe,_e&&_e.is,_e),me&8?u(M,x.children):me&16&&H(x.children,M,null,X,ie,resolveChildrenNamespace(x,pe),k,_),ue&&invokeDirectiveHook(x,null,X,"created"),F(M,x,x.scopeId,k,X),_e){for(const xe in _e)xe!=="value"&&!isReservedProp(xe)&&r(M,xe,null,_e[xe],pe,X);"value"in _e&&r(M,"value",null,_e.value,pe),(U=_e.onVnodeBeforeMount)&&invokeVNodeHook(U,X,x)}ue&&invokeDirectiveHook(x,null,X,"beforeMount");const $e=needTransition(ie,J);$e&&J.beforeEnter(M),n(M,S,I),((U=_e&&_e.onVnodeMounted)||$e||ue)&&queuePostRenderEffect(()=>{U&&invokeVNodeHook(U,X,x),$e&&J.enter(M),ue&&invokeDirectiveHook(x,null,X,"mounted")},ie)},F=(x,S,I,X,ie)=>{if(I&&g(x,I),X)for(let pe=0;pe{for(let U=M;U{const _=S.el=x.el;let{patchFlag:M,dynamicChildren:U,dirs:_e}=S;M|=x.patchFlag&16;const me=x.props||EMPTY_OBJ,J=S.props||EMPTY_OBJ;let ue;if(I&&toggleRecurse(I,!1),(ue=J.onVnodeBeforeUpdate)&&invokeVNodeHook(ue,I,S,x),_e&&invokeDirectiveHook(S,x,I,"beforeUpdate"),I&&toggleRecurse(I,!0),(me.innerHTML&&J.innerHTML==null||me.textContent&&J.textContent==null)&&u(_,""),U?fe(x.dynamicChildren,U,_,I,X,resolveChildrenNamespace(S,ie),pe):k||A(x,S,_,null,I,X,resolveChildrenNamespace(S,ie),pe,!1),M>0){if(M&16)oe(_,me,J,I,ie);else if(M&2&&me.class!==J.class&&r(_,"class",null,J.class,ie),M&4&&r(_,"style",me.style,J.style,ie),M&8){const $e=S.dynamicProps;for(let xe=0;xe<$e.length;xe++){const Ne=$e[xe],Be=me[Ne],Me=J[Ne];(Me!==Be||Ne==="value")&&r(_,Ne,Be,Me,ie,I)}}M&1&&x.children!==S.children&&u(_,S.children)}else!k&&U==null&&oe(_,me,J,I,ie);((ue=J.onVnodeUpdated)||_e)&&queuePostRenderEffect(()=>{ue&&invokeVNodeHook(ue,I,S,x),_e&&invokeDirectiveHook(S,x,I,"updated")},X)},fe=(x,S,I,X,ie,pe,k)=>{for(let _=0;_{if(S!==I){if(S!==EMPTY_OBJ)for(const pe in S)!isReservedProp(pe)&&!(pe in I)&&r(x,pe,S[pe],null,ie,X);for(const pe in I){if(isReservedProp(pe))continue;const k=I[pe],_=S[pe];k!==_&&pe!=="value"&&r(x,pe,_,k,ie,X)}"value"in I&&r(x,"value",S.value,I.value,ie)}},V=(x,S,I,X,ie,pe,k,_,M)=>{const U=S.el=x?x.el:l(""),_e=S.anchor=x?x.anchor:l("");let{patchFlag:me,dynamicChildren:J,slotScopeIds:ue}=S;ue&&(_=_?_.concat(ue):ue),x==null?(n(U,I,X),n(_e,I,X),H(S.children||[],I,_e,ie,pe,k,_,M)):me>0&&me&64&&J&&x.dynamicChildren?(fe(x.dynamicChildren,J,I,ie,pe,k,_),(S.key!=null||ie&&S===ie.subTree)&&traverseStaticChildren(x,S,!0)):A(x,S,I,_e,ie,pe,k,_,M)},q=(x,S,I,X,ie,pe,k,_,M)=>{S.slotScopeIds=_,x==null?S.shapeFlag&512?ie.ctx.activate(S,I,X,k,M):Q(S,I,X,ie,pe,k,M):O(x,S,M)},Q=(x,S,I,X,ie,pe,k)=>{const _=x.component=createComponentInstance(x,X,ie);if(isKeepAlive(x)&&(_.ctx.renderer=L),setupComponent(_,!1,k),_.asyncDep){if(ie&&ie.registerDep(_,G,k),!x.el){const M=_.subTree=createVNode(Comment);w(null,M,S,I)}}else G(_,x,S,I,ie,pe,k)},O=(x,S,I)=>{const X=S.component=x.component;if(shouldUpdateComponent(x,S,I))if(X.asyncDep&&!X.asyncResolved){ee(X,S,I);return}else X.next=S,X.update();else S.el=x.el,X.vnode=S},G=(x,S,I,X,ie,pe,k)=>{const _=()=>{if(x.isMounted){let{next:me,bu:J,u:ue,parent:$e,vnode:xe}=x;{const We=locateNonHydratedAsyncRoot(x);if(We){me&&(me.el=xe.el,ee(x,me,k)),We.asyncDep.then(()=>{x.isUnmounted||_()});return}}let Ne=me,Be;toggleRecurse(x,!1),me?(me.el=xe.el,ee(x,me,k)):me=xe,J&&invokeArrayFns(J),(Be=me.props&&me.props.onVnodeBeforeUpdate)&&invokeVNodeHook(Be,$e,me,xe),toggleRecurse(x,!0);const Me=renderComponentRoot(x),Ie=x.subTree;x.subTree=Me,b(Ie,Me,d(Ie.el),B(Ie),x,ie,pe),me.el=Me.el,Ne===null&&updateHOCHostEl(x,Me.el),ue&&queuePostRenderEffect(ue,ie),(Be=me.props&&me.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(Be,$e,me,xe),ie)}else{let me;const{el:J,props:ue}=S,{bm:$e,m:xe,parent:Ne,root:Be,type:Me}=x,Ie=isAsyncWrapper(S);toggleRecurse(x,!1),$e&&invokeArrayFns($e),!Ie&&(me=ue&&ue.onVnodeBeforeMount)&&invokeVNodeHook(me,Ne,S),toggleRecurse(x,!0);{Be.ce&&Be.ce._injectChildStyle(Me);const We=x.subTree=renderComponentRoot(x);b(null,We,I,X,x,ie,pe),S.el=We.el}if(xe&&queuePostRenderEffect(xe,ie),!Ie&&(me=ue&&ue.onVnodeMounted)){const We=S;queuePostRenderEffect(()=>invokeVNodeHook(me,Ne,We),ie)}(S.shapeFlag&256||Ne&&isAsyncWrapper(Ne.vnode)&&Ne.vnode.shapeFlag&256)&&x.a&&queuePostRenderEffect(x.a,ie),x.isMounted=!0,S=I=X=null}};x.scope.on();const M=x.effect=new ReactiveEffect(_);x.scope.off();const U=x.update=M.run.bind(M),_e=x.job=M.runIfDirty.bind(M);_e.i=x,_e.id=x.uid,M.scheduler=()=>queueJob(_e),toggleRecurse(x,!0),U()},ee=(x,S,I)=>{S.component=x;const X=x.vnode.props;x.vnode=S,x.next=null,updateProps(x,S.props,X,I),updateSlots(x,S.children,I),pauseTracking(),flushPreFlushCbs(x),resetTracking()},A=(x,S,I,X,ie,pe,k,_,M=!1)=>{const U=x&&x.children,_e=x?x.shapeFlag:0,me=S.children,{patchFlag:J,shapeFlag:ue}=S;if(J>0){if(J&128){W(U,me,I,X,ie,pe,k,_,M);return}else if(J&256){D(U,me,I,X,ie,pe,k,_,M);return}}ue&8?(_e&16&&re(U,ie,pe),me!==U&&u(I,me)):_e&16?ue&16?W(U,me,I,X,ie,pe,k,_,M):re(U,ie,pe,!0):(_e&8&&u(I,""),ue&16&&H(me,I,X,ie,pe,k,_,M))},D=(x,S,I,X,ie,pe,k,_,M)=>{x=x||EMPTY_ARR,S=S||EMPTY_ARR;const U=x.length,_e=S.length,me=Math.min(U,_e);let J;for(J=0;J_e?re(x,ie,pe,!0,!1,me):H(S,I,X,ie,pe,k,_,M,me)},W=(x,S,I,X,ie,pe,k,_,M)=>{let U=0;const _e=S.length;let me=x.length-1,J=_e-1;for(;U<=me&&U<=J;){const ue=x[U],$e=S[U]=M?cloneIfMounted(S[U]):normalizeVNode(S[U]);if(isSameVNodeType(ue,$e))b(ue,$e,I,null,ie,pe,k,_,M);else break;U++}for(;U<=me&&U<=J;){const ue=x[me],$e=S[J]=M?cloneIfMounted(S[J]):normalizeVNode(S[J]);if(isSameVNodeType(ue,$e))b(ue,$e,I,null,ie,pe,k,_,M);else break;me--,J--}if(U>me){if(U<=J){const ue=J+1,$e=ue<_e?S[ue].el:X;for(;U<=J;)b(null,S[U]=M?cloneIfMounted(S[U]):normalizeVNode(S[U]),I,$e,ie,pe,k,_,M),U++}}else if(U>J)for(;U<=me;)Y(x[U],ie,pe,!0),U++;else{const ue=U,$e=U,xe=new Map;for(U=$e;U<=J;U++){const ye=S[U]=M?cloneIfMounted(S[U]):normalizeVNode(S[U]);ye.key!=null&&xe.set(ye.key,U)}let Ne,Be=0;const Me=J-$e+1;let Ie=!1,We=0;const Te=new Array(Me);for(U=0;U=Me){Y(ye,ie,pe,!0);continue}let Ae;if(ye.key!=null)Ae=xe.get(ye.key);else for(Ne=$e;Ne<=J;Ne++)if(Te[Ne-$e]===0&&isSameVNodeType(ye,S[Ne])){Ae=Ne;break}Ae===void 0?Y(ye,ie,pe,!0):(Te[Ae-$e]=U+1,Ae>=We?We=Ae:Ie=!0,b(ye,S[Ae],I,null,ie,pe,k,_,M),Be++)}const be=Ie?getSequence(Te):EMPTY_ARR;for(Ne=be.length-1,U=Me-1;U>=0;U--){const ye=$e+U,Ae=S[ye],Ke=ye+1<_e?S[ye+1].el:X;Te[U]===0?b(null,Ae,I,Ke,ie,pe,k,_,M):Ie&&(Ne<0||U!==be[Ne]?ae(Ae,I,Ke,2):Ne--)}}},ae=(x,S,I,X,ie=null)=>{const{el:pe,type:k,transition:_,children:M,shapeFlag:U}=x;if(U&6){ae(x.component.subTree,S,I,X);return}if(U&128){x.suspense.move(S,I,X);return}if(U&64){k.move(x,S,I,L);return}if(k===Fragment){n(pe,S,I);for(let me=0;me_.enter(pe),ie);else{const{leave:me,delayLeave:J,afterLeave:ue}=_,$e=()=>n(pe,S,I),xe=()=>{me(pe,()=>{$e(),ue&&ue()})};J?J(pe,$e,xe):xe()}else n(pe,S,I)},Y=(x,S,I,X=!1,ie=!1)=>{const{type:pe,props:k,ref:_,children:M,dynamicChildren:U,shapeFlag:_e,patchFlag:me,dirs:J,cacheIndex:ue}=x;if(me===-2&&(ie=!1),_!=null&&setRef(_,null,I,x,!0),ue!=null&&(S.renderCache[ue]=void 0),_e&256){S.ctx.deactivate(x);return}const $e=_e&1&&J,xe=!isAsyncWrapper(x);let Ne;if(xe&&(Ne=k&&k.onVnodeBeforeUnmount)&&invokeVNodeHook(Ne,S,x),_e&6)ge(x.component,I,X);else{if(_e&128){x.suspense.unmount(I,X);return}$e&&invokeDirectiveHook(x,null,S,"beforeUnmount"),_e&64?x.type.remove(x,S,I,L,X):U&&!U.hasOnce&&(pe!==Fragment||me>0&&me&64)?re(U,S,I,!1,!0):(pe===Fragment&&me&384||!ie&&_e&16)&&re(M,S,I),X&&ne(x)}(xe&&(Ne=k&&k.onVnodeUnmounted)||$e)&&queuePostRenderEffect(()=>{Ne&&invokeVNodeHook(Ne,S,x),$e&&invokeDirectiveHook(x,null,S,"unmounted")},I)},ne=x=>{const{type:S,el:I,anchor:X,transition:ie}=x;if(S===Fragment){te(I,X);return}if(S===Static){y(x);return}const pe=()=>{o(I),ie&&!ie.persisted&&ie.afterLeave&&ie.afterLeave()};if(x.shapeFlag&1&&ie&&!ie.persisted){const{leave:k,delayLeave:_}=ie,M=()=>k(I,pe);_?_(x.el,pe,M):M()}else pe()},te=(x,S)=>{let I;for(;x!==S;)I=m(x),o(x),x=I;o(S)},ge=(x,S,I)=>{const{bum:X,scope:ie,job:pe,subTree:k,um:_,m:M,a:U}=x;invalidateMount(M),invalidateMount(U),X&&invokeArrayFns(X),ie.stop(),pe&&(pe.flags|=8,Y(k,x,S,I)),_&&queuePostRenderEffect(_,S),queuePostRenderEffect(()=>{x.isUnmounted=!0},S),S&&S.pendingBranch&&!S.isUnmounted&&x.asyncDep&&!x.asyncResolved&&x.suspenseId===S.pendingId&&(S.deps--,S.deps===0&&S.resolve())},re=(x,S,I,X=!1,ie=!1,pe=0)=>{for(let k=pe;k{if(x.shapeFlag&6)return B(x.component.subTree);if(x.shapeFlag&128)return x.suspense.next();const S=m(x.anchor||x.el),I=S&&S[TeleportEndKey];return I?m(I):S};let z=!1;const Z=(x,S,I)=>{x==null?S._vnode&&Y(S._vnode,null,null,!0):b(S._vnode||null,x,S,null,null,null,I),S._vnode=x,z||(z=!0,flushPreFlushCbs(),flushPostFlushCbs(),z=!1)},L={p:b,um:Y,m:ae,r:ne,mt:Q,mc:H,pc:A,pbc:fe,n:B,o:e};return{render:Z,hydrate:void 0,createApp:createAppAPI(Z)}}function resolveChildrenNamespace({type:e,props:t},a){return a==="svg"&&e==="foreignObject"||a==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:a}function toggleRecurse({effect:e,job:t},a){a?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function needTransition(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function traverseStaticChildren(e,t,a=!1){const n=e.children,o=t.children;if(isArray$2(n)&&isArray$2(o))for(let r=0;r>1,e[a[l]]0&&(t[n]=a[r-1]),a[r]=n)}}for(r=a.length,s=a[r-1];r-- >0;)a[r]=s,s=t[s];return a}function locateNonHydratedAsyncRoot(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:locateNonHydratedAsyncRoot(t)}function invalidateMount(e){if(e)for(let t=0;tinject(ssrContextKey);function watch(e,t,a){return doWatch(e,t,a)}function doWatch(e,t,a=EMPTY_OBJ){const{immediate:n,deep:o,flush:r,once:s}=a,l=extend$2({},a),c=t&&n||!t&&r!=="post";let f;if(isInSSRComponentSetup){if(r==="sync"){const g=useSSRContext();f=g.__watcherHandles||(g.__watcherHandles=[])}else if(!c){const g=()=>{};return g.stop=NOOP,g.resume=NOOP,g.pause=NOOP,g}}const u=currentInstance;l.call=(g,v,b)=>callWithAsyncErrorHandling(g,u,v,b);let d=!1;r==="post"?l.scheduler=g=>{queuePostRenderEffect(g,u&&u.suspense)}:r!=="sync"&&(d=!0,l.scheduler=(g,v)=>{v?g():queueJob(g)}),l.augmentJob=g=>{t&&(g.flags|=4),d&&(g.flags|=2,u&&(g.id=u.uid,g.i=u))};const m=watch$1(e,t,l);return isInSSRComponentSetup&&(f?f.push(m):c&&m()),m}function instanceWatch(e,t,a){const n=this.proxy,o=isString$2(e)?e.includes(".")?createPathGetter(n,e):()=>n[e]:e.bind(n,n);let r;isFunction$2(t)?r=t:(r=t.handler,a=t);const s=setCurrentInstance(this),l=doWatch(o,r.bind(n),a);return s(),l}function createPathGetter(e,t){const a=t.split(".");return()=>{let n=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${camelize(t)}Modifiers`]||e[`${hyphenate(t)}Modifiers`];function emit(e,t,...a){if(e.isUnmounted)return;const n=e.vnode.props||EMPTY_OBJ;let o=a;const r=t.startsWith("update:"),s=r&&getModelModifiers(n,t.slice(7));s&&(s.trim&&(o=a.map(u=>isString$2(u)?u.trim():u)),s.number&&(o=a.map(looseToNumber)));let l,c=n[l=toHandlerKey(t)]||n[l=toHandlerKey(camelize(t))];!c&&r&&(c=n[l=toHandlerKey(hyphenate(t))]),c&&callWithAsyncErrorHandling(c,e,6,o);const f=n[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,callWithAsyncErrorHandling(f,e,6,o)}}function normalizeEmitsOptions(e,t,a=!1){const n=t.emitsCache,o=n.get(e);if(o!==void 0)return o;const r=e.emits;let s={},l=!1;if(!isFunction$2(e)){const c=f=>{const u=normalizeEmitsOptions(f,t,!0);u&&(l=!0,extend$2(s,u))};!a&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!r&&!l?(isObject$3(e)&&n.set(e,null),null):(isArray$2(r)?r.forEach(c=>s[c]=null):extend$2(s,r),isObject$3(e)&&n.set(e,s),s)}function isEmitListener(e,t){return!e||!isOn(t)?!1:(t=t.slice(2).replace(/Once$/,""),hasOwn$1(e,t[0].toLowerCase()+t.slice(1))||hasOwn$1(e,hyphenate(t))||hasOwn$1(e,t))}function markAttrsAccessed(){}function renderComponentRoot(e){const{type:t,vnode:a,proxy:n,withProxy:o,propsOptions:[r],slots:s,attrs:l,emit:c,render:f,renderCache:u,props:d,data:m,setupState:g,ctx:v,inheritAttrs:b}=e,$=setCurrentRenderingInstance(e);let w,N;try{if(a.shapeFlag&4){const y=o||n,E=y;w=normalizeVNode(f.call(E,y,u,d,g,m,v)),N=l}else{const y=t;w=normalizeVNode(y.length>1?y(d,{attrs:l,slots:s,emit:c}):y(d,null)),N=t.props?l:getFunctionalFallthrough(l)}}catch(y){blockStack.length=0,handleError(y,e,1),w=createVNode(Comment)}let P=w;if(N&&b!==!1){const y=Object.keys(N),{shapeFlag:E}=P;y.length&&E&7&&(r&&y.some(isModelListener)&&(N=filterModelListeners(N,r)),P=cloneVNode(P,N,!1,!0))}return a.dirs&&(P=cloneVNode(P,null,!1,!0),P.dirs=P.dirs?P.dirs.concat(a.dirs):a.dirs),a.transition&&setTransitionHooks(P,a.transition),w=P,setCurrentRenderingInstance($),w}const getFunctionalFallthrough=e=>{let t;for(const a in e)(a==="class"||a==="style"||isOn(a))&&((t||(t={}))[a]=e[a]);return t},filterModelListeners=(e,t)=>{const a={};for(const n in e)(!isModelListener(n)||!(n.slice(9)in t))&&(a[n]=e[n]);return a};function shouldUpdateComponent(e,t,a){const{props:n,children:o,component:r}=e,{props:s,children:l,patchFlag:c}=t,f=r.emitsOptions;if(t.dirs||t.transition)return!0;if(a&&c>=0){if(c&1024)return!0;if(c&16)return n?hasPropsChanged(n,s,f):!!s;if(c&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense;function queueEffectWithSuspense(e,t){t&&t.pendingBranch?isArray$2(e)?t.effects.push(...e):t.effects.push(e):queuePostFlushCb(e)}const Fragment=Symbol.for("v-fgt"),Text=Symbol.for("v-txt"),Comment=Symbol.for("v-cmt"),Static=Symbol.for("v-stc"),blockStack=[];let currentBlock=null;function openBlock(e=!1){blockStack.push(currentBlock=e?null:[])}function closeBlock(){blockStack.pop(),currentBlock=blockStack[blockStack.length-1]||null}let isBlockTreeEnabled=1;function setBlockTracking(e,t=!1){isBlockTreeEnabled+=e,e<0&¤tBlock&&t&&(currentBlock.hasOnce=!0)}function setupBlock(e){return e.dynamicChildren=isBlockTreeEnabled>0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(e),e}function createElementBlock(e,t,a,n,o,r){return setupBlock(createBaseVNode(e,t,a,n,o,r,!0))}function createBlock(e,t,a,n,o){return setupBlock(createVNode(e,t,a,n,o,!0))}function isVNode$1(e){return e?e.__v_isVNode===!0:!1}function isSameVNodeType(e,t){return e.type===t.type&&e.key===t.key}const normalizeKey=({key:e})=>e??null,normalizeRef=({ref:e,ref_key:t,ref_for:a})=>(typeof e=="number"&&(e=""+e),e!=null?isString$2(e)||isRef(e)||isFunction$2(e)?{i:currentRenderingInstance,r:e,k:t,f:!!a}:e:null);function createBaseVNode(e,t=null,a=null,n=0,o=null,r=e===Fragment?0:1,s=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&normalizeKey(t),ref:t&&normalizeRef(t),scopeId:currentScopeId,slotScopeIds:null,children:a,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return l?(normalizeChildren(c,a),r&128&&e.normalize(c)):a&&(c.shapeFlag|=isString$2(a)?8:16),isBlockTreeEnabled>0&&!s&¤tBlock&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&¤tBlock.push(c),c}const createVNode=_createVNode;function _createVNode(e,t=null,a=null,n=0,o=null,r=!1){if((!e||e===NULL_DYNAMIC_COMPONENT)&&(e=Comment),isVNode$1(e)){const l=cloneVNode(e,t,!0);return a&&normalizeChildren(l,a),isBlockTreeEnabled>0&&!r&¤tBlock&&(l.shapeFlag&6?currentBlock[currentBlock.indexOf(e)]=l:currentBlock.push(l)),l.patchFlag=-2,l}if(isClassComponent(e)&&(e=e.__vccOpts),t){t=guardReactiveProps(t);let{class:l,style:c}=t;l&&!isString$2(l)&&(t.class=normalizeClass(l)),isObject$3(c)&&(isProxy(c)&&!isArray$2(c)&&(c=extend$2({},c)),t.style=normalizeStyle(c))}const s=isString$2(e)?1:isSuspense(e)?128:isTeleport(e)?64:isObject$3(e)?4:isFunction$2(e)?2:0;return createBaseVNode(e,t,a,n,o,s,r,!0)}function guardReactiveProps(e){return e?isProxy(e)||isInternalObject(e)?extend$2({},e):e:null}function cloneVNode(e,t,a=!1,n=!1){const{props:o,ref:r,patchFlag:s,children:l,transition:c}=e,f=t?mergeProps(o||{},t):o,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&normalizeKey(f),ref:t&&t.ref?a&&r?isArray$2(r)?r.concat(normalizeRef(t)):[r,normalizeRef(t)]:normalizeRef(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Fragment?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&cloneVNode(e.ssContent),ssFallback:e.ssFallback&&cloneVNode(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&setTransitionHooks(u,c.clone(u)),u}function createTextVNode(e=" ",t=0){return createVNode(Text,null,e,t)}function createCommentVNode(e="",t=!1){return t?(openBlock(),createBlock(Comment,null,e)):createVNode(Comment,null,e)}function normalizeVNode(e){return e==null||typeof e=="boolean"?createVNode(Comment):isArray$2(e)?createVNode(Fragment,null,e.slice()):isVNode$1(e)?cloneIfMounted(e):createVNode(Text,null,String(e))}function cloneIfMounted(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:cloneVNode(e)}function normalizeChildren(e,t){let a=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(isArray$2(t))a=16;else if(typeof t=="object")if(n&65){const o=t.default;o&&(o._c&&(o._d=!1),normalizeChildren(e,o()),o._c&&(o._d=!0));return}else{a=32;const o=t._;!o&&!isInternalObject(t)?t._ctx=currentRenderingInstance:o===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else isFunction$2(t)?(t={default:t,_ctx:currentRenderingInstance},a=32):(t=String(t),n&64?(a=16,t=[createTextVNode(t)]):a=8);e.children=t,e.shapeFlag|=a}function mergeProps(...e){const t={};for(let a=0;acurrentInstance||currentRenderingInstance;let internalSetCurrentInstance,setInSSRSetupState;{const e=getGlobalThis$1(),t=(a,n)=>{let o;return(o=e[a])||(o=e[a]=[]),o.push(n),r=>{o.length>1?o.forEach(s=>s(r)):o[0](r)}};internalSetCurrentInstance=t("__VUE_INSTANCE_SETTERS__",a=>currentInstance=a),setInSSRSetupState=t("__VUE_SSR_SETTERS__",a=>isInSSRComponentSetup=a)}const setCurrentInstance=e=>{const t=currentInstance;return internalSetCurrentInstance(e),e.scope.on(),()=>{e.scope.off(),internalSetCurrentInstance(t)}},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),internalSetCurrentInstance(null)};function isStatefulComponent(e){return e.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(e,t=!1,a=!1){t&&setInSSRSetupState(t);const{props:n,children:o}=e.vnode,r=isStatefulComponent(e);initProps(e,n,r,t),initSlots(e,o,a);const s=r?setupStatefulComponent(e,t):void 0;return t&&setInSSRSetupState(!1),s}function setupStatefulComponent(e,t){const a=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,PublicInstanceProxyHandlers);const{setup:n}=a;if(n){pauseTracking();const o=e.setupContext=n.length>1?createSetupContext(e):null,r=setCurrentInstance(e),s=callWithErrorHandling(n,e,0,[e.props,o]),l=isPromise$1(s);if(resetTracking(),r(),(l||e.sp)&&!isAsyncWrapper(e)&&markAsyncBoundary(e),l){if(s.then(unsetCurrentInstance,unsetCurrentInstance),t)return s.then(c=>{handleSetupResult(e,c)}).catch(c=>{handleError(c,e,0)});e.asyncDep=s}else handleSetupResult(e,s)}else finishComponentSetup(e)}function handleSetupResult(e,t,a){isFunction$2(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:isObject$3(t)&&(e.setupState=proxyRefs(t)),finishComponentSetup(e)}function finishComponentSetup(e,t,a){const n=e.type;e.render||(e.render=n.render||NOOP);{const o=setCurrentInstance(e);pauseTracking();try{applyOptions(e)}finally{resetTracking(),o()}}}const attrsProxyHandlers={get(e,t){return track(e,"get",""),e[t]}};function createSetupContext(e){const t=a=>{e.exposed=a||{}};return{attrs:new Proxy(e.attrs,attrsProxyHandlers),slots:e.slots,emit:e.emit,expose:t}}function getComponentPublicInstance(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(proxyRefs(markRaw(e.exposed)),{get(t,a){if(a in t)return t[a];if(a in publicPropertiesMap)return publicPropertiesMap[a](e)},has(t,a){return a in t||a in publicPropertiesMap}})):e.proxy}const classifyRE=/(?:^|[-_])(\w)/g,classify=e=>e.replace(classifyRE,t=>t.toUpperCase()).replace(/[-_]/g,"");function getComponentName(e,t=!0){return isFunction$2(e)?e.displayName||e.name:e.name||t&&e.__name}function formatComponentName(e,t,a=!1){let n=getComponentName(t);if(!n&&t.__file){const o=t.__file.match(/([^/\\]+)\.\w+$/);o&&(n=o[1])}if(!n&&e&&e.parent){const o=r=>{for(const s in r)if(r[s]===t)return s};n=o(e.components||e.parent.type.components)||o(e.appContext.components)}return n?classify(n):a?"App":"Anonymous"}function isClassComponent(e){return isFunction$2(e)&&"__vccOpts"in e}const computed=(e,t)=>computed$1(e,t,isInSSRComponentSetup);function h(e,t,a){const n=arguments.length;return n===2?isObject$3(t)&&!isArray$2(t)?isVNode$1(t)?createVNode(e,null,[t]):createVNode(e,t):createVNode(e,null,t):(n>3?a=Array.prototype.slice.call(arguments,2):n===3&&isVNode$1(a)&&(a=[a]),createVNode(e,t,a))}const version$1="3.5.13";/** +`],...formatTraceEntry(a))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const a=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,o=` at <${formatComponentName(e.component,e.type,n)}`,r=">"+a;return e.props?[o,...formatProps(e.props),r]:[o+r]}function formatProps(e){const t=[],a=Object.keys(e);return a.slice(0,3).forEach(n=>{t.push(...formatProp(n,e[n]))}),a.length>3&&t.push(" ..."),t}function formatProp(e,t,a){return isString$2(t)?(t=JSON.stringify(t),a?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?a?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),a?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),a?t:[`${e}=`,t])}function callWithErrorHandling(e,t,a,n){try{return n?e(...n):e()}catch(o){handleError(o,t,a)}}function callWithAsyncErrorHandling(e,t,a,n){if(isFunction$2(e)){const o=callWithErrorHandling(e,t,a,n);return o&&isPromise$1(o)&&o.catch(r=>{handleError(r,t,a)}),o}if(isArray$2(e)){const o=[];for(let r=0;r>>1,o=queue[n],r=getId(o);r=getId(a)?queue.push(e):queue.splice(findInsertionIndex(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$2(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,a=flushIndex+1){for(;agetId(a)-getId(n));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){try{for(flushIndex=0;flushIndex{n._d&&setBlockTracking(-1);const r=setCurrentRenderingInstance(t);let s;try{s=e(...o)}finally{setCurrentRenderingInstance(r),n._d&&setBlockTracking(1)}return s};return n._n=!0,n._c=!0,n._d=!0,n}function withDirectives(e,t){if(currentRenderingInstance===null)return e;const a=getComponentPublicInstance(currentRenderingInstance),n=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const a=e&&e.to;return isString$2(a)?t?t(a):null:a},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,a,n,o,r,s,l,c,f){const{mc:u,pc:d,pbc:m,o:{insert:g,querySelector:v,createText:b,createComment:$}}=f,w=isTeleportDisabled(t.props);let{shapeFlag:C,children:P,dynamicChildren:y}=t;if(e==null){const E=t.el=b(""),R=t.anchor=b("");g(E,a,n),g(R,a,n);const F=(j,fe)=>{C&16&&(o&&o.isCE&&(o.ce._teleportTarget=j),u(P,j,fe,o,r,s,l,c))},H=()=>{const j=t.target=resolveTarget(t.props,v),fe=prepareAnchor(j,t,b,g);j&&(s!=="svg"&&isTargetSVG(j)?s="svg":s!=="mathml"&&isTargetMathML(j)&&(s="mathml"),w||(F(j,fe),updateCssVars(t,!1)))};w&&(F(a,R),updateCssVars(t,!0)),isTeleportDeferred(t.props)?queuePostRenderEffect(()=>{H(),t.el.__isMounted=!0},r):H()}else{if(isTeleportDeferred(t.props)&&!e.el.__isMounted){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,a,n,o,r,s,l,c,f),delete e.el.__isMounted},r);return}t.el=e.el,t.targetStart=e.targetStart;const E=t.anchor=e.anchor,R=t.target=e.target,F=t.targetAnchor=e.targetAnchor,H=isTeleportDisabled(e.props),j=H?a:R,fe=H?E:F;if(s==="svg"||isTargetSVG(R)?s="svg":(s==="mathml"||isTargetMathML(R))&&(s="mathml"),y?(m(e.dynamicChildren,y,j,o,r,s,l),traverseStaticChildren(e,t,!0)):c||d(e,t,j,fe,o,r,s,l,!1),w)H?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,a,E,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const oe=t.target=resolveTarget(t.props,v);oe&&moveTeleport(t,oe,null,f,0)}else H&&moveTeleport(t,R,F,f,1);updateCssVars(t,w)}},remove(e,t,a,{um:n,o:{remove:o}},r){const{shapeFlag:s,children:l,anchor:c,targetStart:f,targetAnchor:u,target:d,props:m}=e;if(d&&(o(f),o(u)),r&&o(c),s&16){const g=r||!isTeleportDisabled(m);for(let v=0;v{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const a=getCurrentInstance(),n=useTransitionState();return()=>{const o=t.default&&getTransitionRawChildren(t.default(),!0);if(!o||!o.length)return;const r=findNonCommentChild(o),s=toRaw(e),{mode:l}=s;if(n.isLeaving)return emptyPlaceholder(r);const c=getInnerChild$1(r);if(!c)return emptyPlaceholder(r);let f=resolveTransitionHooks(c,s,n,a,d=>f=d);c.type!==Comment&&setTransitionHooks(c,f);let u=a.subTree&&getInnerChild$1(a.subTree);if(u&&u.type!==Comment&&!isSameVNodeType(c,u)&&recursiveGetSubtree(a).type!==Comment){let d=resolveTransitionHooks(u,s,n,a);if(setTransitionHooks(u,d),l==="out-in"&&c.type!==Comment)return n.isLeaving=!0,d.afterLeave=()=>{n.isLeaving=!1,a.job.flags&8||a.update(),delete d.afterLeave,u=void 0},emptyPlaceholder(r);l==="in-out"&&c.type!==Comment?d.delayLeave=(m,g,v)=>{const b=getLeavingNodesForType(n,u);b[String(u.key)]=u,m[leaveCbKey]=()=>{g(),m[leaveCbKey]=void 0,delete f.delayedLeave,u=void 0},f.delayedLeave=()=>{v(),delete f.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){for(const a of e)if(a.type!==Comment){t=a;break}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:a}=e;let n=a.get(t.type);return n||(n=Object.create(null),a.set(t.type,n)),n}function resolveTransitionHooks(e,t,a,n,o){const{appear:r,mode:s,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:m,onLeave:g,onAfterLeave:v,onLeaveCancelled:b,onBeforeAppear:$,onAppear:w,onAfterAppear:C,onAppearCancelled:P}=t,y=String(e.key),E=getLeavingNodesForType(a,e),R=(j,fe)=>{j&&callWithAsyncErrorHandling(j,n,9,fe)},F=(j,fe)=>{const oe=fe[1];R(j,fe),isArray$2(j)?j.every(V=>V.length<=1)&&oe():j.length<=1&&oe()},H={mode:s,persisted:l,beforeEnter(j){let fe=c;if(!a.isMounted)if(r)fe=$||c;else return;j[leaveCbKey]&&j[leaveCbKey](!0);const oe=E[y];oe&&isSameVNodeType(e,oe)&&oe.el[leaveCbKey]&&oe.el[leaveCbKey](),R(fe,[j])},enter(j){let fe=f,oe=u,V=d;if(!a.isMounted)if(r)fe=w||f,oe=C||u,V=P||d;else return;let q=!1;const Q=j[enterCbKey$1]=O=>{q||(q=!0,O?R(V,[j]):R(oe,[j]),H.delayedLeave&&H.delayedLeave(),j[enterCbKey$1]=void 0)};fe?F(fe,[j,Q]):Q()},leave(j,fe){const oe=String(e.key);if(j[enterCbKey$1]&&j[enterCbKey$1](!0),a.isUnmounting)return fe();R(m,[j]);let V=!1;const q=j[leaveCbKey]=Q=>{V||(V=!0,fe(),Q?R(b,[j]):R(v,[j]),j[leaveCbKey]=void 0,E[oe]===e&&delete E[oe])};E[oe]=e,g?F(g,[j,q]):q()},clone(j){const fe=resolveTransitionHooks(j,t,a,n,o);return o&&o(fe),fe}};return H}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;const{shapeFlag:t,children:a}=e;if(a){if(t&16)return a[0];if(t&32&&isFunction$2(a.default))return a.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,a){let n=[],o=0;for(let r=0;r1)for(let r=0;rsetRef(v,t&&(isArray$2(t)?t[b]:t),a,n,o));return}if(isAsyncWrapper(n)&&!o){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&setRef(e,t,a,n.component.subTree);return}const r=n.shapeFlag&4?getComponentPublicInstance(n.component):n.el,s=o?null:r,{i:l,r:c}=e,f=t&&t.r,u=l.refs===EMPTY_OBJ?l.refs={}:l.refs,d=l.setupState,m=toRaw(d),g=d===EMPTY_OBJ?()=>!1:v=>hasOwn$1(m,v);if(f!=null&&f!==c&&(isString$2(f)?(u[f]=null,g(f)&&(d[f]=null)):isRef(f)&&(f.value=null)),isFunction$2(c))callWithErrorHandling(c,l,12,[s,u]);else{const v=isString$2(c),b=isRef(c);if(v||b){const $=()=>{if(e.f){const w=v?g(c)?d[c]:u[c]:c.value;o?isArray$2(w)&&remove(w,r):isArray$2(w)?w.includes(r)||w.push(r):v?(u[c]=[r],g(c)&&(d[c]=u[c])):(c.value=[r],e.k&&(u[e.k]=c.value))}else v?(u[c]=s,g(c)&&(d[c]=s)):b&&(c.value=s,e.k&&(u[e.k]=s))};s?($.id=-1,queuePostRenderEffect($,a)):$()}}}getGlobalThis$1().requestIdleCallback,getGlobalThis$1().cancelIdleCallback;const isAsyncWrapper=e=>!!e.type.__asyncLoader,isKeepAlive=e=>e.type.__isKeepAlive;function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,a=currentInstance){const n=e.__wdc||(e.__wdc=()=>{let o=a;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(injectHook(t,n,a),a){let o=a.parent;for(;o&&o.parent;)isKeepAlive(o.parent.vnode)&&injectToKeepAliveRoot(n,t,a,o),o=o.parent}}function injectToKeepAliveRoot(e,t,a,n){const o=injectHook(t,e,n,!0);onUnmounted(()=>{remove(n[t],o)},a)}function injectHook(e,t,a=currentInstance,n=!1){if(a){const o=a[e]||(a[e]=[]),r=t.__weh||(t.__weh=(...s)=>{pauseTracking();const l=setCurrentInstance(a),c=callWithAsyncErrorHandling(t,a,e,s);return l(),resetTracking(),c});return n?o.unshift(r):o.push(r),r}}const createHook=e=>(t,a=currentInstance)=>{(!isInSSRComponentSetup||e==="sp")&&injectHook(e,(...n)=>t(...n),a)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}const COMPONENTS="components";function resolveComponent(e,t){return resolveAsset(COMPONENTS,e,!0,t)||e}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveAsset(e,t,a=!0,n=!1){const o=currentRenderingInstance||currentInstance;if(o){const r=o.type;{const l=getComponentName(r,!1);if(l&&(l===t||l===camelize(t)||l===capitalize$1(camelize(t))))return r}const s=resolve(o[e]||r[e],t)||resolve(o.appContext[e],t);return!s&&n?r:s}}function resolve(e,t){return e&&(e[t]||e[camelize(t)]||e[capitalize$1(camelize(t))])}function renderList(e,t,a,n){let o;const r=a,s=isArray$2(e);if(s||isString$2(e)){const l=s&&isReactive(e);let c=!1;l&&(c=!isShallow(e),e=shallowReadArray(e)),o=new Array(e.length);for(let f=0,u=e.length;ft(l,c,void 0,r));else{const l=Object.keys(e);o=new Array(l.length);for(let c=0,f=l.length;cisVNode$1(t)?!(t.type===Comment||t.type===Fragment&&!ensureValidVNode(t.children)):!0)?e:null}const getPublicInstance=e=>e?isStatefulComponent(e)?getComponentPublicInstance(e):getPublicInstance(e.parent):null,publicPropertiesMap=extend$2(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>{queueJob(e.update)}),$nextTick:e=>e.n||(e.n=nextTick.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),hasSetupBinding=(e,t)=>e!==EMPTY_OBJ&&!e.__isScriptSetup&&hasOwn$1(e,t),PublicInstanceProxyHandlers={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:a,setupState:n,data:o,props:r,accessCache:s,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const g=s[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return o[t];case 4:return a[t];case 3:return r[t]}else{if(hasSetupBinding(n,t))return s[t]=1,n[t];if(o!==EMPTY_OBJ&&hasOwn$1(o,t))return s[t]=2,o[t];if((f=e.propsOptions[0])&&hasOwn$1(f,t))return s[t]=3,r[t];if(a!==EMPTY_OBJ&&hasOwn$1(a,t))return s[t]=4,a[t];shouldCacheAccess&&(s[t]=0)}}const u=publicPropertiesMap[t];let d,m;if(u)return t==="$attrs"&&track(e.attrs,"get",""),u(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(a!==EMPTY_OBJ&&hasOwn$1(a,t))return s[t]=4,a[t];if(m=c.config.globalProperties,hasOwn$1(m,t))return m[t]},set({_:e},t,a){const{data:n,setupState:o,ctx:r}=e;return hasSetupBinding(o,t)?(o[t]=a,!0):n!==EMPTY_OBJ&&hasOwn$1(n,t)?(n[t]=a,!0):hasOwn$1(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=a,!0)},has({_:{data:e,setupState:t,accessCache:a,ctx:n,appContext:o,propsOptions:r}},s){let l;return!!a[s]||e!==EMPTY_OBJ&&hasOwn$1(e,s)||hasSetupBinding(t,s)||(l=r[0])&&hasOwn$1(l,s)||hasOwn$1(n,s)||hasOwn$1(publicPropertiesMap,s)||hasOwn$1(o.config.globalProperties,s)},defineProperty(e,t,a){return a.get!=null?e._.accessCache[t]=0:hasOwn$1(a,"value")&&this.set(e,t,a.value,null),Reflect.defineProperty(e,t,a)}};function normalizePropsOrEmits(e){return isArray$2(e)?e.reduce((t,a)=>(t[a]=null,t),{}):e}let shouldCacheAccess=!0;function applyOptions(e){const t=resolveMergedOptions(e),a=e.proxy,n=e.ctx;shouldCacheAccess=!1,t.beforeCreate&&callHook$1(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:s,watch:l,provide:c,inject:f,created:u,beforeMount:d,mounted:m,beforeUpdate:g,updated:v,activated:b,deactivated:$,beforeDestroy:w,beforeUnmount:C,destroyed:P,unmounted:y,render:E,renderTracked:R,renderTriggered:F,errorCaptured:H,serverPrefetch:j,expose:fe,inheritAttrs:oe,components:V,directives:q,filters:Q}=t;if(f&&resolveInjections(f,n,null),s)for(const ee in s){const A=s[ee];isFunction$2(A)&&(n[ee]=A.bind(a))}if(o){const ee=o.call(a,a);isObject$3(ee)&&(e.data=reactive(ee))}if(shouldCacheAccess=!0,r)for(const ee in r){const A=r[ee],L=isFunction$2(A)?A.bind(a,a):isFunction$2(A.get)?A.get.bind(a,a):NOOP,W=!isFunction$2(A)&&isFunction$2(A.set)?A.set.bind(a):NOOP,ae=computed({get:L,set:W});Object.defineProperty(n,ee,{enumerable:!0,configurable:!0,get:()=>ae.value,set:Y=>ae.value=Y})}if(l)for(const ee in l)createWatcher(l[ee],n,a,ee);if(c){const ee=isFunction$2(c)?c.call(a):c;Reflect.ownKeys(ee).forEach(A=>{provide(A,ee[A])})}u&&callHook$1(u,e,"c");function G(ee,A){isArray$2(A)?A.forEach(L=>ee(L.bind(a))):A&&ee(A.bind(a))}if(G(onBeforeMount,d),G(onMounted,m),G(onBeforeUpdate,g),G(onUpdated,v),G(onActivated,b),G(onDeactivated,$),G(onErrorCaptured,H),G(onRenderTracked,R),G(onRenderTriggered,F),G(onBeforeUnmount,C),G(onUnmounted,y),G(onServerPrefetch,j),isArray$2(fe))if(fe.length){const ee=e.exposed||(e.exposed={});fe.forEach(A=>{Object.defineProperty(ee,A,{get:()=>a[A],set:L=>a[A]=L})})}else e.exposed||(e.exposed={});E&&e.render===NOOP&&(e.render=E),oe!=null&&(e.inheritAttrs=oe),V&&(e.components=V),q&&(e.directives=q),j&&markAsyncBoundary(e)}function resolveInjections(e,t,a=NOOP){isArray$2(e)&&(e=normalizeInject(e));for(const n in e){const o=e[n];let r;isObject$3(o)?"default"in o?r=inject(o.from||n,o.default,!0):r=inject(o.from||n):r=inject(o),isRef(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function callHook$1(e,t,a){callWithAsyncErrorHandling(isArray$2(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,a)}function createWatcher(e,t,a,n){let o=n.includes(".")?createPathGetter(a,n):()=>a[n];if(isString$2(e)){const r=t[e];isFunction$2(r)&&watch(o,r)}else if(isFunction$2(e))watch(o,e.bind(a));else if(isObject$3(e))if(isArray$2(e))e.forEach(r=>createWatcher(r,t,a,n));else{const r=isFunction$2(e.handler)?e.handler.bind(a):t[e.handler];isFunction$2(r)&&watch(o,r,e)}}function resolveMergedOptions(e){const t=e.type,{mixins:a,extends:n}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,l=r.get(t);let c;return l?c=l:!o.length&&!a&&!n?c=t:(c={},o.length&&o.forEach(f=>mergeOptions(c,f,s,!0)),mergeOptions(c,t,s)),isObject$3(t)&&r.set(t,c),c}function mergeOptions(e,t,a,n=!1){const{mixins:o,extends:r}=t;r&&mergeOptions(e,r,a,!0),o&&o.forEach(s=>mergeOptions(e,s,a,!0));for(const s in t)if(!(n&&s==="expose")){const l=internalOptionMergeStrats[s]||a&&a[s];e[s]=l?l(e[s],t[s]):t[s]}return e}const internalOptionMergeStrats={data:mergeDataFn,props:mergeEmitsOrPropsOptions,emits:mergeEmitsOrPropsOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(e,t){return t?e?function(){return extend$2(isFunction$2(e)?e.call(this,this):e,isFunction$2(t)?t.call(this,this):t)}:t:e}function mergeInject(e,t){return mergeObjectOptions(normalizeInject(e),normalizeInject(t))}function normalizeInject(e){if(isArray$2(e)){const t={};for(let a=0;a1)return a&&isFunction$2(t)?t.call(n&&n.proxy):t}}function hasInjectionContext(){return!!(currentInstance||currentRenderingInstance||currentApp)}const internalObjectProto={},createInternalObject=()=>Object.create(internalObjectProto),isInternalObject=e=>Object.getPrototypeOf(e)===internalObjectProto;function initProps(e,t,a,n=!1){const o={},r=createInternalObject();e.propsDefaults=Object.create(null),setFullProps(e,t,o,r);for(const s in e.propsOptions[0])s in o||(o[s]=void 0);a?e.props=n?o:shallowReactive(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function updateProps(e,t,a,n){const{props:o,attrs:r,vnode:{patchFlag:s}}=e,l=toRaw(o),[c]=e.propsOptions;let f=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[m,g]=normalizePropsOptions(d,t,!0);extend$2(s,m),g&&l.push(...g)};!a&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!c)return isObject$3(e)&&n.set(e,EMPTY_ARR),EMPTY_ARR;if(isArray$2(r))for(let u=0;ue[0]==="_"||e==="$stable",normalizeSlotValue=e=>isArray$2(e)?e.map(normalizeVNode):[normalizeVNode(e)],normalizeSlot=(e,t,a)=>{if(t._n)return t;const n=withCtx((...o)=>normalizeSlotValue(t(...o)),a);return n._c=!1,n},normalizeObjectSlots=(e,t,a)=>{const n=e._ctx;for(const o in e){if(isInternalKey(o))continue;const r=e[o];if(isFunction$2(r))t[o]=normalizeSlot(o,r,n);else if(r!=null){const s=normalizeSlotValue(r);t[o]=()=>s}}},normalizeVNodeSlots=(e,t)=>{const a=normalizeSlotValue(t);e.slots.default=()=>a},assignSlots=(e,t,a)=>{for(const n in t)(a||n!=="_")&&(e[n]=t[n])},initSlots=(e,t,a)=>{const n=e.slots=createInternalObject();if(e.vnode.shapeFlag&32){const o=t._;o?(assignSlots(n,t,a),a&&def(n,"_",o,!0)):normalizeObjectSlots(t,n)}else t&&normalizeVNodeSlots(e,t)},updateSlots=(e,t,a)=>{const{vnode:n,slots:o}=e;let r=!0,s=EMPTY_OBJ;if(n.shapeFlag&32){const l=t._;l?a&&l===1?r=!1:assignSlots(o,t,a):(r=!t.$stable,normalizeObjectSlots(t,o)),s=t}else t&&(normalizeVNodeSlots(e,t),s={default:1});if(r)for(const l in o)!isInternalKey(l)&&s[l]==null&&delete o[l]},queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(e){return baseCreateRenderer(e)}function baseCreateRenderer(e,t){const a=getGlobalThis$1();a.__VUE__=!0;const{insert:n,remove:o,patchProp:r,createElement:s,createText:l,createComment:c,setText:f,setElementText:u,parentNode:d,nextSibling:m,setScopeId:g=NOOP,insertStaticContent:v}=e,b=(x,S,I,X=null,ie=null,pe=null,T=void 0,_=null,M=!!S.dynamicChildren)=>{if(x===S)return;x&&!isSameVNodeType(x,S)&&(X=B(x),Y(x,ie,pe,!0),x=null),S.patchFlag===-2&&(M=!1,S.dynamicChildren=null);const{type:U,ref:_e,shapeFlag:me}=S;switch(U){case Text:$(x,S,I,X);break;case Comment:w(x,S,I,X);break;case Static:x==null&&C(S,I,X,T);break;case Fragment:V(x,S,I,X,ie,pe,T,_,M);break;default:me&1?E(x,S,I,X,ie,pe,T,_,M):me&6?q(x,S,I,X,ie,pe,T,_,M):(me&64||me&128)&&U.process(x,S,I,X,ie,pe,T,_,M,D)}_e!=null&&ie&&setRef(_e,x&&x.ref,pe,S||x,!S)},$=(x,S,I,X)=>{if(x==null)n(S.el=l(S.children),I,X);else{const ie=S.el=x.el;S.children!==x.children&&f(ie,S.children)}},w=(x,S,I,X)=>{x==null?n(S.el=c(S.children||""),I,X):S.el=x.el},C=(x,S,I,X)=>{[x.el,x.anchor]=v(x.children,S,I,X,x.el,x.anchor)},P=({el:x,anchor:S},I,X)=>{let ie;for(;x&&x!==S;)ie=m(x),n(x,I,X),x=ie;n(S,I,X)},y=({el:x,anchor:S})=>{let I;for(;x&&x!==S;)I=m(x),o(x),x=I;o(S)},E=(x,S,I,X,ie,pe,T,_,M)=>{S.type==="svg"?T="svg":S.type==="math"&&(T="mathml"),x==null?R(S,I,X,ie,pe,T,_,M):j(x,S,ie,pe,T,_,M)},R=(x,S,I,X,ie,pe,T,_)=>{let M,U;const{props:_e,shapeFlag:me,transition:J,dirs:ce}=x;if(M=x.el=s(x.type,pe,_e&&_e.is,_e),me&8?u(M,x.children):me&16&&H(x.children,M,null,X,ie,resolveChildrenNamespace(x,pe),T,_),ce&&invokeDirectiveHook(x,null,X,"created"),F(M,x,x.scopeId,T,X),_e){for(const xe in _e)xe!=="value"&&!isReservedProp(xe)&&r(M,xe,null,_e[xe],pe,X);"value"in _e&&r(M,"value",null,_e.value,pe),(U=_e.onVnodeBeforeMount)&&invokeVNodeHook(U,X,x)}ce&&invokeDirectiveHook(x,null,X,"beforeMount");const Se=needTransition(ie,J);Se&&J.beforeEnter(M),n(M,S,I),((U=_e&&_e.onVnodeMounted)||Se||ce)&&queuePostRenderEffect(()=>{U&&invokeVNodeHook(U,X,x),Se&&J.enter(M),ce&&invokeDirectiveHook(x,null,X,"mounted")},ie)},F=(x,S,I,X,ie)=>{if(I&&g(x,I),X)for(let pe=0;pe{for(let U=M;U{const _=S.el=x.el;let{patchFlag:M,dynamicChildren:U,dirs:_e}=S;M|=x.patchFlag&16;const me=x.props||EMPTY_OBJ,J=S.props||EMPTY_OBJ;let ce;if(I&&toggleRecurse(I,!1),(ce=J.onVnodeBeforeUpdate)&&invokeVNodeHook(ce,I,S,x),_e&&invokeDirectiveHook(S,x,I,"beforeUpdate"),I&&toggleRecurse(I,!0),(me.innerHTML&&J.innerHTML==null||me.textContent&&J.textContent==null)&&u(_,""),U?fe(x.dynamicChildren,U,_,I,X,resolveChildrenNamespace(S,ie),pe):T||A(x,S,_,null,I,X,resolveChildrenNamespace(S,ie),pe,!1),M>0){if(M&16)oe(_,me,J,I,ie);else if(M&2&&me.class!==J.class&&r(_,"class",null,J.class,ie),M&4&&r(_,"style",me.style,J.style,ie),M&8){const Se=S.dynamicProps;for(let xe=0;xe{ce&&invokeVNodeHook(ce,I,S,x),_e&&invokeDirectiveHook(S,x,I,"updated")},X)},fe=(x,S,I,X,ie,pe,T)=>{for(let _=0;_{if(S!==I){if(S!==EMPTY_OBJ)for(const pe in S)!isReservedProp(pe)&&!(pe in I)&&r(x,pe,S[pe],null,ie,X);for(const pe in I){if(isReservedProp(pe))continue;const T=I[pe],_=S[pe];T!==_&&pe!=="value"&&r(x,pe,_,T,ie,X)}"value"in I&&r(x,"value",S.value,I.value,ie)}},V=(x,S,I,X,ie,pe,T,_,M)=>{const U=S.el=x?x.el:l(""),_e=S.anchor=x?x.anchor:l("");let{patchFlag:me,dynamicChildren:J,slotScopeIds:ce}=S;ce&&(_=_?_.concat(ce):ce),x==null?(n(U,I,X),n(_e,I,X),H(S.children||[],I,_e,ie,pe,T,_,M)):me>0&&me&64&&J&&x.dynamicChildren?(fe(x.dynamicChildren,J,I,ie,pe,T,_),(S.key!=null||ie&&S===ie.subTree)&&traverseStaticChildren(x,S,!0)):A(x,S,I,_e,ie,pe,T,_,M)},q=(x,S,I,X,ie,pe,T,_,M)=>{S.slotScopeIds=_,x==null?S.shapeFlag&512?ie.ctx.activate(S,I,X,T,M):Q(S,I,X,ie,pe,T,M):O(x,S,M)},Q=(x,S,I,X,ie,pe,T)=>{const _=x.component=createComponentInstance(x,X,ie);if(isKeepAlive(x)&&(_.ctx.renderer=D),setupComponent(_,!1,T),_.asyncDep){if(ie&&ie.registerDep(_,G,T),!x.el){const M=_.subTree=createVNode(Comment);w(null,M,S,I)}}else G(_,x,S,I,ie,pe,T)},O=(x,S,I)=>{const X=S.component=x.component;if(shouldUpdateComponent(x,S,I))if(X.asyncDep&&!X.asyncResolved){ee(X,S,I);return}else X.next=S,X.update();else S.el=x.el,X.vnode=S},G=(x,S,I,X,ie,pe,T)=>{const _=()=>{if(x.isMounted){let{next:me,bu:J,u:ce,parent:Se,vnode:xe}=x;{const We=locateNonHydratedAsyncRoot(x);if(We){me&&(me.el=xe.el,ee(x,me,T)),We.asyncDep.then(()=>{x.isUnmounted||_()});return}}let Ne=me,Ce;toggleRecurse(x,!1),me?(me.el=xe.el,ee(x,me,T)):me=xe,J&&invokeArrayFns(J),(Ce=me.props&&me.props.onVnodeBeforeUpdate)&&invokeVNodeHook(Ce,Se,me,xe),toggleRecurse(x,!0);const Me=renderComponentRoot(x),Ie=x.subTree;x.subTree=Me,b(Ie,Me,d(Ie.el),B(Ie),x,ie,pe),me.el=Me.el,Ne===null&&updateHOCHostEl(x,Me.el),ce&&queuePostRenderEffect(ce,ie),(Ce=me.props&&me.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(Ce,Se,me,xe),ie)}else{let me;const{el:J,props:ce}=S,{bm:Se,m:xe,parent:Ne,root:Ce,type:Me}=x,Ie=isAsyncWrapper(S);toggleRecurse(x,!1),Se&&invokeArrayFns(Se),!Ie&&(me=ce&&ce.onVnodeBeforeMount)&&invokeVNodeHook(me,Ne,S),toggleRecurse(x,!0);{Ce.ce&&Ce.ce._injectChildStyle(Me);const We=x.subTree=renderComponentRoot(x);b(null,We,I,X,x,ie,pe),S.el=We.el}if(xe&&queuePostRenderEffect(xe,ie),!Ie&&(me=ce&&ce.onVnodeMounted)){const We=S;queuePostRenderEffect(()=>invokeVNodeHook(me,Ne,We),ie)}(S.shapeFlag&256||Ne&&isAsyncWrapper(Ne.vnode)&&Ne.vnode.shapeFlag&256)&&x.a&&queuePostRenderEffect(x.a,ie),x.isMounted=!0,S=I=X=null}};x.scope.on();const M=x.effect=new ReactiveEffect(_);x.scope.off();const U=x.update=M.run.bind(M),_e=x.job=M.runIfDirty.bind(M);_e.i=x,_e.id=x.uid,M.scheduler=()=>queueJob(_e),toggleRecurse(x,!0),U()},ee=(x,S,I)=>{S.component=x;const X=x.vnode.props;x.vnode=S,x.next=null,updateProps(x,S.props,X,I),updateSlots(x,S.children,I),pauseTracking(),flushPreFlushCbs(x),resetTracking()},A=(x,S,I,X,ie,pe,T,_,M=!1)=>{const U=x&&x.children,_e=x?x.shapeFlag:0,me=S.children,{patchFlag:J,shapeFlag:ce}=S;if(J>0){if(J&128){W(U,me,I,X,ie,pe,T,_,M);return}else if(J&256){L(U,me,I,X,ie,pe,T,_,M);return}}ce&8?(_e&16&&re(U,ie,pe),me!==U&&u(I,me)):_e&16?ce&16?W(U,me,I,X,ie,pe,T,_,M):re(U,ie,pe,!0):(_e&8&&u(I,""),ce&16&&H(me,I,X,ie,pe,T,_,M))},L=(x,S,I,X,ie,pe,T,_,M)=>{x=x||EMPTY_ARR,S=S||EMPTY_ARR;const U=x.length,_e=S.length,me=Math.min(U,_e);let J;for(J=0;J_e?re(x,ie,pe,!0,!1,me):H(S,I,X,ie,pe,T,_,M,me)},W=(x,S,I,X,ie,pe,T,_,M)=>{let U=0;const _e=S.length;let me=x.length-1,J=_e-1;for(;U<=me&&U<=J;){const ce=x[U],Se=S[U]=M?cloneIfMounted(S[U]):normalizeVNode(S[U]);if(isSameVNodeType(ce,Se))b(ce,Se,I,null,ie,pe,T,_,M);else break;U++}for(;U<=me&&U<=J;){const ce=x[me],Se=S[J]=M?cloneIfMounted(S[J]):normalizeVNode(S[J]);if(isSameVNodeType(ce,Se))b(ce,Se,I,null,ie,pe,T,_,M);else break;me--,J--}if(U>me){if(U<=J){const ce=J+1,Se=ce<_e?S[ce].el:X;for(;U<=J;)b(null,S[U]=M?cloneIfMounted(S[U]):normalizeVNode(S[U]),I,Se,ie,pe,T,_,M),U++}}else if(U>J)for(;U<=me;)Y(x[U],ie,pe,!0),U++;else{const ce=U,Se=U,xe=new Map;for(U=Se;U<=J;U++){const ye=S[U]=M?cloneIfMounted(S[U]):normalizeVNode(S[U]);ye.key!=null&&xe.set(ye.key,U)}let Ne,Ce=0;const Me=J-Se+1;let Ie=!1,We=0;const Te=new Array(Me);for(U=0;U=Me){Y(ye,ie,pe,!0);continue}let Le;if(ye.key!=null)Le=xe.get(ye.key);else for(Ne=Se;Ne<=J;Ne++)if(Te[Ne-Se]===0&&isSameVNodeType(ye,S[Ne])){Le=Ne;break}Le===void 0?Y(ye,ie,pe,!0):(Te[Le-Se]=U+1,Le>=We?We=Le:Ie=!0,b(ye,S[Le],I,null,ie,pe,T,_,M),Ce++)}const be=Ie?getSequence(Te):EMPTY_ARR;for(Ne=be.length-1,U=Me-1;U>=0;U--){const ye=Se+U,Le=S[ye],Qe=ye+1<_e?S[ye+1].el:X;Te[U]===0?b(null,Le,I,Qe,ie,pe,T,_,M):Ie&&(Ne<0||U!==be[Ne]?ae(Le,I,Qe,2):Ne--)}}},ae=(x,S,I,X,ie=null)=>{const{el:pe,type:T,transition:_,children:M,shapeFlag:U}=x;if(U&6){ae(x.component.subTree,S,I,X);return}if(U&128){x.suspense.move(S,I,X);return}if(U&64){T.move(x,S,I,D);return}if(T===Fragment){n(pe,S,I);for(let me=0;me_.enter(pe),ie);else{const{leave:me,delayLeave:J,afterLeave:ce}=_,Se=()=>n(pe,S,I),xe=()=>{me(pe,()=>{Se(),ce&&ce()})};J?J(pe,Se,xe):xe()}else n(pe,S,I)},Y=(x,S,I,X=!1,ie=!1)=>{const{type:pe,props:T,ref:_,children:M,dynamicChildren:U,shapeFlag:_e,patchFlag:me,dirs:J,cacheIndex:ce}=x;if(me===-2&&(ie=!1),_!=null&&setRef(_,null,I,x,!0),ce!=null&&(S.renderCache[ce]=void 0),_e&256){S.ctx.deactivate(x);return}const Se=_e&1&&J,xe=!isAsyncWrapper(x);let Ne;if(xe&&(Ne=T&&T.onVnodeBeforeUnmount)&&invokeVNodeHook(Ne,S,x),_e&6)ge(x.component,I,X);else{if(_e&128){x.suspense.unmount(I,X);return}Se&&invokeDirectiveHook(x,null,S,"beforeUnmount"),_e&64?x.type.remove(x,S,I,D,X):U&&!U.hasOnce&&(pe!==Fragment||me>0&&me&64)?re(U,S,I,!1,!0):(pe===Fragment&&me&384||!ie&&_e&16)&&re(M,S,I),X&&ne(x)}(xe&&(Ne=T&&T.onVnodeUnmounted)||Se)&&queuePostRenderEffect(()=>{Ne&&invokeVNodeHook(Ne,S,x),Se&&invokeDirectiveHook(x,null,S,"unmounted")},I)},ne=x=>{const{type:S,el:I,anchor:X,transition:ie}=x;if(S===Fragment){te(I,X);return}if(S===Static){y(x);return}const pe=()=>{o(I),ie&&!ie.persisted&&ie.afterLeave&&ie.afterLeave()};if(x.shapeFlag&1&&ie&&!ie.persisted){const{leave:T,delayLeave:_}=ie,M=()=>T(I,pe);_?_(x.el,pe,M):M()}else pe()},te=(x,S)=>{let I;for(;x!==S;)I=m(x),o(x),x=I;o(S)},ge=(x,S,I)=>{const{bum:X,scope:ie,job:pe,subTree:T,um:_,m:M,a:U}=x;invalidateMount(M),invalidateMount(U),X&&invokeArrayFns(X),ie.stop(),pe&&(pe.flags|=8,Y(T,x,S,I)),_&&queuePostRenderEffect(_,S),queuePostRenderEffect(()=>{x.isUnmounted=!0},S),S&&S.pendingBranch&&!S.isUnmounted&&x.asyncDep&&!x.asyncResolved&&x.suspenseId===S.pendingId&&(S.deps--,S.deps===0&&S.resolve())},re=(x,S,I,X=!1,ie=!1,pe=0)=>{for(let T=pe;T{if(x.shapeFlag&6)return B(x.component.subTree);if(x.shapeFlag&128)return x.suspense.next();const S=m(x.anchor||x.el),I=S&&S[TeleportEndKey];return I?m(I):S};let z=!1;const Z=(x,S,I)=>{x==null?S._vnode&&Y(S._vnode,null,null,!0):b(S._vnode||null,x,S,null,null,null,I),S._vnode=x,z||(z=!0,flushPreFlushCbs(),flushPostFlushCbs(),z=!1)},D={p:b,um:Y,m:ae,r:ne,mt:Q,mc:H,pc:A,pbc:fe,n:B,o:e};return{render:Z,hydrate:void 0,createApp:createAppAPI(Z)}}function resolveChildrenNamespace({type:e,props:t},a){return a==="svg"&&e==="foreignObject"||a==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:a}function toggleRecurse({effect:e,job:t},a){a?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function needTransition(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function traverseStaticChildren(e,t,a=!1){const n=e.children,o=t.children;if(isArray$2(n)&&isArray$2(o))for(let r=0;r>1,e[a[l]]0&&(t[n]=a[r-1]),a[r]=n)}}for(r=a.length,s=a[r-1];r-- >0;)a[r]=s,s=t[s];return a}function locateNonHydratedAsyncRoot(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:locateNonHydratedAsyncRoot(t)}function invalidateMount(e){if(e)for(let t=0;tinject(ssrContextKey);function watch(e,t,a){return doWatch(e,t,a)}function doWatch(e,t,a=EMPTY_OBJ){const{immediate:n,deep:o,flush:r,once:s}=a,l=extend$2({},a),c=t&&n||!t&&r!=="post";let f;if(isInSSRComponentSetup){if(r==="sync"){const g=useSSRContext();f=g.__watcherHandles||(g.__watcherHandles=[])}else if(!c){const g=()=>{};return g.stop=NOOP,g.resume=NOOP,g.pause=NOOP,g}}const u=currentInstance;l.call=(g,v,b)=>callWithAsyncErrorHandling(g,u,v,b);let d=!1;r==="post"?l.scheduler=g=>{queuePostRenderEffect(g,u&&u.suspense)}:r!=="sync"&&(d=!0,l.scheduler=(g,v)=>{v?g():queueJob(g)}),l.augmentJob=g=>{t&&(g.flags|=4),d&&(g.flags|=2,u&&(g.id=u.uid,g.i=u))};const m=watch$1(e,t,l);return isInSSRComponentSetup&&(f?f.push(m):c&&m()),m}function instanceWatch(e,t,a){const n=this.proxy,o=isString$2(e)?e.includes(".")?createPathGetter(n,e):()=>n[e]:e.bind(n,n);let r;isFunction$2(t)?r=t:(r=t.handler,a=t);const s=setCurrentInstance(this),l=doWatch(o,r.bind(n),a);return s(),l}function createPathGetter(e,t){const a=t.split(".");return()=>{let n=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${camelize(t)}Modifiers`]||e[`${hyphenate(t)}Modifiers`];function emit(e,t,...a){if(e.isUnmounted)return;const n=e.vnode.props||EMPTY_OBJ;let o=a;const r=t.startsWith("update:"),s=r&&getModelModifiers(n,t.slice(7));s&&(s.trim&&(o=a.map(u=>isString$2(u)?u.trim():u)),s.number&&(o=a.map(looseToNumber)));let l,c=n[l=toHandlerKey(t)]||n[l=toHandlerKey(camelize(t))];!c&&r&&(c=n[l=toHandlerKey(hyphenate(t))]),c&&callWithAsyncErrorHandling(c,e,6,o);const f=n[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,callWithAsyncErrorHandling(f,e,6,o)}}function normalizeEmitsOptions(e,t,a=!1){const n=t.emitsCache,o=n.get(e);if(o!==void 0)return o;const r=e.emits;let s={},l=!1;if(!isFunction$2(e)){const c=f=>{const u=normalizeEmitsOptions(f,t,!0);u&&(l=!0,extend$2(s,u))};!a&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!r&&!l?(isObject$3(e)&&n.set(e,null),null):(isArray$2(r)?r.forEach(c=>s[c]=null):extend$2(s,r),isObject$3(e)&&n.set(e,s),s)}function isEmitListener(e,t){return!e||!isOn(t)?!1:(t=t.slice(2).replace(/Once$/,""),hasOwn$1(e,t[0].toLowerCase()+t.slice(1))||hasOwn$1(e,hyphenate(t))||hasOwn$1(e,t))}function markAttrsAccessed(){}function renderComponentRoot(e){const{type:t,vnode:a,proxy:n,withProxy:o,propsOptions:[r],slots:s,attrs:l,emit:c,render:f,renderCache:u,props:d,data:m,setupState:g,ctx:v,inheritAttrs:b}=e,$=setCurrentRenderingInstance(e);let w,C;try{if(a.shapeFlag&4){const y=o||n,E=y;w=normalizeVNode(f.call(E,y,u,d,g,m,v)),C=l}else{const y=t;w=normalizeVNode(y.length>1?y(d,{attrs:l,slots:s,emit:c}):y(d,null)),C=t.props?l:getFunctionalFallthrough(l)}}catch(y){blockStack.length=0,handleError(y,e,1),w=createVNode(Comment)}let P=w;if(C&&b!==!1){const y=Object.keys(C),{shapeFlag:E}=P;y.length&&E&7&&(r&&y.some(isModelListener)&&(C=filterModelListeners(C,r)),P=cloneVNode(P,C,!1,!0))}return a.dirs&&(P=cloneVNode(P,null,!1,!0),P.dirs=P.dirs?P.dirs.concat(a.dirs):a.dirs),a.transition&&setTransitionHooks(P,a.transition),w=P,setCurrentRenderingInstance($),w}const getFunctionalFallthrough=e=>{let t;for(const a in e)(a==="class"||a==="style"||isOn(a))&&((t||(t={}))[a]=e[a]);return t},filterModelListeners=(e,t)=>{const a={};for(const n in e)(!isModelListener(n)||!(n.slice(9)in t))&&(a[n]=e[n]);return a};function shouldUpdateComponent(e,t,a){const{props:n,children:o,component:r}=e,{props:s,children:l,patchFlag:c}=t,f=r.emitsOptions;if(t.dirs||t.transition)return!0;if(a&&c>=0){if(c&1024)return!0;if(c&16)return n?hasPropsChanged(n,s,f):!!s;if(c&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense;function queueEffectWithSuspense(e,t){t&&t.pendingBranch?isArray$2(e)?t.effects.push(...e):t.effects.push(e):queuePostFlushCb(e)}const Fragment=Symbol.for("v-fgt"),Text=Symbol.for("v-txt"),Comment=Symbol.for("v-cmt"),Static=Symbol.for("v-stc"),blockStack=[];let currentBlock=null;function openBlock(e=!1){blockStack.push(currentBlock=e?null:[])}function closeBlock(){blockStack.pop(),currentBlock=blockStack[blockStack.length-1]||null}let isBlockTreeEnabled=1;function setBlockTracking(e,t=!1){isBlockTreeEnabled+=e,e<0&¤tBlock&&t&&(currentBlock.hasOnce=!0)}function setupBlock(e){return e.dynamicChildren=isBlockTreeEnabled>0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(e),e}function createElementBlock(e,t,a,n,o,r){return setupBlock(createBaseVNode(e,t,a,n,o,r,!0))}function createBlock(e,t,a,n,o){return setupBlock(createVNode(e,t,a,n,o,!0))}function isVNode$1(e){return e?e.__v_isVNode===!0:!1}function isSameVNodeType(e,t){return e.type===t.type&&e.key===t.key}const normalizeKey=({key:e})=>e??null,normalizeRef=({ref:e,ref_key:t,ref_for:a})=>(typeof e=="number"&&(e=""+e),e!=null?isString$2(e)||isRef(e)||isFunction$2(e)?{i:currentRenderingInstance,r:e,k:t,f:!!a}:e:null);function createBaseVNode(e,t=null,a=null,n=0,o=null,r=e===Fragment?0:1,s=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&normalizeKey(t),ref:t&&normalizeRef(t),scopeId:currentScopeId,slotScopeIds:null,children:a,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return l?(normalizeChildren(c,a),r&128&&e.normalize(c)):a&&(c.shapeFlag|=isString$2(a)?8:16),isBlockTreeEnabled>0&&!s&¤tBlock&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&¤tBlock.push(c),c}const createVNode=_createVNode;function _createVNode(e,t=null,a=null,n=0,o=null,r=!1){if((!e||e===NULL_DYNAMIC_COMPONENT)&&(e=Comment),isVNode$1(e)){const l=cloneVNode(e,t,!0);return a&&normalizeChildren(l,a),isBlockTreeEnabled>0&&!r&¤tBlock&&(l.shapeFlag&6?currentBlock[currentBlock.indexOf(e)]=l:currentBlock.push(l)),l.patchFlag=-2,l}if(isClassComponent(e)&&(e=e.__vccOpts),t){t=guardReactiveProps(t);let{class:l,style:c}=t;l&&!isString$2(l)&&(t.class=normalizeClass(l)),isObject$3(c)&&(isProxy(c)&&!isArray$2(c)&&(c=extend$2({},c)),t.style=normalizeStyle(c))}const s=isString$2(e)?1:isSuspense(e)?128:isTeleport(e)?64:isObject$3(e)?4:isFunction$2(e)?2:0;return createBaseVNode(e,t,a,n,o,s,r,!0)}function guardReactiveProps(e){return e?isProxy(e)||isInternalObject(e)?extend$2({},e):e:null}function cloneVNode(e,t,a=!1,n=!1){const{props:o,ref:r,patchFlag:s,children:l,transition:c}=e,f=t?mergeProps(o||{},t):o,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&normalizeKey(f),ref:t&&t.ref?a&&r?isArray$2(r)?r.concat(normalizeRef(t)):[r,normalizeRef(t)]:normalizeRef(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Fragment?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&cloneVNode(e.ssContent),ssFallback:e.ssFallback&&cloneVNode(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&setTransitionHooks(u,c.clone(u)),u}function createTextVNode(e=" ",t=0){return createVNode(Text,null,e,t)}function createCommentVNode(e="",t=!1){return t?(openBlock(),createBlock(Comment,null,e)):createVNode(Comment,null,e)}function normalizeVNode(e){return e==null||typeof e=="boolean"?createVNode(Comment):isArray$2(e)?createVNode(Fragment,null,e.slice()):isVNode$1(e)?cloneIfMounted(e):createVNode(Text,null,String(e))}function cloneIfMounted(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:cloneVNode(e)}function normalizeChildren(e,t){let a=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(isArray$2(t))a=16;else if(typeof t=="object")if(n&65){const o=t.default;o&&(o._c&&(o._d=!1),normalizeChildren(e,o()),o._c&&(o._d=!0));return}else{a=32;const o=t._;!o&&!isInternalObject(t)?t._ctx=currentRenderingInstance:o===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else isFunction$2(t)?(t={default:t,_ctx:currentRenderingInstance},a=32):(t=String(t),n&64?(a=16,t=[createTextVNode(t)]):a=8);e.children=t,e.shapeFlag|=a}function mergeProps(...e){const t={};for(let a=0;acurrentInstance||currentRenderingInstance;let internalSetCurrentInstance,setInSSRSetupState;{const e=getGlobalThis$1(),t=(a,n)=>{let o;return(o=e[a])||(o=e[a]=[]),o.push(n),r=>{o.length>1?o.forEach(s=>s(r)):o[0](r)}};internalSetCurrentInstance=t("__VUE_INSTANCE_SETTERS__",a=>currentInstance=a),setInSSRSetupState=t("__VUE_SSR_SETTERS__",a=>isInSSRComponentSetup=a)}const setCurrentInstance=e=>{const t=currentInstance;return internalSetCurrentInstance(e),e.scope.on(),()=>{e.scope.off(),internalSetCurrentInstance(t)}},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),internalSetCurrentInstance(null)};function isStatefulComponent(e){return e.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(e,t=!1,a=!1){t&&setInSSRSetupState(t);const{props:n,children:o}=e.vnode,r=isStatefulComponent(e);initProps(e,n,r,t),initSlots(e,o,a);const s=r?setupStatefulComponent(e,t):void 0;return t&&setInSSRSetupState(!1),s}function setupStatefulComponent(e,t){const a=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,PublicInstanceProxyHandlers);const{setup:n}=a;if(n){pauseTracking();const o=e.setupContext=n.length>1?createSetupContext(e):null,r=setCurrentInstance(e),s=callWithErrorHandling(n,e,0,[e.props,o]),l=isPromise$1(s);if(resetTracking(),r(),(l||e.sp)&&!isAsyncWrapper(e)&&markAsyncBoundary(e),l){if(s.then(unsetCurrentInstance,unsetCurrentInstance),t)return s.then(c=>{handleSetupResult(e,c)}).catch(c=>{handleError(c,e,0)});e.asyncDep=s}else handleSetupResult(e,s)}else finishComponentSetup(e)}function handleSetupResult(e,t,a){isFunction$2(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:isObject$3(t)&&(e.setupState=proxyRefs(t)),finishComponentSetup(e)}function finishComponentSetup(e,t,a){const n=e.type;e.render||(e.render=n.render||NOOP);{const o=setCurrentInstance(e);pauseTracking();try{applyOptions(e)}finally{resetTracking(),o()}}}const attrsProxyHandlers={get(e,t){return track(e,"get",""),e[t]}};function createSetupContext(e){const t=a=>{e.exposed=a||{}};return{attrs:new Proxy(e.attrs,attrsProxyHandlers),slots:e.slots,emit:e.emit,expose:t}}function getComponentPublicInstance(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(proxyRefs(markRaw(e.exposed)),{get(t,a){if(a in t)return t[a];if(a in publicPropertiesMap)return publicPropertiesMap[a](e)},has(t,a){return a in t||a in publicPropertiesMap}})):e.proxy}const classifyRE=/(?:^|[-_])(\w)/g,classify=e=>e.replace(classifyRE,t=>t.toUpperCase()).replace(/[-_]/g,"");function getComponentName(e,t=!0){return isFunction$2(e)?e.displayName||e.name:e.name||t&&e.__name}function formatComponentName(e,t,a=!1){let n=getComponentName(t);if(!n&&t.__file){const o=t.__file.match(/([^/\\]+)\.\w+$/);o&&(n=o[1])}if(!n&&e&&e.parent){const o=r=>{for(const s in r)if(r[s]===t)return s};n=o(e.components||e.parent.type.components)||o(e.appContext.components)}return n?classify(n):a?"App":"Anonymous"}function isClassComponent(e){return isFunction$2(e)&&"__vccOpts"in e}const computed=(e,t)=>computed$1(e,t,isInSSRComponentSetup);function h(e,t,a){const n=arguments.length;return n===2?isObject$3(t)&&!isArray$2(t)?isVNode$1(t)?createVNode(e,null,[t]):createVNode(e,t):createVNode(e,null,t):(n>3?a=Array.prototype.slice.call(arguments,2):n===3&&isVNode$1(a)&&(a=[a]),createVNode(e,t,a))}const version$1="3.5.13";/** * @vue/runtime-dom v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let policy;const tt=typeof window<"u"&&window.trustedTypes;if(tt)try{policy=tt.createPolicy("vue",{createHTML:e=>e})}catch{}const unsafeToTrustedHTML=policy?e=>policy.createHTML(e):e=>e,svgNS="http://www.w3.org/2000/svg",mathmlNS="http://www.w3.org/1998/Math/MathML",doc=typeof document<"u"?document:null,templateContainer=doc&&doc.createElement("template"),nodeOps={insert:(e,t,a)=>{t.insertBefore(e,a||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,a,n)=>{const o=t==="svg"?doc.createElementNS(svgNS,e):t==="mathml"?doc.createElementNS(mathmlNS,e):a?doc.createElement(e,{is:a}):doc.createElement(e);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>doc.createTextNode(e),createComment:e=>doc.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>doc.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,a,n,o,r){const s=a?a.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),a),!(o===r||!(o=o.nextSibling)););else{templateContainer.innerHTML=unsafeToTrustedHTML(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const l=templateContainer.content;if(n==="svg"||n==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,a)}return[s?s.nextSibling:t.firstChild,a?a.previousSibling:t.lastChild]}},TRANSITION="transition",ANIMATION="animation",vtcKey=Symbol("_vtc"),DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=extend$2({},BaseTransitionPropsValidators,DOMTransitionPropsValidators),decorate$1=e=>(e.displayName="Transition",e.props=TransitionPropsValidators,e),Transition=decorate$1((e,{slots:t})=>h(BaseTransition,resolveTransitionProps(e),t)),callHook=(e,t=[])=>{isArray$2(e)?e.forEach(a=>a(...t)):e&&e(...t)},hasExplicitCallback=e=>e?isArray$2(e)?e.some(t=>t.length>1):e.length>1:!1;function resolveTransitionProps(e){const t={};for(const V in e)V in DOMTransitionPropsValidators||(t[V]=e[V]);if(e.css===!1)return t;const{name:a="v",type:n,duration:o,enterFromClass:r=`${a}-enter-from`,enterActiveClass:s=`${a}-enter-active`,enterToClass:l=`${a}-enter-to`,appearFromClass:c=r,appearActiveClass:f=s,appearToClass:u=l,leaveFromClass:d=`${a}-leave-from`,leaveActiveClass:m=`${a}-leave-active`,leaveToClass:g=`${a}-leave-to`}=e,v=normalizeDuration(o),b=v&&v[0],$=v&&v[1],{onBeforeEnter:w,onEnter:N,onEnterCancelled:P,onLeave:y,onLeaveCancelled:E,onBeforeAppear:R=w,onAppear:F=N,onAppearCancelled:H=P}=t,j=(V,q,Q,O)=>{V._enterCancelled=O,removeTransitionClass(V,q?u:l),removeTransitionClass(V,q?f:s),Q&&Q()},fe=(V,q)=>{V._isLeaving=!1,removeTransitionClass(V,d),removeTransitionClass(V,g),removeTransitionClass(V,m),q&&q()},oe=V=>(q,Q)=>{const O=V?F:N,G=()=>j(q,V,Q);callHook(O,[q,G]),nextFrame(()=>{removeTransitionClass(q,V?c:r),addTransitionClass(q,V?u:l),hasExplicitCallback(O)||whenTransitionEnds(q,n,b,G)})};return extend$2(t,{onBeforeEnter(V){callHook(w,[V]),addTransitionClass(V,r),addTransitionClass(V,s)},onBeforeAppear(V){callHook(R,[V]),addTransitionClass(V,c),addTransitionClass(V,f)},onEnter:oe(!1),onAppear:oe(!0),onLeave(V,q){V._isLeaving=!0;const Q=()=>fe(V,q);addTransitionClass(V,d),V._enterCancelled?(addTransitionClass(V,m),forceReflow()):(forceReflow(),addTransitionClass(V,m)),nextFrame(()=>{V._isLeaving&&(removeTransitionClass(V,d),addTransitionClass(V,g),hasExplicitCallback(y)||whenTransitionEnds(V,n,$,Q))}),callHook(y,[V,Q])},onEnterCancelled(V){j(V,!1,void 0,!0),callHook(P,[V])},onAppearCancelled(V){j(V,!0,void 0,!0),callHook(H,[V])},onLeaveCancelled(V){fe(V),callHook(E,[V])}})}function normalizeDuration(e){if(e==null)return null;if(isObject$3(e))return[NumberOf(e.enter),NumberOf(e.leave)];{const t=NumberOf(e);return[t,t]}}function NumberOf(e){return toNumber(e)}function addTransitionClass(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.add(a)),(e[vtcKey]||(e[vtcKey]=new Set)).add(t)}function removeTransitionClass(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const a=e[vtcKey];a&&(a.delete(t),a.size||(e[vtcKey]=void 0))}function nextFrame(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let endId=0;function whenTransitionEnds(e,t,a,n){const o=e._endId=++endId,r=()=>{o===e._endId&&n()};if(a!=null)return setTimeout(r,a);const{type:s,timeout:l,propCount:c}=getTransitionInfo(e,t);if(!s)return n();const f=s+"end";let u=0;const d=()=>{e.removeEventListener(f,m),r()},m=g=>{g.target===e&&++u>=c&&d()};setTimeout(()=>{u(a[v]||"").split(", "),o=n(`${TRANSITION}Delay`),r=n(`${TRANSITION}Duration`),s=getTimeout(o,r),l=n(`${ANIMATION}Delay`),c=n(`${ANIMATION}Duration`),f=getTimeout(l,c);let u=null,d=0,m=0;t===TRANSITION?s>0&&(u=TRANSITION,d=s,m=r.length):t===ANIMATION?f>0&&(u=ANIMATION,d=f,m=c.length):(d=Math.max(s,f),u=d>0?s>f?TRANSITION:ANIMATION:null,m=u?u===TRANSITION?r.length:c.length:0);const g=u===TRANSITION&&/\b(transform|all)(,|$)/.test(n(`${TRANSITION}Property`).toString());return{type:u,timeout:d,propCount:m,hasTransform:g}}function getTimeout(e,t){for(;e.lengthtoMs(a)+toMs(e[n])))}function toMs(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function forceReflow(){return document.body.offsetHeight}function patchClass(e,t,a){const n=e[vtcKey];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):a?e.setAttribute("class",t):e.className=t}const vShowOriginalDisplay=Symbol("_vod"),vShowHidden=Symbol("_vsh"),vShow={beforeMount(e,{value:t},{transition:a}){e[vShowOriginalDisplay]=e.style.display==="none"?"":e.style.display,a&&t?a.beforeEnter(e):setDisplay(e,t)},mounted(e,{value:t},{transition:a}){a&&t&&a.enter(e)},updated(e,{value:t,oldValue:a},{transition:n}){!t!=!a&&(n?t?(n.beforeEnter(e),setDisplay(e,!0),n.enter(e)):n.leave(e,()=>{setDisplay(e,!1)}):setDisplay(e,t))},beforeUnmount(e,{value:t}){setDisplay(e,t)}};function setDisplay(e,t){e.style.display=t?e[vShowOriginalDisplay]:"none",e[vShowHidden]=!t}const CSS_VAR_TEXT=Symbol(""),displayRE=/(^|;)\s*display\s*:/;function patchStyle(e,t,a){const n=e.style,o=isString$2(a);let r=!1;if(a&&!o){if(t)if(isString$2(t))for(const s of t.split(";")){const l=s.slice(0,s.indexOf(":")).trim();a[l]==null&&setStyle(n,l,"")}else for(const s in t)a[s]==null&&setStyle(n,s,"");for(const s in a)s==="display"&&(r=!0),setStyle(n,s,a[s])}else if(o){if(t!==a){const s=n[CSS_VAR_TEXT];s&&(a+=";"+s),n.cssText=a,r=displayRE.test(a)}}else t&&e.removeAttribute("style");vShowOriginalDisplay in e&&(e[vShowOriginalDisplay]=r?n.display:"",e[vShowHidden]&&(n.display="none"))}const importantRE=/\s*!important$/;function setStyle(e,t,a){if(isArray$2(a))a.forEach(n=>setStyle(e,t,n));else if(a==null&&(a=""),t.startsWith("--"))e.setProperty(t,a);else{const n=autoPrefix(e,t);importantRE.test(a)?e.setProperty(hyphenate(n),a.replace(importantRE,""),"important"):e[n]=a}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(e,t){const a=prefixCache[t];if(a)return a;let n=camelize(t);if(n!=="filter"&&n in e)return prefixCache[t]=n;n=capitalize$1(n);for(let o=0;ocachedNow||(p.then(()=>cachedNow=0),cachedNow=Date.now());function createInvoker(e,t){const a=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=a.attached)return;callWithAsyncErrorHandling(patchStopImmediatePropagation(n,a.value),t,5,[n])};return a.value=e,a.attached=getNow(),a}function patchStopImmediatePropagation(e,t){if(isArray$2(t)){const a=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{a.call(e),e._stopped=!0},t.map(n=>o=>!o._stopped&&n&&n(o))}else return t}const isNativeOn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,patchProp=(e,t,a,n,o,r)=>{const s=o==="svg";t==="class"?patchClass(e,n,s):t==="style"?patchStyle(e,a,n):isOn(t)?isModelListener(t)||patchEvent(e,t,a,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):shouldSetAsProp(e,t,n,s))?(patchDOMProp(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&patchAttr(e,t,n,s,r,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!isString$2(n))?patchDOMProp(e,camelize(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),patchAttr(e,t,n,s))};function shouldSetAsProp(e,t,a,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&isNativeOn(t)&&isFunction$2(a));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return isNativeOn(t)&&isString$2(a)?!1:t in e}const positionMap=new WeakMap,newPositionMap=new WeakMap,moveCbKey=Symbol("_moveCb"),enterCbKey=Symbol("_enterCb"),decorate=e=>(delete e.props.mode,e),TransitionGroupImpl=decorate({name:"TransitionGroup",props:extend$2({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(e,{slots:t}){const a=getCurrentInstance(),n=useTransitionState();let o,r;return onUpdated(()=>{if(!o.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!hasCSSTransform(o[0].el,a.vnode.el,s))return;o.forEach(callPendingCbs),o.forEach(recordPosition);const l=o.filter(applyTranslation);forceReflow(),l.forEach(c=>{const f=c.el,u=f.style;addTransitionClass(f,s),u.transform=u.webkitTransform=u.transitionDuration="";const d=f[moveCbKey]=m=>{m&&m.target!==f||(!m||/transform$/.test(m.propertyName))&&(f.removeEventListener("transitionend",d),f[moveCbKey]=null,removeTransitionClass(f,s))};f.addEventListener("transitionend",d)})}),()=>{const s=toRaw(e),l=resolveTransitionProps(s);let c=s.tag||Fragment;if(o=[],r)for(let f=0;f{l.split(/\s+/).forEach(c=>c&&n.classList.remove(c))}),a.split(/\s+/).forEach(l=>l&&n.classList.add(l)),n.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(n);const{hasTransform:s}=getTransitionInfo(n);return r.removeChild(n),s}const getModelAssigner=e=>{const t=e.props["onUpdate:modelValue"]||!1;return isArray$2(t)?a=>invokeArrayFns(t,a):t};function onCompositionStart(e){e.target.composing=!0}function onCompositionEnd(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const assignKey=Symbol("_assign"),vModelText={created(e,{modifiers:{lazy:t,trim:a,number:n}},o){e[assignKey]=getModelAssigner(o);const r=n||o.props&&o.props.type==="number";addEventListener(e,t?"change":"input",s=>{if(s.target.composing)return;let l=e.value;a&&(l=l.trim()),r&&(l=looseToNumber(l)),e[assignKey](l)}),a&&addEventListener(e,"change",()=>{e.value=e.value.trim()}),t||(addEventListener(e,"compositionstart",onCompositionStart),addEventListener(e,"compositionend",onCompositionEnd),addEventListener(e,"change",onCompositionEnd))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:a,modifiers:{lazy:n,trim:o,number:r}},s){if(e[assignKey]=getModelAssigner(s),e.composing)return;const l=(r||e.type==="number")&&!/^0\d/.test(e.value)?looseToNumber(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(n&&t===a||o&&e.value.trim()===c)||(e.value=c))}},vModelCheckbox={deep:!0,created(e,t,a){e[assignKey]=getModelAssigner(a),addEventListener(e,"change",()=>{const n=e._modelValue,o=getValue(e),r=e.checked,s=e[assignKey];if(isArray$2(n)){const l=looseIndexOf(n,o),c=l!==-1;if(r&&!c)s(n.concat(o));else if(!r&&c){const f=[...n];f.splice(l,1),s(f)}}else if(isSet(n)){const l=new Set(n);r?l.add(o):l.delete(o),s(l)}else s(getCheckboxValue(e,r))})},mounted:setChecked,beforeUpdate(e,t,a){e[assignKey]=getModelAssigner(a),setChecked(e,t,a)}};function setChecked(e,{value:t,oldValue:a},n){e._modelValue=t;let o;if(isArray$2(t))o=looseIndexOf(t,n.props.value)>-1;else if(isSet(t))o=t.has(n.props.value);else{if(t===a)return;o=looseEqual(t,getCheckboxValue(e,!0))}e.checked!==o&&(e.checked=o)}const vModelRadio={created(e,{value:t},a){e.checked=looseEqual(t,a.props.value),e[assignKey]=getModelAssigner(a),addEventListener(e,"change",()=>{e[assignKey](getValue(e))})},beforeUpdate(e,{value:t,oldValue:a},n){e[assignKey]=getModelAssigner(n),t!==a&&(e.checked=looseEqual(t,n.props.value))}},vModelSelect={deep:!0,created(e,{value:t,modifiers:{number:a}},n){const o=isSet(t);addEventListener(e,"change",()=>{const r=Array.prototype.filter.call(e.options,s=>s.selected).map(s=>a?looseToNumber(getValue(s)):getValue(s));e[assignKey](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,nextTick(()=>{e._assigning=!1})}),e[assignKey]=getModelAssigner(n)},mounted(e,{value:t}){setSelected(e,t)},beforeUpdate(e,t,a){e[assignKey]=getModelAssigner(a)},updated(e,{value:t}){e._assigning||setSelected(e,t)}};function setSelected(e,t){const a=e.multiple,n=isArray$2(t);if(!(a&&!n&&!isSet(t))){for(let o=0,r=e.options.length;oString(f)===String(l)):s.selected=looseIndexOf(t,l)>-1}else s.selected=t.has(l);else if(looseEqual(getValue(s),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!a&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function getValue(e){return"_value"in e?e._value:e.value}function getCheckboxValue(e,t){const a=t?"_trueValue":"_falseValue";return a in e?e[a]:t}const vModelDynamic={created(e,t,a){callModelHook(e,t,a,null,"created")},mounted(e,t,a){callModelHook(e,t,a,null,"mounted")},beforeUpdate(e,t,a,n){callModelHook(e,t,a,n,"beforeUpdate")},updated(e,t,a,n){callModelHook(e,t,a,n,"updated")}};function resolveDynamicModel(e,t){switch(e){case"SELECT":return vModelSelect;case"TEXTAREA":return vModelText;default:switch(t){case"checkbox":return vModelCheckbox;case"radio":return vModelRadio;default:return vModelText}}}function callModelHook(e,t,a,n,o){const s=resolveDynamicModel(e.tagName,a.props&&a.props.type)[o];s&&s(e,t,a,n)}const systemModifiers=["ctrl","shift","alt","meta"],modifierGuards={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>systemModifiers.some(a=>e[`${a}Key`]&&!t.includes(a))},withModifiers=(e,t)=>{const a=e._withMods||(e._withMods={}),n=t.join(".");return a[n]||(a[n]=(o,...r)=>{for(let s=0;s{const a=e._withKeys||(e._withKeys={}),n=t.join(".");return a[n]||(a[n]=o=>{if(!("key"in o))return;const r=hyphenate(o.key);if(t.some(s=>s===r||keyNames[s]===r))return e(o)})},rendererOptions=extend$2({patchProp},nodeOps);let renderer;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}const render$1=(...e)=>{ensureRenderer().render(...e)},createApp=(...e)=>{const t=ensureRenderer().createApp(...e),{mount:a}=t;return t.mount=n=>{const o=normalizeContainer(n);if(!o)return;const r=t._component;!isFunction$2(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const s=a(o,!1,resolveRootNamespace(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},t};function resolveRootNamespace(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function normalizeContainer(e){return isString$2(e)?document.querySelector(e):e}/*! +**/let policy;const tt=typeof window<"u"&&window.trustedTypes;if(tt)try{policy=tt.createPolicy("vue",{createHTML:e=>e})}catch{}const unsafeToTrustedHTML=policy?e=>policy.createHTML(e):e=>e,svgNS="http://www.w3.org/2000/svg",mathmlNS="http://www.w3.org/1998/Math/MathML",doc=typeof document<"u"?document:null,templateContainer=doc&&doc.createElement("template"),nodeOps={insert:(e,t,a)=>{t.insertBefore(e,a||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,a,n)=>{const o=t==="svg"?doc.createElementNS(svgNS,e):t==="mathml"?doc.createElementNS(mathmlNS,e):a?doc.createElement(e,{is:a}):doc.createElement(e);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>doc.createTextNode(e),createComment:e=>doc.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>doc.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,a,n,o,r){const s=a?a.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),a),!(o===r||!(o=o.nextSibling)););else{templateContainer.innerHTML=unsafeToTrustedHTML(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const l=templateContainer.content;if(n==="svg"||n==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,a)}return[s?s.nextSibling:t.firstChild,a?a.previousSibling:t.lastChild]}},TRANSITION="transition",ANIMATION="animation",vtcKey=Symbol("_vtc"),DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=extend$2({},BaseTransitionPropsValidators,DOMTransitionPropsValidators),decorate$1=e=>(e.displayName="Transition",e.props=TransitionPropsValidators,e),Transition=decorate$1((e,{slots:t})=>h(BaseTransition,resolveTransitionProps(e),t)),callHook=(e,t=[])=>{isArray$2(e)?e.forEach(a=>a(...t)):e&&e(...t)},hasExplicitCallback=e=>e?isArray$2(e)?e.some(t=>t.length>1):e.length>1:!1;function resolveTransitionProps(e){const t={};for(const V in e)V in DOMTransitionPropsValidators||(t[V]=e[V]);if(e.css===!1)return t;const{name:a="v",type:n,duration:o,enterFromClass:r=`${a}-enter-from`,enterActiveClass:s=`${a}-enter-active`,enterToClass:l=`${a}-enter-to`,appearFromClass:c=r,appearActiveClass:f=s,appearToClass:u=l,leaveFromClass:d=`${a}-leave-from`,leaveActiveClass:m=`${a}-leave-active`,leaveToClass:g=`${a}-leave-to`}=e,v=normalizeDuration(o),b=v&&v[0],$=v&&v[1],{onBeforeEnter:w,onEnter:C,onEnterCancelled:P,onLeave:y,onLeaveCancelled:E,onBeforeAppear:R=w,onAppear:F=C,onAppearCancelled:H=P}=t,j=(V,q,Q,O)=>{V._enterCancelled=O,removeTransitionClass(V,q?u:l),removeTransitionClass(V,q?f:s),Q&&Q()},fe=(V,q)=>{V._isLeaving=!1,removeTransitionClass(V,d),removeTransitionClass(V,g),removeTransitionClass(V,m),q&&q()},oe=V=>(q,Q)=>{const O=V?F:C,G=()=>j(q,V,Q);callHook(O,[q,G]),nextFrame(()=>{removeTransitionClass(q,V?c:r),addTransitionClass(q,V?u:l),hasExplicitCallback(O)||whenTransitionEnds(q,n,b,G)})};return extend$2(t,{onBeforeEnter(V){callHook(w,[V]),addTransitionClass(V,r),addTransitionClass(V,s)},onBeforeAppear(V){callHook(R,[V]),addTransitionClass(V,c),addTransitionClass(V,f)},onEnter:oe(!1),onAppear:oe(!0),onLeave(V,q){V._isLeaving=!0;const Q=()=>fe(V,q);addTransitionClass(V,d),V._enterCancelled?(addTransitionClass(V,m),forceReflow()):(forceReflow(),addTransitionClass(V,m)),nextFrame(()=>{V._isLeaving&&(removeTransitionClass(V,d),addTransitionClass(V,g),hasExplicitCallback(y)||whenTransitionEnds(V,n,$,Q))}),callHook(y,[V,Q])},onEnterCancelled(V){j(V,!1,void 0,!0),callHook(P,[V])},onAppearCancelled(V){j(V,!0,void 0,!0),callHook(H,[V])},onLeaveCancelled(V){fe(V),callHook(E,[V])}})}function normalizeDuration(e){if(e==null)return null;if(isObject$3(e))return[NumberOf(e.enter),NumberOf(e.leave)];{const t=NumberOf(e);return[t,t]}}function NumberOf(e){return toNumber(e)}function addTransitionClass(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.add(a)),(e[vtcKey]||(e[vtcKey]=new Set)).add(t)}function removeTransitionClass(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const a=e[vtcKey];a&&(a.delete(t),a.size||(e[vtcKey]=void 0))}function nextFrame(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let endId=0;function whenTransitionEnds(e,t,a,n){const o=e._endId=++endId,r=()=>{o===e._endId&&n()};if(a!=null)return setTimeout(r,a);const{type:s,timeout:l,propCount:c}=getTransitionInfo(e,t);if(!s)return n();const f=s+"end";let u=0;const d=()=>{e.removeEventListener(f,m),r()},m=g=>{g.target===e&&++u>=c&&d()};setTimeout(()=>{u(a[v]||"").split(", "),o=n(`${TRANSITION}Delay`),r=n(`${TRANSITION}Duration`),s=getTimeout(o,r),l=n(`${ANIMATION}Delay`),c=n(`${ANIMATION}Duration`),f=getTimeout(l,c);let u=null,d=0,m=0;t===TRANSITION?s>0&&(u=TRANSITION,d=s,m=r.length):t===ANIMATION?f>0&&(u=ANIMATION,d=f,m=c.length):(d=Math.max(s,f),u=d>0?s>f?TRANSITION:ANIMATION:null,m=u?u===TRANSITION?r.length:c.length:0);const g=u===TRANSITION&&/\b(transform|all)(,|$)/.test(n(`${TRANSITION}Property`).toString());return{type:u,timeout:d,propCount:m,hasTransform:g}}function getTimeout(e,t){for(;e.lengthtoMs(a)+toMs(e[n])))}function toMs(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function forceReflow(){return document.body.offsetHeight}function patchClass(e,t,a){const n=e[vtcKey];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):a?e.setAttribute("class",t):e.className=t}const vShowOriginalDisplay=Symbol("_vod"),vShowHidden=Symbol("_vsh"),vShow={beforeMount(e,{value:t},{transition:a}){e[vShowOriginalDisplay]=e.style.display==="none"?"":e.style.display,a&&t?a.beforeEnter(e):setDisplay(e,t)},mounted(e,{value:t},{transition:a}){a&&t&&a.enter(e)},updated(e,{value:t,oldValue:a},{transition:n}){!t!=!a&&(n?t?(n.beforeEnter(e),setDisplay(e,!0),n.enter(e)):n.leave(e,()=>{setDisplay(e,!1)}):setDisplay(e,t))},beforeUnmount(e,{value:t}){setDisplay(e,t)}};function setDisplay(e,t){e.style.display=t?e[vShowOriginalDisplay]:"none",e[vShowHidden]=!t}const CSS_VAR_TEXT=Symbol(""),displayRE=/(^|;)\s*display\s*:/;function patchStyle(e,t,a){const n=e.style,o=isString$2(a);let r=!1;if(a&&!o){if(t)if(isString$2(t))for(const s of t.split(";")){const l=s.slice(0,s.indexOf(":")).trim();a[l]==null&&setStyle(n,l,"")}else for(const s in t)a[s]==null&&setStyle(n,s,"");for(const s in a)s==="display"&&(r=!0),setStyle(n,s,a[s])}else if(o){if(t!==a){const s=n[CSS_VAR_TEXT];s&&(a+=";"+s),n.cssText=a,r=displayRE.test(a)}}else t&&e.removeAttribute("style");vShowOriginalDisplay in e&&(e[vShowOriginalDisplay]=r?n.display:"",e[vShowHidden]&&(n.display="none"))}const importantRE=/\s*!important$/;function setStyle(e,t,a){if(isArray$2(a))a.forEach(n=>setStyle(e,t,n));else if(a==null&&(a=""),t.startsWith("--"))e.setProperty(t,a);else{const n=autoPrefix(e,t);importantRE.test(a)?e.setProperty(hyphenate(n),a.replace(importantRE,""),"important"):e[n]=a}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(e,t){const a=prefixCache[t];if(a)return a;let n=camelize(t);if(n!=="filter"&&n in e)return prefixCache[t]=n;n=capitalize$1(n);for(let o=0;ocachedNow||(p.then(()=>cachedNow=0),cachedNow=Date.now());function createInvoker(e,t){const a=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=a.attached)return;callWithAsyncErrorHandling(patchStopImmediatePropagation(n,a.value),t,5,[n])};return a.value=e,a.attached=getNow(),a}function patchStopImmediatePropagation(e,t){if(isArray$2(t)){const a=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{a.call(e),e._stopped=!0},t.map(n=>o=>!o._stopped&&n&&n(o))}else return t}const isNativeOn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,patchProp=(e,t,a,n,o,r)=>{const s=o==="svg";t==="class"?patchClass(e,n,s):t==="style"?patchStyle(e,a,n):isOn(t)?isModelListener(t)||patchEvent(e,t,a,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):shouldSetAsProp(e,t,n,s))?(patchDOMProp(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&patchAttr(e,t,n,s,r,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!isString$2(n))?patchDOMProp(e,camelize(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),patchAttr(e,t,n,s))};function shouldSetAsProp(e,t,a,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&isNativeOn(t)&&isFunction$2(a));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return isNativeOn(t)&&isString$2(a)?!1:t in e}const positionMap=new WeakMap,newPositionMap=new WeakMap,moveCbKey=Symbol("_moveCb"),enterCbKey=Symbol("_enterCb"),decorate=e=>(delete e.props.mode,e),TransitionGroupImpl=decorate({name:"TransitionGroup",props:extend$2({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(e,{slots:t}){const a=getCurrentInstance(),n=useTransitionState();let o,r;return onUpdated(()=>{if(!o.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!hasCSSTransform(o[0].el,a.vnode.el,s))return;o.forEach(callPendingCbs),o.forEach(recordPosition);const l=o.filter(applyTranslation);forceReflow(),l.forEach(c=>{const f=c.el,u=f.style;addTransitionClass(f,s),u.transform=u.webkitTransform=u.transitionDuration="";const d=f[moveCbKey]=m=>{m&&m.target!==f||(!m||/transform$/.test(m.propertyName))&&(f.removeEventListener("transitionend",d),f[moveCbKey]=null,removeTransitionClass(f,s))};f.addEventListener("transitionend",d)})}),()=>{const s=toRaw(e),l=resolveTransitionProps(s);let c=s.tag||Fragment;if(o=[],r)for(let f=0;f{l.split(/\s+/).forEach(c=>c&&n.classList.remove(c))}),a.split(/\s+/).forEach(l=>l&&n.classList.add(l)),n.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(n);const{hasTransform:s}=getTransitionInfo(n);return r.removeChild(n),s}const getModelAssigner=e=>{const t=e.props["onUpdate:modelValue"]||!1;return isArray$2(t)?a=>invokeArrayFns(t,a):t};function onCompositionStart(e){e.target.composing=!0}function onCompositionEnd(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const assignKey=Symbol("_assign"),vModelText={created(e,{modifiers:{lazy:t,trim:a,number:n}},o){e[assignKey]=getModelAssigner(o);const r=n||o.props&&o.props.type==="number";addEventListener(e,t?"change":"input",s=>{if(s.target.composing)return;let l=e.value;a&&(l=l.trim()),r&&(l=looseToNumber(l)),e[assignKey](l)}),a&&addEventListener(e,"change",()=>{e.value=e.value.trim()}),t||(addEventListener(e,"compositionstart",onCompositionStart),addEventListener(e,"compositionend",onCompositionEnd),addEventListener(e,"change",onCompositionEnd))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:a,modifiers:{lazy:n,trim:o,number:r}},s){if(e[assignKey]=getModelAssigner(s),e.composing)return;const l=(r||e.type==="number")&&!/^0\d/.test(e.value)?looseToNumber(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(n&&t===a||o&&e.value.trim()===c)||(e.value=c))}},vModelCheckbox={deep:!0,created(e,t,a){e[assignKey]=getModelAssigner(a),addEventListener(e,"change",()=>{const n=e._modelValue,o=getValue(e),r=e.checked,s=e[assignKey];if(isArray$2(n)){const l=looseIndexOf(n,o),c=l!==-1;if(r&&!c)s(n.concat(o));else if(!r&&c){const f=[...n];f.splice(l,1),s(f)}}else if(isSet(n)){const l=new Set(n);r?l.add(o):l.delete(o),s(l)}else s(getCheckboxValue(e,r))})},mounted:setChecked,beforeUpdate(e,t,a){e[assignKey]=getModelAssigner(a),setChecked(e,t,a)}};function setChecked(e,{value:t,oldValue:a},n){e._modelValue=t;let o;if(isArray$2(t))o=looseIndexOf(t,n.props.value)>-1;else if(isSet(t))o=t.has(n.props.value);else{if(t===a)return;o=looseEqual(t,getCheckboxValue(e,!0))}e.checked!==o&&(e.checked=o)}const vModelRadio={created(e,{value:t},a){e.checked=looseEqual(t,a.props.value),e[assignKey]=getModelAssigner(a),addEventListener(e,"change",()=>{e[assignKey](getValue(e))})},beforeUpdate(e,{value:t,oldValue:a},n){e[assignKey]=getModelAssigner(n),t!==a&&(e.checked=looseEqual(t,n.props.value))}},vModelSelect={deep:!0,created(e,{value:t,modifiers:{number:a}},n){const o=isSet(t);addEventListener(e,"change",()=>{const r=Array.prototype.filter.call(e.options,s=>s.selected).map(s=>a?looseToNumber(getValue(s)):getValue(s));e[assignKey](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,nextTick(()=>{e._assigning=!1})}),e[assignKey]=getModelAssigner(n)},mounted(e,{value:t}){setSelected(e,t)},beforeUpdate(e,t,a){e[assignKey]=getModelAssigner(a)},updated(e,{value:t}){e._assigning||setSelected(e,t)}};function setSelected(e,t){const a=e.multiple,n=isArray$2(t);if(!(a&&!n&&!isSet(t))){for(let o=0,r=e.options.length;oString(f)===String(l)):s.selected=looseIndexOf(t,l)>-1}else s.selected=t.has(l);else if(looseEqual(getValue(s),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!a&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function getValue(e){return"_value"in e?e._value:e.value}function getCheckboxValue(e,t){const a=t?"_trueValue":"_falseValue";return a in e?e[a]:t}const vModelDynamic={created(e,t,a){callModelHook(e,t,a,null,"created")},mounted(e,t,a){callModelHook(e,t,a,null,"mounted")},beforeUpdate(e,t,a,n){callModelHook(e,t,a,n,"beforeUpdate")},updated(e,t,a,n){callModelHook(e,t,a,n,"updated")}};function resolveDynamicModel(e,t){switch(e){case"SELECT":return vModelSelect;case"TEXTAREA":return vModelText;default:switch(t){case"checkbox":return vModelCheckbox;case"radio":return vModelRadio;default:return vModelText}}}function callModelHook(e,t,a,n,o){const s=resolveDynamicModel(e.tagName,a.props&&a.props.type)[o];s&&s(e,t,a,n)}const systemModifiers=["ctrl","shift","alt","meta"],modifierGuards={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>systemModifiers.some(a=>e[`${a}Key`]&&!t.includes(a))},withModifiers=(e,t)=>{const a=e._withMods||(e._withMods={}),n=t.join(".");return a[n]||(a[n]=(o,...r)=>{for(let s=0;s{const a=e._withKeys||(e._withKeys={}),n=t.join(".");return a[n]||(a[n]=o=>{if(!("key"in o))return;const r=hyphenate(o.key);if(t.some(s=>s===r||keyNames[s]===r))return e(o)})},rendererOptions=extend$2({patchProp},nodeOps);let renderer;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}const render$1=(...e)=>{ensureRenderer().render(...e)},createApp=(...e)=>{const t=ensureRenderer().createApp(...e),{mount:a}=t;return t.mount=n=>{const o=normalizeContainer(n);if(!o)return;const r=t._component;!isFunction$2(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const s=a(o,!1,resolveRootNamespace(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},t};function resolveRootNamespace(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function normalizeContainer(e){return isString$2(e)?document.querySelector(e):e}/*! * shared v11.1.2 * (c) 2025 kazuya kawaguchi * Released under the MIT License. @@ -26,32 +26,32 @@ * (c) 2025 kazuya kawaguchi * Released under the MIT License. */function createPosition(e,t,a){return{line:e,column:t,offset:a}}function createLocation(e,t,a){return{start:e,end:t}}const CompileErrorCodes={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},COMPILE_ERROR_CODES_EXTEND_POINT=17;function createCompileError(e,t,a={}){const{domain:n,messages:o,args:r}=a,s=e,l=new SyntaxError(String(s));return l.code=e,t&&(l.location=t),l.domain=n,l}function defaultOnError(e){throw e}const CHAR_SP=" ",CHAR_CR="\r",CHAR_LF=` -`,CHAR_LS="\u2028",CHAR_PS="\u2029";function createScanner(e){const t=e;let a=0,n=1,o=1,r=0;const s=F=>t[F]===CHAR_CR&&t[F+1]===CHAR_LF,l=F=>t[F]===CHAR_LF,c=F=>t[F]===CHAR_PS,f=F=>t[F]===CHAR_LS,u=F=>s(F)||l(F)||c(F)||f(F),d=()=>a,m=()=>n,g=()=>o,v=()=>r,b=F=>s(F)||c(F)||f(F)?CHAR_LF:t[F],$=()=>b(a),w=()=>b(a+r);function N(){return r=0,u(a)&&(n++,o=0),s(a)&&a++,a++,o++,t[a]}function P(){return s(a+r)&&r++,r++,t[a+r]}function y(){a=0,n=1,o=1,r=0}function E(F=0){r=F}function R(){const F=a+r;for(;F!==a;)N();r=0}return{index:d,line:m,column:g,peekOffset:v,charAt:b,currentChar:$,currentPeek:w,next:N,peek:P,reset:y,resetPeek:E,skipToPeek:R}}const EOF=void 0,DOT=".",LITERAL_DELIMITER="'",ERROR_DOMAIN$3="tokenizer";function createTokenizer(e,t={}){const a=t.location!==!1,n=createScanner(e),o=()=>n.index(),r=()=>createPosition(n.line(),n.column(),n.index()),s=r(),l=o(),c={currentType:13,offset:l,startLoc:s,endLoc:s,lastType:13,lastOffset:l,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},f=()=>c,{onError:u}=t;function d(k,_,M,...U){const _e=f();if(_.column+=M,_.offset+=M,u){const me=a?createLocation(_e.startLoc,_):null,J=createCompileError(k,me,{domain:ERROR_DOMAIN$3,args:U});u(J)}}function m(k,_,M){k.endLoc=r(),k.currentType=_;const U={type:_};return a&&(U.loc=createLocation(k.startLoc,k.endLoc)),M!=null&&(U.value=M),U}const g=k=>m(k,13);function v(k,_){return k.currentChar()===_?(k.next(),_):(d(CompileErrorCodes.EXPECTED_TOKEN,r(),0,_),"")}function b(k){let _="";for(;k.currentPeek()===CHAR_SP||k.currentPeek()===CHAR_LF;)_+=k.currentPeek(),k.peek();return _}function $(k){const _=b(k);return k.skipToPeek(),_}function w(k){if(k===EOF)return!1;const _=k.charCodeAt(0);return _>=97&&_<=122||_>=65&&_<=90||_===95}function N(k){if(k===EOF)return!1;const _=k.charCodeAt(0);return _>=48&&_<=57}function P(k,_){const{currentType:M}=_;if(M!==2)return!1;b(k);const U=w(k.currentPeek());return k.resetPeek(),U}function y(k,_){const{currentType:M}=_;if(M!==2)return!1;b(k);const U=k.currentPeek()==="-"?k.peek():k.currentPeek(),_e=N(U);return k.resetPeek(),_e}function E(k,_){const{currentType:M}=_;if(M!==2)return!1;b(k);const U=k.currentPeek()===LITERAL_DELIMITER;return k.resetPeek(),U}function R(k,_){const{currentType:M}=_;if(M!==7)return!1;b(k);const U=k.currentPeek()===".";return k.resetPeek(),U}function F(k,_){const{currentType:M}=_;if(M!==8)return!1;b(k);const U=w(k.currentPeek());return k.resetPeek(),U}function H(k,_){const{currentType:M}=_;if(!(M===7||M===11))return!1;b(k);const U=k.currentPeek()===":";return k.resetPeek(),U}function j(k,_){const{currentType:M}=_;if(M!==9)return!1;const U=()=>{const me=k.currentPeek();return me==="{"?w(k.peek()):me==="@"||me==="|"||me===":"||me==="."||me===CHAR_SP||!me?!1:me===CHAR_LF?(k.peek(),U()):oe(k,!1)},_e=U();return k.resetPeek(),_e}function fe(k){b(k);const _=k.currentPeek()==="|";return k.resetPeek(),_}function oe(k,_=!0){const M=(_e=!1,me="")=>{const J=k.currentPeek();return J==="{"||J==="@"||!J?_e:J==="|"?!(me===CHAR_SP||me===CHAR_LF):J===CHAR_SP?(k.peek(),M(!0,CHAR_SP)):J===CHAR_LF?(k.peek(),M(!0,CHAR_LF)):!0},U=M();return _&&k.resetPeek(),U}function V(k,_){const M=k.currentChar();return M===EOF?EOF:_(M)?(k.next(),M):null}function q(k){const _=k.charCodeAt(0);return _>=97&&_<=122||_>=65&&_<=90||_>=48&&_<=57||_===95||_===36}function Q(k){return V(k,q)}function O(k){const _=k.charCodeAt(0);return _>=97&&_<=122||_>=65&&_<=90||_>=48&&_<=57||_===95||_===36||_===45}function G(k){return V(k,O)}function ee(k){const _=k.charCodeAt(0);return _>=48&&_<=57}function A(k){return V(k,ee)}function D(k){const _=k.charCodeAt(0);return _>=48&&_<=57||_>=65&&_<=70||_>=97&&_<=102}function W(k){return V(k,D)}function ae(k){let _="",M="";for(;_=A(k);)M+=_;return M}function Y(k){let _="";for(;;){const M=k.currentChar();if(M==="{"||M==="}"||M==="@"||M==="|"||!M)break;if(M===CHAR_SP||M===CHAR_LF)if(oe(k))_+=M,k.next();else{if(fe(k))break;_+=M,k.next()}else _+=M,k.next()}return _}function ne(k){$(k);let _="",M="";for(;_=G(k);)M+=_;return k.currentChar()===EOF&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),M}function te(k){$(k);let _="";return k.currentChar()==="-"?(k.next(),_+=`-${ae(k)}`):_+=ae(k),k.currentChar()===EOF&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),_}function ge(k){return k!==LITERAL_DELIMITER&&k!==CHAR_LF}function re(k){$(k),v(k,"'");let _="",M="";for(;_=V(k,ge);)_==="\\"?M+=B(k):M+=_;const U=k.currentChar();return U===CHAR_LF||U===EOF?(d(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),U===CHAR_LF&&(k.next(),v(k,"'")),M):(v(k,"'"),M)}function B(k){const _=k.currentChar();switch(_){case"\\":case"'":return k.next(),`\\${_}`;case"u":return z(k,_,4);case"U":return z(k,_,6);default:return d(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE,r(),0,_),""}}function z(k,_,M){v(k,_);let U="";for(let _e=0;_e{const U=k.currentChar();return U==="{"||U==="@"||U==="|"||U==="("||U===")"||!U||U===CHAR_SP?M:(M+=U,k.next(),_(M))};return _("")}function S(k){$(k);const _=v(k,"|");return $(k),_}function I(k,_){let M=null;switch(k.currentChar()){case"{":return _.braceNest>=1&&d(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),k.next(),M=m(_,2,"{"),$(k),_.braceNest++,M;case"}":return _.braceNest>0&&_.currentType===2&&d(CompileErrorCodes.EMPTY_PLACEHOLDER,r(),0),k.next(),M=m(_,3,"}"),_.braceNest--,_.braceNest>0&&$(k),_.inLinked&&_.braceNest===0&&(_.inLinked=!1),M;case"@":return _.braceNest>0&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),M=X(k,_)||g(_),_.braceNest=0,M;default:{let _e=!0,me=!0,J=!0;if(fe(k))return _.braceNest>0&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),M=m(_,1,S(k)),_.braceNest=0,_.inLinked=!1,M;if(_.braceNest>0&&(_.currentType===4||_.currentType===5||_.currentType===6))return d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),_.braceNest=0,ie(k,_);if(_e=P(k,_))return M=m(_,4,ne(k)),$(k),M;if(me=y(k,_))return M=m(_,5,te(k)),$(k),M;if(J=E(k,_))return M=m(_,6,re(k)),$(k),M;if(!_e&&!me&&!J)return M=m(_,12,L(k)),d(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,M.value),$(k),M;break}}return M}function X(k,_){const{currentType:M}=_;let U=null;const _e=k.currentChar();switch((M===7||M===8||M===11||M===9)&&(_e===CHAR_LF||_e===CHAR_SP)&&d(CompileErrorCodes.INVALID_LINKED_FORMAT,r(),0),_e){case"@":return k.next(),U=m(_,7,"@"),_.inLinked=!0,U;case".":return $(k),k.next(),m(_,8,".");case":":return $(k),k.next(),m(_,9,":");default:return fe(k)?(U=m(_,1,S(k)),_.braceNest=0,_.inLinked=!1,U):R(k,_)||H(k,_)?($(k),X(k,_)):F(k,_)?($(k),m(_,11,K(k))):j(k,_)?($(k),_e==="{"?I(k,_)||U:m(_,10,x(k))):(M===7&&d(CompileErrorCodes.INVALID_LINKED_FORMAT,r(),0),_.braceNest=0,_.inLinked=!1,ie(k,_))}}function ie(k,_){let M={type:13};if(_.braceNest>0)return I(k,_)||g(_);if(_.inLinked)return X(k,_)||g(_);switch(k.currentChar()){case"{":return I(k,_)||g(_);case"}":return d(CompileErrorCodes.UNBALANCED_CLOSING_BRACE,r(),0),k.next(),m(_,3,"}");case"@":return X(k,_)||g(_);default:{if(fe(k))return M=m(_,1,S(k)),_.braceNest=0,_.inLinked=!1,M;if(oe(k))return m(_,0,Y(k));break}}return M}function pe(){const{currentType:k,offset:_,startLoc:M,endLoc:U}=c;return c.lastType=k,c.lastOffset=_,c.lastStartLoc=M,c.lastEndLoc=U,c.offset=o(),c.startLoc=r(),n.currentChar()===EOF?m(c,13):ie(n,c)}return{nextToken:pe,currentOffset:o,currentPosition:r,context:f}}const ERROR_DOMAIN$2="parser",KNOWN_ESCAPES=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function fromEscapeSequence(e,t,a){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||a,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function createParser(e={}){const t=e.location!==!1,{onError:a}=e;function n(w,N,P,y,...E){const R=w.currentPosition();if(R.offset+=y,R.column+=y,a){const F=t?createLocation(P,R):null,H=createCompileError(N,F,{domain:ERROR_DOMAIN$2,args:E});a(H)}}function o(w,N,P){const y={type:w};return t&&(y.start=N,y.end=N,y.loc={start:P,end:P}),y}function r(w,N,P,y){t&&(w.end=N,w.loc&&(w.loc.end=P))}function s(w,N){const P=w.context(),y=o(3,P.offset,P.startLoc);return y.value=N,r(y,w.currentOffset(),w.currentPosition()),y}function l(w,N){const P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(5,y,E);return R.index=parseInt(N,10),w.nextToken(),r(R,w.currentOffset(),w.currentPosition()),R}function c(w,N){const P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(4,y,E);return R.key=N,w.nextToken(),r(R,w.currentOffset(),w.currentPosition()),R}function f(w,N){const P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(9,y,E);return R.value=N.replace(KNOWN_ESCAPES,fromEscapeSequence),w.nextToken(),r(R,w.currentOffset(),w.currentPosition()),R}function u(w){const N=w.nextToken(),P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(8,y,E);return N.type!==11?(n(w,CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER,P.lastStartLoc,0),R.value="",r(R,y,E),{nextConsumeToken:N,node:R}):(N.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,P.lastStartLoc,0,getTokenCaption(N)),R.value=N.value||"",r(R,w.currentOffset(),w.currentPosition()),{node:R})}function d(w,N){const P=w.context(),y=o(7,P.offset,P.startLoc);return y.value=N,r(y,w.currentOffset(),w.currentPosition()),y}function m(w){const N=w.context(),P=o(6,N.offset,N.startLoc);let y=w.nextToken();if(y.type===8){const E=u(w);P.modifier=E.node,y=E.nextConsumeToken||w.nextToken()}switch(y.type!==9&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(y)),y=w.nextToken(),y.type===2&&(y=w.nextToken()),y.type){case 10:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(y)),P.key=d(w,y.value||"");break;case 4:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(y)),P.key=c(w,y.value||"");break;case 5:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(y)),P.key=l(w,y.value||"");break;case 6:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(y)),P.key=f(w,y.value||"");break;default:{n(w,CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY,N.lastStartLoc,0);const E=w.context(),R=o(7,E.offset,E.startLoc);return R.value="",r(R,E.offset,E.startLoc),P.key=R,r(P,E.offset,E.startLoc),{nextConsumeToken:y,node:P}}}return r(P,w.currentOffset(),w.currentPosition()),{node:P}}function g(w){const N=w.context(),P=N.currentType===1?w.currentOffset():N.offset,y=N.currentType===1?N.endLoc:N.startLoc,E=o(2,P,y);E.items=[];let R=null;do{const j=R||w.nextToken();switch(R=null,j.type){case 0:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(j)),E.items.push(s(w,j.value||""));break;case 5:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(j)),E.items.push(l(w,j.value||""));break;case 4:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(j)),E.items.push(c(w,j.value||""));break;case 6:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,getTokenCaption(j)),E.items.push(f(w,j.value||""));break;case 7:{const fe=m(w);E.items.push(fe.node),R=fe.nextConsumeToken||null;break}}}while(N.currentType!==13&&N.currentType!==1);const F=N.currentType===1?N.lastOffset:w.currentOffset(),H=N.currentType===1?N.lastEndLoc:w.currentPosition();return r(E,F,H),E}function v(w,N,P,y){const E=w.context();let R=y.items.length===0;const F=o(1,N,P);F.cases=[],F.cases.push(y);do{const H=g(w);R||(R=H.items.length===0),F.cases.push(H)}while(E.currentType!==13);return R&&n(w,CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL,P,0),r(F,w.currentOffset(),w.currentPosition()),F}function b(w){const N=w.context(),{offset:P,startLoc:y}=N,E=g(w);return N.currentType===13?E:v(w,P,y,E)}function $(w){const N=createTokenizer(w,assign$1({},e)),P=N.context(),y=o(0,P.offset,P.startLoc);return t&&y.loc&&(y.loc.source=w),y.body=b(N),e.onCacheKey&&(y.cacheKey=e.onCacheKey(w)),P.currentType!==13&&n(N,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,P.lastStartLoc,0,w[P.offset]||""),r(y,N.currentOffset(),N.currentPosition()),y}return{parse:$}}function getTokenCaption(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function createTransformer(e,t={}){const a={ast:e,helpers:new Set};return{context:()=>a,helper:r=>(a.helpers.add(r),r)}}function traverseNodes(e,t){for(let a=0;aoptimizeMessageNode(a)),e}function optimizeMessageNode(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let a=0;as;function c(b,$){s.code+=b}function f(b,$=!0){const w=$?n:"";c(o?w+" ".repeat(b):w)}function u(b=!0){const $=++s.indentLevel;b&&f($)}function d(b=!0){const $=--s.indentLevel;b&&f($)}function m(){f(s.indentLevel)}return{context:l,push:c,indent:u,deindent:d,newline:m,helper:b=>`_${b}`,needIndent:()=>s.needIndent}}function generateLinkedNode(e,t){const{helper:a}=e;e.push(`${a("linked")}(`),generateNode(e,t.key),t.modifier?(e.push(", "),generateNode(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function generateMessageNode(e,t){const{helper:a,needIndent:n}=e;e.push(`${a("normalize")}([`),e.indent(n());const o=t.items.length;for(let r=0;r1){e.push(`${a("plural")}([`),e.indent(n());const o=t.cases.length;for(let r=0;r{const a=isString$1(t.mode)?t.mode:"normal",n=isString$1(t.filename)?t.filename:"message.intl";t.sourceMap;const o=t.breakLineCode!=null?t.breakLineCode:a==="arrow"?";":` +`,CHAR_LS="\u2028",CHAR_PS="\u2029";function createScanner(e){const t=e;let a=0,n=1,o=1,r=0;const s=F=>t[F]===CHAR_CR&&t[F+1]===CHAR_LF,l=F=>t[F]===CHAR_LF,c=F=>t[F]===CHAR_PS,f=F=>t[F]===CHAR_LS,u=F=>s(F)||l(F)||c(F)||f(F),d=()=>a,m=()=>n,g=()=>o,v=()=>r,b=F=>s(F)||c(F)||f(F)?CHAR_LF:t[F],$=()=>b(a),w=()=>b(a+r);function C(){return r=0,u(a)&&(n++,o=0),s(a)&&a++,a++,o++,t[a]}function P(){return s(a+r)&&r++,r++,t[a+r]}function y(){a=0,n=1,o=1,r=0}function E(F=0){r=F}function R(){const F=a+r;for(;F!==a;)C();r=0}return{index:d,line:m,column:g,peekOffset:v,charAt:b,currentChar:$,currentPeek:w,next:C,peek:P,reset:y,resetPeek:E,skipToPeek:R}}const EOF=void 0,DOT=".",LITERAL_DELIMITER="'",ERROR_DOMAIN$3="tokenizer";function createTokenizer(e,t={}){const a=t.location!==!1,n=createScanner(e),o=()=>n.index(),r=()=>createPosition(n.line(),n.column(),n.index()),s=r(),l=o(),c={currentType:13,offset:l,startLoc:s,endLoc:s,lastType:13,lastOffset:l,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},f=()=>c,{onError:u}=t;function d(T,_,M,...U){const _e=f();if(_.column+=M,_.offset+=M,u){const me=a?createLocation(_e.startLoc,_):null,J=createCompileError(T,me,{domain:ERROR_DOMAIN$3,args:U});u(J)}}function m(T,_,M){T.endLoc=r(),T.currentType=_;const U={type:_};return a&&(U.loc=createLocation(T.startLoc,T.endLoc)),M!=null&&(U.value=M),U}const g=T=>m(T,13);function v(T,_){return T.currentChar()===_?(T.next(),_):(d(CompileErrorCodes.EXPECTED_TOKEN,r(),0,_),"")}function b(T){let _="";for(;T.currentPeek()===CHAR_SP||T.currentPeek()===CHAR_LF;)_+=T.currentPeek(),T.peek();return _}function $(T){const _=b(T);return T.skipToPeek(),_}function w(T){if(T===EOF)return!1;const _=T.charCodeAt(0);return _>=97&&_<=122||_>=65&&_<=90||_===95}function C(T){if(T===EOF)return!1;const _=T.charCodeAt(0);return _>=48&&_<=57}function P(T,_){const{currentType:M}=_;if(M!==2)return!1;b(T);const U=w(T.currentPeek());return T.resetPeek(),U}function y(T,_){const{currentType:M}=_;if(M!==2)return!1;b(T);const U=T.currentPeek()==="-"?T.peek():T.currentPeek(),_e=C(U);return T.resetPeek(),_e}function E(T,_){const{currentType:M}=_;if(M!==2)return!1;b(T);const U=T.currentPeek()===LITERAL_DELIMITER;return T.resetPeek(),U}function R(T,_){const{currentType:M}=_;if(M!==7)return!1;b(T);const U=T.currentPeek()===".";return T.resetPeek(),U}function F(T,_){const{currentType:M}=_;if(M!==8)return!1;b(T);const U=w(T.currentPeek());return T.resetPeek(),U}function H(T,_){const{currentType:M}=_;if(!(M===7||M===11))return!1;b(T);const U=T.currentPeek()===":";return T.resetPeek(),U}function j(T,_){const{currentType:M}=_;if(M!==9)return!1;const U=()=>{const me=T.currentPeek();return me==="{"?w(T.peek()):me==="@"||me==="|"||me===":"||me==="."||me===CHAR_SP||!me?!1:me===CHAR_LF?(T.peek(),U()):oe(T,!1)},_e=U();return T.resetPeek(),_e}function fe(T){b(T);const _=T.currentPeek()==="|";return T.resetPeek(),_}function oe(T,_=!0){const M=(_e=!1,me="")=>{const J=T.currentPeek();return J==="{"||J==="@"||!J?_e:J==="|"?!(me===CHAR_SP||me===CHAR_LF):J===CHAR_SP?(T.peek(),M(!0,CHAR_SP)):J===CHAR_LF?(T.peek(),M(!0,CHAR_LF)):!0},U=M();return _&&T.resetPeek(),U}function V(T,_){const M=T.currentChar();return M===EOF?EOF:_(M)?(T.next(),M):null}function q(T){const _=T.charCodeAt(0);return _>=97&&_<=122||_>=65&&_<=90||_>=48&&_<=57||_===95||_===36}function Q(T){return V(T,q)}function O(T){const _=T.charCodeAt(0);return _>=97&&_<=122||_>=65&&_<=90||_>=48&&_<=57||_===95||_===36||_===45}function G(T){return V(T,O)}function ee(T){const _=T.charCodeAt(0);return _>=48&&_<=57}function A(T){return V(T,ee)}function L(T){const _=T.charCodeAt(0);return _>=48&&_<=57||_>=65&&_<=70||_>=97&&_<=102}function W(T){return V(T,L)}function ae(T){let _="",M="";for(;_=A(T);)M+=_;return M}function Y(T){let _="";for(;;){const M=T.currentChar();if(M==="{"||M==="}"||M==="@"||M==="|"||!M)break;if(M===CHAR_SP||M===CHAR_LF)if(oe(T))_+=M,T.next();else{if(fe(T))break;_+=M,T.next()}else _+=M,T.next()}return _}function ne(T){$(T);let _="",M="";for(;_=G(T);)M+=_;return T.currentChar()===EOF&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),M}function te(T){$(T);let _="";return T.currentChar()==="-"?(T.next(),_+=`-${ae(T)}`):_+=ae(T),T.currentChar()===EOF&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),_}function ge(T){return T!==LITERAL_DELIMITER&&T!==CHAR_LF}function re(T){$(T),v(T,"'");let _="",M="";for(;_=V(T,ge);)_==="\\"?M+=B(T):M+=_;const U=T.currentChar();return U===CHAR_LF||U===EOF?(d(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),U===CHAR_LF&&(T.next(),v(T,"'")),M):(v(T,"'"),M)}function B(T){const _=T.currentChar();switch(_){case"\\":case"'":return T.next(),`\\${_}`;case"u":return z(T,_,4);case"U":return z(T,_,6);default:return d(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE,r(),0,_),""}}function z(T,_,M){v(T,_);let U="";for(let _e=0;_e{const U=T.currentChar();return U==="{"||U==="@"||U==="|"||U==="("||U===")"||!U||U===CHAR_SP?M:(M+=U,T.next(),_(M))};return _("")}function S(T){$(T);const _=v(T,"|");return $(T),_}function I(T,_){let M=null;switch(T.currentChar()){case"{":return _.braceNest>=1&&d(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),T.next(),M=m(_,2,"{"),$(T),_.braceNest++,M;case"}":return _.braceNest>0&&_.currentType===2&&d(CompileErrorCodes.EMPTY_PLACEHOLDER,r(),0),T.next(),M=m(_,3,"}"),_.braceNest--,_.braceNest>0&&$(T),_.inLinked&&_.braceNest===0&&(_.inLinked=!1),M;case"@":return _.braceNest>0&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),M=X(T,_)||g(_),_.braceNest=0,M;default:{let _e=!0,me=!0,J=!0;if(fe(T))return _.braceNest>0&&d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),M=m(_,1,S(T)),_.braceNest=0,_.inLinked=!1,M;if(_.braceNest>0&&(_.currentType===4||_.currentType===5||_.currentType===6))return d(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE,r(),0),_.braceNest=0,ie(T,_);if(_e=P(T,_))return M=m(_,4,ne(T)),$(T),M;if(me=y(T,_))return M=m(_,5,te(T)),$(T),M;if(J=E(T,_))return M=m(_,6,re(T)),$(T),M;if(!_e&&!me&&!J)return M=m(_,12,D(T)),d(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,M.value),$(T),M;break}}return M}function X(T,_){const{currentType:M}=_;let U=null;const _e=T.currentChar();switch((M===7||M===8||M===11||M===9)&&(_e===CHAR_LF||_e===CHAR_SP)&&d(CompileErrorCodes.INVALID_LINKED_FORMAT,r(),0),_e){case"@":return T.next(),U=m(_,7,"@"),_.inLinked=!0,U;case".":return $(T),T.next(),m(_,8,".");case":":return $(T),T.next(),m(_,9,":");default:return fe(T)?(U=m(_,1,S(T)),_.braceNest=0,_.inLinked=!1,U):R(T,_)||H(T,_)?($(T),X(T,_)):F(T,_)?($(T),m(_,11,K(T))):j(T,_)?($(T),_e==="{"?I(T,_)||U:m(_,10,x(T))):(M===7&&d(CompileErrorCodes.INVALID_LINKED_FORMAT,r(),0),_.braceNest=0,_.inLinked=!1,ie(T,_))}}function ie(T,_){let M={type:13};if(_.braceNest>0)return I(T,_)||g(_);if(_.inLinked)return X(T,_)||g(_);switch(T.currentChar()){case"{":return I(T,_)||g(_);case"}":return d(CompileErrorCodes.UNBALANCED_CLOSING_BRACE,r(),0),T.next(),m(_,3,"}");case"@":return X(T,_)||g(_);default:{if(fe(T))return M=m(_,1,S(T)),_.braceNest=0,_.inLinked=!1,M;if(oe(T))return m(_,0,Y(T));break}}return M}function pe(){const{currentType:T,offset:_,startLoc:M,endLoc:U}=c;return c.lastType=T,c.lastOffset=_,c.lastStartLoc=M,c.lastEndLoc=U,c.offset=o(),c.startLoc=r(),n.currentChar()===EOF?m(c,13):ie(n,c)}return{nextToken:pe,currentOffset:o,currentPosition:r,context:f}}const ERROR_DOMAIN$2="parser",KNOWN_ESCAPES=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function fromEscapeSequence(e,t,a){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||a,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function createParser(e={}){const t=e.location!==!1,{onError:a}=e;function n(w,C,P,y,...E){const R=w.currentPosition();if(R.offset+=y,R.column+=y,a){const F=t?createLocation(P,R):null,H=createCompileError(C,F,{domain:ERROR_DOMAIN$2,args:E});a(H)}}function o(w,C,P){const y={type:w};return t&&(y.start=C,y.end=C,y.loc={start:P,end:P}),y}function r(w,C,P,y){t&&(w.end=C,w.loc&&(w.loc.end=P))}function s(w,C){const P=w.context(),y=o(3,P.offset,P.startLoc);return y.value=C,r(y,w.currentOffset(),w.currentPosition()),y}function l(w,C){const P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(5,y,E);return R.index=parseInt(C,10),w.nextToken(),r(R,w.currentOffset(),w.currentPosition()),R}function c(w,C){const P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(4,y,E);return R.key=C,w.nextToken(),r(R,w.currentOffset(),w.currentPosition()),R}function f(w,C){const P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(9,y,E);return R.value=C.replace(KNOWN_ESCAPES,fromEscapeSequence),w.nextToken(),r(R,w.currentOffset(),w.currentPosition()),R}function u(w){const C=w.nextToken(),P=w.context(),{lastOffset:y,lastStartLoc:E}=P,R=o(8,y,E);return C.type!==11?(n(w,CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER,P.lastStartLoc,0),R.value="",r(R,y,E),{nextConsumeToken:C,node:R}):(C.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,P.lastStartLoc,0,getTokenCaption(C)),R.value=C.value||"",r(R,w.currentOffset(),w.currentPosition()),{node:R})}function d(w,C){const P=w.context(),y=o(7,P.offset,P.startLoc);return y.value=C,r(y,w.currentOffset(),w.currentPosition()),y}function m(w){const C=w.context(),P=o(6,C.offset,C.startLoc);let y=w.nextToken();if(y.type===8){const E=u(w);P.modifier=E.node,y=E.nextConsumeToken||w.nextToken()}switch(y.type!==9&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(y)),y=w.nextToken(),y.type===2&&(y=w.nextToken()),y.type){case 10:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(y)),P.key=d(w,y.value||"");break;case 4:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(y)),P.key=c(w,y.value||"");break;case 5:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(y)),P.key=l(w,y.value||"");break;case 6:y.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(y)),P.key=f(w,y.value||"");break;default:{n(w,CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY,C.lastStartLoc,0);const E=w.context(),R=o(7,E.offset,E.startLoc);return R.value="",r(R,E.offset,E.startLoc),P.key=R,r(P,E.offset,E.startLoc),{nextConsumeToken:y,node:P}}}return r(P,w.currentOffset(),w.currentPosition()),{node:P}}function g(w){const C=w.context(),P=C.currentType===1?w.currentOffset():C.offset,y=C.currentType===1?C.endLoc:C.startLoc,E=o(2,P,y);E.items=[];let R=null;do{const j=R||w.nextToken();switch(R=null,j.type){case 0:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(j)),E.items.push(s(w,j.value||""));break;case 5:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(j)),E.items.push(l(w,j.value||""));break;case 4:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(j)),E.items.push(c(w,j.value||""));break;case 6:j.value==null&&n(w,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,getTokenCaption(j)),E.items.push(f(w,j.value||""));break;case 7:{const fe=m(w);E.items.push(fe.node),R=fe.nextConsumeToken||null;break}}}while(C.currentType!==13&&C.currentType!==1);const F=C.currentType===1?C.lastOffset:w.currentOffset(),H=C.currentType===1?C.lastEndLoc:w.currentPosition();return r(E,F,H),E}function v(w,C,P,y){const E=w.context();let R=y.items.length===0;const F=o(1,C,P);F.cases=[],F.cases.push(y);do{const H=g(w);R||(R=H.items.length===0),F.cases.push(H)}while(E.currentType!==13);return R&&n(w,CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL,P,0),r(F,w.currentOffset(),w.currentPosition()),F}function b(w){const C=w.context(),{offset:P,startLoc:y}=C,E=g(w);return C.currentType===13?E:v(w,P,y,E)}function $(w){const C=createTokenizer(w,assign$1({},e)),P=C.context(),y=o(0,P.offset,P.startLoc);return t&&y.loc&&(y.loc.source=w),y.body=b(C),e.onCacheKey&&(y.cacheKey=e.onCacheKey(w)),P.currentType!==13&&n(C,CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS,P.lastStartLoc,0,w[P.offset]||""),r(y,C.currentOffset(),C.currentPosition()),y}return{parse:$}}function getTokenCaption(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function createTransformer(e,t={}){const a={ast:e,helpers:new Set};return{context:()=>a,helper:r=>(a.helpers.add(r),r)}}function traverseNodes(e,t){for(let a=0;aoptimizeMessageNode(a)),e}function optimizeMessageNode(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let a=0;as;function c(b,$){s.code+=b}function f(b,$=!0){const w=$?n:"";c(o?w+" ".repeat(b):w)}function u(b=!0){const $=++s.indentLevel;b&&f($)}function d(b=!0){const $=--s.indentLevel;b&&f($)}function m(){f(s.indentLevel)}return{context:l,push:c,indent:u,deindent:d,newline:m,helper:b=>`_${b}`,needIndent:()=>s.needIndent}}function generateLinkedNode(e,t){const{helper:a}=e;e.push(`${a("linked")}(`),generateNode(e,t.key),t.modifier?(e.push(", "),generateNode(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function generateMessageNode(e,t){const{helper:a,needIndent:n}=e;e.push(`${a("normalize")}([`),e.indent(n());const o=t.items.length;for(let r=0;r1){e.push(`${a("plural")}([`),e.indent(n());const o=t.cases.length;for(let r=0;r{const a=isString$1(t.mode)?t.mode:"normal",n=isString$1(t.filename)?t.filename:"message.intl";t.sourceMap;const o=t.breakLineCode!=null?t.breakLineCode:a==="arrow"?";":` `,r=t.needIndent?t.needIndent:a!=="arrow",s=e.helpers||[],l=createCodeGenerator(e,{filename:n,breakLineCode:o,needIndent:r});l.push(a==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(r),s.length>0&&(l.push(`const { ${join(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),l.newline()),l.push("return "),generateNode(l,e),l.deindent(r),l.push("}"),delete e.helpers;const{code:c,map:f}=l.context();return{ast:e,code:c,map:f?f.toJSON():void 0}};function baseCompile$1(e,t={}){const a=assign$1({},t),n=!!a.jit,o=!!a.minify,r=a.optimize==null?!0:a.optimize,l=createParser(a).parse(e);return n?(r&&optimize(l),o&&minify(l),{ast:l,code:""}):(transform(l,a),generate(l,a))}/*! * core-base v11.1.2 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function initFeatureFlags$1(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(getGlobalThis().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function format(e){return a=>formatParts(a,e)}function formatParts(e,t){const a=resolveBody(t);if(a==null)throw createUnhandleNodeError(0);if(resolveType(a)===1){const r=resolveCases(a);return e.plural(r.reduce((s,l)=>[...s,formatMessageParts(e,l)],[]))}else return formatMessageParts(e,a)}const PROPS_BODY=["b","body"];function resolveBody(e){return resolveProps(e,PROPS_BODY)}const PROPS_CASES=["c","cases"];function resolveCases(e){return resolveProps(e,PROPS_CASES,[])}function formatMessageParts(e,t){const a=resolveStatic(t);if(a!=null)return e.type==="text"?a:e.normalize([a]);{const n=resolveItems(t).reduce((o,r)=>[...o,formatMessagePart(e,r)],[]);return e.normalize(n)}}const PROPS_STATIC=["s","static"];function resolveStatic(e){return resolveProps(e,PROPS_STATIC)}const PROPS_ITEMS=["i","items"];function resolveItems(e){return resolveProps(e,PROPS_ITEMS,[])}function formatMessagePart(e,t){const a=resolveType(t);switch(a){case 3:return resolveValue$1(t,a);case 9:return resolveValue$1(t,a);case 4:{const n=t;if(hasOwn(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(hasOwn(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw createUnhandleNodeError(a)}case 5:{const n=t;if(hasOwn(n,"i")&&isNumber$1(n.i))return e.interpolate(e.list(n.i));if(hasOwn(n,"index")&&isNumber$1(n.index))return e.interpolate(e.list(n.index));throw createUnhandleNodeError(a)}case 6:{const n=t,o=resolveLinkedModifier(n),r=resolveLinkedKey(n);return e.linked(formatMessagePart(e,r),o?formatMessagePart(e,o):void 0,e.type)}case 7:return resolveValue$1(t,a);case 8:return resolveValue$1(t,a);default:throw new Error(`unhandled node on format message part: ${a}`)}}const PROPS_TYPE=["t","type"];function resolveType(e){return resolveProps(e,PROPS_TYPE)}const PROPS_VALUE=["v","value"];function resolveValue$1(e,t){const a=resolveProps(e,PROPS_VALUE);if(a)return a;throw createUnhandleNodeError(t)}const PROPS_MODIFIER=["m","modifier"];function resolveLinkedModifier(e){return resolveProps(e,PROPS_MODIFIER)}const PROPS_KEY=["k","key"];function resolveLinkedKey(e){const t=resolveProps(e,PROPS_KEY);if(t)return t;throw createUnhandleNodeError(6)}function resolveProps(e,t,a){for(let n=0;ne;let compileCache=create();function isMessageAST(e){return isObject$2(e)&&resolveType(e)===0&&(hasOwn(e,"b")||hasOwn(e,"body"))}function baseCompile(e,t={}){let a=!1;const n=t.onError||defaultOnError;return t.onError=o=>{a=!0,n(o)},{...baseCompile$1(e,t),detectError:a}}function compile(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&isString$1(e)){isBoolean$2(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||defaultOnCacheKey)(e),o=compileCache[n];if(o)return o;const{ast:r,detectError:s}=baseCompile(e,{...t,location:!1,jit:!0}),l=format(r);return s?l:compileCache[n]=l}else{const a=e.cacheKey;if(a){const n=compileCache[a];return n||(compileCache[a]=format(e))}else return format(e)}}let devtools=null;function setDevToolsHook(e){devtools=e}function initI18nDevTools(e,t,a){devtools&&devtools.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:a})}const translateDevTools=createDevToolsHook("function:translate");function createDevToolsHook(e){return t=>devtools&&devtools.emit(e,t)}const CoreErrorCodes={INVALID_ARGUMENT:COMPILE_ERROR_CODES_EXTEND_POINT,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},CORE_ERROR_CODES_EXTEND_POINT=24;function createCoreError(e){return createCompileError(e,null,void 0)}function getLocale(e,t){return t.locale!=null?resolveLocale(t.locale):resolveLocale(e.locale)}let _resolveLocale;function resolveLocale(e){if(isString$1(e))return e;if(isFunction$1(e)){if(e.resolvedOnce&&_resolveLocale!=null)return _resolveLocale;if(e.constructor.name==="Function"){const t=e();if(isPromise(t))throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return _resolveLocale=t}else throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE)}function fallbackWithSimple(e,t,a){return[...new Set([a,...isArray$1(t)?t:isObject$2(t)?Object.keys(t):isString$1(t)?[t]:[a]])]}function fallbackWithLocaleChain(e,t,a){const n=isString$1(a)?a:DEFAULT_LOCALE,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let r=o.__localeChainCache.get(n);if(!r){r=[];let s=[a];for(;isArray$1(s);)s=appendBlockToChain(r,s,t);const l=isArray$1(t)||!isPlainObject$2(t)?t:t.default?t.default:null;s=isString$1(l)?[l]:l,isArray$1(s)&&appendBlockToChain(r,s,!1),o.__localeChainCache.set(n,r)}return r}function appendBlockToChain(e,t,a){let n=!0;for(let o=0;o{s===void 0?s=l:s+=l},m[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},m[2]=()=>{m[0](),o++},m[3]=()=>{if(o>0)o--,n=4,m[0]();else{if(o=0,s===void 0||(s=formatSubPath(s),s===!1))return!1;m[1]()}};function g(){const v=e[a+1];if(n===5&&v==="'"||n===6&&v==='"')return a++,l="\\"+v,m[0](),!0}for(;n!==null;)if(a++,r=e[a],!(r==="\\"&&g())){if(c=getPathCharType(r),d=pathStateMachine[n],f=d[c]||d.l||8,f===8||(n=f[0],f[1]!==void 0&&(u=m[f[1]],u&&(l=r,u()===!1))))return;if(n===7)return t}}const cache=new Map;function resolveWithKeyValue(e,t){return isObject$2(e)?e[t]:null}function resolveValue(e,t){if(!isObject$2(e))return null;let a=cache.get(t);if(a||(a=parse(t),a&&cache.set(t,a)),!a)return null;const n=a.length;let o=e,r=0;for(;r`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function getDefaultLinkedModifiers(){return{upper:(e,t)=>t==="text"&&isString$1(e)?e.toUpperCase():t==="vnode"&&isObject$2(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&isString$1(e)?e.toLowerCase():t==="vnode"&&isObject$2(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&isString$1(e)?capitalize(e):t==="vnode"&&isObject$2(e)&&"__v_isVNode"in e?capitalize(e.children):e}}let _compiler;function registerMessageCompiler(e){_compiler=e}let _resolver;function registerMessageResolver(e){_resolver=e}let _fallbacker;function registerLocaleFallbacker(e){_fallbacker=e}let _additionalMeta=null;const setAdditionalMeta=e=>{_additionalMeta=e},getAdditionalMeta=()=>_additionalMeta;let _fallbackContext=null;const setFallbackContext=e=>{_fallbackContext=e},getFallbackContext=()=>_fallbackContext;let _cid=0;function createCoreContext(e={}){const t=isFunction$1(e.onWarn)?e.onWarn:warn,a=isString$1(e.version)?e.version:VERSION$3,n=isString$1(e.locale)||isFunction$1(e.locale)?e.locale:DEFAULT_LOCALE,o=isFunction$1(n)?DEFAULT_LOCALE:n,r=isArray$1(e.fallbackLocale)||isPlainObject$2(e.fallbackLocale)||isString$1(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:o,s=isPlainObject$2(e.messages)?e.messages:createResources(o),l=isPlainObject$2(e.datetimeFormats)?e.datetimeFormats:createResources(o),c=isPlainObject$2(e.numberFormats)?e.numberFormats:createResources(o),f=assign$1(create(),e.modifiers,getDefaultLinkedModifiers()),u=e.pluralRules||create(),d=isFunction$1(e.missing)?e.missing:null,m=isBoolean$2(e.missingWarn)||isRegExp$1(e.missingWarn)?e.missingWarn:!0,g=isBoolean$2(e.fallbackWarn)||isRegExp$1(e.fallbackWarn)?e.fallbackWarn:!0,v=!!e.fallbackFormat,b=!!e.unresolving,$=isFunction$1(e.postTranslation)?e.postTranslation:null,w=isPlainObject$2(e.processor)?e.processor:null,N=isBoolean$2(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter,y=isFunction$1(e.messageCompiler)?e.messageCompiler:_compiler,E=isFunction$1(e.messageResolver)?e.messageResolver:_resolver||resolveWithKeyValue,R=isFunction$1(e.localeFallbacker)?e.localeFallbacker:_fallbacker||fallbackWithSimple,F=isObject$2(e.fallbackContext)?e.fallbackContext:void 0,H=e,j=isObject$2(H.__datetimeFormatters)?H.__datetimeFormatters:new Map,fe=isObject$2(H.__numberFormatters)?H.__numberFormatters:new Map,oe=isObject$2(H.__meta)?H.__meta:{};_cid++;const V={version:a,cid:_cid,locale:n,fallbackLocale:r,messages:s,modifiers:f,pluralRules:u,missing:d,missingWarn:m,fallbackWarn:g,fallbackFormat:v,unresolving:b,postTranslation:$,processor:w,warnHtmlMessage:N,escapeParameter:P,messageCompiler:y,messageResolver:E,localeFallbacker:R,fallbackContext:F,onWarn:t,__meta:oe};return V.datetimeFormats=l,V.numberFormats=c,V.__datetimeFormatters=j,V.__numberFormatters=fe,__INTLIFY_PROD_DEVTOOLS__&&initI18nDevTools(V,a,oe),V}const createResources=e=>({[e]:create()});function handleMissing(e,t,a,n,o){const{missing:r,onWarn:s}=e;if(r!==null){const l=r(e,a,t,o);return isString$1(l)?l:t}else return t}function updateFallbackLocale(e,t,a){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,a,t)}function isAlmostSameLocale(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function isImplicitFallback(e,t){const a=t.indexOf(e);if(a===-1)return!1;for(let n=a+1;n{DATETIME_FORMAT_OPTIONS_KEYS.includes(c)?s[c]=a[c]:r[c]=a[c]}),isString$1(n)?r.locale=n:isPlainObject$2(n)&&(s=n),isPlainObject$2(o)&&(s=o),[r.key||"",l,r,s]}function clearDateTimeFormat(e,t,a){const n=e;for(const o in a){const r=`${t}__${o}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function number(e,...t){const{numberFormats:a,unresolving:n,fallbackLocale:o,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:l}=e,[c,f,u,d]=parseNumberArgs(...t),m=isBoolean$2(u.missingWarn)?u.missingWarn:e.missingWarn;isBoolean$2(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const g=!!u.part,v=getLocale(e,u),b=s(e,o,v);if(!isString$1(c)||c==="")return new Intl.NumberFormat(v,d).format(f);let $={},w,N=null;const P="number format";for(let R=0;R{NUMBER_FORMAT_OPTIONS_KEYS.includes(c)?s[c]=a[c]:r[c]=a[c]}),isString$1(n)?r.locale=n:isPlainObject$2(n)&&(s=n),isPlainObject$2(o)&&(s=o),[r.key||"",l,r,s]}function clearNumberFormat(e,t,a){const n=e;for(const o in a){const r=`${t}__${o}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}const DEFAULT_MODIFIER=e=>e,DEFAULT_MESSAGE=e=>"",DEFAULT_MESSAGE_DATA_TYPE="text",DEFAULT_NORMALIZE=e=>e.length===0?"":join(e),DEFAULT_INTERPOLATE=toDisplayString;function pluralDefault(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function getPluralIndex(e){const t=isNumber$1(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(isNumber$1(e.named.count)||isNumber$1(e.named.n))?isNumber$1(e.named.count)?e.named.count:isNumber$1(e.named.n)?e.named.n:t:t}function normalizeNamed(e,t){t.count||(t.count=e),t.n||(t.n=e)}function createMessageContext(e={}){const t=e.locale,a=getPluralIndex(e),n=isObject$2(e.pluralRules)&&isString$1(t)&&isFunction$1(e.pluralRules[t])?e.pluralRules[t]:pluralDefault,o=isObject$2(e.pluralRules)&&isString$1(t)&&isFunction$1(e.pluralRules[t])?pluralDefault:void 0,r=w=>w[n(a,w.length,o)],s=e.list||[],l=w=>s[w],c=e.named||create();isNumber$1(e.pluralIndex)&&normalizeNamed(a,c);const f=w=>c[w];function u(w,N){const P=isFunction$1(e.messages)?e.messages(w,!!N):isObject$2(e.messages)?e.messages[w]:!1;return P||(e.parent?e.parent.message(w):DEFAULT_MESSAGE)}const d=w=>e.modifiers?e.modifiers[w]:DEFAULT_MODIFIER,m=isPlainObject$2(e.processor)&&isFunction$1(e.processor.normalize)?e.processor.normalize:DEFAULT_NORMALIZE,g=isPlainObject$2(e.processor)&&isFunction$1(e.processor.interpolate)?e.processor.interpolate:DEFAULT_INTERPOLATE,v=isPlainObject$2(e.processor)&&isString$1(e.processor.type)?e.processor.type:DEFAULT_MESSAGE_DATA_TYPE,$={list:l,named:f,plural:r,linked:(w,...N)=>{const[P,y]=N;let E="text",R="";N.length===1?isObject$2(P)?(R=P.modifier||R,E=P.type||E):isString$1(P)&&(R=P||R):N.length===2&&(isString$1(P)&&(R=P||R),isString$1(y)&&(E=y||E));const F=u(w,!0)($),H=E==="vnode"&&isArray$1(F)&&R?F[0]:F;return R?d(R)(H,E):H},message:u,type:v,interpolate:g,normalize:m,values:assign$1(create(),s,c)};return $}const NOOP_MESSAGE_FUNCTION=()=>"",isMessageFunction=e=>isFunction$1(e);function translate$1(e,...t){const{fallbackFormat:a,postTranslation:n,unresolving:o,messageCompiler:r,fallbackLocale:s,messages:l}=e,[c,f]=parseTranslateArgs(...t),u=isBoolean$2(f.missingWarn)?f.missingWarn:e.missingWarn,d=isBoolean$2(f.fallbackWarn)?f.fallbackWarn:e.fallbackWarn,m=isBoolean$2(f.escapeParameter)?f.escapeParameter:e.escapeParameter,g=!!f.resolvedMessage,v=isString$1(f.default)||isBoolean$2(f.default)?isBoolean$2(f.default)?r?c:()=>c:f.default:a?r?c:()=>c:null,b=a||v!=null&&(isString$1(v)||isFunction$1(v)),$=getLocale(e,f);m&&escapeParams(f);let[w,N,P]=g?[c,$,l[$]||create()]:resolveMessageFormat(e,c,$,s,d,u),y=w,E=c;if(!g&&!(isString$1(y)||isMessageAST(y)||isMessageFunction(y))&&b&&(y=v,E=y),!g&&(!(isString$1(y)||isMessageAST(y)||isMessageFunction(y))||!isString$1(N)))return o?NOT_REOSLVED:c;let R=!1;const F=()=>{R=!0},H=isMessageFunction(y)?y:compileMessageFormat(e,c,N,y,E,F);if(R)return y;const j=getMessageContextOptions(e,N,P,f),fe=createMessageContext(j),oe=evaluateMessage(e,H,fe),V=n?n(oe,c):oe;if(__INTLIFY_PROD_DEVTOOLS__){const q={timestamp:Date.now(),key:isString$1(c)?c:isMessageFunction(y)?y.key:"",locale:N||(isMessageFunction(y)?y.locale:""),format:isString$1(y)?y:isMessageFunction(y)?y.source:"",message:V};q.meta=assign$1({},e.__meta,getAdditionalMeta()||{}),translateDevTools(q)}return V}function escapeParams(e){isArray$1(e.list)?e.list=e.list.map(t=>isString$1(t)?escapeHtml(t):t):isObject$2(e.named)&&Object.keys(e.named).forEach(t=>{isString$1(e.named[t])&&(e.named[t]=escapeHtml(e.named[t]))})}function resolveMessageFormat(e,t,a,n,o,r){const{messages:s,onWarn:l,messageResolver:c,localeFallbacker:f}=e,u=f(e,n,a);let d=create(),m,g=null;const v="translate";for(let b=0;bn;return f.locale=a,f.key=t,f}const c=s(n,getCompileContext(e,a,o,n,l,r));return c.locale=a,c.key=t,c.source=n,c}function evaluateMessage(e,t,a){return t(a)}function parseTranslateArgs(...e){const[t,a,n]=e,o=create();if(!isString$1(t)&&!isNumber$1(t)&&!isMessageFunction(t)&&!isMessageAST(t))throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);const r=isNumber$1(t)?String(t):(isMessageFunction(t),t);return isNumber$1(a)?o.plural=a:isString$1(a)?o.default=a:isPlainObject$2(a)&&!isEmptyObject(a)?o.named=a:isArray$1(a)&&(o.list=a),isNumber$1(n)?o.plural=n:isString$1(n)?o.default=n:isPlainObject$2(n)&&assign$1(o,n),[r,o]}function getCompileContext(e,t,a,n,o,r){return{locale:t,key:a,warnHtmlMessage:o,onError:s=>{throw r&&r(s),s},onCacheKey:s=>generateFormatCacheKey(t,a,s)}}function getMessageContextOptions(e,t,a,n){const{modifiers:o,pluralRules:r,messageResolver:s,fallbackLocale:l,fallbackWarn:c,missingWarn:f,fallbackContext:u}=e,m={locale:t,modifiers:o,pluralRules:r,messages:(g,v)=>{let b=s(a,g);if(b==null&&(u||v)){const[,,$]=resolveMessageFormat(u||e,g,t,l,c,f);b=s($,g)}if(isString$1(b)||isMessageAST(b)){let $=!1;const N=compileMessageFormat(e,g,t,b,g,()=>{$=!0});return $?NOOP_MESSAGE_FUNCTION:N}else return isMessageFunction(b)?b:NOOP_MESSAGE_FUNCTION}};return e.processor&&(m.processor=e.processor),n.list&&(m.list=n.list),n.named&&(m.named=n.named),isNumber$1(n.plural)&&(m.pluralIndex=n.plural),m}initFeatureFlags$1();/*! + */function initFeatureFlags$1(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(getGlobalThis().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function format(e){return a=>formatParts(a,e)}function formatParts(e,t){const a=resolveBody(t);if(a==null)throw createUnhandleNodeError(0);if(resolveType(a)===1){const r=resolveCases(a);return e.plural(r.reduce((s,l)=>[...s,formatMessageParts(e,l)],[]))}else return formatMessageParts(e,a)}const PROPS_BODY=["b","body"];function resolveBody(e){return resolveProps(e,PROPS_BODY)}const PROPS_CASES=["c","cases"];function resolveCases(e){return resolveProps(e,PROPS_CASES,[])}function formatMessageParts(e,t){const a=resolveStatic(t);if(a!=null)return e.type==="text"?a:e.normalize([a]);{const n=resolveItems(t).reduce((o,r)=>[...o,formatMessagePart(e,r)],[]);return e.normalize(n)}}const PROPS_STATIC=["s","static"];function resolveStatic(e){return resolveProps(e,PROPS_STATIC)}const PROPS_ITEMS=["i","items"];function resolveItems(e){return resolveProps(e,PROPS_ITEMS,[])}function formatMessagePart(e,t){const a=resolveType(t);switch(a){case 3:return resolveValue$1(t,a);case 9:return resolveValue$1(t,a);case 4:{const n=t;if(hasOwn(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(hasOwn(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw createUnhandleNodeError(a)}case 5:{const n=t;if(hasOwn(n,"i")&&isNumber$1(n.i))return e.interpolate(e.list(n.i));if(hasOwn(n,"index")&&isNumber$1(n.index))return e.interpolate(e.list(n.index));throw createUnhandleNodeError(a)}case 6:{const n=t,o=resolveLinkedModifier(n),r=resolveLinkedKey(n);return e.linked(formatMessagePart(e,r),o?formatMessagePart(e,o):void 0,e.type)}case 7:return resolveValue$1(t,a);case 8:return resolveValue$1(t,a);default:throw new Error(`unhandled node on format message part: ${a}`)}}const PROPS_TYPE=["t","type"];function resolveType(e){return resolveProps(e,PROPS_TYPE)}const PROPS_VALUE=["v","value"];function resolveValue$1(e,t){const a=resolveProps(e,PROPS_VALUE);if(a)return a;throw createUnhandleNodeError(t)}const PROPS_MODIFIER=["m","modifier"];function resolveLinkedModifier(e){return resolveProps(e,PROPS_MODIFIER)}const PROPS_KEY=["k","key"];function resolveLinkedKey(e){const t=resolveProps(e,PROPS_KEY);if(t)return t;throw createUnhandleNodeError(6)}function resolveProps(e,t,a){for(let n=0;ne;let compileCache=create();function isMessageAST(e){return isObject$2(e)&&resolveType(e)===0&&(hasOwn(e,"b")||hasOwn(e,"body"))}function baseCompile(e,t={}){let a=!1;const n=t.onError||defaultOnError;return t.onError=o=>{a=!0,n(o)},{...baseCompile$1(e,t),detectError:a}}function compile(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&isString$1(e)){isBoolean$2(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||defaultOnCacheKey)(e),o=compileCache[n];if(o)return o;const{ast:r,detectError:s}=baseCompile(e,{...t,location:!1,jit:!0}),l=format(r);return s?l:compileCache[n]=l}else{const a=e.cacheKey;if(a){const n=compileCache[a];return n||(compileCache[a]=format(e))}else return format(e)}}let devtools=null;function setDevToolsHook(e){devtools=e}function initI18nDevTools(e,t,a){devtools&&devtools.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:a})}const translateDevTools=createDevToolsHook("function:translate");function createDevToolsHook(e){return t=>devtools&&devtools.emit(e,t)}const CoreErrorCodes={INVALID_ARGUMENT:COMPILE_ERROR_CODES_EXTEND_POINT,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},CORE_ERROR_CODES_EXTEND_POINT=24;function createCoreError(e){return createCompileError(e,null,void 0)}function getLocale(e,t){return t.locale!=null?resolveLocale(t.locale):resolveLocale(e.locale)}let _resolveLocale;function resolveLocale(e){if(isString$1(e))return e;if(isFunction$1(e)){if(e.resolvedOnce&&_resolveLocale!=null)return _resolveLocale;if(e.constructor.name==="Function"){const t=e();if(isPromise(t))throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return _resolveLocale=t}else throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE)}function fallbackWithSimple(e,t,a){return[...new Set([a,...isArray$1(t)?t:isObject$2(t)?Object.keys(t):isString$1(t)?[t]:[a]])]}function fallbackWithLocaleChain(e,t,a){const n=isString$1(a)?a:DEFAULT_LOCALE,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let r=o.__localeChainCache.get(n);if(!r){r=[];let s=[a];for(;isArray$1(s);)s=appendBlockToChain(r,s,t);const l=isArray$1(t)||!isPlainObject$2(t)?t:t.default?t.default:null;s=isString$1(l)?[l]:l,isArray$1(s)&&appendBlockToChain(r,s,!1),o.__localeChainCache.set(n,r)}return r}function appendBlockToChain(e,t,a){let n=!0;for(let o=0;o{s===void 0?s=l:s+=l},m[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},m[2]=()=>{m[0](),o++},m[3]=()=>{if(o>0)o--,n=4,m[0]();else{if(o=0,s===void 0||(s=formatSubPath(s),s===!1))return!1;m[1]()}};function g(){const v=e[a+1];if(n===5&&v==="'"||n===6&&v==='"')return a++,l="\\"+v,m[0](),!0}for(;n!==null;)if(a++,r=e[a],!(r==="\\"&&g())){if(c=getPathCharType(r),d=pathStateMachine[n],f=d[c]||d.l||8,f===8||(n=f[0],f[1]!==void 0&&(u=m[f[1]],u&&(l=r,u()===!1))))return;if(n===7)return t}}const cache=new Map;function resolveWithKeyValue(e,t){return isObject$2(e)?e[t]:null}function resolveValue(e,t){if(!isObject$2(e))return null;let a=cache.get(t);if(a||(a=parse(t),a&&cache.set(t,a)),!a)return null;const n=a.length;let o=e,r=0;for(;r`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function getDefaultLinkedModifiers(){return{upper:(e,t)=>t==="text"&&isString$1(e)?e.toUpperCase():t==="vnode"&&isObject$2(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&isString$1(e)?e.toLowerCase():t==="vnode"&&isObject$2(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&isString$1(e)?capitalize(e):t==="vnode"&&isObject$2(e)&&"__v_isVNode"in e?capitalize(e.children):e}}let _compiler;function registerMessageCompiler(e){_compiler=e}let _resolver;function registerMessageResolver(e){_resolver=e}let _fallbacker;function registerLocaleFallbacker(e){_fallbacker=e}let _additionalMeta=null;const setAdditionalMeta=e=>{_additionalMeta=e},getAdditionalMeta=()=>_additionalMeta;let _fallbackContext=null;const setFallbackContext=e=>{_fallbackContext=e},getFallbackContext=()=>_fallbackContext;let _cid=0;function createCoreContext(e={}){const t=isFunction$1(e.onWarn)?e.onWarn:warn,a=isString$1(e.version)?e.version:VERSION$3,n=isString$1(e.locale)||isFunction$1(e.locale)?e.locale:DEFAULT_LOCALE,o=isFunction$1(n)?DEFAULT_LOCALE:n,r=isArray$1(e.fallbackLocale)||isPlainObject$2(e.fallbackLocale)||isString$1(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:o,s=isPlainObject$2(e.messages)?e.messages:createResources(o),l=isPlainObject$2(e.datetimeFormats)?e.datetimeFormats:createResources(o),c=isPlainObject$2(e.numberFormats)?e.numberFormats:createResources(o),f=assign$1(create(),e.modifiers,getDefaultLinkedModifiers()),u=e.pluralRules||create(),d=isFunction$1(e.missing)?e.missing:null,m=isBoolean$2(e.missingWarn)||isRegExp$1(e.missingWarn)?e.missingWarn:!0,g=isBoolean$2(e.fallbackWarn)||isRegExp$1(e.fallbackWarn)?e.fallbackWarn:!0,v=!!e.fallbackFormat,b=!!e.unresolving,$=isFunction$1(e.postTranslation)?e.postTranslation:null,w=isPlainObject$2(e.processor)?e.processor:null,C=isBoolean$2(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter,y=isFunction$1(e.messageCompiler)?e.messageCompiler:_compiler,E=isFunction$1(e.messageResolver)?e.messageResolver:_resolver||resolveWithKeyValue,R=isFunction$1(e.localeFallbacker)?e.localeFallbacker:_fallbacker||fallbackWithSimple,F=isObject$2(e.fallbackContext)?e.fallbackContext:void 0,H=e,j=isObject$2(H.__datetimeFormatters)?H.__datetimeFormatters:new Map,fe=isObject$2(H.__numberFormatters)?H.__numberFormatters:new Map,oe=isObject$2(H.__meta)?H.__meta:{};_cid++;const V={version:a,cid:_cid,locale:n,fallbackLocale:r,messages:s,modifiers:f,pluralRules:u,missing:d,missingWarn:m,fallbackWarn:g,fallbackFormat:v,unresolving:b,postTranslation:$,processor:w,warnHtmlMessage:C,escapeParameter:P,messageCompiler:y,messageResolver:E,localeFallbacker:R,fallbackContext:F,onWarn:t,__meta:oe};return V.datetimeFormats=l,V.numberFormats=c,V.__datetimeFormatters=j,V.__numberFormatters=fe,__INTLIFY_PROD_DEVTOOLS__&&initI18nDevTools(V,a,oe),V}const createResources=e=>({[e]:create()});function handleMissing(e,t,a,n,o){const{missing:r,onWarn:s}=e;if(r!==null){const l=r(e,a,t,o);return isString$1(l)?l:t}else return t}function updateFallbackLocale(e,t,a){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,a,t)}function isAlmostSameLocale(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function isImplicitFallback(e,t){const a=t.indexOf(e);if(a===-1)return!1;for(let n=a+1;n{DATETIME_FORMAT_OPTIONS_KEYS.includes(c)?s[c]=a[c]:r[c]=a[c]}),isString$1(n)?r.locale=n:isPlainObject$2(n)&&(s=n),isPlainObject$2(o)&&(s=o),[r.key||"",l,r,s]}function clearDateTimeFormat(e,t,a){const n=e;for(const o in a){const r=`${t}__${o}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function number(e,...t){const{numberFormats:a,unresolving:n,fallbackLocale:o,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:l}=e,[c,f,u,d]=parseNumberArgs(...t),m=isBoolean$2(u.missingWarn)?u.missingWarn:e.missingWarn;isBoolean$2(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const g=!!u.part,v=getLocale(e,u),b=s(e,o,v);if(!isString$1(c)||c==="")return new Intl.NumberFormat(v,d).format(f);let $={},w,C=null;const P="number format";for(let R=0;R{NUMBER_FORMAT_OPTIONS_KEYS.includes(c)?s[c]=a[c]:r[c]=a[c]}),isString$1(n)?r.locale=n:isPlainObject$2(n)&&(s=n),isPlainObject$2(o)&&(s=o),[r.key||"",l,r,s]}function clearNumberFormat(e,t,a){const n=e;for(const o in a){const r=`${t}__${o}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}const DEFAULT_MODIFIER=e=>e,DEFAULT_MESSAGE=e=>"",DEFAULT_MESSAGE_DATA_TYPE="text",DEFAULT_NORMALIZE=e=>e.length===0?"":join(e),DEFAULT_INTERPOLATE=toDisplayString;function pluralDefault(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function getPluralIndex(e){const t=isNumber$1(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(isNumber$1(e.named.count)||isNumber$1(e.named.n))?isNumber$1(e.named.count)?e.named.count:isNumber$1(e.named.n)?e.named.n:t:t}function normalizeNamed(e,t){t.count||(t.count=e),t.n||(t.n=e)}function createMessageContext(e={}){const t=e.locale,a=getPluralIndex(e),n=isObject$2(e.pluralRules)&&isString$1(t)&&isFunction$1(e.pluralRules[t])?e.pluralRules[t]:pluralDefault,o=isObject$2(e.pluralRules)&&isString$1(t)&&isFunction$1(e.pluralRules[t])?pluralDefault:void 0,r=w=>w[n(a,w.length,o)],s=e.list||[],l=w=>s[w],c=e.named||create();isNumber$1(e.pluralIndex)&&normalizeNamed(a,c);const f=w=>c[w];function u(w,C){const P=isFunction$1(e.messages)?e.messages(w,!!C):isObject$2(e.messages)?e.messages[w]:!1;return P||(e.parent?e.parent.message(w):DEFAULT_MESSAGE)}const d=w=>e.modifiers?e.modifiers[w]:DEFAULT_MODIFIER,m=isPlainObject$2(e.processor)&&isFunction$1(e.processor.normalize)?e.processor.normalize:DEFAULT_NORMALIZE,g=isPlainObject$2(e.processor)&&isFunction$1(e.processor.interpolate)?e.processor.interpolate:DEFAULT_INTERPOLATE,v=isPlainObject$2(e.processor)&&isString$1(e.processor.type)?e.processor.type:DEFAULT_MESSAGE_DATA_TYPE,$={list:l,named:f,plural:r,linked:(w,...C)=>{const[P,y]=C;let E="text",R="";C.length===1?isObject$2(P)?(R=P.modifier||R,E=P.type||E):isString$1(P)&&(R=P||R):C.length===2&&(isString$1(P)&&(R=P||R),isString$1(y)&&(E=y||E));const F=u(w,!0)($),H=E==="vnode"&&isArray$1(F)&&R?F[0]:F;return R?d(R)(H,E):H},message:u,type:v,interpolate:g,normalize:m,values:assign$1(create(),s,c)};return $}const NOOP_MESSAGE_FUNCTION=()=>"",isMessageFunction=e=>isFunction$1(e);function translate$1(e,...t){const{fallbackFormat:a,postTranslation:n,unresolving:o,messageCompiler:r,fallbackLocale:s,messages:l}=e,[c,f]=parseTranslateArgs(...t),u=isBoolean$2(f.missingWarn)?f.missingWarn:e.missingWarn,d=isBoolean$2(f.fallbackWarn)?f.fallbackWarn:e.fallbackWarn,m=isBoolean$2(f.escapeParameter)?f.escapeParameter:e.escapeParameter,g=!!f.resolvedMessage,v=isString$1(f.default)||isBoolean$2(f.default)?isBoolean$2(f.default)?r?c:()=>c:f.default:a?r?c:()=>c:null,b=a||v!=null&&(isString$1(v)||isFunction$1(v)),$=getLocale(e,f);m&&escapeParams(f);let[w,C,P]=g?[c,$,l[$]||create()]:resolveMessageFormat(e,c,$,s,d,u),y=w,E=c;if(!g&&!(isString$1(y)||isMessageAST(y)||isMessageFunction(y))&&b&&(y=v,E=y),!g&&(!(isString$1(y)||isMessageAST(y)||isMessageFunction(y))||!isString$1(C)))return o?NOT_REOSLVED:c;let R=!1;const F=()=>{R=!0},H=isMessageFunction(y)?y:compileMessageFormat(e,c,C,y,E,F);if(R)return y;const j=getMessageContextOptions(e,C,P,f),fe=createMessageContext(j),oe=evaluateMessage(e,H,fe),V=n?n(oe,c):oe;if(__INTLIFY_PROD_DEVTOOLS__){const q={timestamp:Date.now(),key:isString$1(c)?c:isMessageFunction(y)?y.key:"",locale:C||(isMessageFunction(y)?y.locale:""),format:isString$1(y)?y:isMessageFunction(y)?y.source:"",message:V};q.meta=assign$1({},e.__meta,getAdditionalMeta()||{}),translateDevTools(q)}return V}function escapeParams(e){isArray$1(e.list)?e.list=e.list.map(t=>isString$1(t)?escapeHtml(t):t):isObject$2(e.named)&&Object.keys(e.named).forEach(t=>{isString$1(e.named[t])&&(e.named[t]=escapeHtml(e.named[t]))})}function resolveMessageFormat(e,t,a,n,o,r){const{messages:s,onWarn:l,messageResolver:c,localeFallbacker:f}=e,u=f(e,n,a);let d=create(),m,g=null;const v="translate";for(let b=0;bn;return f.locale=a,f.key=t,f}const c=s(n,getCompileContext(e,a,o,n,l,r));return c.locale=a,c.key=t,c.source=n,c}function evaluateMessage(e,t,a){return t(a)}function parseTranslateArgs(...e){const[t,a,n]=e,o=create();if(!isString$1(t)&&!isNumber$1(t)&&!isMessageFunction(t)&&!isMessageAST(t))throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);const r=isNumber$1(t)?String(t):(isMessageFunction(t),t);return isNumber$1(a)?o.plural=a:isString$1(a)?o.default=a:isPlainObject$2(a)&&!isEmptyObject(a)?o.named=a:isArray$1(a)&&(o.list=a),isNumber$1(n)?o.plural=n:isString$1(n)?o.default=n:isPlainObject$2(n)&&assign$1(o,n),[r,o]}function getCompileContext(e,t,a,n,o,r){return{locale:t,key:a,warnHtmlMessage:o,onError:s=>{throw r&&r(s),s},onCacheKey:s=>generateFormatCacheKey(t,a,s)}}function getMessageContextOptions(e,t,a,n){const{modifiers:o,pluralRules:r,messageResolver:s,fallbackLocale:l,fallbackWarn:c,missingWarn:f,fallbackContext:u}=e,m={locale:t,modifiers:o,pluralRules:r,messages:(g,v)=>{let b=s(a,g);if(b==null&&(u||v)){const[,,$]=resolveMessageFormat(u||e,g,t,l,c,f);b=s($,g)}if(isString$1(b)||isMessageAST(b)){let $=!1;const C=compileMessageFormat(e,g,t,b,g,()=>{$=!0});return $?NOOP_MESSAGE_FUNCTION:C}else return isMessageFunction(b)?b:NOOP_MESSAGE_FUNCTION}};return e.processor&&(m.processor=e.processor),n.list&&(m.list=n.list),n.named&&(m.named=n.named),isNumber$1(n.plural)&&(m.pluralIndex=n.plural),m}initFeatureFlags$1();/*! * vue-i18n v11.1.2 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const VERSION$2="11.1.2";function initFeatureFlags(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(getGlobalThis().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(getGlobalThis().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(getGlobalThis().__INTLIFY_PROD_DEVTOOLS__=!1)}const I18nErrorCodes={UNEXPECTED_RETURN_TYPE:CORE_ERROR_CODES_EXTEND_POINT,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function createI18nError(e,...t){return createCompileError(e,null,void 0)}const TranslateVNodeSymbol=makeSymbol("__translateVNode"),DatetimePartsSymbol=makeSymbol("__datetimeParts"),NumberPartsSymbol=makeSymbol("__numberParts"),SetPluralRulesSymbol=makeSymbol("__setPluralRules"),InejctWithOptionSymbol=makeSymbol("__injectWithOption"),DisposeSymbol=makeSymbol("__dispose");function handleFlatJson(e){if(!isObject$2(e))return e;for(const t in e)if(hasOwn(e,t))if(!t.includes("."))isObject$2(e[t])&&handleFlatJson(e[t]);else{const a=t.split("."),n=a.length-1;let o=e,r=!1;for(let s=0;s{if("locale"in l&&"resource"in l){const{locale:c,resource:f}=l;c?(s[c]=s[c]||create(),deepCopy(f,s[c])):deepCopy(f,s)}else isString$1(l)&&deepCopy(JSON.parse(l),s)}),o==null&&r)for(const l in s)hasOwn(s,l)&&handleFlatJson(s[l]);return s}function getComponentOptions(e){return e.type}function adjustI18nResources(e,t,a){let n=isObject$2(t.messages)?t.messages:create();"__i18nGlobal"in a&&(n=getLocaleMessages(e.locale.value,{messages:n,__i18n:a.__i18nGlobal}));const o=Object.keys(n);o.length&&o.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(isObject$2(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(isObject$2(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function createTextNode(e){return createVNode(Text,null,e,0)}const DEVTOOLS_META="__INTLIFY_META__",NOOP_RETURN_ARRAY=()=>[],NOOP_RETURN_FALSE=()=>!1;let composerID=0;function defineCoreMissingHandler(e){return(t,a,n,o)=>e(a,n,getCurrentInstance()||void 0,o)}const getMetaInfo=()=>{const e=getCurrentInstance();let t=null;return e&&(t=getComponentOptions(e)[DEVTOOLS_META])?{[DEVTOOLS_META]:t}:null};function createComposer(e={}){const{__root:t,__injectWithOption:a}=e,n=t===void 0,o=e.flatJson,r=inBrowser?ref:shallowRef;let s=isBoolean$2(e.inheritLocale)?e.inheritLocale:!0;const l=r(t&&s?t.locale.value:isString$1(e.locale)?e.locale:DEFAULT_LOCALE),c=r(t&&s?t.fallbackLocale.value:isString$1(e.fallbackLocale)||isArray$1(e.fallbackLocale)||isPlainObject$2(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l.value),f=r(getLocaleMessages(l.value,e)),u=r(isPlainObject$2(e.datetimeFormats)?e.datetimeFormats:{[l.value]:{}}),d=r(isPlainObject$2(e.numberFormats)?e.numberFormats:{[l.value]:{}});let m=t?t.missingWarn:isBoolean$2(e.missingWarn)||isRegExp$1(e.missingWarn)?e.missingWarn:!0,g=t?t.fallbackWarn:isBoolean$2(e.fallbackWarn)||isRegExp$1(e.fallbackWarn)?e.fallbackWarn:!0,v=t?t.fallbackRoot:isBoolean$2(e.fallbackRoot)?e.fallbackRoot:!0,b=!!e.fallbackFormat,$=isFunction$1(e.missing)?e.missing:null,w=isFunction$1(e.missing)?defineCoreMissingHandler(e.missing):null,N=isFunction$1(e.postTranslation)?e.postTranslation:null,P=t?t.warnHtmlMessage:isBoolean$2(e.warnHtmlMessage)?e.warnHtmlMessage:!0,y=!!e.escapeParameter;const E=t?t.modifiers:isPlainObject$2(e.modifiers)?e.modifiers:{};let R=e.pluralRules||t&&t.pluralRules,F;F=(()=>{n&&setFallbackContext(null);const J={version:VERSION$2,locale:l.value,fallbackLocale:c.value,messages:f.value,modifiers:E,pluralRules:R,missing:w===null?void 0:w,missingWarn:m,fallbackWarn:g,fallbackFormat:b,unresolving:!0,postTranslation:N===null?void 0:N,warnHtmlMessage:P,escapeParameter:y,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};J.datetimeFormats=u.value,J.numberFormats=d.value,J.__datetimeFormatters=isPlainObject$2(F)?F.__datetimeFormatters:void 0,J.__numberFormatters=isPlainObject$2(F)?F.__numberFormatters:void 0;const ue=createCoreContext(J);return n&&setFallbackContext(ue),ue})(),updateFallbackLocale(F,l.value,c.value);function j(){return[l.value,c.value,f.value,u.value,d.value]}const fe=computed({get:()=>l.value,set:J=>{F.locale=J,l.value=J}}),oe=computed({get:()=>c.value,set:J=>{F.fallbackLocale=J,c.value=J,updateFallbackLocale(F,l.value,J)}}),V=computed(()=>f.value),q=computed(()=>u.value),Q=computed(()=>d.value);function O(){return isFunction$1(N)?N:null}function G(J){N=J,F.postTranslation=J}function ee(){return $}function A(J){J!==null&&(w=defineCoreMissingHandler(J)),$=J,F.missing=w}const D=(J,ue,$e,xe,Ne,Be)=>{j();let Me;try{__INTLIFY_PROD_DEVTOOLS__,n||(F.fallbackContext=t?getFallbackContext():void 0),Me=J(F)}finally{__INTLIFY_PROD_DEVTOOLS__,n||(F.fallbackContext=void 0)}if($e!=="translate exists"&&isNumber$1(Me)&&Me===NOT_REOSLVED||$e==="translate exists"&&!Me){const[Ie,We]=ue();return t&&v?xe(t):Ne(Ie)}else{if(Be(Me))return Me;throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE)}};function W(...J){return D(ue=>Reflect.apply(translate$1,null,[ue,...J]),()=>parseTranslateArgs(...J),"translate",ue=>Reflect.apply(ue.t,ue,[...J]),ue=>ue,ue=>isString$1(ue))}function ae(...J){const[ue,$e,xe]=J;if(xe&&!isObject$2(xe))throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);return W(ue,$e,assign$1({resolvedMessage:!0},xe||{}))}function Y(...J){return D(ue=>Reflect.apply(datetime,null,[ue,...J]),()=>parseDateTimeArgs(...J),"datetime format",ue=>Reflect.apply(ue.d,ue,[...J]),()=>MISSING_RESOLVE_VALUE,ue=>isString$1(ue))}function ne(...J){return D(ue=>Reflect.apply(number,null,[ue,...J]),()=>parseNumberArgs(...J),"number format",ue=>Reflect.apply(ue.n,ue,[...J]),()=>MISSING_RESOLVE_VALUE,ue=>isString$1(ue))}function te(J){return J.map(ue=>isString$1(ue)||isNumber$1(ue)||isBoolean$2(ue)?createTextNode(String(ue)):ue)}const re={normalize:te,interpolate:J=>J,type:"vnode"};function B(...J){return D(ue=>{let $e;const xe=ue;try{xe.processor=re,$e=Reflect.apply(translate$1,null,[xe,...J])}finally{xe.processor=null}return $e},()=>parseTranslateArgs(...J),"translate",ue=>ue[TranslateVNodeSymbol](...J),ue=>[createTextNode(ue)],ue=>isArray$1(ue))}function z(...J){return D(ue=>Reflect.apply(number,null,[ue,...J]),()=>parseNumberArgs(...J),"number format",ue=>ue[NumberPartsSymbol](...J),NOOP_RETURN_ARRAY,ue=>isString$1(ue)||isArray$1(ue))}function Z(...J){return D(ue=>Reflect.apply(datetime,null,[ue,...J]),()=>parseDateTimeArgs(...J),"datetime format",ue=>ue[DatetimePartsSymbol](...J),NOOP_RETURN_ARRAY,ue=>isString$1(ue)||isArray$1(ue))}function L(J){R=J,F.pluralRules=R}function K(J,ue){return D(()=>{if(!J)return!1;const $e=isString$1(ue)?ue:l.value,xe=I($e),Ne=F.messageResolver(xe,J);return isMessageAST(Ne)||isMessageFunction(Ne)||isString$1(Ne)},()=>[J],"translate exists",$e=>Reflect.apply($e.te,$e,[J,ue]),NOOP_RETURN_FALSE,$e=>isBoolean$2($e))}function x(J){let ue=null;const $e=fallbackWithLocaleChain(F,c.value,l.value);for(let xe=0;xe<$e.length;xe++){const Ne=f.value[$e[xe]]||{},Be=F.messageResolver(Ne,J);if(Be!=null){ue=Be;break}}return ue}function S(J){const ue=x(J);return ue??(t?t.tm(J)||{}:{})}function I(J){return f.value[J]||{}}function X(J,ue){if(o){const $e={[J]:ue};for(const xe in $e)hasOwn($e,xe)&&handleFlatJson($e[xe]);ue=$e[J]}f.value[J]=ue,F.messages=f.value}function ie(J,ue){f.value[J]=f.value[J]||{};const $e={[J]:ue};if(o)for(const xe in $e)hasOwn($e,xe)&&handleFlatJson($e[xe]);ue=$e[J],deepCopy(ue,f.value[J]),F.messages=f.value}function pe(J){return u.value[J]||{}}function k(J,ue){u.value[J]=ue,F.datetimeFormats=u.value,clearDateTimeFormat(F,J,ue)}function _(J,ue){u.value[J]=assign$1(u.value[J]||{},ue),F.datetimeFormats=u.value,clearDateTimeFormat(F,J,ue)}function M(J){return d.value[J]||{}}function U(J,ue){d.value[J]=ue,F.numberFormats=d.value,clearNumberFormat(F,J,ue)}function _e(J,ue){d.value[J]=assign$1(d.value[J]||{},ue),F.numberFormats=d.value,clearNumberFormat(F,J,ue)}composerID++,t&&inBrowser&&(watch(t.locale,J=>{s&&(l.value=J,F.locale=J,updateFallbackLocale(F,l.value,c.value))}),watch(t.fallbackLocale,J=>{s&&(c.value=J,F.fallbackLocale=J,updateFallbackLocale(F,l.value,c.value))}));const me={id:composerID,locale:fe,fallbackLocale:oe,get inheritLocale(){return s},set inheritLocale(J){s=J,J&&t&&(l.value=t.locale.value,c.value=t.fallbackLocale.value,updateFallbackLocale(F,l.value,c.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:V,get modifiers(){return E},get pluralRules(){return R||{}},get isGlobal(){return n},get missingWarn(){return m},set missingWarn(J){m=J,F.missingWarn=m},get fallbackWarn(){return g},set fallbackWarn(J){g=J,F.fallbackWarn=g},get fallbackRoot(){return v},set fallbackRoot(J){v=J},get fallbackFormat(){return b},set fallbackFormat(J){b=J,F.fallbackFormat=b},get warnHtmlMessage(){return P},set warnHtmlMessage(J){P=J,F.warnHtmlMessage=J},get escapeParameter(){return y},set escapeParameter(J){y=J,F.escapeParameter=J},t:W,getLocaleMessage:I,setLocaleMessage:X,mergeLocaleMessage:ie,getPostTranslationHandler:O,setPostTranslationHandler:G,getMissingHandler:ee,setMissingHandler:A,[SetPluralRulesSymbol]:L};return me.datetimeFormats=q,me.numberFormats=Q,me.rt=ae,me.te=K,me.tm=S,me.d=Y,me.n=ne,me.getDateTimeFormat=pe,me.setDateTimeFormat=k,me.mergeDateTimeFormat=_,me.getNumberFormat=M,me.setNumberFormat=U,me.mergeNumberFormat=_e,me[InejctWithOptionSymbol]=a,me[TranslateVNodeSymbol]=B,me[DatetimePartsSymbol]=Z,me[NumberPartsSymbol]=z,me}function convertComposerOptions(e){const t=isString$1(e.locale)?e.locale:DEFAULT_LOCALE,a=isString$1(e.fallbackLocale)||isArray$1(e.fallbackLocale)||isPlainObject$2(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=isFunction$1(e.missing)?e.missing:void 0,o=isBoolean$2(e.silentTranslationWarn)||isRegExp$1(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=isBoolean$2(e.silentFallbackWarn)||isRegExp$1(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=isBoolean$2(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,c=isPlainObject$2(e.modifiers)?e.modifiers:{},f=e.pluralizationRules,u=isFunction$1(e.postTranslation)?e.postTranslation:void 0,d=isString$1(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,m=!!e.escapeParameterHtml,g=isBoolean$2(e.sync)?e.sync:!0;let v=e.messages;if(isPlainObject$2(e.sharedMessages)){const E=e.sharedMessages;v=Object.keys(E).reduce((F,H)=>{const j=F[H]||(F[H]={});return assign$1(j,E[H]),F},v||{})}const{__i18n:b,__root:$,__injectWithOption:w}=e,N=e.datetimeFormats,P=e.numberFormats,y=e.flatJson;return{locale:t,fallbackLocale:a,messages:v,flatJson:y,datetimeFormats:N,numberFormats:P,missing:n,missingWarn:o,fallbackWarn:r,fallbackRoot:s,fallbackFormat:l,modifiers:c,pluralRules:f,postTranslation:u,warnHtmlMessage:d,escapeParameter:m,messageResolver:e.messageResolver,inheritLocale:g,__i18n:b,__root:$,__injectWithOption:w}}function createVueI18n(e={}){const t=createComposer(convertComposerOptions(e)),{__extender:a}=e,n={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return isBoolean$2(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=isBoolean$2(o)?!o:o},get silentFallbackWarn(){return isBoolean$2(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=isBoolean$2(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){return Reflect.apply(t.t,t,[...o])},rt(...o){return Reflect.apply(t.rt,t,[...o])},te(o,r){return t.te(o,r)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,r){t.setLocaleMessage(o,r)},mergeLocaleMessage(o,r){t.mergeLocaleMessage(o,r)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,r){t.setDateTimeFormat(o,r)},mergeDateTimeFormat(o,r){t.mergeDateTimeFormat(o,r)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,r){t.setNumberFormat(o,r)},mergeNumberFormat(o,r){t.mergeNumberFormat(o,r)}};return n.__extender=a,n}function defineMixin(e,t,a){return{beforeCreate(){const n=getCurrentInstance();if(!n)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const r=o.i18n;if(o.__i18n&&(r.__i18n=o.__i18n),r.__root=t,this===this.$root)this.$i18n=mergeToGlobal(e,r);else{r.__injectWithOption=!0,r.__extender=a.__vueI18nExtend,this.$i18n=createVueI18n(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=mergeToGlobal(e,o);else{this.$i18n=createVueI18n({__i18n:o.__i18n,__injectWithOption:!0,__extender:a.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;o.__i18nGlobal&&adjustI18nResources(t,o,o),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),a.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=getCurrentInstance();if(!n)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const o=this.$i18n;delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,o.__disposer&&(o.__disposer(),delete o.__disposer,delete o.__extender),a.__deleteInstance(n),delete this.$i18n}}}function mergeToGlobal(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[SetPluralRulesSymbol](t.pluralizationRules||e.pluralizationRules);const a=getLocaleMessages(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(a).forEach(n=>e.mergeLocaleMessage(n,a[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const baseFormatProps={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function getInterpolateArg({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,o)=>[...n,...o.type===Fragment?o.children:[o]],[]):t.reduce((a,n)=>{const o=e[n];return o&&(a[n]=o()),a},create())}function getFragmentableTag(){return Fragment}const TranslationImpl=defineComponent({name:"i18n-t",props:assign$1({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>isNumber$1(e)||!isNaN(e)}},baseFormatProps),setup(e,t){const{slots:a,attrs:n}=t,o=e.i18n||useI18n({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(a).filter(d=>d!=="_"),s=create();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=isString$1(e.plural)?+e.plural:e.plural);const l=getInterpolateArg(t,r),c=o[TranslateVNodeSymbol](e.keypath,l,s),f=assign$1(create(),n),u=isString$1(e.tag)||isObject$2(e.tag)?e.tag:getFragmentableTag();return h(u,f,c)}}}),Translation=TranslationImpl;function isVNode(e){return isArray$1(e)&&!isString$1(e[0])}function renderFormatter(e,t,a,n){const{slots:o,attrs:r}=t;return()=>{const s={part:!0};let l=create();e.locale&&(s.locale=e.locale),isString$1(e.format)?s.key=e.format:isObject$2(e.format)&&(isString$1(e.format.key)&&(s.key=e.format.key),l=Object.keys(e.format).reduce((m,g)=>a.includes(g)?assign$1(create(),m,{[g]:e.format[g]}):m,create()));const c=n(e.value,s,l);let f=[s.key];isArray$1(c)?f=c.map((m,g)=>{const v=o[m.type],b=v?v({[m.type]:m.value,index:g,parts:c}):[m.value];return isVNode(b)&&(b[0].key=`${m.type}-${g}`),b}):isString$1(c)&&(f=[c]);const u=assign$1(create(),r),d=isString$1(e.tag)||isObject$2(e.tag)?e.tag:getFragmentableTag();return h(d,u,f)}}const NumberFormatImpl=defineComponent({name:"i18n-n",props:assign$1({value:{type:Number,required:!0},format:{type:[String,Object]}},baseFormatProps),setup(e,t){const a=e.i18n||useI18n({useScope:e.scope,__useComponent:!0});return renderFormatter(e,t,NUMBER_FORMAT_OPTIONS_KEYS,(...n)=>a[NumberPartsSymbol](...n))}}),NumberFormat=NumberFormatImpl;function getComposer$1(e,t){const a=e;if(e.mode==="composition")return a.__getInstance(t)||e.global;{const n=a.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function vTDirective(e){const t=s=>{const{instance:l,value:c}=s;if(!l||!l.$)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const f=getComposer$1(e,l.$),u=parseValue(c);return[Reflect.apply(f.t,f,[...makeParams(u)]),f]};return{created:(s,l)=>{const[c,f]=t(l);inBrowser&&e.global===f&&(s.__i18nWatcher=watch(f.locale,()=>{l.instance&&l.instance.$forceUpdate()})),s.__composer=f,s.textContent=c},unmounted:s=>{inBrowser&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:l})=>{if(s.__composer){const c=s.__composer,f=parseValue(l);s.textContent=Reflect.apply(c.t,c,[...makeParams(f)])}},getSSRProps:s=>{const[l]=t(s);return{textContent:l}}}}function parseValue(e){if(isString$1(e))return{path:e};if(isPlainObject$2(e)){if(!("path"in e))throw createI18nError(I18nErrorCodes.REQUIRED_VALUE,"path");return e}else throw createI18nError(I18nErrorCodes.INVALID_VALUE)}function makeParams(e){const{path:t,locale:a,args:n,choice:o,plural:r}=e,s={},l=n||{};return isString$1(a)&&(s.locale=a),isNumber$1(o)&&(s.plural=o),isNumber$1(r)&&(s.plural=r),[t,l,s]}function apply(e,t,...a){const n=isPlainObject$2(a[0])?a[0]:{};(isBoolean$2(n.globalInstall)?n.globalInstall:!0)&&([Translation.name,"I18nT"].forEach(r=>e.component(r,Translation)),[NumberFormat.name,"I18nN"].forEach(r=>e.component(r,NumberFormat)),[DatetimeFormat.name,"I18nD"].forEach(r=>e.component(r,DatetimeFormat))),e.directive("t",vTDirective(t))}const I18nInjectionKey=makeSymbol("global-vue-i18n");function createI18n(e={}){const t=__VUE_I18N_LEGACY_API__&&isBoolean$2(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,a=isBoolean$2(e.globalInjection)?e.globalInjection:!0,n=new Map,[o,r]=createGlobal(e,t),s=makeSymbol("");function l(d){return n.get(d)||null}function c(d,m){n.set(d,m)}function f(d){n.delete(d)}const u={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(d,...m){if(d.__VUE_I18N_SYMBOL__=s,d.provide(d.__VUE_I18N_SYMBOL__,u),isPlainObject$2(m[0])){const b=m[0];u.__composerExtend=b.__composerExtend,u.__vueI18nExtend=b.__vueI18nExtend}let g=null;!t&&a&&(g=injectGlobalFields(d,u.global)),__VUE_I18N_FULL_INSTALL__&&apply(d,u,...m),__VUE_I18N_LEGACY_API__&&t&&d.mixin(defineMixin(r,r.__composer,u));const v=d.unmount;d.unmount=()=>{g&&g(),u.dispose(),v()}},get global(){return r},dispose(){o.stop()},__instances:n,__getInstance:l,__setInstance:c,__deleteInstance:f};return u}function useI18n(e={}){const t=getCurrentInstance();if(t==null)throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw createI18nError(I18nErrorCodes.NOT_INSTALLED);const a=getI18nInstance(t),n=getGlobalComposer(a),o=getComponentOptions(t),r=getScope(e,o);if(r==="global")return adjustI18nResources(n,e,o),n;if(r==="parent"){let c=getComposer(a,t,e.__useComponent);return c==null&&(c=n),c}const s=a;let l=s.__getInstance(t);if(l==null){const c=assign$1({},e);"__i18n"in o&&(c.__i18n=o.__i18n),n&&(c.__root=n),l=createComposer(c),s.__composerExtend&&(l[DisposeSymbol]=s.__composerExtend(l)),setupLifeCycle(s,t,l),s.__setInstance(t,l)}return l}function createGlobal(e,t){const a=effectScope(),n=__VUE_I18N_LEGACY_API__&&t?a.run(()=>createVueI18n(e)):a.run(()=>createComposer(e));if(n==null)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);return[a,n]}function getI18nInstance(e){const t=inject(e.isCE?I18nInjectionKey:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw createI18nError(e.isCE?I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE:I18nErrorCodes.UNEXPECTED_ERROR);return t}function getScope(e,t){return isEmptyObject(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function getGlobalComposer(e){return e.mode==="composition"?e.global:e.global.__composer}function getComposer(e,t,a=!1){let n=null;const o=t.root;let r=getParentComponentInstance(t,a);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const l=s.__getInstance(r);l!=null&&(n=l.__composer,a&&n&&!n[InejctWithOptionSymbol]&&(n=null))}if(n!=null||o===r)break;r=r.parent}return n}function getParentComponentInstance(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function setupLifeCycle(e,t,a){onMounted(()=>{},t),onUnmounted(()=>{const n=a;e.__deleteInstance(t);const o=n[DisposeSymbol];o&&(o(),delete n[DisposeSymbol])},t)}const globalExportProps=["locale","fallbackLocale","availableLocales"],globalExportMethods=["t","rt","d","n","tm","te"];function injectGlobalFields(e,t){const a=Object.create(null);return globalExportProps.forEach(o=>{const r=Object.getOwnPropertyDescriptor(t,o);if(!r)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const s=isRef(r.value)?{get(){return r.value.value},set(l){r.value.value=l}}:{get(){return r.get&&r.get()}};Object.defineProperty(a,o,s)}),e.config.globalProperties.$i18n=a,globalExportMethods.forEach(o=>{const r=Object.getOwnPropertyDescriptor(t,o);if(!r||!r.value)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,r)}),()=>{delete e.config.globalProperties.$i18n,globalExportMethods.forEach(o=>{delete e.config.globalProperties[`$${o}`]})}}const DatetimeFormatImpl=defineComponent({name:"i18n-d",props:assign$1({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},baseFormatProps),setup(e,t){const a=e.i18n||useI18n({useScope:e.scope,__useComponent:!0});return renderFormatter(e,t,DATETIME_FORMAT_OPTIONS_KEYS,(...n)=>a[DatetimePartsSymbol](...n))}}),DatetimeFormat=DatetimeFormatImpl;if(initFeatureFlags(),registerMessageCompiler(compile),registerMessageResolver(resolveValue),registerLocaleFallbacker(fallbackWithLocaleChain),__INTLIFY_PROD_DEVTOOLS__){const e=getGlobalThis();e.__INTLIFY__=!0,setDevToolsHook(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const _export_sfc=(e,t)=>{const a=e.__vccOpts||e;for(const[n,o]of t)a[n]=o;return a},_hoisted_1$s={class:"weilin_prompt_ui_window-title"},_hoisted_2$p=["title"],_sfc_main$t={__name:"DraggableWindow",props:{title:{type:String,required:!0},position:{type:Object,required:!0},size:{type:Object,required:!0},zIndex:{type:Number,default:1},name:{type:String,default:"default_window_name"}},emits:["update:position","update:size","active","close"],setup(e,{emit:t}){const a=e,{t:n}=useI18n(),o=t,r=ref({x:0,y:0}),s=ref({width:600,height:400});watch(()=>a.position,R=>{R&&(r.value={...R},window.parent.postMessage({type:`weilin_prompt_ui_window_change_${a.name}_position`},"*"))},{immediate:!0,deep:!0}),watch(()=>a.size,R=>{R&&(s.value={...R},window.parent.postMessage({type:`weilin_prompt_ui_window_change_${a.name}_size`},"*"))},{immediate:!0,deep:!0});const l=()=>{window.parent.postMessage({type:`weilin_prompt_ui_window_change_${a.name}_scroll`},"*")};onMounted(()=>{var R;if(a.position){const F=window.innerWidth,H=window.innerHeight,j=100;let fe=a.position.x,oe=a.position.y;fe=Math.max(j-(((R=a.size)==null?void 0:R.width)||s.value.width),fe),fe=Math.min(fe,F-100),oe=Math.max(100,oe),oe=Math.min(oe,H-100),r.value={x:fe,y:oe}}a.size&&(s.value={...a.size})});const c=ref(!1),f=ref({x:0,y:0}),u=R=>{c.value=!0,f.value={x:R.clientX-r.value.x,y:R.clientY-r.value.y},document.addEventListener("mousemove",d),document.addEventListener("mouseup",m)},d=R=>{if(c.value){const F=window.innerWidth,H=window.innerHeight,j=100;let fe=R.clientX-f.value.x,oe=R.clientY-f.value.y;fe=Math.max(j-s.value.width,fe),fe=Math.min(fe,F-100),oe=Math.max(100,oe),oe=Math.min(oe,H-100);const V={x:fe,y:oe};r.value=V,o("update:position",V)}},m=()=>{c.value=!1,document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",m)},g=ref(!1),v=ref({x:0,y:0}),b=ref({width:0,height:0}),$=R=>{g.value=!0,v.value={x:R.clientX,y:R.clientY},b.value={...s.value},document.addEventListener("mousemove",w),document.addEventListener("mouseup",N)},w=R=>{if(g.value){const F=R.clientX-v.value.x,H=R.clientY-v.value.y,j={width:Math.max(200,b.value.width+F),height:Math.max(200,b.value.height+H)};s.value=j,o("update:size",j)}},N=()=>{g.value=!1,document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",N)},P=()=>{o("active")},y=()=>{o("close")},E=R=>{P(),u(R)};return(R,F)=>(openBlock(),createBlock(Teleport,{to:"#weilin_comfyui_tools_prompt_ui_div"},[createBaseVNode("div",{class:"weilin_prompt_ui_draggable-window",style:normalizeStyle({left:`${r.value.x}px`,top:`${r.value.y}px`,width:`${s.value.width}px`,height:`${s.value.height}px`,zIndex:e.zIndex}),onMousedown:P},[createBaseVNode("div",{class:"weilin_prompt_ui_window-header",onMousedown:withModifiers(E,["stop"])},[createBaseVNode("div",_hoisted_1$s,toDisplayString$1(e.title),1),createBaseVNode("button",{class:"weilin_prompt_ui_close-btn",onClick:y},"×")],32),createBaseVNode("div",{class:"weilin_prompt_ui_window-content",onScroll:l},[renderSlot(R.$slots,"default",{},void 0,!0)],32),createBaseVNode("div",{class:"weilin_prompt_ui_resize-handle",title:unref(n)("common.windowSize"),onMousedown:withModifiers($,["stop"])},null,40,_hoisted_2$p)],36)]))}},DraggableWindow=_export_sfc(_sfc_main$t,[["__scopeId","data-v-5d02be5b"]]),version="v0.0.66",zh_CN={promptBox:{placeholder:"请输入文本...",delete:"删除",newline:"换行",tab:"制表符",windowTitle:"WeiLin提示词UI窗口 "+version,windowTitleGlobal:"WeiLin全局提示词UI窗口 "+version,translate:"翻译",translatePlaceholder:"请输入要翻译的文本,回车即可",weight:"权重",weightPlaceholder:"请输入权重",addBracket:"添加括号",removeLayer:"减去括号",hiddenHint:"双击显示提示词",tagTips:"鼠标左键双击屏蔽Tag
鼠标左键单击Tag可以编辑
鼠标左键拖动可以拖动Tag",oneClickRandomTag:"一键随机Tag",randomTagSettings:"设置随机Tag规则",oneClickTranslate:"一键翻译Tag",modelWeight:"模型权重",textWeight:"文本权重",favour:"收藏",lineToken:"换行",addLineToken:"添加换行符",settings:{title:"设置",cancel:"取消",save:"保存",translator:"翻译设置",sourceLanguage:"源语言",targetLanguage:"目标语言",chinese_simplified:"简体中文",english:"英语",close:"关闭",auto_detect:"自动检测",setting_floating_ball:"悬浮球设置",setting_prompt_box:"提示词设置",enablePromptCommaShow:"显示提示词逗号",floatingBallCount:"悬浮球数量",floatingBallCountPlaceholder:"请输入悬浮球数量",floatingBallSize:"悬浮球宽度",floatingBallSizePlaceholder:"请输入悬浮球宽度",floatingBallHeight:"悬浮球高度",floatingBallHeightPlaceholder:"请输入悬浮球高度",enableFloatingBall:"启用悬浮球",enableCommaConversion:"启用逗号转换,全角逗号转为半角逗号",enablePeriodConversion:"启用句号转换,全角句号转为半角句号",enableBracketConversion:"启用括号转换,全角括号转为半角括号",enableAngleBracketConversion:"启用尖括号转换,全角尖括号转为半角尖括号",enableUnderscoreToBracket:"启用下划线转换,下划线转换为空格",enableBracketEscape:"启用括号转义,自动添加\\转义括号",enableCommaCloseAutocomplete:"启动逗号关闭补全,输入逗号立即关闭补全列表",setting_openai_box:"OpenAI设置",openai_api_key:"API Key",openai_api_key_placeholder:"请输入API Key",openai_api_key_save:"保存",openaiSettings:"OpenAI设置",openai_base_url:"Base URL",openai_base_url_placeholder:"请输入Base URL",openai_model:"模型",openai_model_placeholder:"请输入模型",not_set:"未设置",edit:"编辑",delete:"删除",selectedOpenaiConfig:"当前选择的OpenAI配置",addNewConfig:"添加OpenAI配置",setting_sponsor_me:"赞助我",sponsorMe:"赞助我",sponsorMeTip:"赞助我,支持我继续开发",sponsorMeLink:"唯一赞助链接 https://afdian.com/a/weilin9999",setting_start_panel:"启动面板",startPanel:"启动面板",startPanelTip:"点击启动面板,启动成功后会自动打开面板页面",selectTranslater:"选择翻译器",selectOptionNetworkTranslater:"三方网络翻译",selectOptionPythonTranslater:"翻译库翻译",apply:"应用",selectOptionNetworkTranslaterTitle:"三方网络翻译设置",selectOptionPythonTranslaterTitle:"翻译库设置",selectOptionNetworkTranslaterInfo:"使用的三方工具是(仅网络翻译)",selectOptionPythonTranslaterInfo:"使用的翻译包为translators",install:"安装",nowTranlaterPackageState:"当前翻译包状态:",tranlaterPackageStateTrue:"已安装",tranlaterPackageStateFlase:"未安装",installed:"正在安装中...",installTranslaterPackageInfo:"当前正在安装翻译库中,请不要关闭窗口!等待安装完成",translaterSetting:"翻译设置",chooseTranslaterSetting:"选择翻译服务:",translaterLangSourceSetting:"翻译语言:",translaterLangTargeSetting:"翻译目标语言:",saveTranslaterSetting:"保存设置",testTranslaterTitle:"测试翻译",inputTestTranslater:"输入翻译内容:",outPutTestTranslater:"翻译结果:",testingTranslater:"测试翻译",inputTestTranslaterPlaceholder:"请输入要翻译的内容",outPutTestTranslaterPlaceholder:"翻译结果将显示在这里",errorPrompt:"读取节点提示词失败!",setting_auto_complete_limit:"补全提示设置",show_auto_limit:"显示补全提示数量",showAutoLimitPlaceholder:"请输入要显示的数量",settingAutoCompleteWidth:"设置补全提示框宽度",settingAutoCompleteWidthPlaceholder:"请输入宽度",settingAutoCompleteHeight:"设置补全提示框最大高度",settingAutoCompleteHeightPlaceholder:"请输入最大高度",skinSetting:"皮肤设置",defaultSkin:"默认皮肤",customSkin:"自定义皮肤",uploadSkin:"上传皮肤",bgSetting:"背景设置",gradientBg:"渐变颜色",transparentBg:"透明",gradientColor:"渐变颜色选择",borderRadius:"圆角设置",resetToDefault:"恢复默认"}},controls:{language:"语言",settings:"设置",switchTheme:"切换主题",darkMode:"夜间模式",lightMode:"日间模式",tagManager:"标签管理",loraStack:"Lora堆",loraManager:"Lora管理",history:"历史记录",addLora:"添加Lora",removeLora:"移除Lora",lookOnLora:"查看Lora",aiChat:"AI对话",github:"Github主页",shareCloudData:"共享云数据",tutorialVideo:"教程视频",sponsor:"赞助我",danbooruManager:"Danbooru管理器"},theme:{toggle:"切换主题"},common:{confirmDelete:"确认删除",delete:"删除",cancel:"取消",confirm:"确定",edit:"编辑",save:"保存",refresh:"刷新",copy:"复制",copySuccess:"复制成功",copyFailed:"复制失败",windowSize:"调节窗口大小",showMore:"显示更多",showLess:"收起"},cloudWindow:{windowTitle:"共享云仓库",back:"返回上一级",currentPath:"当前路径",tagDatabase:"Tag 数据库",danbooruDatabase:"Danbooru 数据库",open:"打开文件夹",installed:"已安装",install:"安装",installing:"正在安装..."},nodeListWindow:{windowTitle:"节点列表",openPromptUI:"打开提示词编辑器"},lora:{title:"Lora 信息",rawTitle:"LoraRaw",file:"文件",hash:"Hash值",civitai:"Civitai",viewOnCivitai:"在 Civitai 上查看",fetchFromCivitai:"从 Civitai 获取信息",modelNotFound:"模型未找到",modelNotFoundTip:"该模型在 Civitai 上未找到,可能是私有模型或已被删除",name:"名称",nameTip:"模型的显示名称",type:"类型",baseModel:"基础模型",trainedWords:"训练词",trainedWordsTip:"模型训练时使用的关键词,点击可选择复制",selectedWords:"已选择 {count} 个词",strengthMin:"最小强度",strengthMinTip:"推荐的最小强度值",strengthMax:"最大强度",strengthMaxTip:"推荐的最大强度值",promptWords:"提示词",promptWordsTip:"使用该模型时的推荐提示词",loraWorks:"Lora提示词",strWeight:"文本强度权重",hideLora:"禁用Lora",showLora:"启用Lora",baseModel:"基础模型",skipClip:"跳过层",seeLoraRaw:"查看LoraRaw",addDiyFiled:"添加自定义字段",getCivitData:"获取Civitai信息",copy:"复制"},tagManager:{deletePrimaryCategoryConfirm:"确定要删除分类 {name} 吗?",deleteGroupConfirm:"确定要删除分组 {name} 吗?",deleteTagConfirm:"确定要删除标签 {name} 吗?",windowTitle:"标签管理器",categories:"分类管理",groups:"分组管理",selectCategory:"请选择分类",selectGroup:"请选择分组",addPrimaryCategory:"添加分类",addGroup:"添加分组",editPrimaryCategory:"编辑分类",editGroup:"编辑分组",editTag:"编辑标签",categoryName:"分类名称",categoryNamePlaceholder:"请输入分类名称",categoryNameRequired:"分类名称不能为空",groupName:"分组名称",groupNamePlaceholder:"请输入分组名称",groupNameRequired:"分组名称不能为空",addTag:"添加Tag",text:"Tag描述",textPlaceholder:"请输入Tag描述",description:"Tag",descriptionPlaceholder:"请输入Tag",textRequired:"Tag和Tag描述不能为空",favourRequired:"Tag和Tag描述不能为空,且必须选择分组",backgroundColor:"背景颜色",colorPickerTitle:"选择颜色",opacity:"透明度",searchPlaceholder:"搜索Tag...",noResults:"未找到相关结果",searchInCategory:"在分类中",searchInTag:"在Tag中",save:"保存",cancel:"取消",confirm:"确定",delete:"删除",addSubCategory:"添加子分类",editSubCategory:"编辑子分类",subCategoryName:"子分类名称",subCategoryNamePlaceholder:"请输入子分类名称",subCategoryNameRequired:"子分类名称不能为空",deleteConfirmTitle:"确认删除",deleteConfirmMessage:"此操作将永久删除该{type},是否继续?",deleteSuccess:"删除成功",deleteFailed:"删除失败",saveSuccess:"保存成功",saveFailed:"保存失败",colorPickerAlpha:"透明度",colorPickerHex:"十六进制颜色值",colorPreview:"颜色预览",dragToSort:"拖动排序",searchTags:"搜索标签",noTagsFound:"未找到标签",noGroupsFound:"未找到分组",noCategoriesFound:"未找到分类",refresh:"刷新",refreshing:"刷新中...",refreshSuccess:"刷新成功",refreshFailed:"刷新失败",search:"搜索",searching:"搜索中...",searchResult:"搜索结果",searchInPath:"位于: {path}",category:"分类",group:"分组",tag:"标签",resultType:{category:"分类",group:"分组",tag:"标签"},hasDeleteAction:"批量删除",deleteSelected:"删除选中",confirmDeleteSelected:"确定要删除选中标签吗?",cancelDelete:"取消删除",moveTag:"移动标签",targetTag:"目标标签",movePosition:"移动位置",moveBefore:"移动到目标标签之前",moveAfter:"移动到目标标签之后",editTag:"编辑标签",deleteTag:"删除标签",editGroupMode:"编辑模式",exitEditMode:"退出编辑模式",autoAddSearchTag:"搜索的Tag自动添加到提示词中",importTags:"批量导入Tag",share:"分享",delete:"删除",edit:"编辑",outputSuccess:"分享成功",noTagsSelected:"没有选择要分享的Tag",shareSelected:"分享选择的Tag",batchShare:"批量分享Tag",cancelShare:"取消分享",moveGroup:"移动分组",targetGroup:"目标分组",moveGroupBefore:"移动到目标分组之前",moveGroupAfter:"移动到目标分组之后",importDanbooru:"批量导入",modifyTabSize:"修改标签尺寸",tabSizeConfig:"标签尺寸配置",primaryTabConfig:"一级分类标签配置",groupTabConfig:"二级分类标签配置",tabWidth:"标签宽度",tabHeight:"标签高度",fontSize:"字体大小",fitContent:"自适应内容",customWidth:"自定义宽度",resetDefault:"重置为默认值",tabSizeConfigSaved:"标签尺寸配置已保存",tabSizeConfigSaveFailed:"标签尺寸配置保存失败"},loraManager:{windowTitle:"Lora管理",modelWeight:"模型权重",textEncoderWeight:"文本权重",all:"全部",root:"根目录",refresh:"刷新",cacheAll:"缓存全部Lora信息",searchPlaceholder:"搜索Lora...",prevPage:"上一页",nextPage:"下一页",noResults:"未找到相关结果",loadingMore:"正在加载更多...",noMoreData:"没有更多结果了"},message:{copySuccess:"复制成功",copyFailed:"复制失败",saveSuccess:"保存成功",saveFailed:"保存失败",deleteSuccess:"删除成功",deleteFailed:"删除失败",operationSuccess:"操作成功",operationFailed:"操作失败",networkError:"网络错误",unknownError:"未知错误",refreshSuccess:"刷新成功",refreshFailed:"刷新失败",loadingData:"加载数据中...",dataLoaded:"数据加载完成",editSuccess:"编辑成功",editFailed:"编辑失败",addSuccess:"添加成功",addFailed:"添加失败",addFavoriteSuccess:"已添加到收藏夹",addFavoriteIsExist:"已添加到收藏夹",error:"错误",editNameExist:"名称已存在",moveSuccess:"移动成功",moveFailed:"移动失败",setLanguageSuccess:"设置语言成功",setLanguageFailed:"设置语言失败",startPanelSuccess:"启动面板成功",startPanelFailed:"启动面板失败",isLoading:"已在执行中请等待",loaddingPrc:"执行进度 {name}%",loaddingSuccess:"已全部加载成功",noFinishKuo:"括号不完整,请检查输入",getTranslaterFail:"获取翻译设置失败",applyTranslaterFail:"应用翻译设置失败",applyToTranslaterFail:"切换翻译库翻译需要安装翻译库,请先安装翻译库再应用设置",applyTranslaterSuccess:"应用翻译设置成功",tranlaterPackageInstallFail:"等待安装超时,请查看后台安装情况,若安装成功再次点击安装即可验证",tranlaterPackageInstallSuccess:"安装翻译包成功",translaterTestFail:"翻译失败,请使用其它的翻译服务进行尝试",installPackageSuccess:"安装共享数据成功!",installPackageFail:"安装共享数据失败,请查看后台错误",loadFailed:"加载失败",jsonErrorMesg:"JSON文件格式错误",pleaseAddSub:"请先添加二级分类",pleaseAddMainCeb:"请先添加一级分类",pleaseSelectGroup:"请选择完整的分组路径",isLoadingPleaseWait:"正在执行中,请查看后台进度",shareGroupError:"分享失败,获取分组信息失败",shareTagError:"分享失败,获取组Tag信息失败"},history:{title:"历史记录",search_placeholder:"搜索历史记录...",search:"搜索",windowTitle:"历史记录",favorites:"收藏夹",history:"历史记录",refresh:"刷新",refresh_history:"刷新历史记录",refresh_favorites:"刷新收藏夹",add_to_favorites:"添加到收藏夹",delete_history:"删除历史记录",use_item:"使用",add_new:"添加收藏",bulk_delete:"批量删除",deleteHistoryConfirm:"确定要删除历史记录 {name} 吗?",deleteFavoriteConfirm:"确定要删除收藏夹 {name} 吗?",confirmDeleteSelected:"确定要删除选中的信息吗?",cancel_delete:"取消删除",sure_delete:"确定删除",deleteSelected:"删除选中",dialog:{add_tag:"添加收藏",edit_tag:"编辑收藏",name:"名称",name_placeholder:"请输入名称",tag:"标签",tag_placeholder:"请输入标签",background_color:"背景颜色",background_color_placeholder:"请选择背景颜色",edit_favorite:"编辑收藏",delete_favorite:"删除收藏"},edit_favorite:"编辑收藏",delete_favorite:"删除收藏",use_favorite:"使用收藏"},floatingBall:{promptBox:"打开全局提示词",tagManager:"打开标签管理",loraManager:"打开Lora管理",aiWindow:"打开AI对话",restoreWindow:"重置所有窗口",openNodeListWindow:"打开节点列表",tranToWeb:"图片转换工具",openSetting:"打开设置"},aiWindow:{windowTitle:"AI对话窗口",newChat:"新建对话",chatName:"对话",thinking:"思考中...",send:"发送",inputMessage:"输入你的消息..."},translaterService:{niutrans:"小牛翻译",mymemory:"MyMemory",alibaba:"阿里巴巴翻译",baidu:"百度翻译",modernmt:"ModernMT",volcengine:"火山翻译",iciba:"金山词霸",iflytek:"科大讯飞翻译",google:"谷歌翻译",bing:"必应翻译",lingvanex:"Lingvanex",yandex:"Yandex翻译",itranslate:"iTranslate",systran:"SYSTRAN",argos:"Argos翻译",apertium:"Apertium",reverso:"Reverso翻译",deepl:"DeepL翻译",cloudtranslation:"云翻译",qqtransmart:"腾讯翻译君",translatecom:"Translate.com",sogou:"搜狗翻译",tilde:"Tilde翻译",caiyun:"彩云小译",qqfanyi:"腾讯翻译",translateme:"TranslateMe",papago:"Papago翻译",mirai:"未来翻译",youdao:"有道翻译",iflyrec:"讯飞听见翻译",hujiang:"沪江翻译",yeekit:"译库翻译",languagewire:"LanguageWire",elia:"Elia翻译",judic:"Judic翻译",mglip:"蒙古语翻译",utibet:"藏语翻译"},translaterLanguage:{english:"英语",chinese:"中文",arabic:"阿拉伯语",russian:"俄语",french:"法语",german:"德语",spanish:"西班牙语",portuguese:"葡萄牙语",italian:"意大利语",japanese:"日语",korean:"韩语",greek:"希腊语",dutch:"荷兰语",hindi:"印地语",turkish:"土耳其语",malay:"马来语",thai:"泰语",vietnamese:"越南语",indonesian:"印度尼西亚语",hebrew:"希伯来语",polish:"波兰语",mongolian:"蒙古语",czech:"捷克语",hungarian:"匈牙利语",estonian:"爱沙尼亚语",bulgarian:"保加利亚语",danish:"丹麦语",finnish:"芬兰语",romanian:"罗马尼亚语",swedish:"瑞典语",slovenian:"斯洛文尼亚语","persian/farsi":"波斯语/波斯语",bosnian:"波斯尼亚语",serbian:"塞尔维亚语",fijian:"斐济语",filipino:"菲律宾语",haitiancreole:"海地克里奥尔语",catalan:"加泰罗尼亚语",croatian:"克罗地亚语",latvian:"拉脱维亚语",lithuanian:"立陶宛语",urdu:"乌尔都语",ukrainian:"乌克兰语",welsh:"威尔士语",tahiti:"塔希提语",tongan:"汤加语",swahili:"斯瓦希里语",samoan:"萨摩亚语",slovak:"斯洛伐克语",afrikaans:"南非荷兰语",norwegian:"挪威语",bengali:"孟加拉语",malagasy:"马达加斯加语",maltese:"马耳他语","queretaro otomi":"克雷塔罗奥托米语","klingon/tlhingan hol":"克林贡语",gujarati:"古吉拉特语",tamil:"泰米尔语",telugu:"泰卢固语",punjabi:"旁遮普语",amharic:"阿姆哈拉语",azerbaijani:"阿塞拜疆语",bashkir:"巴什基尔语",belarusian:"白俄罗斯语",cebuano:"宿务语",chuvash:"楚瓦什语",esperanto:"世界语",basque:"巴斯克语",irish:"爱尔兰语"},utils:{tranToWeb:"转换图片为HTML",dropOrPasteImage:"点击本区域可以上传文件也可以拖动图片或粘贴图片到此处",downloadHtml:"下载HTML",copyHtml:"复制HTML",copySuccess:"HTML已复制",copyFailed:"复制HTML失败",clear:"清空内容"},importDialog:{title:"批量导入Tag",sure:"确认并导入",cleanAll:"清空所有",dumpSQL:"导出所有SQL",uploadSQL:"上传原始SQL文件",setMainCeb:"设置一级分类",setSubCeb:"设置二级分类",addTag:"添加Tag",fromJSONImput:"从JSON文件批量导入Tag",fromTxtInput:"从TXT文件批量导入Tag",fromYmalInput:"从YAML文件批量导入Tag",selectMainCeb:"选择一级分类",selectSubCeb:"选择二级分类",selectGroup:"选择已有分类",sureSelect:"确认选择",pleaseAddGroupName:"请填写一级分类名称",pleaseAddSubGroupName:"请填写二级分类名称",pleaseFullRequest:"请填写完整一级分类和二级分类信息",successImport:"导入成功",importFail:"导入失败",dumpOnlySQL:"仅导出Tag的SQL",settingOutputName:"设置导出文件名称",sureYes:"确认",cancel:"取消",edit:"编辑",delete:"删除",add:"添加Tag",pleaseMainCebUuid:"一级分原UUID,增量更新才需要",pleaseSubGroupUuid:"二级分原UUID,增量更新才需要",pleaseSubGroup:"二级分类名称",pleaseMainCeb:"一级分类名称",translater:"描述",tips1:"使用教程:",tips1text:"B站视频教程",tips2:"Tag云仓库:",tips2text:"GitHub仓库",tips3:"在线批量编辑:",tips3text:"在线编辑器",selectTitle:"选择分类",selectedCategories:"已选择的分类",clearAll:"清除全部",primaryCategories:"一级分类",subCategories:"二级分类",noSelectedCategories:"暂无选择的分类",selectCategory:"选择此分类",selectSubcategory:"选择此子分类",sureSelect:"确认选择"},randomUtils:{title:"随机Tag规则设置",generalSettings:"通用设置",totalTags:"随机Tag总数量(规则范围超过总数量按总数量算最大范围)",rules:"规则",addRule:"添加规则",rule:"规则",range:"范围",tagType:"标签类型",category:"Tag数据",specificTags:"特定标签",selectCategory:"选择分类",addTagPlaceholder:"输入标签并按回车",addTag:"添加标签",testRandom:"测试随机",generatedTags:"生成的标签",selectTagGroup:"选择Tag分组",ruleTemplates:"规则模板",saveAsTemplate:"保存为模板",selectTemplate:"选择模板",applyTemplate:"应用模板",templateNamePlaceholder:"输入模板名称",templateNameRequired:"请输入模板名称",templateSaved:"模板已保存",templateApplied:"模板已应用",errorSavingTemplates:"保存模板时出错",save:"保存",cancel:"取消",editTemplate:"修改名称",deleteTemplate:"删除模板",confirmDeleteTemplate:"确定要删除此模板吗?",templateDeleted:"模板已删除",templateUpdated:"模板名称已更新",errorUpdatingTemplate:"更新模板失败",errorLoadingTemplate:"加载模板失败",errorDeletingTemplate:"删除模板失败",errorApplyingTemplate:"应用模板失败",pleaseChooseTemplate:"请选择模板",errorSavingTemplate:"保存模板失败",newTemplate:"新建模板",rulesReminder:"提醒:第一个规则的范围必须从1开始!如果范围区间超过了随机的总数则直接显示全部不会随机!"},danbooruManager:{title:"Danbooru管理器",controle:"操作",translatePlaceholder:"请输入对应的翻译文本",searchPlaceholder:"输入需要搜索的Danbooru标签...",pageShow:"每页显示:",pageLimit:"条",hot:"热度",aliases:"分区",sureBatchDelete:"批量删除确认",sureBatchDeleteTips1:"您确定要删除选中的",sureBatchDeleteTips2:"个标签吗?此操作不可撤销。",sureDelete:"确认删除",import:"Danbooru格式导入",importBatchTitle:"批量导入Danbooru数据",importTitle:"Danbooru 导入数据展示",add:"添加Danbooru标签",edit:"编辑Danbooru标签"}},en_US={promptBox:{placeholder:"Please enter text...",delete:"Delete",newline:"New Line",tab:"Tab",windowTitle:"WeiLin Prompt UI Window "+version,windowTitleGlobal:"WeiLin Global Prompt UI Window "+version,translate:"Translate",translatePlaceholder:"Please enter the text to be translated",weight:"Weight",weightPlaceholder:"Please enter the weight",addBracket:"Add Bracket",removeLayer:"Remove Bracket",hiddenHint:"Double-click to show",tagTips:"Double-click the left mouse button to mask the Tag
click the Tag to edit
and drag the Tag to drag",oneClickRandomTag:"one Click Random Tag",randomTagSettings:"setting Random Tag",oneClickTranslate:"one Click Translate Tag",modelWeight:"Model Weight",textWeight:"Text Weight",favour:"Favour",lineToken:"Line Break",addLineToken:"Add Line Break Token",settings:{title:"Settings",cancel:"Cancel",save:"Save",translator:"Translator",sourceLanguage:"Source Language",targetLanguage:"Target Language",chinese_simplified:"Chinese Simplified",english:"English",close:"Close",auto_detect:"Auto Detect",setting_floating_ball:"Setting Floating Ball",setting_prompt_box:"Setting Prompt Box",enablePromptCommaShow:"Show Prompt Comma",floatingBallCount:"Floating Ball Count",floatingBallCountPlaceholder:"Please enter the number of floating balls",floatingBallSize:"Width of suspended ball",floatingBallSizePlaceholder:"Please enter the width of the suspension ball",floatingBallHeight:"Height of suspended ball",floatingBallHeightPlaceholder:"Please input the height of the suspension ball",enableFloatingBall:"Enable Floating Ball",enableCommaConversion:"Enable Comma Conversion",enablePeriodConversion:"Enable Period Conversion",enableBracketConversion:"Enable Bracket Conversion",enableAngleBracketConversion:"Enable Angle Bracket Conversion",enableUnderscoreToBracket:"Enable Underscore to Bracket",setting_openai_box:"OpenAI Settings",openai_api_key:"API Key",openai_api_key_placeholder:"Please enter API Key",openai_api_key_save:"Save",openaiSettings:"OpenAI Settings",openaiSettings_api_key:"API Key",openaiSettings_api_key_placeholder:"Please enter API Key",openaiSettings_api_key_save:"Save",openai_base_url:"Base URL",openai_base_url_placeholder:"Please enter Base URL",openai_model:"Model",openai_model_placeholder:"Please enter Model",not_set:"Not Set",edit:"Edit",delete:"Delete",selectedOpenaiConfig:"Selected OpenAI Config",addNewConfig:"Add New Config",setting_sponsor_me:"Sponsor Me",sponsorMe:"Sponsor Me",sponsorMeTip:"Sponsor Me, Support Me to Continue Development",sponsorMeLink:"Unique Sponsor Link https://afdian.com/a/weilin9999",setting_start_panel:"Start Panel",startPanel:"Start Panel",startPanelTip:"Click Start Panel, after successful startup, the panel page will be automatically opened",selectTranslater:"select translater",selectOptionNetworkTranslater:"Three party online translation",selectOptionPythonTranslater:"Translation Library Translation",apply:"Apply",selectOptionNetworkTranslaterTitle:"Three party network translation settings",selectOptionPythonTranslaterTitle:"Translation library settings",selectOptionNetworkTranslaterInfo:"The third-party tool used is (only for online translation)",selectOptionPythonTranslaterInfo:"The translation package used is translators",install:"Install",nowTranlaterPackageState:"now transtler package state:",tranlaterPackageStateTrue:"installed",tranlaterPackageStateFlase:"not installed",installed:"is installed ....",installTranslaterPackageInfo:"Currently installing translation library, please do not close the window! Wait for installation to complete",translaterSetting:"Translation Settings",chooseTranslaterSetting:"Choose a translation service:",translaterLangSourceSetting:"Translation language:",translaterLangTargeSetting:"Translation target language:",saveTranslaterSetting:"Save Settings",testTranslaterTitle:"Test translation",inputTestTranslater:"Enter translation content:",outPutTestTranslater:"Translation result:",testingTranslater:"Test translation",inputTestTranslaterPlaceholder:"Please enter the content to be translated",outPutTestTranslaterPlaceholder:"The translation result will be displayed here",errorPrompt:"Read the prompt node failed",skinSetting:"skin setting",defaultSkin:"default skin",customSkin:"custom skin",uploadSkin:"upload skin",bgSetting:"background setting",gradientBg:"gradient color",transparentBg:"transparent",gradientColor:"gradient color select",borderRadius:"border radius",resetToDefault:"reset to default"}},controls:{language:"Language",settings:"Settings",switchTheme:"Switch Theme",darkMode:"Dark Mode",lightMode:"Light Mode",tagManager:"Tag Manager",loraStack:"Lora Stack",loraManager:"Lora Manager",history:"History",addLora:"Add Lora",removeLora:"Remove Lora",lookOnLora:"Look On Lora",aiChat:"AI Chat",github:"Github Home",shareCloudData:"Share Cloud Data",tutorialVideo:"Tutorial Video",sponsor:"Sponsor Me",danbooruManager:"danbooru Manager"},theme:{toggle:"Switch Theme"},lora:{title:"Lora Information",rawTitle:"LoraRaw",file:"File",hash:"Hash",civitai:"Civitai",viewOnCivitai:"View on Civitai",fetchFromCivitai:"Fetch from Civitai",modelNotFound:"Model not found",modelNotFoundTip:"The model was not found on Civitai. It might be private or deleted",name:"Name",nameTip:"Display name of the model",type:"Type",baseModel:"Base Model",trainedWords:"Trained Words",trainedWordsTip:"Keywords used in model training, click to select for copying",selectedWords:"{count} words selected",strengthMin:"Min Strength",strengthMinTip:"Recommended minimum strength value",strengthMax:"Max Strength",strengthMaxTip:"Recommended maximum strength value",promptWords:"Prompt Words",promptWordsTip:"Recommended prompt words when using this model",loraWorks:"Lora Prompt Words",strWeight:"Text Strength Weight",hideLora:"Disable Lora",showLora:"Enable Lora",baseModel:"Base Model",skipClip:"Clip Skip",seeLoraRaw:"LoraRaw",addDiyFiled:"Add DIY Filed",getCivitData:"Get Civitai Data",copy:"Copy"},common:{confirmDelete:"Confirm Delete",delete:"Delete",cancel:"Cancel",confirm:"Confirm",edit:"Edit",save:"Save",refresh:"Refresh",copy:"Copy",copySuccess:"Copied successfully",copyFailed:"Copy failed",windowSize:"Adjust window size",showMore:"show more",showLess:"show less"},nodeListWindow:{windowTitle:"Node List",openPromptUI:"Open Prompt UI"},tagManager:{deletePrimaryCategoryConfirm:"Are you sure you want to delete category {name}?",deleteGroupConfirm:"Are you sure you want to delete group {name}?",deleteTagConfirm:"Are you sure you want to delete tag {name}?",windowTitle:"Tag Manager",categories:"Categories",groups:"Groups",selectCategory:"Please select a category",selectGroup:"Please select a group",addPrimaryCategory:"Add Category",addGroup:"Add Group",editPrimaryCategory:"Edit Category",editGroup:"Edit Group",editTag:"Edit Tag",categoryName:"Category Name",categoryNamePlaceholder:"Enter category name",categoryNameRequired:"Category name is required",groupName:"Group Name",groupNamePlaceholder:"Enter group name",groupNameRequired:"Group name is required",addTag:"Add Tag",text:"Tag Description",textPlaceholder:"Enter tag Description",description:"Tag",descriptionPlaceholder:"Enter tag",textRequired:"Tag and Tag description cannot be empty",favourRequired:"Tag and Tag description cannot be empty, and a group must be selected",backgroundColor:"Background Color",colorPickerTitle:"Select Color",opacity:"Opacity",searchPlaceholder:"Search tags...",noResults:"No results found",searchInCategory:"in category",searchInTag:"in tag",save:"Save",cancel:"Cancel",confirm:"Confirm",delete:"Delete",addSubCategory:"Add Sub-category",editSubCategory:"Edit Sub-category",subCategoryName:"Sub-category Name",subCategoryNamePlaceholder:"Enter sub-category name",subCategoryNameRequired:"Sub-category name is required",deleteConfirmTitle:"Confirm Delete",deleteConfirmMessage:"This action will permanently delete this {type}. Continue?",deleteSuccess:"Deleted successfully",deleteFailed:"Delete failed",saveSuccess:"Saved successfully",saveFailed:"Save failed",colorPickerAlpha:"Opacity",colorPickerHex:"Hex Color Value",colorPreview:"Color Preview",dragToSort:"Drag to Sort",searchTags:"Search Tags",noTagsFound:"No tags found",noGroupsFound:"No groups found",noCategoriesFound:"No categories found",refresh:"Refresh",refreshing:"Refreshing...",refreshSuccess:"Refresh successful",refreshFailed:"Refresh failed",search:"Search",searching:"Searching...",searchResult:"Search Result",searchInPath:"Located in: {path}",category:"Category",group:"Group",tag:"Tag",resultType:{category:"Category",group:"Group",tag:"Tag"},hasDeleteAction:"Batch Delete",deleteSelected:"Delete Selected",confirmDeleteSelected:"Are you sure you want to delete the selected tags?",cancelDelete:"Cancel Delete",moveTag:"Move Tag",targetTag:"Target Tag",movePosition:"Move Position",moveBefore:"Move Before",moveAfter:"Move After",editTag:"Edit Tag",deleteTag:"Delete Tag",editGroupMode:"Edit Group Mode",exitEditMode:"Exit Edit Mode",autoAddSearchTag:"Auto Add Search Tag With Prompt",importTags:"Import Tags",share:"Share",delete:"Delete",edit:"Edit",outputSuccess:"Share successfully",noTagsSelected:"No share tags selected",shareSelected:"Share selected Tag",batchShare:"Batch Share Tag",cancelShare:"Cancel Share",moveGroup:"Move Group",targetGroup:"Target Group",moveGroupBefore:"Move Before",moveGroupAfter:"Move After",importDanbooru:"Batch import",modifyTabSize:"Modify Tag Size",tabSizeConfig:"Tag Size Configuration",primaryTabConfig:"Primary Category Tab Configuration",groupTabConfig:"Group Category Tab Configuration",tabWidth:"Tab Width",tabHeight:"Tab Height",fontSize:"Font Size",fitContent:"Fit Content",customWidth:"Custom Width",resetDefault:"Reset to Default",tabSizeConfigSaved:"Tag size configuration saved",tabSizeConfigSaveFailed:"Failed to save tag size configuration"},loraManager:{windowTitle:"Lora Manager",modelWeight:"Model Weight",textEncoderWeight:"Text Encoder Weight",all:"All",root:"Root",refresh:"Refresh",cacheAll:"Cache all Lora information",searchPlaceholder:"Search Lora...",noResults:"No results found",prevPage:"prev page",nextPage:"next page",loadingMore:"Loadding more ...",noMoreData:"No more data"},message:{copySuccess:"Copy successful",copyFailed:"Copy failed",saveSuccess:"Save successful",saveFailed:"Save failed",deleteSuccess:"Delete successful",deleteFailed:"Delete failed",operationSuccess:"Operation successful",operationFailed:"Operation failed",networkError:"Network error",unknownError:"Unknown error",refreshSuccess:"Refresh successful",refreshFailed:"Refresh failed",loadingData:"Loading data...",dataLoaded:"Data loaded",editSuccess:"Edit successful",editFailed:"Edit failed",addSuccess:"Add successful",addFailed:"Add failed",addFavoriteSuccess:"Added to favorites",addFavoriteIsExist:"Added to favorites",error:"Error",moveSuccess:"Move successful",moveFailed:"Move failed",setLanguageSuccess:"Set language successful",setLanguageFailed:"Set language failed",startPanelSuccess:"Start panel successful",startPanelFailed:"Start panel failed",isLoading:"Loading...",loaddingPrc:"Execution progress {name}%",loaddingSuccess:"All loaded successfully",noFinishKuo:"The parentheses are incomplete. Please check the input",getTranslaterFail:"Get translator failed",applyTranslaterFail:"Apply translator failed",applyToTranslaterFail:"Switching to a translation library requires installing a translation library. Please install the translation library first and then apply the settings",applyTranslaterSuccess:"Apply translator successful",tranlaterPackageInstallFail:"Waiting for installation timeout, please check the background installation status. If the installation is successful, click install again to verify",tranlaterPackageInstallSuccess:"Successfully installed translation package",translaterTestFail:"Translation failed, please try using another translation service",installPackageSuccess:"Successfully installed translation package",installPackageFail:"Failed to install translation package, please check the background installation status",loadFailed:"load failed",jsonErrorMesg:"The format of the JSON file is incorrect",pleaseAddSub:"Please add the secondary classification first",pleaseAddMainCeb:"Please add the first-level category first",pleaseSelectGroup:"Please select the complete grouping path",isLoadingPleaseWait:"It is being executed. Please check the progress in the background",shareGroupError:"Failed to share and failed to obtain group information",shareTagError:"Failed to share and failed to obtain group tag information"},cloudWindow:{windowTitle:"Share Cloud Window",back:"Back",currentPath:"Current Path",tagDatabase:"Tag Database",danbooruDatabase:"Danbooru Database",open:"Open Folder",installed:"Installed",install:"Install",installing:"Installing..."},history:{title:"History",search_placeholder:"Search history...",windowTitle:"History",search:"Search",favorites:"Favorites",history:"History",refresh:"Refresh",refresh_history:"Refresh history",refresh_favorites:"Refresh favorites",add_to_favorites:"Add to favorites",delete_history:"Delete history",use_item:"Use",add_new:"Add new",bulk_delete:"Bulk delete",deleteHistoryConfirm:"Are you sure you want to delete history {name}?",deleteFavoriteConfirm:"Are you sure you want to delete favorite {name}?",confirmDeleteSelected:"Are you sure you want to delete selected information?",cancel_delete:"Cancel delete",sure_delete:"Sure delete",deleteSelected:"Delete selected",dialog:{add_tag:"Add favorite",edit_tag:"Edit favorite",name:"Name",name_placeholder:"Please enter name",tag:"Tag",tag_placeholder:"Please enter tag",background_color:"Background color",background_color_placeholder:"Please select background color",edit_favorite:"Edit favorite",delete_favorite:"Delete favorite"},edit_favorite:"Edit favorite",delete_favorite:"Delete favorite",use_favorite:"Use favorite"},floatingBall:{promptBox:"open Global Prompt Box",tagManager:"open Tag Manager",loraManager:"open Lora Manager",aiWindow:"open AI Chat",restoreWindow:"reset all windows",openNodeListWindow:"open Node List",tranToWeb:"Image to Web Utils",openSetting:"open Setting"},aiWindow:{windowTitle:"AI Chat Window",newChat:"New Chat",chatName:"Chat",thinking:"Thinking...",send:"Send",inputMessage:"Enter your message..."},translaterService:{niutrans:"niutrans",mymemory:"mymemory",alibaba:"alibaba",baidu:"baidu",modernmt:"modernmt",volcengine:"volcengine",iciba:"iciba",iflytek:"iflytek",google:"google",bing:"bing",lingvanex:"lingvanex",yandex:"yandex",itranslate:"itranslate",systran:"systran",argos:"argos",apertium:"apertium",reverso:"reverso",deepl:"deepl",cloudtranslation:"cloudtranslation",qqtransmart:"qqtransmart",translatecom:"translatecom",sogou:"sogou",tilde:"tilde",caiyun:"caiyun",qqfanyi:"qqfanyi",translateme:"translateme",papago:"papago",mirai:"mirai",youdao:"youdao",iflyrec:"iflyrec",hujiang:"hujiang",yeekit:"yeekit",languagewire:"languagewire",elia:"elia",judic:"judic",mglip:"mglip",utibet:"utibet"},translaterLanguage:{english:"english",chinese:"chinese",arabic:"arabic",russian:"russian",french:"french",german:"german",spanish:"spanish",portuguese:"portuguese",italian:"italian",japanese:"japanese",korean:"korean",greek:"greek",dutch:"dutch",hindi:"hindi",turkish:"turkish",malay:"malay",thai:"thai",vietnamese:"vietnamese",indonesian:"indonesian",hebrew:"hebrew",polish:"polish",mongolian:"mongolian",czech:"czech",hungarian:"hungarian",estonian:"estonian",bulgarian:"bulgarian",danish:"danish",finnish:"finnish",romanian:"romanian",swedish:"swedish",slovenian:"slovenian","persian/farsi":"persian/farsi",bosnian:"bosnian",serbian:"serbian",fijian:"fijian",filipino:"filipino",haitiancreole:"haitiancreole",catalan:"catalan",croatian:"croatian",latvian:"latvian",lithuanian:"lithuanian",urdu:"urdu",ukrainian:"ukrainian",welsh:"welsh",tahiti:"tahiti",tongan:"tongan",swahili:"swahili",samoan:"samoan",slovak:"slovak",afrikaans:"afrikaans",norwegian:"norwegian",bengali:"bengali",malagasy:"malagasy",maltese:"maltese","queretaro otomi":"queretaro otomi","klingon/tlhingan hol":"klingon/tlhingan hol",gujarati:"gujarati",tamil:"tamil",telugu:"telugu",punjabi:"punjabi",amharic:"amharic",azerbaijani:"azerbaijani",bashkir:"bashkir",belarusian:"belarusian",cebuano:"cebuano",chuvash:"chuvash",esperanto:"esperanto",basque:"basque",irish:"irish"},utils:{tranToWeb:"Image to HTML",dropOrPasteImage:"Drop or paste image here",downloadHtml:"Download HTML",copyHtml:"Copy HTML",copySuccess:"HTML copied to clipboard",copyFailed:"Failed to copy HTML",clear:"Clear"},importDialog:{title:"Batch import of Tags",sure:"Confirm and import",cleanAll:"Empty all",dumpSQL:"Export All SQL",uploadSQL:"Upload the original SQL file",setMainCeb:"Set up a first-level classification",setSubCeb:"Set up secondary classification",addTag:"Add Tag",fromJSONImput:"Import tags from the JSON file",fromTxtInput:"Batch import tags from TXT files",fromYmalInput:"Batch import tags from YMAL files",selectMainCeb:"Select the first-level classification",selectSubCeb:"Select the secondary classification",selectGroup:"Select the existing classification",sureSelect:"Confirm the selection",pleaseAddGroupName:"Please fill in the name of the first-level classification",pleaseAddSubGroupName:"Please fill in the name of the secondary classification",pleaseFullRequest:"Please fill in the information of the first-level and second-level classifications completely",successImport:"Import successful",importFail:"Import failed",dumpOnlySQL:"Only export the SQL of the Tag",settingOutputName:"Set the name of the export file",sureYes:"Sure",cancel:"Cancel",edit:"Edit",delete:"Delete",add:"Add Tag",pleaseMainCebUuid:"The original UUID of the first-level division is only required for incremental updates and cannot be modified",pleaseSubGroupUuid:"The secondary division of the original UUID is only required for incremental updates and cannot be modified",pleaseSubGroup:"Secondary classification name",pleaseMainCeb:"First-level classification name",translater:"Description",tips1:"Usage Tutorial:",tips1text:"Bilibili video tutorial",tips2:"Tag Cloud Warehouse:",tips2text:"GitHub repository",tips3:"Online batch editing:",tips3text:"Online editor",selectTitle:"Select Category",selectedCategories:"Selected Categories",clearAll:"Clear All",primaryCategories:"Primary Categories",subCategories:"Sub Categories",noSelectedCategories:"No categories selected",selectCategory:"Select this category",selectSubcategory:"Select this subcategory",sureSelect:"Confirm Selection"},randomUtils:{title:"Random Tag Rules Settings",generalSettings:"General Settings",totalTags:"Random Tag Total Number (If the rule range exceeds the total quantity, the maximum range is calculated by the total quantity)",rules:"Rules",addRule:"Add Rule",rule:"Rule",range:"Range",tagType:"Tag Type",category:"Tag Category",specificTags:"Specific Tags",selectCategory:"Select Category",addTagPlaceholder:"Enter tag and press Enter",addTag:"Add Tag",testRandom:"Test Random",generatedTags:"Generated Tags",selectTagGroup:"Select Tag Group",ruleTemplates:"Rule Templates",saveAsTemplate:"Save as Template",selectTemplate:"Select Template",applyTemplate:"Apply Template",templateNamePlaceholder:"Enter template name",templateNameRequired:"Template name is required",templateSaved:"Template saved",templateApplied:"Template applied",errorSavingTemplates:"Error saving templates",save:"Save",cancel:"Cancel",editTemplate:"Edit Name",deleteTemplate:"Delete",confirmDeleteTemplate:"Are you sure you want to delete this template?",templateDeleted:"Template deleted",templateUpdated:"Template name updated",errorUpdatingTemplate:"Update template failed",errorLoadingTemplate:"Load template failed",errorDeletingTemplate:"Delete template failed",pleaseChooseTemplate:"Please choose a template",errorApplyingTemplate:"Apply template failed",errorSavingTemplate:"Save template failed",newTemplate:"New Template",rulesReminder:"Reminder: The range of the first rule must start at 1! If the range exceeds the total number of random, it will simply display all not random!"},danbooruManager:{title:"Danbooru Manager",controle:"Controle",translatePlaceholder:"Please enter the tag to be translated",searchPlaceholder:"Input need search danbooru tag",pageShow:"Display per page:",pageLimit:"article",hot:"hot",aliases:"aliases",sureBatchDelete:"Batch deletion confirmation",sureBatchDeleteTips1:"You are sure you want to delete the selected one",sureBatchDeleteTips2:"A label? This operation is irrevocable.",sureDelete:"Confirm deletion",import:"Import in Danbooru format",importBatchTitle:"Batch import Danbooru data",importTitle:"Danbooru Import data display",add:"Add Danbooru Tag",edit:"Edit Danbooru Tag"}};/*! + */const VERSION$2="11.1.2";function initFeatureFlags(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(getGlobalThis().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(getGlobalThis().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(getGlobalThis().__INTLIFY_PROD_DEVTOOLS__=!1)}const I18nErrorCodes={UNEXPECTED_RETURN_TYPE:CORE_ERROR_CODES_EXTEND_POINT,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function createI18nError(e,...t){return createCompileError(e,null,void 0)}const TranslateVNodeSymbol=makeSymbol("__translateVNode"),DatetimePartsSymbol=makeSymbol("__datetimeParts"),NumberPartsSymbol=makeSymbol("__numberParts"),SetPluralRulesSymbol=makeSymbol("__setPluralRules"),InejctWithOptionSymbol=makeSymbol("__injectWithOption"),DisposeSymbol=makeSymbol("__dispose");function handleFlatJson(e){if(!isObject$2(e))return e;for(const t in e)if(hasOwn(e,t))if(!t.includes("."))isObject$2(e[t])&&handleFlatJson(e[t]);else{const a=t.split("."),n=a.length-1;let o=e,r=!1;for(let s=0;s{if("locale"in l&&"resource"in l){const{locale:c,resource:f}=l;c?(s[c]=s[c]||create(),deepCopy(f,s[c])):deepCopy(f,s)}else isString$1(l)&&deepCopy(JSON.parse(l),s)}),o==null&&r)for(const l in s)hasOwn(s,l)&&handleFlatJson(s[l]);return s}function getComponentOptions(e){return e.type}function adjustI18nResources(e,t,a){let n=isObject$2(t.messages)?t.messages:create();"__i18nGlobal"in a&&(n=getLocaleMessages(e.locale.value,{messages:n,__i18n:a.__i18nGlobal}));const o=Object.keys(n);o.length&&o.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(isObject$2(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(isObject$2(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function createTextNode(e){return createVNode(Text,null,e,0)}const DEVTOOLS_META="__INTLIFY_META__",NOOP_RETURN_ARRAY=()=>[],NOOP_RETURN_FALSE=()=>!1;let composerID=0;function defineCoreMissingHandler(e){return(t,a,n,o)=>e(a,n,getCurrentInstance()||void 0,o)}const getMetaInfo=()=>{const e=getCurrentInstance();let t=null;return e&&(t=getComponentOptions(e)[DEVTOOLS_META])?{[DEVTOOLS_META]:t}:null};function createComposer(e={}){const{__root:t,__injectWithOption:a}=e,n=t===void 0,o=e.flatJson,r=inBrowser?ref:shallowRef;let s=isBoolean$2(e.inheritLocale)?e.inheritLocale:!0;const l=r(t&&s?t.locale.value:isString$1(e.locale)?e.locale:DEFAULT_LOCALE),c=r(t&&s?t.fallbackLocale.value:isString$1(e.fallbackLocale)||isArray$1(e.fallbackLocale)||isPlainObject$2(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l.value),f=r(getLocaleMessages(l.value,e)),u=r(isPlainObject$2(e.datetimeFormats)?e.datetimeFormats:{[l.value]:{}}),d=r(isPlainObject$2(e.numberFormats)?e.numberFormats:{[l.value]:{}});let m=t?t.missingWarn:isBoolean$2(e.missingWarn)||isRegExp$1(e.missingWarn)?e.missingWarn:!0,g=t?t.fallbackWarn:isBoolean$2(e.fallbackWarn)||isRegExp$1(e.fallbackWarn)?e.fallbackWarn:!0,v=t?t.fallbackRoot:isBoolean$2(e.fallbackRoot)?e.fallbackRoot:!0,b=!!e.fallbackFormat,$=isFunction$1(e.missing)?e.missing:null,w=isFunction$1(e.missing)?defineCoreMissingHandler(e.missing):null,C=isFunction$1(e.postTranslation)?e.postTranslation:null,P=t?t.warnHtmlMessage:isBoolean$2(e.warnHtmlMessage)?e.warnHtmlMessage:!0,y=!!e.escapeParameter;const E=t?t.modifiers:isPlainObject$2(e.modifiers)?e.modifiers:{};let R=e.pluralRules||t&&t.pluralRules,F;F=(()=>{n&&setFallbackContext(null);const J={version:VERSION$2,locale:l.value,fallbackLocale:c.value,messages:f.value,modifiers:E,pluralRules:R,missing:w===null?void 0:w,missingWarn:m,fallbackWarn:g,fallbackFormat:b,unresolving:!0,postTranslation:C===null?void 0:C,warnHtmlMessage:P,escapeParameter:y,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};J.datetimeFormats=u.value,J.numberFormats=d.value,J.__datetimeFormatters=isPlainObject$2(F)?F.__datetimeFormatters:void 0,J.__numberFormatters=isPlainObject$2(F)?F.__numberFormatters:void 0;const ce=createCoreContext(J);return n&&setFallbackContext(ce),ce})(),updateFallbackLocale(F,l.value,c.value);function j(){return[l.value,c.value,f.value,u.value,d.value]}const fe=computed({get:()=>l.value,set:J=>{F.locale=J,l.value=J}}),oe=computed({get:()=>c.value,set:J=>{F.fallbackLocale=J,c.value=J,updateFallbackLocale(F,l.value,J)}}),V=computed(()=>f.value),q=computed(()=>u.value),Q=computed(()=>d.value);function O(){return isFunction$1(C)?C:null}function G(J){C=J,F.postTranslation=J}function ee(){return $}function A(J){J!==null&&(w=defineCoreMissingHandler(J)),$=J,F.missing=w}const L=(J,ce,Se,xe,Ne,Ce)=>{j();let Me;try{__INTLIFY_PROD_DEVTOOLS__,n||(F.fallbackContext=t?getFallbackContext():void 0),Me=J(F)}finally{__INTLIFY_PROD_DEVTOOLS__,n||(F.fallbackContext=void 0)}if(Se!=="translate exists"&&isNumber$1(Me)&&Me===NOT_REOSLVED||Se==="translate exists"&&!Me){const[Ie,We]=ce();return t&&v?xe(t):Ne(Ie)}else{if(Ce(Me))return Me;throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE)}};function W(...J){return L(ce=>Reflect.apply(translate$1,null,[ce,...J]),()=>parseTranslateArgs(...J),"translate",ce=>Reflect.apply(ce.t,ce,[...J]),ce=>ce,ce=>isString$1(ce))}function ae(...J){const[ce,Se,xe]=J;if(xe&&!isObject$2(xe))throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);return W(ce,Se,assign$1({resolvedMessage:!0},xe||{}))}function Y(...J){return L(ce=>Reflect.apply(datetime,null,[ce,...J]),()=>parseDateTimeArgs(...J),"datetime format",ce=>Reflect.apply(ce.d,ce,[...J]),()=>MISSING_RESOLVE_VALUE,ce=>isString$1(ce))}function ne(...J){return L(ce=>Reflect.apply(number,null,[ce,...J]),()=>parseNumberArgs(...J),"number format",ce=>Reflect.apply(ce.n,ce,[...J]),()=>MISSING_RESOLVE_VALUE,ce=>isString$1(ce))}function te(J){return J.map(ce=>isString$1(ce)||isNumber$1(ce)||isBoolean$2(ce)?createTextNode(String(ce)):ce)}const re={normalize:te,interpolate:J=>J,type:"vnode"};function B(...J){return L(ce=>{let Se;const xe=ce;try{xe.processor=re,Se=Reflect.apply(translate$1,null,[xe,...J])}finally{xe.processor=null}return Se},()=>parseTranslateArgs(...J),"translate",ce=>ce[TranslateVNodeSymbol](...J),ce=>[createTextNode(ce)],ce=>isArray$1(ce))}function z(...J){return L(ce=>Reflect.apply(number,null,[ce,...J]),()=>parseNumberArgs(...J),"number format",ce=>ce[NumberPartsSymbol](...J),NOOP_RETURN_ARRAY,ce=>isString$1(ce)||isArray$1(ce))}function Z(...J){return L(ce=>Reflect.apply(datetime,null,[ce,...J]),()=>parseDateTimeArgs(...J),"datetime format",ce=>ce[DatetimePartsSymbol](...J),NOOP_RETURN_ARRAY,ce=>isString$1(ce)||isArray$1(ce))}function D(J){R=J,F.pluralRules=R}function K(J,ce){return L(()=>{if(!J)return!1;const Se=isString$1(ce)?ce:l.value,xe=I(Se),Ne=F.messageResolver(xe,J);return isMessageAST(Ne)||isMessageFunction(Ne)||isString$1(Ne)},()=>[J],"translate exists",Se=>Reflect.apply(Se.te,Se,[J,ce]),NOOP_RETURN_FALSE,Se=>isBoolean$2(Se))}function x(J){let ce=null;const Se=fallbackWithLocaleChain(F,c.value,l.value);for(let xe=0;xe{s&&(l.value=J,F.locale=J,updateFallbackLocale(F,l.value,c.value))}),watch(t.fallbackLocale,J=>{s&&(c.value=J,F.fallbackLocale=J,updateFallbackLocale(F,l.value,c.value))}));const me={id:composerID,locale:fe,fallbackLocale:oe,get inheritLocale(){return s},set inheritLocale(J){s=J,J&&t&&(l.value=t.locale.value,c.value=t.fallbackLocale.value,updateFallbackLocale(F,l.value,c.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:V,get modifiers(){return E},get pluralRules(){return R||{}},get isGlobal(){return n},get missingWarn(){return m},set missingWarn(J){m=J,F.missingWarn=m},get fallbackWarn(){return g},set fallbackWarn(J){g=J,F.fallbackWarn=g},get fallbackRoot(){return v},set fallbackRoot(J){v=J},get fallbackFormat(){return b},set fallbackFormat(J){b=J,F.fallbackFormat=b},get warnHtmlMessage(){return P},set warnHtmlMessage(J){P=J,F.warnHtmlMessage=J},get escapeParameter(){return y},set escapeParameter(J){y=J,F.escapeParameter=J},t:W,getLocaleMessage:I,setLocaleMessage:X,mergeLocaleMessage:ie,getPostTranslationHandler:O,setPostTranslationHandler:G,getMissingHandler:ee,setMissingHandler:A,[SetPluralRulesSymbol]:D};return me.datetimeFormats=q,me.numberFormats=Q,me.rt=ae,me.te=K,me.tm=S,me.d=Y,me.n=ne,me.getDateTimeFormat=pe,me.setDateTimeFormat=T,me.mergeDateTimeFormat=_,me.getNumberFormat=M,me.setNumberFormat=U,me.mergeNumberFormat=_e,me[InejctWithOptionSymbol]=a,me[TranslateVNodeSymbol]=B,me[DatetimePartsSymbol]=Z,me[NumberPartsSymbol]=z,me}function convertComposerOptions(e){const t=isString$1(e.locale)?e.locale:DEFAULT_LOCALE,a=isString$1(e.fallbackLocale)||isArray$1(e.fallbackLocale)||isPlainObject$2(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=isFunction$1(e.missing)?e.missing:void 0,o=isBoolean$2(e.silentTranslationWarn)||isRegExp$1(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=isBoolean$2(e.silentFallbackWarn)||isRegExp$1(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=isBoolean$2(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,c=isPlainObject$2(e.modifiers)?e.modifiers:{},f=e.pluralizationRules,u=isFunction$1(e.postTranslation)?e.postTranslation:void 0,d=isString$1(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,m=!!e.escapeParameterHtml,g=isBoolean$2(e.sync)?e.sync:!0;let v=e.messages;if(isPlainObject$2(e.sharedMessages)){const E=e.sharedMessages;v=Object.keys(E).reduce((F,H)=>{const j=F[H]||(F[H]={});return assign$1(j,E[H]),F},v||{})}const{__i18n:b,__root:$,__injectWithOption:w}=e,C=e.datetimeFormats,P=e.numberFormats,y=e.flatJson;return{locale:t,fallbackLocale:a,messages:v,flatJson:y,datetimeFormats:C,numberFormats:P,missing:n,missingWarn:o,fallbackWarn:r,fallbackRoot:s,fallbackFormat:l,modifiers:c,pluralRules:f,postTranslation:u,warnHtmlMessage:d,escapeParameter:m,messageResolver:e.messageResolver,inheritLocale:g,__i18n:b,__root:$,__injectWithOption:w}}function createVueI18n(e={}){const t=createComposer(convertComposerOptions(e)),{__extender:a}=e,n={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return isBoolean$2(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=isBoolean$2(o)?!o:o},get silentFallbackWarn(){return isBoolean$2(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=isBoolean$2(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){return Reflect.apply(t.t,t,[...o])},rt(...o){return Reflect.apply(t.rt,t,[...o])},te(o,r){return t.te(o,r)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,r){t.setLocaleMessage(o,r)},mergeLocaleMessage(o,r){t.mergeLocaleMessage(o,r)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,r){t.setDateTimeFormat(o,r)},mergeDateTimeFormat(o,r){t.mergeDateTimeFormat(o,r)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,r){t.setNumberFormat(o,r)},mergeNumberFormat(o,r){t.mergeNumberFormat(o,r)}};return n.__extender=a,n}function defineMixin(e,t,a){return{beforeCreate(){const n=getCurrentInstance();if(!n)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const r=o.i18n;if(o.__i18n&&(r.__i18n=o.__i18n),r.__root=t,this===this.$root)this.$i18n=mergeToGlobal(e,r);else{r.__injectWithOption=!0,r.__extender=a.__vueI18nExtend,this.$i18n=createVueI18n(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=mergeToGlobal(e,o);else{this.$i18n=createVueI18n({__i18n:o.__i18n,__injectWithOption:!0,__extender:a.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;o.__i18nGlobal&&adjustI18nResources(t,o,o),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),a.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=getCurrentInstance();if(!n)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const o=this.$i18n;delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,o.__disposer&&(o.__disposer(),delete o.__disposer,delete o.__extender),a.__deleteInstance(n),delete this.$i18n}}}function mergeToGlobal(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[SetPluralRulesSymbol](t.pluralizationRules||e.pluralizationRules);const a=getLocaleMessages(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(a).forEach(n=>e.mergeLocaleMessage(n,a[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const baseFormatProps={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function getInterpolateArg({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,o)=>[...n,...o.type===Fragment?o.children:[o]],[]):t.reduce((a,n)=>{const o=e[n];return o&&(a[n]=o()),a},create())}function getFragmentableTag(){return Fragment}const TranslationImpl=defineComponent({name:"i18n-t",props:assign$1({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>isNumber$1(e)||!isNaN(e)}},baseFormatProps),setup(e,t){const{slots:a,attrs:n}=t,o=e.i18n||useI18n({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(a).filter(d=>d!=="_"),s=create();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=isString$1(e.plural)?+e.plural:e.plural);const l=getInterpolateArg(t,r),c=o[TranslateVNodeSymbol](e.keypath,l,s),f=assign$1(create(),n),u=isString$1(e.tag)||isObject$2(e.tag)?e.tag:getFragmentableTag();return h(u,f,c)}}}),Translation=TranslationImpl;function isVNode(e){return isArray$1(e)&&!isString$1(e[0])}function renderFormatter(e,t,a,n){const{slots:o,attrs:r}=t;return()=>{const s={part:!0};let l=create();e.locale&&(s.locale=e.locale),isString$1(e.format)?s.key=e.format:isObject$2(e.format)&&(isString$1(e.format.key)&&(s.key=e.format.key),l=Object.keys(e.format).reduce((m,g)=>a.includes(g)?assign$1(create(),m,{[g]:e.format[g]}):m,create()));const c=n(e.value,s,l);let f=[s.key];isArray$1(c)?f=c.map((m,g)=>{const v=o[m.type],b=v?v({[m.type]:m.value,index:g,parts:c}):[m.value];return isVNode(b)&&(b[0].key=`${m.type}-${g}`),b}):isString$1(c)&&(f=[c]);const u=assign$1(create(),r),d=isString$1(e.tag)||isObject$2(e.tag)?e.tag:getFragmentableTag();return h(d,u,f)}}const NumberFormatImpl=defineComponent({name:"i18n-n",props:assign$1({value:{type:Number,required:!0},format:{type:[String,Object]}},baseFormatProps),setup(e,t){const a=e.i18n||useI18n({useScope:e.scope,__useComponent:!0});return renderFormatter(e,t,NUMBER_FORMAT_OPTIONS_KEYS,(...n)=>a[NumberPartsSymbol](...n))}}),NumberFormat=NumberFormatImpl;function getComposer$1(e,t){const a=e;if(e.mode==="composition")return a.__getInstance(t)||e.global;{const n=a.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function vTDirective(e){const t=s=>{const{instance:l,value:c}=s;if(!l||!l.$)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const f=getComposer$1(e,l.$),u=parseValue(c);return[Reflect.apply(f.t,f,[...makeParams(u)]),f]};return{created:(s,l)=>{const[c,f]=t(l);inBrowser&&e.global===f&&(s.__i18nWatcher=watch(f.locale,()=>{l.instance&&l.instance.$forceUpdate()})),s.__composer=f,s.textContent=c},unmounted:s=>{inBrowser&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:l})=>{if(s.__composer){const c=s.__composer,f=parseValue(l);s.textContent=Reflect.apply(c.t,c,[...makeParams(f)])}},getSSRProps:s=>{const[l]=t(s);return{textContent:l}}}}function parseValue(e){if(isString$1(e))return{path:e};if(isPlainObject$2(e)){if(!("path"in e))throw createI18nError(I18nErrorCodes.REQUIRED_VALUE,"path");return e}else throw createI18nError(I18nErrorCodes.INVALID_VALUE)}function makeParams(e){const{path:t,locale:a,args:n,choice:o,plural:r}=e,s={},l=n||{};return isString$1(a)&&(s.locale=a),isNumber$1(o)&&(s.plural=o),isNumber$1(r)&&(s.plural=r),[t,l,s]}function apply(e,t,...a){const n=isPlainObject$2(a[0])?a[0]:{};(isBoolean$2(n.globalInstall)?n.globalInstall:!0)&&([Translation.name,"I18nT"].forEach(r=>e.component(r,Translation)),[NumberFormat.name,"I18nN"].forEach(r=>e.component(r,NumberFormat)),[DatetimeFormat.name,"I18nD"].forEach(r=>e.component(r,DatetimeFormat))),e.directive("t",vTDirective(t))}const I18nInjectionKey=makeSymbol("global-vue-i18n");function createI18n(e={}){const t=__VUE_I18N_LEGACY_API__&&isBoolean$2(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,a=isBoolean$2(e.globalInjection)?e.globalInjection:!0,n=new Map,[o,r]=createGlobal(e,t),s=makeSymbol("");function l(d){return n.get(d)||null}function c(d,m){n.set(d,m)}function f(d){n.delete(d)}const u={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(d,...m){if(d.__VUE_I18N_SYMBOL__=s,d.provide(d.__VUE_I18N_SYMBOL__,u),isPlainObject$2(m[0])){const b=m[0];u.__composerExtend=b.__composerExtend,u.__vueI18nExtend=b.__vueI18nExtend}let g=null;!t&&a&&(g=injectGlobalFields(d,u.global)),__VUE_I18N_FULL_INSTALL__&&apply(d,u,...m),__VUE_I18N_LEGACY_API__&&t&&d.mixin(defineMixin(r,r.__composer,u));const v=d.unmount;d.unmount=()=>{g&&g(),u.dispose(),v()}},get global(){return r},dispose(){o.stop()},__instances:n,__getInstance:l,__setInstance:c,__deleteInstance:f};return u}function useI18n(e={}){const t=getCurrentInstance();if(t==null)throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw createI18nError(I18nErrorCodes.NOT_INSTALLED);const a=getI18nInstance(t),n=getGlobalComposer(a),o=getComponentOptions(t),r=getScope(e,o);if(r==="global")return adjustI18nResources(n,e,o),n;if(r==="parent"){let c=getComposer(a,t,e.__useComponent);return c==null&&(c=n),c}const s=a;let l=s.__getInstance(t);if(l==null){const c=assign$1({},e);"__i18n"in o&&(c.__i18n=o.__i18n),n&&(c.__root=n),l=createComposer(c),s.__composerExtend&&(l[DisposeSymbol]=s.__composerExtend(l)),setupLifeCycle(s,t,l),s.__setInstance(t,l)}return l}function createGlobal(e,t){const a=effectScope(),n=__VUE_I18N_LEGACY_API__&&t?a.run(()=>createVueI18n(e)):a.run(()=>createComposer(e));if(n==null)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);return[a,n]}function getI18nInstance(e){const t=inject(e.isCE?I18nInjectionKey:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw createI18nError(e.isCE?I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE:I18nErrorCodes.UNEXPECTED_ERROR);return t}function getScope(e,t){return isEmptyObject(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function getGlobalComposer(e){return e.mode==="composition"?e.global:e.global.__composer}function getComposer(e,t,a=!1){let n=null;const o=t.root;let r=getParentComponentInstance(t,a);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const l=s.__getInstance(r);l!=null&&(n=l.__composer,a&&n&&!n[InejctWithOptionSymbol]&&(n=null))}if(n!=null||o===r)break;r=r.parent}return n}function getParentComponentInstance(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function setupLifeCycle(e,t,a){onMounted(()=>{},t),onUnmounted(()=>{const n=a;e.__deleteInstance(t);const o=n[DisposeSymbol];o&&(o(),delete n[DisposeSymbol])},t)}const globalExportProps=["locale","fallbackLocale","availableLocales"],globalExportMethods=["t","rt","d","n","tm","te"];function injectGlobalFields(e,t){const a=Object.create(null);return globalExportProps.forEach(o=>{const r=Object.getOwnPropertyDescriptor(t,o);if(!r)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);const s=isRef(r.value)?{get(){return r.value.value},set(l){r.value.value=l}}:{get(){return r.get&&r.get()}};Object.defineProperty(a,o,s)}),e.config.globalProperties.$i18n=a,globalExportMethods.forEach(o=>{const r=Object.getOwnPropertyDescriptor(t,o);if(!r||!r.value)throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,r)}),()=>{delete e.config.globalProperties.$i18n,globalExportMethods.forEach(o=>{delete e.config.globalProperties[`$${o}`]})}}const DatetimeFormatImpl=defineComponent({name:"i18n-d",props:assign$1({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},baseFormatProps),setup(e,t){const a=e.i18n||useI18n({useScope:e.scope,__useComponent:!0});return renderFormatter(e,t,DATETIME_FORMAT_OPTIONS_KEYS,(...n)=>a[DatetimePartsSymbol](...n))}}),DatetimeFormat=DatetimeFormatImpl;if(initFeatureFlags(),registerMessageCompiler(compile),registerMessageResolver(resolveValue),registerLocaleFallbacker(fallbackWithLocaleChain),__INTLIFY_PROD_DEVTOOLS__){const e=getGlobalThis();e.__INTLIFY__=!0,setDevToolsHook(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const _export_sfc=(e,t)=>{const a=e.__vccOpts||e;for(const[n,o]of t)a[n]=o;return a},_hoisted_1$s={class:"weilin_prompt_ui_window-title"},_hoisted_2$p=["title"],_sfc_main$t={__name:"DraggableWindow",props:{title:{type:String,required:!0},position:{type:Object,required:!0},size:{type:Object,required:!0},zIndex:{type:Number,default:1},name:{type:String,default:"default_window_name"}},emits:["update:position","update:size","active","close"],setup(e,{emit:t}){const a=e,{t:n}=useI18n(),o=t,r=ref({x:0,y:0}),s=ref({width:600,height:400});watch(()=>a.position,R=>{R&&(r.value={...R},window.parent.postMessage({type:`weilin_prompt_ui_window_change_${a.name}_position`},"*"))},{immediate:!0,deep:!0}),watch(()=>a.size,R=>{R&&(s.value={...R},window.parent.postMessage({type:`weilin_prompt_ui_window_change_${a.name}_size`},"*"))},{immediate:!0,deep:!0});const l=()=>{window.parent.postMessage({type:`weilin_prompt_ui_window_change_${a.name}_scroll`},"*")};onMounted(()=>{var R;if(a.position){const F=window.innerWidth,H=window.innerHeight,j=100;let fe=a.position.x,oe=a.position.y;fe=Math.max(j-(((R=a.size)==null?void 0:R.width)||s.value.width),fe),fe=Math.min(fe,F-100),oe=Math.max(100,oe),oe=Math.min(oe,H-100),r.value={x:fe,y:oe}}a.size&&(s.value={...a.size})});const c=ref(!1),f=ref({x:0,y:0}),u=R=>{c.value=!0,f.value={x:R.clientX-r.value.x,y:R.clientY-r.value.y},document.addEventListener("mousemove",d),document.addEventListener("mouseup",m)},d=R=>{if(c.value){const F=window.innerWidth,H=window.innerHeight,j=100;let fe=R.clientX-f.value.x,oe=R.clientY-f.value.y;fe=Math.max(j-s.value.width,fe),fe=Math.min(fe,F-100),oe=Math.max(100,oe),oe=Math.min(oe,H-100);const V={x:fe,y:oe};r.value=V,o("update:position",V)}},m=()=>{c.value=!1,document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",m)},g=ref(!1),v=ref({x:0,y:0}),b=ref({width:0,height:0}),$=R=>{g.value=!0,v.value={x:R.clientX,y:R.clientY},b.value={...s.value},document.addEventListener("mousemove",w),document.addEventListener("mouseup",C)},w=R=>{if(g.value){const F=R.clientX-v.value.x,H=R.clientY-v.value.y,j={width:Math.max(200,b.value.width+F),height:Math.max(200,b.value.height+H)};s.value=j,o("update:size",j)}},C=()=>{g.value=!1,document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",C)},P=()=>{o("active")},y=()=>{o("close")},E=R=>{P(),u(R)};return(R,F)=>(openBlock(),createBlock(Teleport,{to:"#weilin_comfyui_tools_prompt_ui_div"},[createBaseVNode("div",{class:"weilin_prompt_ui_draggable-window",style:normalizeStyle({left:`${r.value.x}px`,top:`${r.value.y}px`,width:`${s.value.width}px`,height:`${s.value.height}px`,zIndex:e.zIndex}),onMousedown:P},[createBaseVNode("div",{class:"weilin_prompt_ui_window-header",onMousedown:withModifiers(E,["stop"])},[createBaseVNode("div",_hoisted_1$s,toDisplayString$1(e.title),1),createBaseVNode("button",{class:"weilin_prompt_ui_close-btn",onClick:y},"×")],32),createBaseVNode("div",{class:"weilin_prompt_ui_window-content",onScroll:l},[renderSlot(R.$slots,"default",{},void 0,!0)],32),createBaseVNode("div",{class:"weilin_prompt_ui_resize-handle",title:unref(n)("common.windowSize"),onMousedown:withModifiers($,["stop"])},null,40,_hoisted_2$p)],36)]))}},DraggableWindow=_export_sfc(_sfc_main$t,[["__scopeId","data-v-5d02be5b"]]),version="v0.0.67",zh_CN={promptBox:{placeholder:"请输入文本...",delete:"删除",newline:"换行",tab:"制表符",windowTitle:"WeiLin提示词UI窗口 "+version,windowTitleGlobal:"WeiLin全局提示词UI窗口 "+version,translate:"翻译",translatePlaceholder:"请输入要翻译的文本,回车即可",weight:"权重",weightPlaceholder:"请输入权重",addBracket:"添加括号",removeLayer:"减去括号",hiddenHint:"双击显示提示词",tagTips:"鼠标左键双击屏蔽Tag
鼠标左键单击Tag可以编辑
鼠标左键拖动可以拖动Tag",oneClickRandomTag:"一键随机Tag",randomTagSettings:"设置随机Tag规则",oneClickTranslate:"一键翻译Tag",modelWeight:"模型权重",textWeight:"文本权重",favour:"收藏",lineToken:"换行",addLineToken:"添加换行符",settings:{title:"设置",cancel:"取消",save:"保存",translator:"翻译设置",sourceLanguage:"源语言",targetLanguage:"目标语言",chinese_simplified:"简体中文",english:"英语",close:"关闭",auto_detect:"自动检测",setting_floating_ball:"悬浮球设置",setting_prompt_box:"提示词设置",enablePromptCommaShow:"显示提示词逗号",floatingBallCount:"悬浮球数量",floatingBallCountPlaceholder:"请输入悬浮球数量",floatingBallSize:"悬浮球宽度",floatingBallSizePlaceholder:"请输入悬浮球宽度",floatingBallHeight:"悬浮球高度",floatingBallHeightPlaceholder:"请输入悬浮球高度",enableFloatingBall:"启用悬浮球",enableCommaConversion:"启用逗号转换,全角逗号转为半角逗号",enablePeriodConversion:"启用句号转换,全角句号转为半角句号",enableBracketConversion:"启用括号转换,全角括号转为半角括号",enableAngleBracketConversion:"启用尖括号转换,全角尖括号转为半角尖括号",enableUnderscoreToBracket:"启用下划线转换,下划线转换为空格",enableBracketEscape:"启用括号转义,自动添加\\转义括号",enableCommaCloseAutocomplete:"启动逗号关闭补全,输入逗号立即关闭补全列表",setting_openai_box:"OpenAI设置",openai_api_key:"API Key",openai_api_key_placeholder:"请输入API Key",openai_api_key_save:"保存",openaiSettings:"OpenAI设置",openai_base_url:"Base URL",openai_base_url_placeholder:"请输入Base URL",openai_model:"模型",openai_model_placeholder:"请输入模型",not_set:"未设置",edit:"编辑",delete:"删除",selectedOpenaiConfig:"当前选择的OpenAI配置",addNewConfig:"添加OpenAI配置",setting_sponsor_me:"赞助我",sponsorMe:"赞助我",sponsorMeTip:"赞助我,支持我继续开发",sponsorMeLink:"唯一赞助链接 https://afdian.com/a/weilin9999",setting_start_panel:"启动面板",startPanel:"启动面板",startPanelTip:"点击启动面板,启动成功后会自动打开面板页面",selectTranslater:"选择翻译器",selectOptionNetworkTranslater:"三方网络翻译",selectOptionPythonTranslater:"翻译库翻译",apply:"应用",selectOptionNetworkTranslaterTitle:"三方网络翻译设置",selectOptionPythonTranslaterTitle:"翻译库设置",selectOptionNetworkTranslaterInfo:"使用的三方工具是(仅网络翻译)",selectOptionPythonTranslaterInfo:"使用的翻译包为translators",install:"安装",nowTranlaterPackageState:"当前翻译包状态:",tranlaterPackageStateTrue:"已安装",tranlaterPackageStateFlase:"未安装",installed:"正在安装中...",installTranslaterPackageInfo:"当前正在安装翻译库中,请不要关闭窗口!等待安装完成",translaterSetting:"翻译设置",chooseTranslaterSetting:"选择翻译服务:",translaterLangSourceSetting:"翻译语言:",translaterLangTargeSetting:"翻译目标语言:",saveTranslaterSetting:"保存设置",testTranslaterTitle:"测试翻译",inputTestTranslater:"输入翻译内容:",outPutTestTranslater:"翻译结果:",testingTranslater:"测试翻译",inputTestTranslaterPlaceholder:"请输入要翻译的内容",outPutTestTranslaterPlaceholder:"翻译结果将显示在这里",errorPrompt:"读取节点提示词失败!",setting_auto_complete_limit:"补全提示设置",show_auto_limit:"显示补全提示数量",showAutoLimitPlaceholder:"请输入要显示的数量",settingAutoCompleteWidth:"设置补全提示框宽度",settingAutoCompleteWidthPlaceholder:"请输入宽度",settingAutoCompleteHeight:"设置补全提示框最大高度",settingAutoCompleteHeightPlaceholder:"请输入最大高度",skinSetting:"皮肤设置",defaultSkin:"默认皮肤",customSkin:"自定义皮肤",uploadSkin:"上传皮肤",bgSetting:"背景设置",gradientBg:"渐变颜色",transparentBg:"透明",gradientColor:"渐变颜色选择",borderRadius:"圆角设置",resetToDefault:"恢复默认"}},controls:{language:"语言",settings:"设置",switchTheme:"切换主题",darkMode:"夜间模式",lightMode:"日间模式",tagManager:"标签管理",loraStack:"Lora堆",loraManager:"Lora管理",history:"历史记录",addLora:"添加Lora",removeLora:"移除Lora",lookOnLora:"查看Lora",aiChat:"AI对话",github:"Github主页",shareCloudData:"共享云数据",tutorialVideo:"教程视频",sponsor:"赞助我",danbooruManager:"Danbooru管理器"},theme:{toggle:"切换主题"},common:{confirmDelete:"确认删除",delete:"删除",cancel:"取消",confirm:"确定",edit:"编辑",save:"保存",refresh:"刷新",copy:"复制",copySuccess:"复制成功",copyFailed:"复制失败",windowSize:"调节窗口大小",showMore:"显示更多",showLess:"收起"},cloudWindow:{windowTitle:"共享云仓库",back:"返回上一级",currentPath:"当前路径",tagDatabase:"Tag 数据库",danbooruDatabase:"Danbooru 数据库",open:"打开文件夹",installed:"已安装",install:"安装",installing:"正在安装..."},nodeListWindow:{windowTitle:"节点列表",openPromptUI:"打开提示词编辑器"},lora:{title:"Lora 信息",rawTitle:"LoraRaw",file:"文件",hash:"Hash值",civitai:"Civitai",viewOnCivitai:"在 Civitai 上查看",fetchFromCivitai:"从 Civitai 获取信息",modelNotFound:"模型未找到",modelNotFoundTip:"该模型在 Civitai 上未找到,可能是私有模型或已被删除",name:"名称",nameTip:"模型的显示名称",type:"类型",baseModel:"基础模型",trainedWords:"训练词",trainedWordsTip:"模型训练时使用的关键词,点击可选择复制",selectedWords:"已选择 {count} 个词",strengthMin:"最小强度",strengthMinTip:"推荐的最小强度值",strengthMax:"最大强度",strengthMaxTip:"推荐的最大强度值",promptWords:"提示词",promptWordsTip:"使用该模型时的推荐提示词",loraWorks:"Lora提示词",strWeight:"文本强度权重",hideLora:"禁用Lora",showLora:"启用Lora",baseModel:"基础模型",skipClip:"跳过层",seeLoraRaw:"查看LoraRaw",addDiyFiled:"添加自定义字段",getCivitData:"获取Civitai信息",copy:"复制"},tagManager:{deletePrimaryCategoryConfirm:"确定要删除分类 {name} 吗?",deleteGroupConfirm:"确定要删除分组 {name} 吗?",deleteTagConfirm:"确定要删除标签 {name} 吗?",windowTitle:"标签管理器",categories:"分类管理",groups:"分组管理",selectCategory:"请选择分类",selectGroup:"请选择分组",addPrimaryCategory:"添加分类",addGroup:"添加分组",editPrimaryCategory:"编辑分类",editGroup:"编辑分组",editTag:"编辑标签",categoryName:"分类名称",categoryNamePlaceholder:"请输入分类名称",categoryNameRequired:"分类名称不能为空",groupName:"分组名称",groupNamePlaceholder:"请输入分组名称",groupNameRequired:"分组名称不能为空",addTag:"添加Tag",text:"Tag描述",textPlaceholder:"请输入Tag描述",description:"Tag",descriptionPlaceholder:"请输入Tag",textRequired:"Tag和Tag描述不能为空",favourRequired:"Tag和Tag描述不能为空,且必须选择分组",backgroundColor:"背景颜色",colorPickerTitle:"选择颜色",opacity:"透明度",searchPlaceholder:"搜索Tag...",noResults:"未找到相关结果",searchInCategory:"在分类中",searchInTag:"在Tag中",save:"保存",cancel:"取消",confirm:"确定",delete:"删除",addSubCategory:"添加子分类",editSubCategory:"编辑子分类",subCategoryName:"子分类名称",subCategoryNamePlaceholder:"请输入子分类名称",subCategoryNameRequired:"子分类名称不能为空",deleteConfirmTitle:"确认删除",deleteConfirmMessage:"此操作将永久删除该{type},是否继续?",deleteSuccess:"删除成功",deleteFailed:"删除失败",saveSuccess:"保存成功",saveFailed:"保存失败",colorPickerAlpha:"透明度",colorPickerHex:"十六进制颜色值",colorPreview:"颜色预览",dragToSort:"拖动排序",searchTags:"搜索标签",noTagsFound:"未找到标签",noGroupsFound:"未找到分组",noCategoriesFound:"未找到分类",refresh:"刷新",refreshing:"刷新中...",refreshSuccess:"刷新成功",refreshFailed:"刷新失败",search:"搜索",searching:"搜索中...",searchResult:"搜索结果",searchInPath:"位于: {path}",category:"分类",group:"分组",tag:"标签",resultType:{category:"分类",group:"分组",tag:"标签"},hasDeleteAction:"批量删除",deleteSelected:"删除选中",confirmDeleteSelected:"确定要删除选中标签吗?",cancelDelete:"取消删除",moveTag:"移动标签",targetTag:"目标标签",movePosition:"移动位置",moveBefore:"移动到目标标签之前",moveAfter:"移动到目标标签之后",editTag:"编辑标签",deleteTag:"删除标签",editGroupMode:"编辑模式",exitEditMode:"退出编辑模式",autoAddSearchTag:"搜索的Tag自动添加到提示词中",importTags:"批量导入Tag",share:"分享",delete:"删除",edit:"编辑",outputSuccess:"分享成功",noTagsSelected:"没有选择要分享的Tag",shareSelected:"分享选择的Tag",batchShare:"批量分享Tag",cancelShare:"取消分享",moveGroup:"移动分组",targetGroup:"目标分组",moveGroupBefore:"移动到目标分组之前",moveGroupAfter:"移动到目标分组之后",importDanbooru:"批量导入",modifyTabSize:"修改标签尺寸",tabSizeConfig:"标签尺寸配置",primaryTabConfig:"一级分类标签配置",groupTabConfig:"二级分类标签配置",tabWidth:"标签宽度",tabHeight:"标签高度",fontSize:"字体大小",fitContent:"自适应内容",customWidth:"自定义宽度",resetDefault:"重置为默认值",tabSizeConfigSaved:"标签尺寸配置已保存",tabSizeConfigSaveFailed:"标签尺寸配置保存失败"},loraManager:{windowTitle:"Lora管理",modelWeight:"模型权重",textEncoderWeight:"文本权重",all:"全部",root:"根目录",refresh:"刷新",cacheAll:"缓存全部Lora信息",searchPlaceholder:"搜索Lora...",prevPage:"上一页",nextPage:"下一页",noResults:"未找到相关结果",loadingMore:"正在加载更多...",noMoreData:"没有更多结果了"},message:{copySuccess:"复制成功",copyFailed:"复制失败",saveSuccess:"保存成功",saveFailed:"保存失败",deleteSuccess:"删除成功",deleteFailed:"删除失败",operationSuccess:"操作成功",operationFailed:"操作失败",networkError:"网络错误",unknownError:"未知错误",refreshSuccess:"刷新成功",refreshFailed:"刷新失败",loadingData:"加载数据中...",dataLoaded:"数据加载完成",editSuccess:"编辑成功",editFailed:"编辑失败",addSuccess:"添加成功",addFailed:"添加失败",addFavoriteSuccess:"已添加到收藏夹",addFavoriteIsExist:"已添加到收藏夹",error:"错误",editNameExist:"名称已存在",moveSuccess:"移动成功",moveFailed:"移动失败",setLanguageSuccess:"设置语言成功",setLanguageFailed:"设置语言失败",startPanelSuccess:"启动面板成功",startPanelFailed:"启动面板失败",isLoading:"已在执行中请等待",loaddingPrc:"执行进度 {name}%",loaddingSuccess:"已全部加载成功",noFinishKuo:"括号不完整,请检查输入",getTranslaterFail:"获取翻译设置失败",applyTranslaterFail:"应用翻译设置失败",applyToTranslaterFail:"切换翻译库翻译需要安装翻译库,请先安装翻译库再应用设置",applyTranslaterSuccess:"应用翻译设置成功",tranlaterPackageInstallFail:"等待安装超时,请查看后台安装情况,若安装成功再次点击安装即可验证",tranlaterPackageInstallSuccess:"安装翻译包成功",translaterTestFail:"翻译失败,请使用其它的翻译服务进行尝试",installPackageSuccess:"安装共享数据成功!",installPackageFail:"安装共享数据失败,请查看后台错误",loadFailed:"加载失败",jsonErrorMesg:"JSON文件格式错误",pleaseAddSub:"请先添加二级分类",pleaseAddMainCeb:"请先添加一级分类",pleaseSelectGroup:"请选择完整的分组路径",isLoadingPleaseWait:"正在执行中,请查看后台进度",shareGroupError:"分享失败,获取分组信息失败",shareTagError:"分享失败,获取组Tag信息失败"},history:{title:"历史记录",search_placeholder:"搜索历史记录...",search:"搜索",windowTitle:"历史记录",favorites:"收藏夹",history:"历史记录",refresh:"刷新",refresh_history:"刷新历史记录",refresh_favorites:"刷新收藏夹",add_to_favorites:"添加到收藏夹",delete_history:"删除历史记录",use_item:"使用",add_new:"添加收藏",bulk_delete:"批量删除",deleteHistoryConfirm:"确定要删除历史记录 {name} 吗?",deleteFavoriteConfirm:"确定要删除收藏夹 {name} 吗?",confirmDeleteSelected:"确定要删除选中的信息吗?",cancel_delete:"取消删除",sure_delete:"确定删除",deleteSelected:"删除选中",dialog:{add_tag:"添加收藏",edit_tag:"编辑收藏",name:"名称",name_placeholder:"请输入名称",tag:"标签",tag_placeholder:"请输入标签",background_color:"背景颜色",background_color_placeholder:"请选择背景颜色",edit_favorite:"编辑收藏",delete_favorite:"删除收藏"},edit_favorite:"编辑收藏",delete_favorite:"删除收藏",use_favorite:"使用收藏"},floatingBall:{promptBox:"打开全局提示词",tagManager:"打开标签管理",loraManager:"打开Lora管理",aiWindow:"打开AI对话",restoreWindow:"重置所有窗口",openNodeListWindow:"打开节点列表",tranToWeb:"图片转换工具",openSetting:"打开设置"},aiWindow:{windowTitle:"AI对话窗口",newChat:"新建对话",chatName:"对话",thinking:"思考中...",send:"发送",inputMessage:"输入你的消息..."},translaterService:{niutrans:"小牛翻译",mymemory:"MyMemory",alibaba:"阿里巴巴翻译",baidu:"百度翻译",modernmt:"ModernMT",volcengine:"火山翻译",iciba:"金山词霸",iflytek:"科大讯飞翻译",google:"谷歌翻译",bing:"必应翻译",lingvanex:"Lingvanex",yandex:"Yandex翻译",itranslate:"iTranslate",systran:"SYSTRAN",argos:"Argos翻译",apertium:"Apertium",reverso:"Reverso翻译",deepl:"DeepL翻译",cloudtranslation:"云翻译",qqtransmart:"腾讯翻译君",translatecom:"Translate.com",sogou:"搜狗翻译",tilde:"Tilde翻译",caiyun:"彩云小译",qqfanyi:"腾讯翻译",translateme:"TranslateMe",papago:"Papago翻译",mirai:"未来翻译",youdao:"有道翻译",iflyrec:"讯飞听见翻译",hujiang:"沪江翻译",yeekit:"译库翻译",languagewire:"LanguageWire",elia:"Elia翻译",judic:"Judic翻译",mglip:"蒙古语翻译",utibet:"藏语翻译"},translaterLanguage:{english:"英语",chinese:"中文",arabic:"阿拉伯语",russian:"俄语",french:"法语",german:"德语",spanish:"西班牙语",portuguese:"葡萄牙语",italian:"意大利语",japanese:"日语",korean:"韩语",greek:"希腊语",dutch:"荷兰语",hindi:"印地语",turkish:"土耳其语",malay:"马来语",thai:"泰语",vietnamese:"越南语",indonesian:"印度尼西亚语",hebrew:"希伯来语",polish:"波兰语",mongolian:"蒙古语",czech:"捷克语",hungarian:"匈牙利语",estonian:"爱沙尼亚语",bulgarian:"保加利亚语",danish:"丹麦语",finnish:"芬兰语",romanian:"罗马尼亚语",swedish:"瑞典语",slovenian:"斯洛文尼亚语","persian/farsi":"波斯语/波斯语",bosnian:"波斯尼亚语",serbian:"塞尔维亚语",fijian:"斐济语",filipino:"菲律宾语",haitiancreole:"海地克里奥尔语",catalan:"加泰罗尼亚语",croatian:"克罗地亚语",latvian:"拉脱维亚语",lithuanian:"立陶宛语",urdu:"乌尔都语",ukrainian:"乌克兰语",welsh:"威尔士语",tahiti:"塔希提语",tongan:"汤加语",swahili:"斯瓦希里语",samoan:"萨摩亚语",slovak:"斯洛伐克语",afrikaans:"南非荷兰语",norwegian:"挪威语",bengali:"孟加拉语",malagasy:"马达加斯加语",maltese:"马耳他语","queretaro otomi":"克雷塔罗奥托米语","klingon/tlhingan hol":"克林贡语",gujarati:"古吉拉特语",tamil:"泰米尔语",telugu:"泰卢固语",punjabi:"旁遮普语",amharic:"阿姆哈拉语",azerbaijani:"阿塞拜疆语",bashkir:"巴什基尔语",belarusian:"白俄罗斯语",cebuano:"宿务语",chuvash:"楚瓦什语",esperanto:"世界语",basque:"巴斯克语",irish:"爱尔兰语"},utils:{tranToWeb:"转换图片为HTML",dropOrPasteImage:"点击本区域可以上传文件也可以拖动图片或粘贴图片到此处",downloadHtml:"下载HTML",copyHtml:"复制HTML",copySuccess:"HTML已复制",copyFailed:"复制HTML失败",clear:"清空内容"},importDialog:{title:"批量导入Tag",sure:"确认并导入",cleanAll:"清空所有",dumpSQL:"导出所有SQL",uploadSQL:"上传原始SQL文件",setMainCeb:"设置一级分类",setSubCeb:"设置二级分类",addTag:"添加Tag",fromJSONImput:"从JSON文件批量导入Tag",fromTxtInput:"从TXT文件批量导入Tag",fromYmalInput:"从YAML文件批量导入Tag",selectMainCeb:"选择一级分类",selectSubCeb:"选择二级分类",selectGroup:"选择已有分类",sureSelect:"确认选择",pleaseAddGroupName:"请填写一级分类名称",pleaseAddSubGroupName:"请填写二级分类名称",pleaseFullRequest:"请填写完整一级分类和二级分类信息",successImport:"导入成功",importFail:"导入失败",dumpOnlySQL:"仅导出Tag的SQL",settingOutputName:"设置导出文件名称",sureYes:"确认",cancel:"取消",edit:"编辑",delete:"删除",add:"添加Tag",pleaseMainCebUuid:"一级分原UUID,增量更新才需要",pleaseSubGroupUuid:"二级分原UUID,增量更新才需要",pleaseSubGroup:"二级分类名称",pleaseMainCeb:"一级分类名称",translater:"描述",tips1:"使用教程:",tips1text:"B站视频教程",tips2:"Tag云仓库:",tips2text:"GitHub仓库",tips3:"在线批量编辑:",tips3text:"在线编辑器",selectTitle:"选择分类",selectedCategories:"已选择的分类",clearAll:"清除全部",primaryCategories:"一级分类",subCategories:"二级分类",noSelectedCategories:"暂无选择的分类",selectCategory:"选择此分类",selectSubcategory:"选择此子分类",sureSelect:"确认选择"},randomUtils:{title:"随机Tag规则设置",generalSettings:"通用设置",totalTags:"随机Tag总数量(规则范围超过总数量按总数量算最大范围)",rules:"规则",addRule:"添加规则",rule:"规则",range:"范围",tagType:"标签类型",category:"Tag数据",specificTags:"特定标签",selectCategory:"选择分类",addTagPlaceholder:"输入标签并按回车",addTag:"添加标签",testRandom:"测试随机",generatedTags:"生成的标签",selectTagGroup:"选择Tag分组",ruleTemplates:"规则模板",saveAsTemplate:"保存为模板",selectTemplate:"选择模板",applyTemplate:"应用模板",templateNamePlaceholder:"输入模板名称",templateNameRequired:"请输入模板名称",templateSaved:"模板已保存",templateApplied:"模板已应用",errorSavingTemplates:"保存模板时出错",save:"保存",cancel:"取消",editTemplate:"修改名称",deleteTemplate:"删除模板",confirmDeleteTemplate:"确定要删除此模板吗?",templateDeleted:"模板已删除",templateUpdated:"模板名称已更新",errorUpdatingTemplate:"更新模板失败",errorLoadingTemplate:"加载模板失败",errorDeletingTemplate:"删除模板失败",errorApplyingTemplate:"应用模板失败",pleaseChooseTemplate:"请选择模板",errorSavingTemplate:"保存模板失败",newTemplate:"新建模板",rulesReminder:"提醒:第一个规则的范围必须从1开始!如果范围区间超过了随机的总数则直接显示全部不会随机!"},danbooruManager:{title:"Danbooru管理器",controle:"操作",translatePlaceholder:"请输入对应的翻译文本",searchPlaceholder:"输入需要搜索的Danbooru标签...",pageShow:"每页显示:",pageLimit:"条",hot:"热度",aliases:"分区",sureBatchDelete:"批量删除确认",sureBatchDeleteTips1:"您确定要删除选中的",sureBatchDeleteTips2:"个标签吗?此操作不可撤销。",sureDelete:"确认删除",import:"Danbooru格式导入",importBatchTitle:"批量导入Danbooru数据",importTitle:"Danbooru 导入数据展示",add:"添加Danbooru标签",edit:"编辑Danbooru标签"}},en_US={promptBox:{placeholder:"Please enter text...",delete:"Delete",newline:"New Line",tab:"Tab",windowTitle:"WeiLin Prompt UI Window "+version,windowTitleGlobal:"WeiLin Global Prompt UI Window "+version,translate:"Translate",translatePlaceholder:"Please enter the text to be translated",weight:"Weight",weightPlaceholder:"Please enter the weight",addBracket:"Add Bracket",removeLayer:"Remove Bracket",hiddenHint:"Double-click to show",tagTips:"Double-click the left mouse button to mask the Tag
click the Tag to edit
and drag the Tag to drag",oneClickRandomTag:"one Click Random Tag",randomTagSettings:"setting Random Tag",oneClickTranslate:"one Click Translate Tag",modelWeight:"Model Weight",textWeight:"Text Weight",favour:"Favour",lineToken:"Line Break",addLineToken:"Add Line Break Token",settings:{title:"Settings",cancel:"Cancel",save:"Save",translator:"Translator",sourceLanguage:"Source Language",targetLanguage:"Target Language",chinese_simplified:"Chinese Simplified",english:"English",close:"Close",auto_detect:"Auto Detect",setting_floating_ball:"Setting Floating Ball",setting_prompt_box:"Setting Prompt Box",enablePromptCommaShow:"Show Prompt Comma",floatingBallCount:"Floating Ball Count",floatingBallCountPlaceholder:"Please enter the number of floating balls",floatingBallSize:"Width of suspended ball",floatingBallSizePlaceholder:"Please enter the width of the suspension ball",floatingBallHeight:"Height of suspended ball",floatingBallHeightPlaceholder:"Please input the height of the suspension ball",enableFloatingBall:"Enable Floating Ball",enableCommaConversion:"Enable Comma Conversion",enablePeriodConversion:"Enable Period Conversion",enableBracketConversion:"Enable Bracket Conversion",enableAngleBracketConversion:"Enable Angle Bracket Conversion",enableUnderscoreToBracket:"Enable Underscore to Bracket",setting_openai_box:"OpenAI Settings",openai_api_key:"API Key",openai_api_key_placeholder:"Please enter API Key",openai_api_key_save:"Save",openaiSettings:"OpenAI Settings",openaiSettings_api_key:"API Key",openaiSettings_api_key_placeholder:"Please enter API Key",openaiSettings_api_key_save:"Save",openai_base_url:"Base URL",openai_base_url_placeholder:"Please enter Base URL",openai_model:"Model",openai_model_placeholder:"Please enter Model",not_set:"Not Set",edit:"Edit",delete:"Delete",selectedOpenaiConfig:"Selected OpenAI Config",addNewConfig:"Add New Config",setting_sponsor_me:"Sponsor Me",sponsorMe:"Sponsor Me",sponsorMeTip:"Sponsor Me, Support Me to Continue Development",sponsorMeLink:"Unique Sponsor Link https://afdian.com/a/weilin9999",setting_start_panel:"Start Panel",startPanel:"Start Panel",startPanelTip:"Click Start Panel, after successful startup, the panel page will be automatically opened",selectTranslater:"select translater",selectOptionNetworkTranslater:"Three party online translation",selectOptionPythonTranslater:"Translation Library Translation",apply:"Apply",selectOptionNetworkTranslaterTitle:"Three party network translation settings",selectOptionPythonTranslaterTitle:"Translation library settings",selectOptionNetworkTranslaterInfo:"The third-party tool used is (only for online translation)",selectOptionPythonTranslaterInfo:"The translation package used is translators",install:"Install",nowTranlaterPackageState:"now transtler package state:",tranlaterPackageStateTrue:"installed",tranlaterPackageStateFlase:"not installed",installed:"is installed ....",installTranslaterPackageInfo:"Currently installing translation library, please do not close the window! Wait for installation to complete",translaterSetting:"Translation Settings",chooseTranslaterSetting:"Choose a translation service:",translaterLangSourceSetting:"Translation language:",translaterLangTargeSetting:"Translation target language:",saveTranslaterSetting:"Save Settings",testTranslaterTitle:"Test translation",inputTestTranslater:"Enter translation content:",outPutTestTranslater:"Translation result:",testingTranslater:"Test translation",inputTestTranslaterPlaceholder:"Please enter the content to be translated",outPutTestTranslaterPlaceholder:"The translation result will be displayed here",errorPrompt:"Read the prompt node failed",skinSetting:"skin setting",defaultSkin:"default skin",customSkin:"custom skin",uploadSkin:"upload skin",bgSetting:"background setting",gradientBg:"gradient color",transparentBg:"transparent",gradientColor:"gradient color select",borderRadius:"border radius",resetToDefault:"reset to default"}},controls:{language:"Language",settings:"Settings",switchTheme:"Switch Theme",darkMode:"Dark Mode",lightMode:"Light Mode",tagManager:"Tag Manager",loraStack:"Lora Stack",loraManager:"Lora Manager",history:"History",addLora:"Add Lora",removeLora:"Remove Lora",lookOnLora:"Look On Lora",aiChat:"AI Chat",github:"Github Home",shareCloudData:"Share Cloud Data",tutorialVideo:"Tutorial Video",sponsor:"Sponsor Me",danbooruManager:"danbooru Manager"},theme:{toggle:"Switch Theme"},lora:{title:"Lora Information",rawTitle:"LoraRaw",file:"File",hash:"Hash",civitai:"Civitai",viewOnCivitai:"View on Civitai",fetchFromCivitai:"Fetch from Civitai",modelNotFound:"Model not found",modelNotFoundTip:"The model was not found on Civitai. It might be private or deleted",name:"Name",nameTip:"Display name of the model",type:"Type",baseModel:"Base Model",trainedWords:"Trained Words",trainedWordsTip:"Keywords used in model training, click to select for copying",selectedWords:"{count} words selected",strengthMin:"Min Strength",strengthMinTip:"Recommended minimum strength value",strengthMax:"Max Strength",strengthMaxTip:"Recommended maximum strength value",promptWords:"Prompt Words",promptWordsTip:"Recommended prompt words when using this model",loraWorks:"Lora Prompt Words",strWeight:"Text Strength Weight",hideLora:"Disable Lora",showLora:"Enable Lora",baseModel:"Base Model",skipClip:"Clip Skip",seeLoraRaw:"LoraRaw",addDiyFiled:"Add DIY Filed",getCivitData:"Get Civitai Data",copy:"Copy"},common:{confirmDelete:"Confirm Delete",delete:"Delete",cancel:"Cancel",confirm:"Confirm",edit:"Edit",save:"Save",refresh:"Refresh",copy:"Copy",copySuccess:"Copied successfully",copyFailed:"Copy failed",windowSize:"Adjust window size",showMore:"show more",showLess:"show less"},nodeListWindow:{windowTitle:"Node List",openPromptUI:"Open Prompt UI"},tagManager:{deletePrimaryCategoryConfirm:"Are you sure you want to delete category {name}?",deleteGroupConfirm:"Are you sure you want to delete group {name}?",deleteTagConfirm:"Are you sure you want to delete tag {name}?",windowTitle:"Tag Manager",categories:"Categories",groups:"Groups",selectCategory:"Please select a category",selectGroup:"Please select a group",addPrimaryCategory:"Add Category",addGroup:"Add Group",editPrimaryCategory:"Edit Category",editGroup:"Edit Group",editTag:"Edit Tag",categoryName:"Category Name",categoryNamePlaceholder:"Enter category name",categoryNameRequired:"Category name is required",groupName:"Group Name",groupNamePlaceholder:"Enter group name",groupNameRequired:"Group name is required",addTag:"Add Tag",text:"Tag Description",textPlaceholder:"Enter tag Description",description:"Tag",descriptionPlaceholder:"Enter tag",textRequired:"Tag and Tag description cannot be empty",favourRequired:"Tag and Tag description cannot be empty, and a group must be selected",backgroundColor:"Background Color",colorPickerTitle:"Select Color",opacity:"Opacity",searchPlaceholder:"Search tags...",noResults:"No results found",searchInCategory:"in category",searchInTag:"in tag",save:"Save",cancel:"Cancel",confirm:"Confirm",delete:"Delete",addSubCategory:"Add Sub-category",editSubCategory:"Edit Sub-category",subCategoryName:"Sub-category Name",subCategoryNamePlaceholder:"Enter sub-category name",subCategoryNameRequired:"Sub-category name is required",deleteConfirmTitle:"Confirm Delete",deleteConfirmMessage:"This action will permanently delete this {type}. Continue?",deleteSuccess:"Deleted successfully",deleteFailed:"Delete failed",saveSuccess:"Saved successfully",saveFailed:"Save failed",colorPickerAlpha:"Opacity",colorPickerHex:"Hex Color Value",colorPreview:"Color Preview",dragToSort:"Drag to Sort",searchTags:"Search Tags",noTagsFound:"No tags found",noGroupsFound:"No groups found",noCategoriesFound:"No categories found",refresh:"Refresh",refreshing:"Refreshing...",refreshSuccess:"Refresh successful",refreshFailed:"Refresh failed",search:"Search",searching:"Searching...",searchResult:"Search Result",searchInPath:"Located in: {path}",category:"Category",group:"Group",tag:"Tag",resultType:{category:"Category",group:"Group",tag:"Tag"},hasDeleteAction:"Batch Delete",deleteSelected:"Delete Selected",confirmDeleteSelected:"Are you sure you want to delete the selected tags?",cancelDelete:"Cancel Delete",moveTag:"Move Tag",targetTag:"Target Tag",movePosition:"Move Position",moveBefore:"Move Before",moveAfter:"Move After",editTag:"Edit Tag",deleteTag:"Delete Tag",editGroupMode:"Edit Group Mode",exitEditMode:"Exit Edit Mode",autoAddSearchTag:"Auto Add Search Tag With Prompt",importTags:"Import Tags",share:"Share",delete:"Delete",edit:"Edit",outputSuccess:"Share successfully",noTagsSelected:"No share tags selected",shareSelected:"Share selected Tag",batchShare:"Batch Share Tag",cancelShare:"Cancel Share",moveGroup:"Move Group",targetGroup:"Target Group",moveGroupBefore:"Move Before",moveGroupAfter:"Move After",importDanbooru:"Batch import",modifyTabSize:"Modify Tag Size",tabSizeConfig:"Tag Size Configuration",primaryTabConfig:"Primary Category Tab Configuration",groupTabConfig:"Group Category Tab Configuration",tabWidth:"Tab Width",tabHeight:"Tab Height",fontSize:"Font Size",fitContent:"Fit Content",customWidth:"Custom Width",resetDefault:"Reset to Default",tabSizeConfigSaved:"Tag size configuration saved",tabSizeConfigSaveFailed:"Failed to save tag size configuration"},loraManager:{windowTitle:"Lora Manager",modelWeight:"Model Weight",textEncoderWeight:"Text Encoder Weight",all:"All",root:"Root",refresh:"Refresh",cacheAll:"Cache all Lora information",searchPlaceholder:"Search Lora...",noResults:"No results found",prevPage:"prev page",nextPage:"next page",loadingMore:"Loadding more ...",noMoreData:"No more data"},message:{copySuccess:"Copy successful",copyFailed:"Copy failed",saveSuccess:"Save successful",saveFailed:"Save failed",deleteSuccess:"Delete successful",deleteFailed:"Delete failed",operationSuccess:"Operation successful",operationFailed:"Operation failed",networkError:"Network error",unknownError:"Unknown error",refreshSuccess:"Refresh successful",refreshFailed:"Refresh failed",loadingData:"Loading data...",dataLoaded:"Data loaded",editSuccess:"Edit successful",editFailed:"Edit failed",addSuccess:"Add successful",addFailed:"Add failed",addFavoriteSuccess:"Added to favorites",addFavoriteIsExist:"Added to favorites",error:"Error",moveSuccess:"Move successful",moveFailed:"Move failed",setLanguageSuccess:"Set language successful",setLanguageFailed:"Set language failed",startPanelSuccess:"Start panel successful",startPanelFailed:"Start panel failed",isLoading:"Loading...",loaddingPrc:"Execution progress {name}%",loaddingSuccess:"All loaded successfully",noFinishKuo:"The parentheses are incomplete. Please check the input",getTranslaterFail:"Get translator failed",applyTranslaterFail:"Apply translator failed",applyToTranslaterFail:"Switching to a translation library requires installing a translation library. Please install the translation library first and then apply the settings",applyTranslaterSuccess:"Apply translator successful",tranlaterPackageInstallFail:"Waiting for installation timeout, please check the background installation status. If the installation is successful, click install again to verify",tranlaterPackageInstallSuccess:"Successfully installed translation package",translaterTestFail:"Translation failed, please try using another translation service",installPackageSuccess:"Successfully installed translation package",installPackageFail:"Failed to install translation package, please check the background installation status",loadFailed:"load failed",jsonErrorMesg:"The format of the JSON file is incorrect",pleaseAddSub:"Please add the secondary classification first",pleaseAddMainCeb:"Please add the first-level category first",pleaseSelectGroup:"Please select the complete grouping path",isLoadingPleaseWait:"It is being executed. Please check the progress in the background",shareGroupError:"Failed to share and failed to obtain group information",shareTagError:"Failed to share and failed to obtain group tag information"},cloudWindow:{windowTitle:"Share Cloud Window",back:"Back",currentPath:"Current Path",tagDatabase:"Tag Database",danbooruDatabase:"Danbooru Database",open:"Open Folder",installed:"Installed",install:"Install",installing:"Installing..."},history:{title:"History",search_placeholder:"Search history...",windowTitle:"History",search:"Search",favorites:"Favorites",history:"History",refresh:"Refresh",refresh_history:"Refresh history",refresh_favorites:"Refresh favorites",add_to_favorites:"Add to favorites",delete_history:"Delete history",use_item:"Use",add_new:"Add new",bulk_delete:"Bulk delete",deleteHistoryConfirm:"Are you sure you want to delete history {name}?",deleteFavoriteConfirm:"Are you sure you want to delete favorite {name}?",confirmDeleteSelected:"Are you sure you want to delete selected information?",cancel_delete:"Cancel delete",sure_delete:"Sure delete",deleteSelected:"Delete selected",dialog:{add_tag:"Add favorite",edit_tag:"Edit favorite",name:"Name",name_placeholder:"Please enter name",tag:"Tag",tag_placeholder:"Please enter tag",background_color:"Background color",background_color_placeholder:"Please select background color",edit_favorite:"Edit favorite",delete_favorite:"Delete favorite"},edit_favorite:"Edit favorite",delete_favorite:"Delete favorite",use_favorite:"Use favorite"},floatingBall:{promptBox:"open Global Prompt Box",tagManager:"open Tag Manager",loraManager:"open Lora Manager",aiWindow:"open AI Chat",restoreWindow:"reset all windows",openNodeListWindow:"open Node List",tranToWeb:"Image to Web Utils",openSetting:"open Setting"},aiWindow:{windowTitle:"AI Chat Window",newChat:"New Chat",chatName:"Chat",thinking:"Thinking...",send:"Send",inputMessage:"Enter your message..."},translaterService:{niutrans:"niutrans",mymemory:"mymemory",alibaba:"alibaba",baidu:"baidu",modernmt:"modernmt",volcengine:"volcengine",iciba:"iciba",iflytek:"iflytek",google:"google",bing:"bing",lingvanex:"lingvanex",yandex:"yandex",itranslate:"itranslate",systran:"systran",argos:"argos",apertium:"apertium",reverso:"reverso",deepl:"deepl",cloudtranslation:"cloudtranslation",qqtransmart:"qqtransmart",translatecom:"translatecom",sogou:"sogou",tilde:"tilde",caiyun:"caiyun",qqfanyi:"qqfanyi",translateme:"translateme",papago:"papago",mirai:"mirai",youdao:"youdao",iflyrec:"iflyrec",hujiang:"hujiang",yeekit:"yeekit",languagewire:"languagewire",elia:"elia",judic:"judic",mglip:"mglip",utibet:"utibet"},translaterLanguage:{english:"english",chinese:"chinese",arabic:"arabic",russian:"russian",french:"french",german:"german",spanish:"spanish",portuguese:"portuguese",italian:"italian",japanese:"japanese",korean:"korean",greek:"greek",dutch:"dutch",hindi:"hindi",turkish:"turkish",malay:"malay",thai:"thai",vietnamese:"vietnamese",indonesian:"indonesian",hebrew:"hebrew",polish:"polish",mongolian:"mongolian",czech:"czech",hungarian:"hungarian",estonian:"estonian",bulgarian:"bulgarian",danish:"danish",finnish:"finnish",romanian:"romanian",swedish:"swedish",slovenian:"slovenian","persian/farsi":"persian/farsi",bosnian:"bosnian",serbian:"serbian",fijian:"fijian",filipino:"filipino",haitiancreole:"haitiancreole",catalan:"catalan",croatian:"croatian",latvian:"latvian",lithuanian:"lithuanian",urdu:"urdu",ukrainian:"ukrainian",welsh:"welsh",tahiti:"tahiti",tongan:"tongan",swahili:"swahili",samoan:"samoan",slovak:"slovak",afrikaans:"afrikaans",norwegian:"norwegian",bengali:"bengali",malagasy:"malagasy",maltese:"maltese","queretaro otomi":"queretaro otomi","klingon/tlhingan hol":"klingon/tlhingan hol",gujarati:"gujarati",tamil:"tamil",telugu:"telugu",punjabi:"punjabi",amharic:"amharic",azerbaijani:"azerbaijani",bashkir:"bashkir",belarusian:"belarusian",cebuano:"cebuano",chuvash:"chuvash",esperanto:"esperanto",basque:"basque",irish:"irish"},utils:{tranToWeb:"Image to HTML",dropOrPasteImage:"Drop or paste image here",downloadHtml:"Download HTML",copyHtml:"Copy HTML",copySuccess:"HTML copied to clipboard",copyFailed:"Failed to copy HTML",clear:"Clear"},importDialog:{title:"Batch import of Tags",sure:"Confirm and import",cleanAll:"Empty all",dumpSQL:"Export All SQL",uploadSQL:"Upload the original SQL file",setMainCeb:"Set up a first-level classification",setSubCeb:"Set up secondary classification",addTag:"Add Tag",fromJSONImput:"Import tags from the JSON file",fromTxtInput:"Batch import tags from TXT files",fromYmalInput:"Batch import tags from YMAL files",selectMainCeb:"Select the first-level classification",selectSubCeb:"Select the secondary classification",selectGroup:"Select the existing classification",sureSelect:"Confirm the selection",pleaseAddGroupName:"Please fill in the name of the first-level classification",pleaseAddSubGroupName:"Please fill in the name of the secondary classification",pleaseFullRequest:"Please fill in the information of the first-level and second-level classifications completely",successImport:"Import successful",importFail:"Import failed",dumpOnlySQL:"Only export the SQL of the Tag",settingOutputName:"Set the name of the export file",sureYes:"Sure",cancel:"Cancel",edit:"Edit",delete:"Delete",add:"Add Tag",pleaseMainCebUuid:"The original UUID of the first-level division is only required for incremental updates and cannot be modified",pleaseSubGroupUuid:"The secondary division of the original UUID is only required for incremental updates and cannot be modified",pleaseSubGroup:"Secondary classification name",pleaseMainCeb:"First-level classification name",translater:"Description",tips1:"Usage Tutorial:",tips1text:"Bilibili video tutorial",tips2:"Tag Cloud Warehouse:",tips2text:"GitHub repository",tips3:"Online batch editing:",tips3text:"Online editor",selectTitle:"Select Category",selectedCategories:"Selected Categories",clearAll:"Clear All",primaryCategories:"Primary Categories",subCategories:"Sub Categories",noSelectedCategories:"No categories selected",selectCategory:"Select this category",selectSubcategory:"Select this subcategory",sureSelect:"Confirm Selection"},randomUtils:{title:"Random Tag Rules Settings",generalSettings:"General Settings",totalTags:"Random Tag Total Number (If the rule range exceeds the total quantity, the maximum range is calculated by the total quantity)",rules:"Rules",addRule:"Add Rule",rule:"Rule",range:"Range",tagType:"Tag Type",category:"Tag Category",specificTags:"Specific Tags",selectCategory:"Select Category",addTagPlaceholder:"Enter tag and press Enter",addTag:"Add Tag",testRandom:"Test Random",generatedTags:"Generated Tags",selectTagGroup:"Select Tag Group",ruleTemplates:"Rule Templates",saveAsTemplate:"Save as Template",selectTemplate:"Select Template",applyTemplate:"Apply Template",templateNamePlaceholder:"Enter template name",templateNameRequired:"Template name is required",templateSaved:"Template saved",templateApplied:"Template applied",errorSavingTemplates:"Error saving templates",save:"Save",cancel:"Cancel",editTemplate:"Edit Name",deleteTemplate:"Delete",confirmDeleteTemplate:"Are you sure you want to delete this template?",templateDeleted:"Template deleted",templateUpdated:"Template name updated",errorUpdatingTemplate:"Update template failed",errorLoadingTemplate:"Load template failed",errorDeletingTemplate:"Delete template failed",pleaseChooseTemplate:"Please choose a template",errorApplyingTemplate:"Apply template failed",errorSavingTemplate:"Save template failed",newTemplate:"New Template",rulesReminder:"Reminder: The range of the first rule must start at 1! If the range exceeds the total number of random, it will simply display all not random!"},danbooruManager:{title:"Danbooru Manager",controle:"Controle",translatePlaceholder:"Please enter the tag to be translated",searchPlaceholder:"Input need search danbooru tag",pageShow:"Display per page:",pageLimit:"article",hot:"hot",aliases:"aliases",sureBatchDelete:"Batch deletion confirmation",sureBatchDeleteTips1:"You are sure you want to delete the selected one",sureBatchDeleteTips2:"A label? This operation is irrevocable.",sureDelete:"Confirm deletion",import:"Import in Danbooru format",importBatchTitle:"Batch import Danbooru data",importTitle:"Danbooru Import data display",add:"Add Danbooru Tag",edit:"Edit Danbooru Tag"}};/*! * pinia v3.0.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let activePinia;const setActivePinia=e=>activePinia=e,piniaSymbol=Symbol();function isPlainObject$1(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var MutationType;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(MutationType||(MutationType={}));function createPinia(){const e=effectScope(!0),t=e.run(()=>ref({}));let a=[],n=[];const o=markRaw({install(r){setActivePinia(o),o._a=r,r.provide(piniaSymbol,o),r.config.globalProperties.$pinia=o,n.forEach(s=>a.push(s)),n=[]},use(r){return this._a?a.push(r):n.push(r),this},_p:a,_a:null,_e:e,_s:new Map,state:t});return o}const noop$1=()=>{};function addSubscription(e,t,a,n=noop$1){e.push(t);const o=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!a&&getCurrentScope()&&onScopeDispose(o),o}function triggerSubscriptions(e,...t){e.slice().forEach(a=>{a(...t)})}const fallbackRunWithContext=e=>e(),ACTION_MARKER=Symbol(),ACTION_NAME=Symbol();function mergeReactiveObjects(e,t){e instanceof Map&&t instanceof Map?t.forEach((a,n)=>e.set(n,a)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const a in t){if(!t.hasOwnProperty(a))continue;const n=t[a],o=e[a];isPlainObject$1(o)&&isPlainObject$1(n)&&e.hasOwnProperty(a)&&!isRef(n)&&!isReactive(n)?e[a]=mergeReactiveObjects(o,n):e[a]=n}return e}const skipHydrateSymbol=Symbol();function shouldHydrate(e){return!isPlainObject$1(e)||!e.hasOwnProperty(skipHydrateSymbol)}const{assign}=Object;function isComputed(e){return!!(isRef(e)&&e.effect)}function createOptionsStore(e,t,a,n){const{state:o,actions:r,getters:s}=t,l=a.state.value[e];let c;function f(){l||(a.state.value[e]=o?o():{});const u=toRefs(a.state.value[e]);return assign(u,r,Object.keys(s||{}).reduce((d,m)=>(d[m]=markRaw(computed(()=>{setActivePinia(a);const g=a._s.get(e);return s[m].call(g,g)})),d),{}))}return c=createSetupStore(e,f,t,a,n,!0),c}function createSetupStore(e,t,a={},n,o,r){let s;const l=assign({actions:{}},a),c={deep:!0};let f,u,d=[],m=[],g;const v=n.state.value[e];!r&&!v&&(n.state.value[e]={}),ref({});let b;function $(H){let j;f=u=!1,typeof H=="function"?(H(n.state.value[e]),j={type:MutationType.patchFunction,storeId:e,events:g}):(mergeReactiveObjects(n.state.value[e],H),j={type:MutationType.patchObject,payload:H,storeId:e,events:g});const fe=b=Symbol();nextTick().then(()=>{b===fe&&(f=!0)}),u=!0,triggerSubscriptions(d,j,n.state.value[e])}const w=r?function(){const{state:j}=a,fe=j?j():{};this.$patch(oe=>{assign(oe,fe)})}:noop$1;function N(){s.stop(),d=[],m=[],n._s.delete(e)}const P=(H,j="")=>{if(ACTION_MARKER in H)return H[ACTION_NAME]=j,H;const fe=function(){setActivePinia(n);const oe=Array.from(arguments),V=[],q=[];function Q(ee){V.push(ee)}function O(ee){q.push(ee)}triggerSubscriptions(m,{args:oe,name:fe[ACTION_NAME],store:E,after:Q,onError:O});let G;try{G=H.apply(this&&this.$id===e?this:E,oe)}catch(ee){throw triggerSubscriptions(q,ee),ee}return G instanceof Promise?G.then(ee=>(triggerSubscriptions(V,ee),ee)).catch(ee=>(triggerSubscriptions(q,ee),Promise.reject(ee))):(triggerSubscriptions(V,G),G)};return fe[ACTION_MARKER]=!0,fe[ACTION_NAME]=j,fe},y={_p:n,$id:e,$onAction:addSubscription.bind(null,m),$patch:$,$reset:w,$subscribe(H,j={}){const fe=addSubscription(d,H,j.detached,()=>oe()),oe=s.run(()=>watch(()=>n.state.value[e],V=>{(j.flush==="sync"?u:f)&&H({storeId:e,type:MutationType.direct,events:g},V)},assign({},c,j)));return fe},$dispose:N},E=reactive(y);n._s.set(e,E);const F=(n._a&&n._a.runWithContext||fallbackRunWithContext)(()=>n._e.run(()=>(s=effectScope()).run(()=>t({action:P}))));for(const H in F){const j=F[H];if(isRef(j)&&!isComputed(j)||isReactive(j))r||(v&&shouldHydrate(j)&&(isRef(j)?j.value=v[H]:mergeReactiveObjects(j,v[H])),n.state.value[e][H]=j);else if(typeof j=="function"){const fe=P(j,H);F[H]=fe,l.actions[H]=j}}return assign(E,F),assign(toRaw(E),F),Object.defineProperty(E,"$state",{get:()=>n.state.value[e],set:H=>{$(j=>{assign(j,H)})}}),n._p.forEach(H=>{assign(E,s.run(()=>H({store:E,app:n._a,pinia:n,options:l})))}),v&&r&&a.hydrate&&a.hydrate(E.$state,v),f=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function defineStore(e,t,a){let n;const o=typeof t=="function";n=o?a:t;function r(s,l){const c=hasInjectionContext();return s=s||(c?inject(piniaSymbol,null):null),s&&setActivePinia(s),s=activePinia,s._s.has(e)||(o?createSetupStore(e,t,n,s):createOptionsStore(e,n,s)),s._s.get(e)}return r.$id=e,r}const useTagStore=defineStore("tag",()=>{const e=ref([]),t=ref({user_lang:"zh_CN"}),a=ref(0);return{categories:e,setCategories:s=>{e.value=s},userSetting:t,setUserSetting:s=>{t.value=s},isFirstLoading:a,setisFirstLoading:s=>{a.value=s}}});function bind(e,t){return function(){return e.apply(t,arguments)}}const{toString}=Object.prototype,{getPrototypeOf}=Object,kindOf=(e=>t=>{const a=toString.call(t);return e[a]||(e[a]=a.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=e=>(e=e.toLowerCase(),t=>kindOf(t)===e),typeOfTest=e=>t=>typeof t===e,{isArray}=Array,isUndefined=typeOfTest("undefined");function isBuffer(e){return e!==null&&!isUndefined(e)&&e.constructor!==null&&!isUndefined(e.constructor)&&isFunction(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const isArrayBuffer=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&isArrayBuffer(e.buffer),t}const isString=typeOfTest("string"),isFunction=typeOfTest("function"),isNumber=typeOfTest("number"),isObject$1=e=>e!==null&&typeof e=="object",isBoolean$1=e=>e===!0||e===!1,isPlainObject=e=>{if(kindOf(e)!=="object")return!1;const t=getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},isDate=kindOfTest("Date"),isFile=kindOfTest("File"),isBlob=kindOfTest("Blob"),isFileList=kindOfTest("FileList"),isStream=e=>isObject$1(e)&&isFunction(e.pipe),isFormData=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||isFunction(e.append)&&((t=kindOf(e))==="formdata"||t==="object"&&isFunction(e.toString)&&e.toString()==="[object FormData]"))},isURLSearchParams=kindOfTest("URLSearchParams"),[isReadableStream,isRequest,isResponse,isHeaders]=["ReadableStream","Request","Response","Headers"].map(kindOfTest),trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,t,{allOwnKeys:a=!1}={}){if(e===null||typeof e>"u")return;let n,o;if(typeof e!="object"&&(e=[e]),isArray(e))for(n=0,o=e.length;n0;)if(o=a[n],t===o.toLowerCase())return o;return null}const _global=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,isContextDefined=e=>!isUndefined(e)&&e!==_global;function merge$1(){const{caseless:e}=isContextDefined(this)&&this||{},t={},a=(n,o)=>{const r=e&&findKey(t,o)||o;isPlainObject(t[r])&&isPlainObject(n)?t[r]=merge$1(t[r],n):isPlainObject(n)?t[r]=merge$1({},n):isArray(n)?t[r]=n.slice():t[r]=n};for(let n=0,o=arguments.length;n(forEach(t,(o,r)=>{a&&isFunction(o)?e[r]=bind(o,a):e[r]=o},{allOwnKeys:n}),e),stripBOM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),inherits=(e,t,a,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),a&&Object.assign(e.prototype,a)},toFlatObject=(e,t,a,n)=>{let o,r,s;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),r=o.length;r-- >0;)s=o[r],(!n||n(s,e,t))&&!l[s]&&(t[s]=e[s],l[s]=!0);e=a!==!1&&getPrototypeOf(e)}while(e&&(!a||a(e,t))&&e!==Object.prototype);return t},endsWith=(e,t,a)=>{e=String(e),(a===void 0||a>e.length)&&(a=e.length),a-=t.length;const n=e.indexOf(t,a);return n!==-1&&n===a},toArray$1=e=>{if(!e)return null;if(isArray(e))return e;let t=e.length;if(!isNumber(t))return null;const a=new Array(t);for(;t-- >0;)a[t]=e[t];return a},isTypedArray=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&getPrototypeOf(Uint8Array)),forEachEntry=(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=n.next())&&!o.done;){const r=o.value;t.call(e,r[0],r[1])}},matchAll=(e,t)=>{let a;const n=[];for(;(a=e.exec(t))!==null;)n.push(a);return n},isHTMLForm=kindOfTest("HTMLFormElement"),toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(a,n,o){return n.toUpperCase()+o}),hasOwnProperty=(({hasOwnProperty:e})=>(t,a)=>e.call(t,a))(Object.prototype),isRegExp=kindOfTest("RegExp"),reduceDescriptors=(e,t)=>{const a=Object.getOwnPropertyDescriptors(e),n={};forEach(a,(o,r)=>{let s;(s=t(o,r,e))!==!1&&(n[r]=s||o)}),Object.defineProperties(e,n)},freezeMethods=e=>{reduceDescriptors(e,(t,a)=>{if(isFunction(e)&&["arguments","caller","callee"].indexOf(a)!==-1)return!1;const n=e[a];if(isFunction(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+a+"'")})}})},toObjectSet=(e,t)=>{const a={},n=o=>{o.forEach(r=>{a[r]=!0})};return isArray(e)?n(e):n(String(e).split(t)),a},noop=()=>{},toFiniteNumber=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function isSpecCompliantForm(e){return!!(e&&isFunction(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const toJSONObject=e=>{const t=new Array(10),a=(n,o)=>{if(isObject$1(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[o]=n;const r=isArray(n)?[]:{};return forEach(n,(s,l)=>{const c=a(s,o+1);!isUndefined(c)&&(r[l]=c)}),t[o]=void 0,r}}return n};return a(e,0)},isAsyncFn=kindOfTest("AsyncFunction"),isThenable=e=>e&&(isObject$1(e)||isFunction(e))&&isFunction(e.then)&&isFunction(e.catch),_setImmediate=((e,t)=>e?setImmediate:t?((a,n)=>(_global.addEventListener("message",({source:o,data:r})=>{o===_global&&r===a&&n.length&&n.shift()()},!1),o=>{n.push(o),_global.postMessage(a,"*")}))(`axios@${Math.random()}`,[]):a=>setTimeout(a))(typeof setImmediate=="function",isFunction(_global.postMessage)),asap=typeof queueMicrotask<"u"?queueMicrotask.bind(_global):typeof process<"u"&&process.nextTick||_setImmediate,utils$1={isArray,isArrayBuffer,isBuffer,isFormData,isArrayBufferView,isString,isNumber,isBoolean:isBoolean$1,isObject:isObject$1,isPlainObject,isReadableStream,isRequest,isResponse,isHeaders,isUndefined,isDate,isFile,isBlob,isRegExp,isFunction,isStream,isURLSearchParams,isTypedArray,isFileList,forEach,merge:merge$1,extend:extend$1,trim,stripBOM,inherits,toFlatObject,kindOf,kindOfTest,endsWith,toArray:toArray$1,forEachEntry,matchAll,isHTMLForm,hasOwnProperty,hasOwnProp:hasOwnProperty,reduceDescriptors,freezeMethods,toObjectSet,toCamelCase,noop,toFiniteNumber,findKey,global:_global,isContextDefined,isSpecCompliantForm,toJSONObject,isAsyncFn,isThenable,setImmediate:_setImmediate,asap};function AxiosError$1(e,t,a,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),a&&(this.config=a),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}utils$1.inherits(AxiosError$1,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:utils$1.toJSONObject(this.config),code:this.code,status:this.status}}});const prototype$1=AxiosError$1.prototype,descriptors={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{descriptors[e]={value:e}}),Object.defineProperties(AxiosError$1,descriptors),Object.defineProperty(prototype$1,"isAxiosError",{value:!0}),AxiosError$1.from=(e,t,a,n,o,r)=>{const s=Object.create(prototype$1);return utils$1.toFlatObject(e,s,function(c){return c!==Error.prototype},l=>l!=="isAxiosError"),AxiosError$1.call(s,e.message,t,a,n,o),s.cause=e,s.name=e.name,r&&Object.assign(s,r),s};const httpAdapter=null;function isVisitable(e){return utils$1.isPlainObject(e)||utils$1.isArray(e)}function removeBrackets(e){return utils$1.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,a){return e?e.concat(t).map(function(o,r){return o=removeBrackets(o),!a&&r?"["+o+"]":o}).join(a?".":""):t}function isFlatArray(e){return utils$1.isArray(e)&&!e.some(isVisitable)}const predicates=utils$1.toFlatObject(utils$1,{},null,function(t){return/^is[A-Z]/.test(t)});function toFormData$1(e,t,a){if(!utils$1.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,a=utils$1.toFlatObject(a,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,$){return!utils$1.isUndefined($[b])});const n=a.metaTokens,o=a.visitor||u,r=a.dots,s=a.indexes,c=(a.Blob||typeof Blob<"u"&&Blob)&&utils$1.isSpecCompliantForm(t);if(!utils$1.isFunction(o))throw new TypeError("visitor must be a function");function f(v){if(v===null)return"";if(utils$1.isDate(v))return v.toISOString();if(!c&&utils$1.isBlob(v))throw new AxiosError$1("Blob is not supported. Use a Buffer instead.");return utils$1.isArrayBuffer(v)||utils$1.isTypedArray(v)?c&&typeof Blob=="function"?new Blob([v]):Buffer.from(v):v}function u(v,b,$){let w=v;if(v&&!$&&typeof v=="object"){if(utils$1.endsWith(b,"{}"))b=n?b:b.slice(0,-2),v=JSON.stringify(v);else if(utils$1.isArray(v)&&isFlatArray(v)||(utils$1.isFileList(v)||utils$1.endsWith(b,"[]"))&&(w=utils$1.toArray(v)))return b=removeBrackets(b),w.forEach(function(P,y){!(utils$1.isUndefined(P)||P===null)&&t.append(s===!0?renderKey([b],y,r):s===null?b:b+"[]",f(P))}),!1}return isVisitable(v)?!0:(t.append(renderKey($,b,r),f(v)),!1)}const d=[],m=Object.assign(predicates,{defaultVisitor:u,convertValue:f,isVisitable});function g(v,b){if(!utils$1.isUndefined(v)){if(d.indexOf(v)!==-1)throw Error("Circular reference detected in "+b.join("."));d.push(v),utils$1.forEach(v,function(w,N){(!(utils$1.isUndefined(w)||w===null)&&o.call(t,w,utils$1.isString(N)?N.trim():N,b,m))===!0&&g(w,b?b.concat(N):[N])}),d.pop()}}if(!utils$1.isObject(e))throw new TypeError("data must be an object");return g(e),t}function encode$1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function AxiosURLSearchParams(e,t){this._pairs=[],e&&toFormData$1(e,this,t)}const prototype=AxiosURLSearchParams.prototype;prototype.append=function(t,a){this._pairs.push([t,a])},prototype.toString=function(t){const a=t?function(n){return t.call(this,n,encode$1)}:encode$1;return this._pairs.map(function(o){return a(o[0])+"="+a(o[1])},"").join("&")};function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(e,t,a){if(!t)return e;const n=a&&a.encode||encode;utils$1.isFunction(a)&&(a={serialize:a});const o=a&&a.serialize;let r;if(o?r=o(t,a):r=utils$1.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,a).toString(n),r){const s=e.indexOf("#");s!==-1&&(e=e.slice(0,s)),e+=(e.indexOf("?")===-1?"?":"&")+r}return e}class InterceptorManager{constructor(){this.handlers=[]}use(t,a,n){return this.handlers.push({fulfilled:t,rejected:a,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){utils$1.forEach(this.handlers,function(n){n!==null&&t(n)})}}const transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},URLSearchParams$1=typeof URLSearchParams<"u"?URLSearchParams:AxiosURLSearchParams,FormData$1=typeof FormData<"u"?FormData:null,Blob$1=typeof Blob<"u"?Blob:null,platform$1={isBrowser:!0,classes:{URLSearchParams:URLSearchParams$1,FormData:FormData$1,Blob:Blob$1},protocols:["http","https","file","blob","url","data"]},hasBrowserEnv=typeof window<"u"&&typeof document<"u",_navigator=typeof navigator=="object"&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",origin=hasBrowserEnv&&window.location.href||"http://localhost",utils=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv,hasStandardBrowserEnv,hasStandardBrowserWebWorkerEnv,navigator:_navigator,origin},Symbol.toStringTag,{value:"Module"})),platform={...utils,...platform$1};function toURLEncodedForm(e,t){return toFormData$1(e,new platform.classes.URLSearchParams,Object.assign({visitor:function(a,n,o,r){return platform.isNode&&utils$1.isBuffer(a)?(this.append(n,a.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}function parsePropPath(e){return utils$1.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function arrayToObject(e){const t={},a=Object.keys(e);let n;const o=a.length;let r;for(n=0;n=a.length;return s=!s&&utils$1.isArray(o)?o.length:s,c?(utils$1.hasOwnProp(o,s)?o[s]=[o[s],n]:o[s]=n,!l):((!o[s]||!utils$1.isObject(o[s]))&&(o[s]=[]),t(a,n,o[s],r)&&utils$1.isArray(o[s])&&(o[s]=arrayToObject(o[s])),!l)}if(utils$1.isFormData(e)&&utils$1.isFunction(e.entries)){const a={};return utils$1.forEachEntry(e,(n,o)=>{t(parsePropPath(n),o,a,0)}),a}return null}function stringifySafely(e,t,a){if(utils$1.isString(e))try{return(t||JSON.parse)(e),utils$1.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(a||JSON.stringify)(e)}const defaults={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function(t,a){const n=a.getContentType()||"",o=n.indexOf("application/json")>-1,r=utils$1.isObject(t);if(r&&utils$1.isHTMLForm(t)&&(t=new FormData(t)),utils$1.isFormData(t))return o?JSON.stringify(formDataToJSON(t)):t;if(utils$1.isArrayBuffer(t)||utils$1.isBuffer(t)||utils$1.isStream(t)||utils$1.isFile(t)||utils$1.isBlob(t)||utils$1.isReadableStream(t))return t;if(utils$1.isArrayBufferView(t))return t.buffer;if(utils$1.isURLSearchParams(t))return a.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return toURLEncodedForm(t,this.formSerializer).toString();if((l=utils$1.isFileList(t))||n.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return toFormData$1(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return r||o?(a.setContentType("application/json",!1),stringifySafely(t)):t}],transformResponse:[function(t){const a=this.transitional||defaults.transitional,n=a&&a.forcedJSONParsing,o=this.responseType==="json";if(utils$1.isResponse(t)||utils$1.isReadableStream(t))return t;if(t&&utils$1.isString(t)&&(n&&!this.responseType||o)){const s=!(a&&a.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(l){if(s)throw l.name==="SyntaxError"?AxiosError$1.from(l,AxiosError$1.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform.classes.FormData,Blob:platform.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$1.forEach(["delete","get","head","post","put","patch"],e=>{defaults.headers[e]={}});const ignoreDuplicateOf=utils$1.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),parseHeaders=e=>{const t={};let a,n,o;return e&&e.split(` + */let activePinia;const setActivePinia=e=>activePinia=e,piniaSymbol=Symbol();function isPlainObject$1(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var MutationType;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(MutationType||(MutationType={}));function createPinia(){const e=effectScope(!0),t=e.run(()=>ref({}));let a=[],n=[];const o=markRaw({install(r){setActivePinia(o),o._a=r,r.provide(piniaSymbol,o),r.config.globalProperties.$pinia=o,n.forEach(s=>a.push(s)),n=[]},use(r){return this._a?a.push(r):n.push(r),this},_p:a,_a:null,_e:e,_s:new Map,state:t});return o}const noop$1=()=>{};function addSubscription(e,t,a,n=noop$1){e.push(t);const o=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!a&&getCurrentScope()&&onScopeDispose(o),o}function triggerSubscriptions(e,...t){e.slice().forEach(a=>{a(...t)})}const fallbackRunWithContext=e=>e(),ACTION_MARKER=Symbol(),ACTION_NAME=Symbol();function mergeReactiveObjects(e,t){e instanceof Map&&t instanceof Map?t.forEach((a,n)=>e.set(n,a)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const a in t){if(!t.hasOwnProperty(a))continue;const n=t[a],o=e[a];isPlainObject$1(o)&&isPlainObject$1(n)&&e.hasOwnProperty(a)&&!isRef(n)&&!isReactive(n)?e[a]=mergeReactiveObjects(o,n):e[a]=n}return e}const skipHydrateSymbol=Symbol();function shouldHydrate(e){return!isPlainObject$1(e)||!e.hasOwnProperty(skipHydrateSymbol)}const{assign}=Object;function isComputed(e){return!!(isRef(e)&&e.effect)}function createOptionsStore(e,t,a,n){const{state:o,actions:r,getters:s}=t,l=a.state.value[e];let c;function f(){l||(a.state.value[e]=o?o():{});const u=toRefs(a.state.value[e]);return assign(u,r,Object.keys(s||{}).reduce((d,m)=>(d[m]=markRaw(computed(()=>{setActivePinia(a);const g=a._s.get(e);return s[m].call(g,g)})),d),{}))}return c=createSetupStore(e,f,t,a,n,!0),c}function createSetupStore(e,t,a={},n,o,r){let s;const l=assign({actions:{}},a),c={deep:!0};let f,u,d=[],m=[],g;const v=n.state.value[e];!r&&!v&&(n.state.value[e]={}),ref({});let b;function $(H){let j;f=u=!1,typeof H=="function"?(H(n.state.value[e]),j={type:MutationType.patchFunction,storeId:e,events:g}):(mergeReactiveObjects(n.state.value[e],H),j={type:MutationType.patchObject,payload:H,storeId:e,events:g});const fe=b=Symbol();nextTick().then(()=>{b===fe&&(f=!0)}),u=!0,triggerSubscriptions(d,j,n.state.value[e])}const w=r?function(){const{state:j}=a,fe=j?j():{};this.$patch(oe=>{assign(oe,fe)})}:noop$1;function C(){s.stop(),d=[],m=[],n._s.delete(e)}const P=(H,j="")=>{if(ACTION_MARKER in H)return H[ACTION_NAME]=j,H;const fe=function(){setActivePinia(n);const oe=Array.from(arguments),V=[],q=[];function Q(ee){V.push(ee)}function O(ee){q.push(ee)}triggerSubscriptions(m,{args:oe,name:fe[ACTION_NAME],store:E,after:Q,onError:O});let G;try{G=H.apply(this&&this.$id===e?this:E,oe)}catch(ee){throw triggerSubscriptions(q,ee),ee}return G instanceof Promise?G.then(ee=>(triggerSubscriptions(V,ee),ee)).catch(ee=>(triggerSubscriptions(q,ee),Promise.reject(ee))):(triggerSubscriptions(V,G),G)};return fe[ACTION_MARKER]=!0,fe[ACTION_NAME]=j,fe},y={_p:n,$id:e,$onAction:addSubscription.bind(null,m),$patch:$,$reset:w,$subscribe(H,j={}){const fe=addSubscription(d,H,j.detached,()=>oe()),oe=s.run(()=>watch(()=>n.state.value[e],V=>{(j.flush==="sync"?u:f)&&H({storeId:e,type:MutationType.direct,events:g},V)},assign({},c,j)));return fe},$dispose:C},E=reactive(y);n._s.set(e,E);const F=(n._a&&n._a.runWithContext||fallbackRunWithContext)(()=>n._e.run(()=>(s=effectScope()).run(()=>t({action:P}))));for(const H in F){const j=F[H];if(isRef(j)&&!isComputed(j)||isReactive(j))r||(v&&shouldHydrate(j)&&(isRef(j)?j.value=v[H]:mergeReactiveObjects(j,v[H])),n.state.value[e][H]=j);else if(typeof j=="function"){const fe=P(j,H);F[H]=fe,l.actions[H]=j}}return assign(E,F),assign(toRaw(E),F),Object.defineProperty(E,"$state",{get:()=>n.state.value[e],set:H=>{$(j=>{assign(j,H)})}}),n._p.forEach(H=>{assign(E,s.run(()=>H({store:E,app:n._a,pinia:n,options:l})))}),v&&r&&a.hydrate&&a.hydrate(E.$state,v),f=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function defineStore(e,t,a){let n;const o=typeof t=="function";n=o?a:t;function r(s,l){const c=hasInjectionContext();return s=s||(c?inject(piniaSymbol,null):null),s&&setActivePinia(s),s=activePinia,s._s.has(e)||(o?createSetupStore(e,t,n,s):createOptionsStore(e,n,s)),s._s.get(e)}return r.$id=e,r}const useTagStore=defineStore("tag",()=>{const e=ref([]),t=ref({user_lang:"zh_CN"}),a=ref(0);return{categories:e,setCategories:s=>{e.value=s},userSetting:t,setUserSetting:s=>{t.value=s},isFirstLoading:a,setisFirstLoading:s=>{a.value=s}}});function bind(e,t){return function(){return e.apply(t,arguments)}}const{toString}=Object.prototype,{getPrototypeOf}=Object,kindOf=(e=>t=>{const a=toString.call(t);return e[a]||(e[a]=a.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=e=>(e=e.toLowerCase(),t=>kindOf(t)===e),typeOfTest=e=>t=>typeof t===e,{isArray}=Array,isUndefined=typeOfTest("undefined");function isBuffer(e){return e!==null&&!isUndefined(e)&&e.constructor!==null&&!isUndefined(e.constructor)&&isFunction(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const isArrayBuffer=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&isArrayBuffer(e.buffer),t}const isString=typeOfTest("string"),isFunction=typeOfTest("function"),isNumber=typeOfTest("number"),isObject$1=e=>e!==null&&typeof e=="object",isBoolean$1=e=>e===!0||e===!1,isPlainObject=e=>{if(kindOf(e)!=="object")return!1;const t=getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},isDate=kindOfTest("Date"),isFile=kindOfTest("File"),isBlob=kindOfTest("Blob"),isFileList=kindOfTest("FileList"),isStream=e=>isObject$1(e)&&isFunction(e.pipe),isFormData=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||isFunction(e.append)&&((t=kindOf(e))==="formdata"||t==="object"&&isFunction(e.toString)&&e.toString()==="[object FormData]"))},isURLSearchParams=kindOfTest("URLSearchParams"),[isReadableStream,isRequest,isResponse,isHeaders]=["ReadableStream","Request","Response","Headers"].map(kindOfTest),trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,t,{allOwnKeys:a=!1}={}){if(e===null||typeof e>"u")return;let n,o;if(typeof e!="object"&&(e=[e]),isArray(e))for(n=0,o=e.length;n0;)if(o=a[n],t===o.toLowerCase())return o;return null}const _global=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,isContextDefined=e=>!isUndefined(e)&&e!==_global;function merge$1(){const{caseless:e}=isContextDefined(this)&&this||{},t={},a=(n,o)=>{const r=e&&findKey(t,o)||o;isPlainObject(t[r])&&isPlainObject(n)?t[r]=merge$1(t[r],n):isPlainObject(n)?t[r]=merge$1({},n):isArray(n)?t[r]=n.slice():t[r]=n};for(let n=0,o=arguments.length;n(forEach(t,(o,r)=>{a&&isFunction(o)?e[r]=bind(o,a):e[r]=o},{allOwnKeys:n}),e),stripBOM=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),inherits=(e,t,a,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),a&&Object.assign(e.prototype,a)},toFlatObject=(e,t,a,n)=>{let o,r,s;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),r=o.length;r-- >0;)s=o[r],(!n||n(s,e,t))&&!l[s]&&(t[s]=e[s],l[s]=!0);e=a!==!1&&getPrototypeOf(e)}while(e&&(!a||a(e,t))&&e!==Object.prototype);return t},endsWith=(e,t,a)=>{e=String(e),(a===void 0||a>e.length)&&(a=e.length),a-=t.length;const n=e.indexOf(t,a);return n!==-1&&n===a},toArray$1=e=>{if(!e)return null;if(isArray(e))return e;let t=e.length;if(!isNumber(t))return null;const a=new Array(t);for(;t-- >0;)a[t]=e[t];return a},isTypedArray=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&getPrototypeOf(Uint8Array)),forEachEntry=(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=n.next())&&!o.done;){const r=o.value;t.call(e,r[0],r[1])}},matchAll=(e,t)=>{let a;const n=[];for(;(a=e.exec(t))!==null;)n.push(a);return n},isHTMLForm=kindOfTest("HTMLFormElement"),toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(a,n,o){return n.toUpperCase()+o}),hasOwnProperty=(({hasOwnProperty:e})=>(t,a)=>e.call(t,a))(Object.prototype),isRegExp=kindOfTest("RegExp"),reduceDescriptors=(e,t)=>{const a=Object.getOwnPropertyDescriptors(e),n={};forEach(a,(o,r)=>{let s;(s=t(o,r,e))!==!1&&(n[r]=s||o)}),Object.defineProperties(e,n)},freezeMethods=e=>{reduceDescriptors(e,(t,a)=>{if(isFunction(e)&&["arguments","caller","callee"].indexOf(a)!==-1)return!1;const n=e[a];if(isFunction(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+a+"'")})}})},toObjectSet=(e,t)=>{const a={},n=o=>{o.forEach(r=>{a[r]=!0})};return isArray(e)?n(e):n(String(e).split(t)),a},noop=()=>{},toFiniteNumber=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function isSpecCompliantForm(e){return!!(e&&isFunction(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const toJSONObject=e=>{const t=new Array(10),a=(n,o)=>{if(isObject$1(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[o]=n;const r=isArray(n)?[]:{};return forEach(n,(s,l)=>{const c=a(s,o+1);!isUndefined(c)&&(r[l]=c)}),t[o]=void 0,r}}return n};return a(e,0)},isAsyncFn=kindOfTest("AsyncFunction"),isThenable=e=>e&&(isObject$1(e)||isFunction(e))&&isFunction(e.then)&&isFunction(e.catch),_setImmediate=((e,t)=>e?setImmediate:t?((a,n)=>(_global.addEventListener("message",({source:o,data:r})=>{o===_global&&r===a&&n.length&&n.shift()()},!1),o=>{n.push(o),_global.postMessage(a,"*")}))(`axios@${Math.random()}`,[]):a=>setTimeout(a))(typeof setImmediate=="function",isFunction(_global.postMessage)),asap=typeof queueMicrotask<"u"?queueMicrotask.bind(_global):typeof process<"u"&&process.nextTick||_setImmediate,utils$1={isArray,isArrayBuffer,isBuffer,isFormData,isArrayBufferView,isString,isNumber,isBoolean:isBoolean$1,isObject:isObject$1,isPlainObject,isReadableStream,isRequest,isResponse,isHeaders,isUndefined,isDate,isFile,isBlob,isRegExp,isFunction,isStream,isURLSearchParams,isTypedArray,isFileList,forEach,merge:merge$1,extend:extend$1,trim,stripBOM,inherits,toFlatObject,kindOf,kindOfTest,endsWith,toArray:toArray$1,forEachEntry,matchAll,isHTMLForm,hasOwnProperty,hasOwnProp:hasOwnProperty,reduceDescriptors,freezeMethods,toObjectSet,toCamelCase,noop,toFiniteNumber,findKey,global:_global,isContextDefined,isSpecCompliantForm,toJSONObject,isAsyncFn,isThenable,setImmediate:_setImmediate,asap};function AxiosError$1(e,t,a,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),a&&(this.config=a),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}utils$1.inherits(AxiosError$1,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:utils$1.toJSONObject(this.config),code:this.code,status:this.status}}});const prototype$1=AxiosError$1.prototype,descriptors={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{descriptors[e]={value:e}}),Object.defineProperties(AxiosError$1,descriptors),Object.defineProperty(prototype$1,"isAxiosError",{value:!0}),AxiosError$1.from=(e,t,a,n,o,r)=>{const s=Object.create(prototype$1);return utils$1.toFlatObject(e,s,function(c){return c!==Error.prototype},l=>l!=="isAxiosError"),AxiosError$1.call(s,e.message,t,a,n,o),s.cause=e,s.name=e.name,r&&Object.assign(s,r),s};const httpAdapter=null;function isVisitable(e){return utils$1.isPlainObject(e)||utils$1.isArray(e)}function removeBrackets(e){return utils$1.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,a){return e?e.concat(t).map(function(o,r){return o=removeBrackets(o),!a&&r?"["+o+"]":o}).join(a?".":""):t}function isFlatArray(e){return utils$1.isArray(e)&&!e.some(isVisitable)}const predicates=utils$1.toFlatObject(utils$1,{},null,function(t){return/^is[A-Z]/.test(t)});function toFormData$1(e,t,a){if(!utils$1.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,a=utils$1.toFlatObject(a,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,$){return!utils$1.isUndefined($[b])});const n=a.metaTokens,o=a.visitor||u,r=a.dots,s=a.indexes,c=(a.Blob||typeof Blob<"u"&&Blob)&&utils$1.isSpecCompliantForm(t);if(!utils$1.isFunction(o))throw new TypeError("visitor must be a function");function f(v){if(v===null)return"";if(utils$1.isDate(v))return v.toISOString();if(!c&&utils$1.isBlob(v))throw new AxiosError$1("Blob is not supported. Use a Buffer instead.");return utils$1.isArrayBuffer(v)||utils$1.isTypedArray(v)?c&&typeof Blob=="function"?new Blob([v]):Buffer.from(v):v}function u(v,b,$){let w=v;if(v&&!$&&typeof v=="object"){if(utils$1.endsWith(b,"{}"))b=n?b:b.slice(0,-2),v=JSON.stringify(v);else if(utils$1.isArray(v)&&isFlatArray(v)||(utils$1.isFileList(v)||utils$1.endsWith(b,"[]"))&&(w=utils$1.toArray(v)))return b=removeBrackets(b),w.forEach(function(P,y){!(utils$1.isUndefined(P)||P===null)&&t.append(s===!0?renderKey([b],y,r):s===null?b:b+"[]",f(P))}),!1}return isVisitable(v)?!0:(t.append(renderKey($,b,r),f(v)),!1)}const d=[],m=Object.assign(predicates,{defaultVisitor:u,convertValue:f,isVisitable});function g(v,b){if(!utils$1.isUndefined(v)){if(d.indexOf(v)!==-1)throw Error("Circular reference detected in "+b.join("."));d.push(v),utils$1.forEach(v,function(w,C){(!(utils$1.isUndefined(w)||w===null)&&o.call(t,w,utils$1.isString(C)?C.trim():C,b,m))===!0&&g(w,b?b.concat(C):[C])}),d.pop()}}if(!utils$1.isObject(e))throw new TypeError("data must be an object");return g(e),t}function encode$1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function AxiosURLSearchParams(e,t){this._pairs=[],e&&toFormData$1(e,this,t)}const prototype=AxiosURLSearchParams.prototype;prototype.append=function(t,a){this._pairs.push([t,a])},prototype.toString=function(t){const a=t?function(n){return t.call(this,n,encode$1)}:encode$1;return this._pairs.map(function(o){return a(o[0])+"="+a(o[1])},"").join("&")};function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(e,t,a){if(!t)return e;const n=a&&a.encode||encode;utils$1.isFunction(a)&&(a={serialize:a});const o=a&&a.serialize;let r;if(o?r=o(t,a):r=utils$1.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,a).toString(n),r){const s=e.indexOf("#");s!==-1&&(e=e.slice(0,s)),e+=(e.indexOf("?")===-1?"?":"&")+r}return e}class InterceptorManager{constructor(){this.handlers=[]}use(t,a,n){return this.handlers.push({fulfilled:t,rejected:a,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){utils$1.forEach(this.handlers,function(n){n!==null&&t(n)})}}const transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},URLSearchParams$1=typeof URLSearchParams<"u"?URLSearchParams:AxiosURLSearchParams,FormData$1=typeof FormData<"u"?FormData:null,Blob$1=typeof Blob<"u"?Blob:null,platform$1={isBrowser:!0,classes:{URLSearchParams:URLSearchParams$1,FormData:FormData$1,Blob:Blob$1},protocols:["http","https","file","blob","url","data"]},hasBrowserEnv=typeof window<"u"&&typeof document<"u",_navigator=typeof navigator=="object"&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",origin=hasBrowserEnv&&window.location.href||"http://localhost",utils=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv,hasStandardBrowserEnv,hasStandardBrowserWebWorkerEnv,navigator:_navigator,origin},Symbol.toStringTag,{value:"Module"})),platform={...utils,...platform$1};function toURLEncodedForm(e,t){return toFormData$1(e,new platform.classes.URLSearchParams,Object.assign({visitor:function(a,n,o,r){return platform.isNode&&utils$1.isBuffer(a)?(this.append(n,a.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}function parsePropPath(e){return utils$1.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function arrayToObject(e){const t={},a=Object.keys(e);let n;const o=a.length;let r;for(n=0;n=a.length;return s=!s&&utils$1.isArray(o)?o.length:s,c?(utils$1.hasOwnProp(o,s)?o[s]=[o[s],n]:o[s]=n,!l):((!o[s]||!utils$1.isObject(o[s]))&&(o[s]=[]),t(a,n,o[s],r)&&utils$1.isArray(o[s])&&(o[s]=arrayToObject(o[s])),!l)}if(utils$1.isFormData(e)&&utils$1.isFunction(e.entries)){const a={};return utils$1.forEachEntry(e,(n,o)=>{t(parsePropPath(n),o,a,0)}),a}return null}function stringifySafely(e,t,a){if(utils$1.isString(e))try{return(t||JSON.parse)(e),utils$1.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(a||JSON.stringify)(e)}const defaults={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function(t,a){const n=a.getContentType()||"",o=n.indexOf("application/json")>-1,r=utils$1.isObject(t);if(r&&utils$1.isHTMLForm(t)&&(t=new FormData(t)),utils$1.isFormData(t))return o?JSON.stringify(formDataToJSON(t)):t;if(utils$1.isArrayBuffer(t)||utils$1.isBuffer(t)||utils$1.isStream(t)||utils$1.isFile(t)||utils$1.isBlob(t)||utils$1.isReadableStream(t))return t;if(utils$1.isArrayBufferView(t))return t.buffer;if(utils$1.isURLSearchParams(t))return a.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return toURLEncodedForm(t,this.formSerializer).toString();if((l=utils$1.isFileList(t))||n.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return toFormData$1(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return r||o?(a.setContentType("application/json",!1),stringifySafely(t)):t}],transformResponse:[function(t){const a=this.transitional||defaults.transitional,n=a&&a.forcedJSONParsing,o=this.responseType==="json";if(utils$1.isResponse(t)||utils$1.isReadableStream(t))return t;if(t&&utils$1.isString(t)&&(n&&!this.responseType||o)){const s=!(a&&a.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(l){if(s)throw l.name==="SyntaxError"?AxiosError$1.from(l,AxiosError$1.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform.classes.FormData,Blob:platform.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$1.forEach(["delete","get","head","post","put","patch"],e=>{defaults.headers[e]={}});const ignoreDuplicateOf=utils$1.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),parseHeaders=e=>{const t={};let a,n,o;return e&&e.split(` `).forEach(function(s){o=s.indexOf(":"),a=s.substring(0,o).trim().toLowerCase(),n=s.substring(o+1).trim(),!(!a||t[a]&&ignoreDuplicateOf[a])&&(a==="set-cookie"?t[a]?t[a].push(n):t[a]=[n]:t[a]=t[a]?t[a]+", "+n:n)}),t},$internals=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){return e===!1||e==null?e:utils$1.isArray(e)?e.map(normalizeValue):String(e)}function parseTokens(e){const t=Object.create(null),a=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=a.exec(e);)t[n[1]]=n[2];return t}const isValidHeaderName=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function matchHeaderValue(e,t,a,n,o){if(utils$1.isFunction(n))return n.call(this,t,a);if(o&&(t=a),!!utils$1.isString(t)){if(utils$1.isString(n))return t.indexOf(n)!==-1;if(utils$1.isRegExp(n))return n.test(t)}}function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,a,n)=>a.toUpperCase()+n)}function buildAccessors(e,t){const a=utils$1.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+a,{value:function(o,r,s){return this[n].call(this,t,o,r,s)},configurable:!0})})}let AxiosHeaders$1=class{constructor(t){t&&this.set(t)}set(t,a,n){const o=this;function r(l,c,f){const u=normalizeHeader(c);if(!u)throw new Error("header name must be a non-empty string");const d=utils$1.findKey(o,u);(!d||o[d]===void 0||f===!0||f===void 0&&o[d]!==!1)&&(o[d||c]=normalizeValue(l))}const s=(l,c)=>utils$1.forEach(l,(f,u)=>r(f,u,c));if(utils$1.isPlainObject(t)||t instanceof this.constructor)s(t,a);else if(utils$1.isString(t)&&(t=t.trim())&&!isValidHeaderName(t))s(parseHeaders(t),a);else if(utils$1.isHeaders(t))for(const[l,c]of t.entries())r(c,l,n);else t!=null&&r(a,t,n);return this}get(t,a){if(t=normalizeHeader(t),t){const n=utils$1.findKey(this,t);if(n){const o=this[n];if(!a)return o;if(a===!0)return parseTokens(o);if(utils$1.isFunction(a))return a.call(this,o,n);if(utils$1.isRegExp(a))return a.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,a){if(t=normalizeHeader(t),t){const n=utils$1.findKey(this,t);return!!(n&&this[n]!==void 0&&(!a||matchHeaderValue(this,this[n],n,a)))}return!1}delete(t,a){const n=this;let o=!1;function r(s){if(s=normalizeHeader(s),s){const l=utils$1.findKey(n,s);l&&(!a||matchHeaderValue(n,n[l],l,a))&&(delete n[l],o=!0)}}return utils$1.isArray(t)?t.forEach(r):r(t),o}clear(t){const a=Object.keys(this);let n=a.length,o=!1;for(;n--;){const r=a[n];(!t||matchHeaderValue(this,this[r],r,t,!0))&&(delete this[r],o=!0)}return o}normalize(t){const a=this,n={};return utils$1.forEach(this,(o,r)=>{const s=utils$1.findKey(n,r);if(s){a[s]=normalizeValue(o),delete a[r];return}const l=t?formatHeader(r):String(r).trim();l!==r&&delete a[r],a[l]=normalizeValue(o),n[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const a=Object.create(null);return utils$1.forEach(this,(n,o)=>{n!=null&&n!==!1&&(a[o]=t&&utils$1.isArray(n)?n.join(", "):n)}),a}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,a])=>t+": "+a).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...a){const n=new this(t);return a.forEach(o=>n.set(o)),n}static accessor(t){const n=(this[$internals]=this[$internals]={accessors:{}}).accessors,o=this.prototype;function r(s){const l=normalizeHeader(s);n[l]||(buildAccessors(o,s),n[l]=!0)}return utils$1.isArray(t)?t.forEach(r):r(t),this}};AxiosHeaders$1.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),utils$1.reduceDescriptors(AxiosHeaders$1.prototype,({value:e},t)=>{let a=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[a]=n}}}),utils$1.freezeMethods(AxiosHeaders$1);function transformData(e,t){const a=this||defaults,n=t||a,o=AxiosHeaders$1.from(n.headers);let r=n.data;return utils$1.forEach(e,function(l){r=l.call(a,r,o.normalize(),t?t.status:void 0)}),o.normalize(),r}function isCancel$1(e){return!!(e&&e.__CANCEL__)}function CanceledError$1(e,t,a){AxiosError$1.call(this,e??"canceled",AxiosError$1.ERR_CANCELED,t,a),this.name="CanceledError"}utils$1.inherits(CanceledError$1,AxiosError$1,{__CANCEL__:!0});function settle(e,t,a){const n=a.config.validateStatus;!a.status||!n||n(a.status)?e(a):t(new AxiosError$1("Request failed with status code "+a.status,[AxiosError$1.ERR_BAD_REQUEST,AxiosError$1.ERR_BAD_RESPONSE][Math.floor(a.status/100)-4],a.config,a.request,a))}function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function speedometer(e,t){e=e||10;const a=new Array(e),n=new Array(e);let o=0,r=0,s;return t=t!==void 0?t:1e3,function(c){const f=Date.now(),u=n[r];s||(s=f),a[o]=c,n[o]=f;let d=r,m=0;for(;d!==o;)m+=a[d++],d=d%e;if(o=(o+1)%e,o===r&&(r=(r+1)%e),f-s{a=u,o=null,r&&(clearTimeout(r),r=null),e.apply(null,f)};return[(...f)=>{const u=Date.now(),d=u-a;d>=n?s(f,u):(o=f,r||(r=setTimeout(()=>{r=null,s(o)},n-d)))},()=>o&&s(o)]}const progressEventReducer=(e,t,a=3)=>{let n=0;const o=speedometer(50,250);return throttle(r=>{const s=r.loaded,l=r.lengthComputable?r.total:void 0,c=s-n,f=o(c),u=s<=l;n=s;const d={loaded:s,total:l,progress:l?s/l:void 0,bytes:c,rate:f||void 0,estimated:f&&l&&u?(l-s)/f:void 0,event:r,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(d)},a)},progressEventDecorator=(e,t)=>{const a=e!=null;return[n=>t[0]({lengthComputable:a,total:e,loaded:n}),t[1]]},asyncDecorator=e=>(...t)=>utils$1.asap(()=>e(...t)),isURLSameOrigin=platform.hasStandardBrowserEnv?((e,t)=>a=>(a=new URL(a,platform.origin),e.protocol===a.protocol&&e.host===a.host&&(t||e.port===a.port)))(new URL(platform.origin),platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent)):()=>!0,cookies=platform.hasStandardBrowserEnv?{write(e,t,a,n,o,r){const s=[e+"="+encodeURIComponent(t)];utils$1.isNumber(a)&&s.push("expires="+new Date(a).toGMTString()),utils$1.isString(n)&&s.push("path="+n),utils$1.isString(o)&&s.push("domain="+o),r===!0&&s.push("secure"),document.cookie=s.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function buildFullPath(e,t,a){let n=!isAbsoluteURL(t);return e&&n||a==!1?combineURLs(e,t):t}const headersToObject=e=>e instanceof AxiosHeaders$1?{...e}:e;function mergeConfig$1(e,t){t=t||{};const a={};function n(f,u,d,m){return utils$1.isPlainObject(f)&&utils$1.isPlainObject(u)?utils$1.merge.call({caseless:m},f,u):utils$1.isPlainObject(u)?utils$1.merge({},u):utils$1.isArray(u)?u.slice():u}function o(f,u,d,m){if(utils$1.isUndefined(u)){if(!utils$1.isUndefined(f))return n(void 0,f,d,m)}else return n(f,u,d,m)}function r(f,u){if(!utils$1.isUndefined(u))return n(void 0,u)}function s(f,u){if(utils$1.isUndefined(u)){if(!utils$1.isUndefined(f))return n(void 0,f)}else return n(void 0,u)}function l(f,u,d){if(d in t)return n(f,u);if(d in e)return n(void 0,f)}const c={url:r,method:r,data:r,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l,headers:(f,u,d)=>o(headersToObject(f),headersToObject(u),d,!0)};return utils$1.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=c[u]||o,m=d(e[u],t[u],u);utils$1.isUndefined(m)&&d!==l||(a[u]=m)}),a}const resolveConfig=e=>{const t=mergeConfig$1({},e);let{data:a,withXSRFToken:n,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:l}=t;t.headers=s=AxiosHeaders$1.from(s),t.url=buildURL(buildFullPath(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):"")));let c;if(utils$1.isFormData(a)){if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if((c=s.getContentType())!==!1){const[f,...u]=c?c.split(";").map(d=>d.trim()).filter(Boolean):[];s.setContentType([f||"multipart/form-data",...u].join("; "))}}if(platform.hasStandardBrowserEnv&&(n&&utils$1.isFunction(n)&&(n=n(t)),n||n!==!1&&isURLSameOrigin(t.url))){const f=o&&r&&cookies.read(r);f&&s.set(o,f)}return t},isXHRAdapterSupported=typeof XMLHttpRequest<"u",xhrAdapter=isXHRAdapterSupported&&function(e){return new Promise(function(a,n){const o=resolveConfig(e);let r=o.data;const s=AxiosHeaders$1.from(o.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:f}=o,u,d,m,g,v;function b(){g&&g(),v&&v(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let $=new XMLHttpRequest;$.open(o.method.toUpperCase(),o.url,!0),$.timeout=o.timeout;function w(){if(!$)return;const P=AxiosHeaders$1.from("getAllResponseHeaders"in $&&$.getAllResponseHeaders()),E={data:!l||l==="text"||l==="json"?$.responseText:$.response,status:$.status,statusText:$.statusText,headers:P,config:e,request:$};settle(function(F){a(F),b()},function(F){n(F),b()},E),$=null}"onloadend"in $?$.onloadend=w:$.onreadystatechange=function(){!$||$.readyState!==4||$.status===0&&!($.responseURL&&$.responseURL.indexOf("file:")===0)||setTimeout(w)},$.onabort=function(){$&&(n(new AxiosError$1("Request aborted",AxiosError$1.ECONNABORTED,e,$)),$=null)},$.onerror=function(){n(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,e,$)),$=null},$.ontimeout=function(){let y=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const E=o.transitional||transitionalDefaults;o.timeoutErrorMessage&&(y=o.timeoutErrorMessage),n(new AxiosError$1(y,E.clarifyTimeoutError?AxiosError$1.ETIMEDOUT:AxiosError$1.ECONNABORTED,e,$)),$=null},r===void 0&&s.setContentType(null),"setRequestHeader"in $&&utils$1.forEach(s.toJSON(),function(y,E){$.setRequestHeader(E,y)}),utils$1.isUndefined(o.withCredentials)||($.withCredentials=!!o.withCredentials),l&&l!=="json"&&($.responseType=o.responseType),f&&([m,v]=progressEventReducer(f,!0),$.addEventListener("progress",m)),c&&$.upload&&([d,g]=progressEventReducer(c),$.upload.addEventListener("progress",d),$.upload.addEventListener("loadend",g)),(o.cancelToken||o.signal)&&(u=P=>{$&&(n(!P||P.type?new CanceledError$1(null,e,$):P),$.abort(),$=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const N=parseProtocol(o.url);if(N&&platform.protocols.indexOf(N)===-1){n(new AxiosError$1("Unsupported protocol "+N+":",AxiosError$1.ERR_BAD_REQUEST,e));return}$.send(r||null)})},composeSignals=(e,t)=>{const{length:a}=e=e?e.filter(Boolean):[];if(t||a){let n=new AbortController,o;const r=function(f){if(!o){o=!0,l();const u=f instanceof Error?f:this.reason;n.abort(u instanceof AxiosError$1?u:new CanceledError$1(u instanceof Error?u.message:u))}};let s=t&&setTimeout(()=>{s=null,r(new AxiosError$1(`timeout ${t} of ms exceeded`,AxiosError$1.ETIMEDOUT))},t);const l=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(r):f.removeEventListener("abort",r)}),e=null)};e.forEach(f=>f.addEventListener("abort",r));const{signal:c}=n;return c.unsubscribe=()=>utils$1.asap(l),c}},streamChunk=function*(e,t){let a=e.byteLength;if(a{const o=readBytes(e,t);let r=0,s,l=c=>{s||(s=!0,n&&n(c))};return new ReadableStream({async pull(c){try{const{done:f,value:u}=await o.next();if(f){l(),c.close();return}let d=u.byteLength;if(a){let m=r+=d;a(m)}c.enqueue(new Uint8Array(u))}catch(f){throw l(f),f}},cancel(c){return l(c),o.return()}},{highWaterMark:2})},isFetchSupported=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",isReadableStreamSupported=isFetchSupported&&typeof ReadableStream=="function",encodeText=isFetchSupported&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),test=(e,...t)=>{try{return!!e(...t)}catch{return!1}},supportsRequestStream=isReadableStreamSupported&&test(()=>{let e=!1;const t=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),DEFAULT_CHUNK_SIZE=64*1024,supportsResponseStream=isReadableStreamSupported&&test(()=>utils$1.isReadableStream(new Response("").body)),resolvers={stream:supportsResponseStream&&(e=>e.body)};isFetchSupported&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!resolvers[t]&&(resolvers[t]=utils$1.isFunction(e[t])?a=>a[t]():(a,n)=>{throw new AxiosError$1(`Response type '${t}' is not supported`,AxiosError$1.ERR_NOT_SUPPORT,n)})})})(new Response);const getBodyLength=async e=>{if(e==null)return 0;if(utils$1.isBlob(e))return e.size;if(utils$1.isSpecCompliantForm(e))return(await new Request(platform.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(utils$1.isArrayBufferView(e)||utils$1.isArrayBuffer(e))return e.byteLength;if(utils$1.isURLSearchParams(e)&&(e=e+""),utils$1.isString(e))return(await encodeText(e)).byteLength},resolveBodyLength=async(e,t)=>{const a=utils$1.toFiniteNumber(e.getContentLength());return a??getBodyLength(t)},fetchAdapter=isFetchSupported&&(async e=>{let{url:t,method:a,data:n,signal:o,cancelToken:r,timeout:s,onDownloadProgress:l,onUploadProgress:c,responseType:f,headers:u,withCredentials:d="same-origin",fetchOptions:m}=resolveConfig(e);f=f?(f+"").toLowerCase():"text";let g=composeSignals([o,r&&r.toAbortSignal()],s),v;const b=g&&g.unsubscribe&&(()=>{g.unsubscribe()});let $;try{if(c&&supportsRequestStream&&a!=="get"&&a!=="head"&&($=await resolveBodyLength(u,n))!==0){let E=new Request(t,{method:"POST",body:n,duplex:"half"}),R;if(utils$1.isFormData(n)&&(R=E.headers.get("content-type"))&&u.setContentType(R),E.body){const[F,H]=progressEventDecorator($,progressEventReducer(asyncDecorator(c)));n=trackStream(E.body,DEFAULT_CHUNK_SIZE,F,H)}}utils$1.isString(d)||(d=d?"include":"omit");const w="credentials"in Request.prototype;v=new Request(t,{...m,signal:g,method:a.toUpperCase(),headers:u.normalize().toJSON(),body:n,duplex:"half",credentials:w?d:void 0});let N=await fetch(v);const P=supportsResponseStream&&(f==="stream"||f==="response");if(supportsResponseStream&&(l||P&&b)){const E={};["status","statusText","headers"].forEach(j=>{E[j]=N[j]});const R=utils$1.toFiniteNumber(N.headers.get("content-length")),[F,H]=l&&progressEventDecorator(R,progressEventReducer(asyncDecorator(l),!0))||[];N=new Response(trackStream(N.body,DEFAULT_CHUNK_SIZE,F,()=>{H&&H(),b&&b()}),E)}f=f||"text";let y=await resolvers[utils$1.findKey(resolvers,f)||"text"](N,e);return!P&&b&&b(),await new Promise((E,R)=>{settle(E,R,{data:y,headers:AxiosHeaders$1.from(N.headers),status:N.status,statusText:N.statusText,config:e,request:v})})}catch(w){throw b&&b(),w&&w.name==="TypeError"&&/fetch/i.test(w.message)?Object.assign(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,e,v),{cause:w.cause||w}):AxiosError$1.from(w,w&&w.code,e,v)}}),knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$1.forEach(knownAdapters,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const renderReason=e=>`- ${e}`,isResolvedHandle=e=>utils$1.isFunction(e)||e===null||e===!1,adapters={getAdapter:e=>{e=utils$1.isArray(e)?e:[e];const{length:t}=e;let a,n;const o={};for(let r=0;r`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let s=t?r.length>1?`since : +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...a){const n=new this(t);return a.forEach(o=>n.set(o)),n}static accessor(t){const n=(this[$internals]=this[$internals]={accessors:{}}).accessors,o=this.prototype;function r(s){const l=normalizeHeader(s);n[l]||(buildAccessors(o,s),n[l]=!0)}return utils$1.isArray(t)?t.forEach(r):r(t),this}};AxiosHeaders$1.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),utils$1.reduceDescriptors(AxiosHeaders$1.prototype,({value:e},t)=>{let a=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[a]=n}}}),utils$1.freezeMethods(AxiosHeaders$1);function transformData(e,t){const a=this||defaults,n=t||a,o=AxiosHeaders$1.from(n.headers);let r=n.data;return utils$1.forEach(e,function(l){r=l.call(a,r,o.normalize(),t?t.status:void 0)}),o.normalize(),r}function isCancel$1(e){return!!(e&&e.__CANCEL__)}function CanceledError$1(e,t,a){AxiosError$1.call(this,e??"canceled",AxiosError$1.ERR_CANCELED,t,a),this.name="CanceledError"}utils$1.inherits(CanceledError$1,AxiosError$1,{__CANCEL__:!0});function settle(e,t,a){const n=a.config.validateStatus;!a.status||!n||n(a.status)?e(a):t(new AxiosError$1("Request failed with status code "+a.status,[AxiosError$1.ERR_BAD_REQUEST,AxiosError$1.ERR_BAD_RESPONSE][Math.floor(a.status/100)-4],a.config,a.request,a))}function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function speedometer(e,t){e=e||10;const a=new Array(e),n=new Array(e);let o=0,r=0,s;return t=t!==void 0?t:1e3,function(c){const f=Date.now(),u=n[r];s||(s=f),a[o]=c,n[o]=f;let d=r,m=0;for(;d!==o;)m+=a[d++],d=d%e;if(o=(o+1)%e,o===r&&(r=(r+1)%e),f-s{a=u,o=null,r&&(clearTimeout(r),r=null),e.apply(null,f)};return[(...f)=>{const u=Date.now(),d=u-a;d>=n?s(f,u):(o=f,r||(r=setTimeout(()=>{r=null,s(o)},n-d)))},()=>o&&s(o)]}const progressEventReducer=(e,t,a=3)=>{let n=0;const o=speedometer(50,250);return throttle(r=>{const s=r.loaded,l=r.lengthComputable?r.total:void 0,c=s-n,f=o(c),u=s<=l;n=s;const d={loaded:s,total:l,progress:l?s/l:void 0,bytes:c,rate:f||void 0,estimated:f&&l&&u?(l-s)/f:void 0,event:r,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(d)},a)},progressEventDecorator=(e,t)=>{const a=e!=null;return[n=>t[0]({lengthComputable:a,total:e,loaded:n}),t[1]]},asyncDecorator=e=>(...t)=>utils$1.asap(()=>e(...t)),isURLSameOrigin=platform.hasStandardBrowserEnv?((e,t)=>a=>(a=new URL(a,platform.origin),e.protocol===a.protocol&&e.host===a.host&&(t||e.port===a.port)))(new URL(platform.origin),platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent)):()=>!0,cookies=platform.hasStandardBrowserEnv?{write(e,t,a,n,o,r){const s=[e+"="+encodeURIComponent(t)];utils$1.isNumber(a)&&s.push("expires="+new Date(a).toGMTString()),utils$1.isString(n)&&s.push("path="+n),utils$1.isString(o)&&s.push("domain="+o),r===!0&&s.push("secure"),document.cookie=s.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function buildFullPath(e,t,a){let n=!isAbsoluteURL(t);return e&&n||a==!1?combineURLs(e,t):t}const headersToObject=e=>e instanceof AxiosHeaders$1?{...e}:e;function mergeConfig$1(e,t){t=t||{};const a={};function n(f,u,d,m){return utils$1.isPlainObject(f)&&utils$1.isPlainObject(u)?utils$1.merge.call({caseless:m},f,u):utils$1.isPlainObject(u)?utils$1.merge({},u):utils$1.isArray(u)?u.slice():u}function o(f,u,d,m){if(utils$1.isUndefined(u)){if(!utils$1.isUndefined(f))return n(void 0,f,d,m)}else return n(f,u,d,m)}function r(f,u){if(!utils$1.isUndefined(u))return n(void 0,u)}function s(f,u){if(utils$1.isUndefined(u)){if(!utils$1.isUndefined(f))return n(void 0,f)}else return n(void 0,u)}function l(f,u,d){if(d in t)return n(f,u);if(d in e)return n(void 0,f)}const c={url:r,method:r,data:r,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l,headers:(f,u,d)=>o(headersToObject(f),headersToObject(u),d,!0)};return utils$1.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=c[u]||o,m=d(e[u],t[u],u);utils$1.isUndefined(m)&&d!==l||(a[u]=m)}),a}const resolveConfig=e=>{const t=mergeConfig$1({},e);let{data:a,withXSRFToken:n,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:l}=t;t.headers=s=AxiosHeaders$1.from(s),t.url=buildURL(buildFullPath(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):"")));let c;if(utils$1.isFormData(a)){if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if((c=s.getContentType())!==!1){const[f,...u]=c?c.split(";").map(d=>d.trim()).filter(Boolean):[];s.setContentType([f||"multipart/form-data",...u].join("; "))}}if(platform.hasStandardBrowserEnv&&(n&&utils$1.isFunction(n)&&(n=n(t)),n||n!==!1&&isURLSameOrigin(t.url))){const f=o&&r&&cookies.read(r);f&&s.set(o,f)}return t},isXHRAdapterSupported=typeof XMLHttpRequest<"u",xhrAdapter=isXHRAdapterSupported&&function(e){return new Promise(function(a,n){const o=resolveConfig(e);let r=o.data;const s=AxiosHeaders$1.from(o.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:f}=o,u,d,m,g,v;function b(){g&&g(),v&&v(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let $=new XMLHttpRequest;$.open(o.method.toUpperCase(),o.url,!0),$.timeout=o.timeout;function w(){if(!$)return;const P=AxiosHeaders$1.from("getAllResponseHeaders"in $&&$.getAllResponseHeaders()),E={data:!l||l==="text"||l==="json"?$.responseText:$.response,status:$.status,statusText:$.statusText,headers:P,config:e,request:$};settle(function(F){a(F),b()},function(F){n(F),b()},E),$=null}"onloadend"in $?$.onloadend=w:$.onreadystatechange=function(){!$||$.readyState!==4||$.status===0&&!($.responseURL&&$.responseURL.indexOf("file:")===0)||setTimeout(w)},$.onabort=function(){$&&(n(new AxiosError$1("Request aborted",AxiosError$1.ECONNABORTED,e,$)),$=null)},$.onerror=function(){n(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,e,$)),$=null},$.ontimeout=function(){let y=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const E=o.transitional||transitionalDefaults;o.timeoutErrorMessage&&(y=o.timeoutErrorMessage),n(new AxiosError$1(y,E.clarifyTimeoutError?AxiosError$1.ETIMEDOUT:AxiosError$1.ECONNABORTED,e,$)),$=null},r===void 0&&s.setContentType(null),"setRequestHeader"in $&&utils$1.forEach(s.toJSON(),function(y,E){$.setRequestHeader(E,y)}),utils$1.isUndefined(o.withCredentials)||($.withCredentials=!!o.withCredentials),l&&l!=="json"&&($.responseType=o.responseType),f&&([m,v]=progressEventReducer(f,!0),$.addEventListener("progress",m)),c&&$.upload&&([d,g]=progressEventReducer(c),$.upload.addEventListener("progress",d),$.upload.addEventListener("loadend",g)),(o.cancelToken||o.signal)&&(u=P=>{$&&(n(!P||P.type?new CanceledError$1(null,e,$):P),$.abort(),$=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const C=parseProtocol(o.url);if(C&&platform.protocols.indexOf(C)===-1){n(new AxiosError$1("Unsupported protocol "+C+":",AxiosError$1.ERR_BAD_REQUEST,e));return}$.send(r||null)})},composeSignals=(e,t)=>{const{length:a}=e=e?e.filter(Boolean):[];if(t||a){let n=new AbortController,o;const r=function(f){if(!o){o=!0,l();const u=f instanceof Error?f:this.reason;n.abort(u instanceof AxiosError$1?u:new CanceledError$1(u instanceof Error?u.message:u))}};let s=t&&setTimeout(()=>{s=null,r(new AxiosError$1(`timeout ${t} of ms exceeded`,AxiosError$1.ETIMEDOUT))},t);const l=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(r):f.removeEventListener("abort",r)}),e=null)};e.forEach(f=>f.addEventListener("abort",r));const{signal:c}=n;return c.unsubscribe=()=>utils$1.asap(l),c}},streamChunk=function*(e,t){let a=e.byteLength;if(a{const o=readBytes(e,t);let r=0,s,l=c=>{s||(s=!0,n&&n(c))};return new ReadableStream({async pull(c){try{const{done:f,value:u}=await o.next();if(f){l(),c.close();return}let d=u.byteLength;if(a){let m=r+=d;a(m)}c.enqueue(new Uint8Array(u))}catch(f){throw l(f),f}},cancel(c){return l(c),o.return()}},{highWaterMark:2})},isFetchSupported=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",isReadableStreamSupported=isFetchSupported&&typeof ReadableStream=="function",encodeText=isFetchSupported&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),test=(e,...t)=>{try{return!!e(...t)}catch{return!1}},supportsRequestStream=isReadableStreamSupported&&test(()=>{let e=!1;const t=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),DEFAULT_CHUNK_SIZE=64*1024,supportsResponseStream=isReadableStreamSupported&&test(()=>utils$1.isReadableStream(new Response("").body)),resolvers={stream:supportsResponseStream&&(e=>e.body)};isFetchSupported&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!resolvers[t]&&(resolvers[t]=utils$1.isFunction(e[t])?a=>a[t]():(a,n)=>{throw new AxiosError$1(`Response type '${t}' is not supported`,AxiosError$1.ERR_NOT_SUPPORT,n)})})})(new Response);const getBodyLength=async e=>{if(e==null)return 0;if(utils$1.isBlob(e))return e.size;if(utils$1.isSpecCompliantForm(e))return(await new Request(platform.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(utils$1.isArrayBufferView(e)||utils$1.isArrayBuffer(e))return e.byteLength;if(utils$1.isURLSearchParams(e)&&(e=e+""),utils$1.isString(e))return(await encodeText(e)).byteLength},resolveBodyLength=async(e,t)=>{const a=utils$1.toFiniteNumber(e.getContentLength());return a??getBodyLength(t)},fetchAdapter=isFetchSupported&&(async e=>{let{url:t,method:a,data:n,signal:o,cancelToken:r,timeout:s,onDownloadProgress:l,onUploadProgress:c,responseType:f,headers:u,withCredentials:d="same-origin",fetchOptions:m}=resolveConfig(e);f=f?(f+"").toLowerCase():"text";let g=composeSignals([o,r&&r.toAbortSignal()],s),v;const b=g&&g.unsubscribe&&(()=>{g.unsubscribe()});let $;try{if(c&&supportsRequestStream&&a!=="get"&&a!=="head"&&($=await resolveBodyLength(u,n))!==0){let E=new Request(t,{method:"POST",body:n,duplex:"half"}),R;if(utils$1.isFormData(n)&&(R=E.headers.get("content-type"))&&u.setContentType(R),E.body){const[F,H]=progressEventDecorator($,progressEventReducer(asyncDecorator(c)));n=trackStream(E.body,DEFAULT_CHUNK_SIZE,F,H)}}utils$1.isString(d)||(d=d?"include":"omit");const w="credentials"in Request.prototype;v=new Request(t,{...m,signal:g,method:a.toUpperCase(),headers:u.normalize().toJSON(),body:n,duplex:"half",credentials:w?d:void 0});let C=await fetch(v);const P=supportsResponseStream&&(f==="stream"||f==="response");if(supportsResponseStream&&(l||P&&b)){const E={};["status","statusText","headers"].forEach(j=>{E[j]=C[j]});const R=utils$1.toFiniteNumber(C.headers.get("content-length")),[F,H]=l&&progressEventDecorator(R,progressEventReducer(asyncDecorator(l),!0))||[];C=new Response(trackStream(C.body,DEFAULT_CHUNK_SIZE,F,()=>{H&&H(),b&&b()}),E)}f=f||"text";let y=await resolvers[utils$1.findKey(resolvers,f)||"text"](C,e);return!P&&b&&b(),await new Promise((E,R)=>{settle(E,R,{data:y,headers:AxiosHeaders$1.from(C.headers),status:C.status,statusText:C.statusText,config:e,request:v})})}catch(w){throw b&&b(),w&&w.name==="TypeError"&&/fetch/i.test(w.message)?Object.assign(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,e,v),{cause:w.cause||w}):AxiosError$1.from(w,w&&w.code,e,v)}}),knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$1.forEach(knownAdapters,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const renderReason=e=>`- ${e}`,isResolvedHandle=e=>utils$1.isFunction(e)||e===null||e===!1,adapters={getAdapter:e=>{e=utils$1.isArray(e)?e:[e];const{length:t}=e;let a,n;const o={};for(let r=0;r`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let s=t?r.length>1?`since : `+r.map(renderReason).join(` `):" "+renderReason(r[0]):"as no adapter specified";throw new AxiosError$1("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return n},adapters:knownAdapters};function throwIfCancellationRequested(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new CanceledError$1(null,e)}function dispatchRequest(e){return throwIfCancellationRequested(e),e.headers=AxiosHeaders$1.from(e.headers),e.data=transformData.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),adapters.getAdapter(e.adapter||defaults.adapter)(e).then(function(n){return throwIfCancellationRequested(e),n.data=transformData.call(e,e.transformResponse,n),n.headers=AxiosHeaders$1.from(n.headers),n},function(n){return isCancel$1(n)||(throwIfCancellationRequested(e),n&&n.response&&(n.response.data=transformData.call(e,e.transformResponse,n.response),n.response.headers=AxiosHeaders$1.from(n.response.headers))),Promise.reject(n)})}const VERSION$1="1.8.3",validators$1={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{validators$1[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const deprecatedWarnings={};validators$1.transitional=function(t,a,n){function o(r,s){return"[Axios v"+VERSION$1+"] Transitional option '"+r+"'"+s+(n?". "+n:"")}return(r,s,l)=>{if(t===!1)throw new AxiosError$1(o(s," has been removed"+(a?" in "+a:"")),AxiosError$1.ERR_DEPRECATED);return a&&!deprecatedWarnings[s]&&(deprecatedWarnings[s]=!0,console.warn(o(s," has been deprecated since v"+a+" and will be removed in the near future"))),t?t(r,s,l):!0}},validators$1.spelling=function(t){return(a,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function assertOptions(e,t,a){if(typeof e!="object")throw new AxiosError$1("options must be an object",AxiosError$1.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const r=n[o],s=t[r];if(s){const l=e[r],c=l===void 0||s(l,r,e);if(c!==!0)throw new AxiosError$1("option "+r+" must be "+c,AxiosError$1.ERR_BAD_OPTION_VALUE);continue}if(a!==!0)throw new AxiosError$1("Unknown option "+r,AxiosError$1.ERR_BAD_OPTION)}}const validator={assertOptions,validators:validators$1},validators=validator.validators;let Axios$1=class{constructor(t){this.defaults=t,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}async request(t,a){try{return await this._request(t,a)}catch(n){if(n instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const r=o.stack?o.stack.replace(/^.+\n/,""):"";try{n.stack?r&&!String(n.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(n.stack+=` -`+r):n.stack=r}catch{}}throw n}}_request(t,a){typeof t=="string"?(a=a||{},a.url=t):a=t||{},a=mergeConfig$1(this.defaults,a);const{transitional:n,paramsSerializer:o,headers:r}=a;n!==void 0&&validator.assertOptions(n,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),o!=null&&(utils$1.isFunction(o)?a.paramsSerializer={serialize:o}:validator.assertOptions(o,{encode:validators.function,serialize:validators.function},!0)),a.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?a.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:a.allowAbsoluteUrls=!0),validator.assertOptions(a,{baseUrl:validators.spelling("baseURL"),withXsrfToken:validators.spelling("withXSRFToken")},!0),a.method=(a.method||this.defaults.method||"get").toLowerCase();let s=r&&utils$1.merge(r.common,r[a.method]);r&&utils$1.forEach(["delete","get","head","post","put","patch","common"],v=>{delete r[v]}),a.headers=AxiosHeaders$1.concat(s,r);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(a)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const f=[];this.interceptors.response.forEach(function(b){f.push(b.fulfilled,b.rejected)});let u,d=0,m;if(!c){const v=[dispatchRequest.bind(this),void 0];for(v.unshift.apply(v,l),v.push.apply(v,f),m=v.length,u=Promise.resolve(a);d{if(!n._listeners)return;let r=n._listeners.length;for(;r-- >0;)n._listeners[r](o);n._listeners=null}),this.promise.then=o=>{let r;const s=new Promise(l=>{n.subscribe(l),r=l}).then(o);return s.cancel=function(){n.unsubscribe(r)},s},t(function(r,s,l){n.reason||(n.reason=new CanceledError$1(r,s,l),a(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const a=this._listeners.indexOf(t);a!==-1&&this._listeners.splice(a,1)}toAbortSignal(){const t=new AbortController,a=n=>{t.abort(n)};return this.subscribe(a),t.signal.unsubscribe=()=>this.unsubscribe(a),t.signal}static source(){let t;return{token:new ia(function(o){t=o}),cancel:t}}};function spread$1(e){return function(a){return e.apply(null,a)}}function isAxiosError$1(e){return utils$1.isObject(e)&&e.isAxiosError===!0}const HttpStatusCode$1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode$1).forEach(([e,t])=>{HttpStatusCode$1[t]=e});function createInstance(e){const t=new Axios$1(e),a=bind(Axios$1.prototype.request,t);return utils$1.extend(a,Axios$1.prototype,t,{allOwnKeys:!0}),utils$1.extend(a,t,null,{allOwnKeys:!0}),a.create=function(o){return createInstance(mergeConfig$1(e,o))},a}const axios=createInstance(defaults);axios.Axios=Axios$1,axios.CanceledError=CanceledError$1,axios.CancelToken=CancelToken$1,axios.isCancel=isCancel$1,axios.VERSION=VERSION$1,axios.toFormData=toFormData$1,axios.AxiosError=AxiosError$1,axios.Cancel=axios.CanceledError,axios.all=function(t){return Promise.all(t)},axios.spread=spread$1,axios.isAxiosError=isAxiosError$1,axios.mergeConfig=mergeConfig$1,axios.AxiosHeaders=AxiosHeaders$1,axios.formToJSON=e=>formDataToJSON(utils$1.isHTMLForm(e)?new FormData(e):e),axios.getAdapter=adapters.getAdapter,axios.HttpStatusCode=HttpStatusCode$1,axios.default=axios;const{Axios,AxiosError,CanceledError,isCancel,CancelToken,VERSION,all,Cancel,isAxiosError,spread,toFormData,AxiosHeaders,HttpStatusCode,formToJSON,getAdapter,mergeConfig}=axios,baseUrl="/weilin/prompt_ui/api",request=axios.create({baseURL:baseUrl,timeout:3e4,headers:{"Content-Type":"application/json"}});request.interceptors.request.use(e=>e,e=>Promise.reject(e)),request.interceptors.response.use(e=>e.data,e=>Promise.reject(e));const languageApi={getUserSetting:async()=>await request({url:"/user_init/get_settings",method:"get"}),setUserLanguage:async e=>await request({url:"/user_init/set_user_lang",method:"post",data:{user_lang:e}}),startPanel:async()=>await request({url:"/panel/start",method:"post"})},getTagStore=()=>useTagStore(),i18n=createI18n({legacy:!1,locale:"zh_CN",fallbackLocale:"zh_CN",messages:{zh_CN,en_US}}),initLocale=()=>{const e=getTagStore();languageApi.getUserSetting().then(t=>{var n;e.setUserSetting(t.data);const a=((n=e.userSetting)==null?void 0:n.user_lang)||"zh_CN";i18n.global.locale.value=a})},setLocale=e=>{i18n.global.locale.value=e,getTagStore().setUserSetting({user_lang:e})},initI18n=()=>{initLocale()},_sfc_main$s={name:"popmessage",props:{type:{type:String,default:"success"},str:{type:String,default:"登陆成功"}},setup(){const e={warn:{color:"#E6A23C",backgroundColor:"rgb(253, 246, 236)",borderColor:"rgb(250, 236, 216)"},error:{color:"#F56C6C",backgroundColor:"rgb(254, 240, 240)",borderColor:"rgb(253, 226, 226)"},success:{color:"#67C23A",backgroundColor:"rgb(240, 249, 235)",borderColor:"rgb(225, 243, 216)"}},t=ref(!1);return onMounted(()=>{t.value=!0}),{style:e,visible:t}}},_hoisted_1$r={class:"text"};function _sfc_render(e,t,a,n,o,r){return withDirectives((openBlock(),createElementBlock("div",{class:"pop-message",style:normalizeStyle(n.style[a.type])},[createBaseVNode("i",{class:normalizeClass(["icon",[n.style[a.type].icon]])},null,2),createBaseVNode("span",_hoisted_1$r,toDisplayString$1(a.str),1)],4)),[[vShow,n.visible]])}const tip=_export_sfc(_sfc_main$s,[["render",_sfc_render],["__scopeId","data-v-ccb6bb2b"]]),div$1=document.createElement("div");document.body.appendChild(div$1);let timer=null;const message$1=({str:e,type:t,name:a=""})=>{let n=i18n.global.t(e);a.length>0&&(n=i18n.global.t(e,{name:a}));const o=createVNode(tip,{str:n,type:t});render$1(o,div$1),timer&&clearTimeout(timer),timer=setTimeout(()=>{render$1(null,div$1)},2e3)},_hoisted_1$q={class:"language-selector-content"},_hoisted_2$o=["onClick"],_hoisted_3$o={class:"lang-name"},_sfc_main$r={__name:"LanguageSwitcher",emits:["close"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(null),r=useTagStore(),s=computed(()=>r.userSetting.user_lang),l=[{code:"zh_CN",name:"简体中文"},{code:"en_US",name:"English"}],c=a,f=m=>{u(m),c("close",{})},u=m=>{languageApi.setUserLanguage(m).then(g=>{setLocale(m),window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*"),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.setLanguageSuccess"})}).catch(g=>{message$1({type:"warn",str:"message.setLanguageFailed"})})};return t({setPosition:m=>{if(!o.value)return;const g=o.value;g.style.position="fixed",g.style.top=`${m.bottom}px`}}),(m,g)=>(openBlock(),createElementBlock("div",{class:"language-selector",ref_key:"selectorRef",ref:o},[createBaseVNode("div",_hoisted_1$q,[(openBlock(),createElementBlock(Fragment,null,renderList(l,(v,b)=>createBaseVNode("div",{style:normalizeStyle({"margin-top":b===0?"0":"2px"}),key:v.code,class:normalizeClass(["language-option",{active:s.value===v.code}]),onClick:$=>f(v.code)},[createBaseVNode("span",_hoisted_3$o,toDisplayString$1(v.name),1)],14,_hoisted_2$o)),64))])],512))}},LanguageSwitcher=_export_sfc(_sfc_main$r,[["__scopeId","data-v-1a0e3baa"]]),prefix$5="weilin_prompt_ui_",_sfc_main$q={__name:"Dialog",props:{modelValue:Boolean,title:{type:String,default:"标题"},closeOnClickOverlay:{type:Boolean,default:!1},width:{type:String,default:"60%"}},emits:["update:modelValue"],setup(e,{emit:t}){const a=e,n=t,o=()=>{n("update:modelValue",!1)},r=()=>{a.closeOnClickOverlay&&o()};return(s,l)=>(openBlock(),createBlock(Teleport,{to:"#weilin_comfyui_tools_prompt_ui_div"},[createVNode(Transition,{name:`${prefix$5}dialog-fade`},{default:withCtx(()=>[e.modelValue?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(`${prefix$5}dialog-overlay`),onClick:r},[createVNode(Transition,{name:`${prefix$5}dialog-slide`},{default:withCtx(()=>[createBaseVNode("div",{style:normalizeStyle({width:e.width}),class:normalizeClass(`${prefix$5}dialog`),onClick:l[0]||(l[0]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",{class:normalizeClass(`${prefix$5}dialog-header`)},[createBaseVNode("h3",{class:normalizeClass(`${prefix$5}dialog-title`)},toDisplayString$1(e.title),3),createBaseVNode("button",{class:normalizeClass(`${prefix$5}dialog-close`),onClick:o},l[1]||(l[1]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),2)],2),createBaseVNode("div",{class:normalizeClass(`${prefix$5}dialog-content`)},[renderSlot(s.$slots,"default")],2),s.$slots.footer?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(`${prefix$5}dialog-footer`)},[renderSlot(s.$slots,"footer")],2)):createCommentVNode("",!0)],6)]),_:3},8,["name"])],2)):createCommentVNode("",!0)]),_:3},8,["name"])]))}},Dialog=_export_sfc(_sfc_main$q,[["__scopeId","data-v-d2e9c495"]]),translatorApi={getTranslateLocal:async e=>await request({url:"/prompt/local/translate",method:"post",data:{phrase:e}}),getTranslatePackagesState:async()=>await request({url:"/translate/get/packages/state",method:"post",data:{}}),getTranslateSetting:async()=>await request({url:"/translate/get/setting",method:"post",data:{}}),applyTranslateSetting:async e=>await request({url:"/translate/apply_setting",method:"post",data:{setting:e}}),installTranslatePackage:async()=>await request({url:"/translate/install/translaterpackage",method:"post",timeout:0,data:{}}),getTranslateBuktSetting:async()=>await request({url:"/translate/get/tran_setting",method:"post",data:{}}),saveTranslateSetting:async(e,t,a)=>await request({url:"/translate/save_tran/setting",method:"post",data:{service:e,source_lang:t,target_lang:a}}),translaterText:async(e,t)=>await request({url:"/translate/tran/text",method:"post",timeout:0,data:{str_object:e,text:t}}),translaterInputText:async(e,t)=>await request({url:"/translate/tran/input",method:"post",timeout:0,data:{str_object:e,text:t}})},autocompleteApi={getAutocomplete:async e=>await request({url:"/prompt/fast/autocomplete",method:"post",data:{query:e}}),getAutocompleteLimit:async()=>await request({url:"/get/setting/get_auto_limit_setting",method:"post"}),updateAutocompleteLimit:async e=>await request({url:"/update/setting/update_auto_limit_setting",method:"post",data:{limit:e}})},openaiApi={updateOpenAiSetting:async e=>await request({url:"/prompt/openai/update_settings",method:"post",data:e}),addOpenAiSetting:async e=>await request({url:"/prompt/openai/add_setting",method:"post",data:e}),deleteOpenAiSetting:async e=>await request({url:"/prompt/openai/delete_setting",method:"post",data:e}),setOpenAiSelect:async e=>await request({url:"/prompt/openai/set_select",method:"post",data:e}),getOpenAiSetting:async()=>await request({url:"/prompt/openai/get_settings",method:"get"})},translaterSerives=["alibaba","baidu","bing","deepl","youdao","qqtransmart","sogou","niutrans","mymemory","modernmt","volcengine","iciba","iflytek","google","lingvanex","yandex","itranslate","systran","argos","apertium","reverso","cloudtranslation","translatecom","tilde","caiyun","qqfanyi","translateme","papago","mirai","iflyrec","hujiang","yeekit","languagewire","elia","judic","mglip","utibet"],language=[{language:"chinese",translator:"zh"},{language:"english",translator:"en"},{language:"arabic",translator:"ar"},{language:"russian",translator:"ru"},{language:"french",translator:"fr"},{language:"german",translator:"de"},{language:"spanish",translator:"es"},{language:"portuguese",translator:"pt"},{language:"italian",translator:"it"},{language:"japanese",translator:"ja"},{language:"korean",translator:"ko"},{language:"greek",translator:"el"},{language:"dutch",translator:"nl"},{language:"hindi",translator:"hi"},{language:"turkish",translator:"tr"},{language:"malay",translator:"ms"},{language:"thai",translator:"th"},{language:"vietnamese",translator:"vi"},{language:"indonesian",translator:"id"},{language:"hebrew",translator:"he"},{language:"polish",translator:"pl"},{language:"mongolian",translator:"mn"},{language:"czech",translator:"cs"},{language:"hungarian",translator:"hu"},{language:"estonian",translator:"et"},{language:"bulgarian",translator:"bg"},{language:"danish",translator:"da"},{language:"finnish",translator:"fi"},{language:"romanian",translator:"ro"},{language:"swedish",translator:"sv"},{language:"slovenian",translator:"sl"},{language:"persian/farsi",translator:"fa"},{language:"bosnian",translator:"bs"},{language:"serbian",translator:"sr"},{language:"fijian",translator:"fj"},{language:"filipino",translator:"tl"},{language:"haitiancreole",translator:"ht"},{language:"catalan",translator:"ca"},{language:"croatian",translator:"hr"},{language:"latvian",translator:"lv"},{language:"lithuanian",translator:"lt"},{language:"urdu",translator:"ur"},{language:"ukrainian",translator:"uk"},{language:"welsh",translator:"cy"},{language:"tahiti",translator:"ty"},{language:"tongan",translator:"to"},{language:"swahili",translator:"sw"},{language:"samoan",translator:"sm"},{language:"slovak",translator:"sk"},{language:"afrikaans",translator:"af"},{language:"norwegian",translator:"no"},{language:"bengali",translator:"bn"},{language:"malagasy",translator:"mg"},{language:"maltese",translator:"mt"},{language:"queretaro otomi",translator:"otq"},{language:"klingon/tlhingan hol",translator:"tlh"},{language:"gujarati",translator:"gu"},{language:"tamil",translator:"ta"},{language:"telugu",translator:"te"},{language:"punjabi",translator:"pa"},{language:"amharic",translator:"am"},{language:"azerbaijani",translator:"az"},{language:"bashkir",translator:"ba"},{language:"belarusian",translator:"be"},{language:"cebuano",translator:"ceb"},{language:"chuvash",translator:"cv"},{language:"esperanto",translator:"eo"},{language:"basque",translator:"eu"},{language:"irish",translator:"ga"}],aiServerApi={getAiServerSetting:async e=>await request({url:"/ai_server/get_settings",method:"post",data:{}}),updateAiServerSetting:async e=>await request({url:"/ai_server/update_settings",method:"post",data:e}),getAiModels:async()=>await request({url:"/ai_server/get_ai_models",method:"post",data:{}})},_hoisted_1$p={class:"ai-server-setting-panel"},_hoisted_2$n={class:"weilin-comfyui-translater-setting-box"},_hoisted_3$n={class:"weilin-comfyui-setting-item"},_hoisted_4$m={class:"weilin-comfyui-setting-item"},_hoisted_5$k={class:"weilin-comfyui-setting-item"},_hoisted_6$k={style:{display:"flex",gap:"10px"}},_hoisted_7$k=["value"],_hoisted_8$k={class:"weilin-comfyui-translater-setting-box"},_hoisted_9$k={class:"weilin-comfyui-setting-small-titile"},_hoisted_10$j={class:"weilin-comfyui-language-selectors"},_hoisted_11$i={class:"weilin-comfyui-setting-item"},_hoisted_12$i=["index","value"],_hoisted_13$g={class:"weilin-comfyui-setting-item"},_hoisted_14$e=["index","value"],_hoisted_15$e={class:"weilin-comfyui-translater-setting-box"},_hoisted_16$e={class:"weilin-comfyui-setting-small-titile"},_hoisted_17$e={class:"weilin-comfyui-setting-item"},_hoisted_18$b=["placeholder"],_hoisted_19$b={class:"weilin-comfyui-setting-item"},_hoisted_20$b=["placeholder"],_sfc_main$p={__name:"ai_server_setting",setup(e){const{t}=useI18n(),a=ref(""),n=ref(""),o=ref(""),r=ref(""),s=ref(""),l=ref({api_key:"",base_url:"https://api.siliconflow.cn/v1",model:"",temperature:0,top_p:.7,max_tokens:4096}),c=ref({object:"list",data:[]}),f=()=>{aiServerApi.updateAiServerSetting(l.value).then(b=>{b.info=="ok"?message$1({type:"success",str:"message.saveSuccess"}):message$1({type:"warn",str:"message.saveFailed"})}).catch(b=>{message$1({type:"warn",str:"message.saveFailed"})})},u=()=>{aiServerApi.getAiServerSetting().then(b=>{l.value=b.data}).catch(b=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},d=()=>{aiServerApi.getAiModels().then(b=>{c.value=b.data}).catch(b=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},m=()=>{translatorApi.getTranslateBuktSetting().then(b=>{a.value=b.data.translate_service,n.value=b.data.translate_source_lang,o.value=b.data.translate_target_lang}).catch(b=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},g=()=>{translatorApi.saveTranslateSetting(a.value,n.value,o.value).then(b=>{b.info=="ok"?message$1({type:"success",str:"message.saveSuccess"}):message$1({type:"warn",str:"message.saveFailed"})}).catch(b=>{message$1({type:"warn",str:"message.saveFailed"})})},v=()=>{r.value="";let b={text:s.value,translate:""};const $=JSON.stringify(b);translatorApi.translaterInputText($,"").then(w=>{if(w&&w.data){const N=JSON.parse(w.data);r.value=N.translate}}).catch(w=>{message$1({type:"warn",str:"message.translaterTestFail"})})};return onMounted(()=>{u(),d(),m()}),(b,$)=>(openBlock(),createElementBlock("div",_hoisted_1$p,[createBaseVNode("div",_hoisted_2$n,[createBaseVNode("div",_hoisted_3$n,[$[7]||($[7]=createBaseVNode("label",null,"API Key",-1)),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":$[0]||($[0]=w=>l.value.api_key=w),placeholder:"请输入API Key",class:"weilin-comfyui-common-select"},null,512),[[vModelText,l.value.api_key]])]),createBaseVNode("div",_hoisted_4$m,[$[9]||($[9]=createBaseVNode("label",null,"AI平台",-1)),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[1]||($[1]=w=>l.value.base_url=w),disabled:"",class:"weilin-comfyui-common-select"},$[8]||($[8]=[createBaseVNode("option",{value:"https://api.siliconflow.cn/v1"},"硅基AI",-1)]),512),[[vModelSelect,l.value.base_url]])]),createBaseVNode("div",_hoisted_5$k,[$[10]||($[10]=createBaseVNode("label",null,"Model(获取前请先填写完API Key点击保存后再获取!)",-1)),createBaseVNode("div",_hoisted_6$k,[withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[2]||($[2]=w=>l.value.model=w),class:"weilin-comfyui-common-select",style:{flex:"1"}},[(openBlock(!0),createElementBlock(Fragment,null,renderList(c.value.data,w=>(openBlock(),createElementBlock("option",{key:w.id,value:w.id},toDisplayString$1(w.id),9,_hoisted_7$k))),128))],512),[[vModelSelect,l.value.model]]),createBaseVNode("button",{type:"button",class:"weilin-comfyui-install-button",style:{width:"auto","min-width":"120px"},onClick:d}," 获取模型列表 ")])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:f},"保存AI平台设置")]),createBaseVNode("div",_hoisted_8$k,[createBaseVNode("div",_hoisted_9$k,toDisplayString$1(unref(t)("promptBox.settings.translaterSetting")),1),createBaseVNode("div",_hoisted_10$j,[createBaseVNode("div",_hoisted_11$i,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.translaterLangSourceSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[3]||($[3]=w=>n.value=w)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(w,N)=>(openBlock(),createElementBlock("option",{index:N,key:"lan-item_"+N,value:w.translator},toDisplayString$1(unref(t)("translaterLanguage."+w.language)),9,_hoisted_12$i))),128))],512),[[vModelSelect,n.value]])]),createBaseVNode("div",_hoisted_13$g,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.translaterLangTargeSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[4]||($[4]=w=>o.value=w)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(w,N)=>(openBlock(),createElementBlock("option",{index:N,key:"lan-mu-item_"+N,value:w.translator},toDisplayString$1(unref(t)("translaterLanguage."+w.language)),9,_hoisted_14$e))),128))],512),[[vModelSelect,o.value]])])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:g},toDisplayString$1(unref(t)("promptBox.settings.saveTranslaterSetting")),1)]),createBaseVNode("div",_hoisted_15$e,[createBaseVNode("div",_hoisted_16$e,toDisplayString$1(unref(t)("promptBox.settings.testTranslaterTitle")),1),createBaseVNode("div",_hoisted_17$e,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.inputTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":$[5]||($[5]=w=>s.value=w),placeholder:unref(t)("promptBox.settings.inputTestTranslaterPlaceholder")},null,8,_hoisted_18$b),[[vModelText,s.value]])]),createBaseVNode("div",_hoisted_19$b,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.outPutTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":$[6]||($[6]=w=>r.value=w),readonly:"",placeholder:unref(t)("promptBox.settings.outPutTestTranslaterPlaceholder")},null,8,_hoisted_20$b),[[vModelText,r.value]])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:v},toDisplayString$1(unref(t)("promptBox.settings.testingTranslater")),1)])]))}},aiServerSetting=_export_sfc(_sfc_main$p,[["__scopeId","data-v-731441c6"]]),_hoisted_1$o={class:"weilin-comfyui-settings-content"},_hoisted_2$m={class:"weilin-comfyui-settings-sidebar"},_hoisted_3$m={class:"weilin-comfyui-settings-main"},_hoisted_4$l={key:0},_hoisted_5$j={class:"weilin-comfyui-setting-select"},_hoisted_6$j={class:"weilin-comfyui-translator-settings"},_hoisted_7$j={key:0,class:"weilin-comfyui-group-box"},_hoisted_8$j={key:1,class:"weilin-comfyui-group-box"},_hoisted_9$j={class:"weilin-comfyui-group-title"},_hoisted_10$i={class:"weilin-comfyui-note-top"},_hoisted_11$h={class:"weilin-comfyui-setting-item"},_hoisted_12$h={value:"auto"},_hoisted_13$f={value:"chinese_simplified"},_hoisted_14$d={value:"english"},_hoisted_15$d={class:"weilin-comfyui-setting-item"},_hoisted_16$d={value:"chinese_simplified"},_hoisted_17$d={value:"english"},_hoisted_18$a={key:2,class:"weilin-comfyui-group-box"},_hoisted_19$a={class:"weilin-comfyui-group-title"},_hoisted_20$a={class:"weilin-comfyui-note-top"},_hoisted_21$a={class:"weilin-comfyui-translater-innstall-status"},_hoisted_22$a={class:"weilin-comfyui-translater-install-label"},_hoisted_23$a={key:0,class:"weilin-comfyui-translater-install-label"},_hoisted_24$a={key:1,class:"weilin-comfyui-translater-install-control"},_hoisted_25$a=["disabled"],_hoisted_26$a={key:0,class:"weilin-comfyui-translater-setting-box"},_hoisted_27$a={class:"weilin-comfyui-setting-small-titile"},_hoisted_28$9={class:"weilin-comfyui-setting-item"},_hoisted_29$9=["index","value"],_hoisted_30$9={class:"weilin-comfyui-language-selectors"},_hoisted_31$9={class:"weilin-comfyui-setting-item"},_hoisted_32$9=["index","value"],_hoisted_33$8={class:"weilin-comfyui-setting-item"},_hoisted_34$8=["index","value"],_hoisted_35$8={key:1,class:"weilin-comfyui-tranlater-text-box"},_hoisted_36$8={class:"weilin-comfyui-setting-small-titile"},_hoisted_37$7={class:"weilin-comfyui-setting-item"},_hoisted_38$7=["placeholder"],_hoisted_39$7={class:"weilin-comfyui-setting-item"},_hoisted_40$7=["placeholder"],_hoisted_41$7={key:1},_hoisted_42$7={class:"weilin-comfyui-floating-ball-settings"},_hoisted_43$7={class:"weilin-comfyui-setting-item"},_hoisted_44$6=["placeholder"],_hoisted_45$6={class:"weilin-comfyui-setting-item"},_hoisted_46$5=["placeholder"],_hoisted_47$4={class:"weilin-comfyui-setting-item"},_hoisted_48$4=["placeholder"],_hoisted_49$4={key:2},_hoisted_50$4={class:"weilin-comfyui-floating-ball-settings",style:{display:"grid","grid-template-columns":"repeat(2, 1fr)",gap:"15px"}},_hoisted_51$4={class:"weilin-comfyui-settings-column"},_hoisted_52$4={class:"weilin-comfyui-setting-item"},_hoisted_53$4={class:"weilin-comfyui-setting-item"},_hoisted_54$3=["placeholder"],_hoisted_55$3={class:"weilin-comfyui-setting-item"},_hoisted_56$3=["placeholder"],_hoisted_57$3={class:"weilin-comfyui-setting-item"},_hoisted_58$3=["placeholder"],_hoisted_59$3={class:"weilin-comfyui-settings-column"},_hoisted_60$3={class:"weilin-comfyui-setting-item"},_hoisted_61$3={value:"default"},_hoisted_62$3={value:"custom"},_hoisted_63$3={key:0,class:"weilin-comfyui-setting-item"},_hoisted_64$3={key:0,class:"weilin-comfyui-skin-preview"},_hoisted_65$3=["src"],_hoisted_66$3={class:"weilin-comfyui-setting-item",style:{"grid-column":"span 2"}},_hoisted_67$3={value:"gradient"},_hoisted_68$3={value:"transparent"},_hoisted_69$3={key:0,class:"weilin-comfyui-setting-item",style:{"grid-column":"span 2"}},_hoisted_70$3={style:{display:"flex",gap:"10px","align-items":"center"}},_hoisted_71$3={class:"weilin-comfyui-setting-item",style:{"grid-column":"span 2"}},_hoisted_72$3={key:3},_hoisted_73$2={class:"weilin-comfyui-floating-ball-settings"},_hoisted_74$2={class:"weilin-comfyui-setting-item"},_hoisted_75$2={class:"weilin-comfyui-setting-item"},_hoisted_76$2={class:"weilin-comfyui-setting-item"},_hoisted_77$2={class:"weilin-comfyui-setting-item"},_hoisted_78$2={class:"weilin-comfyui-setting-item"},_hoisted_79$2={class:"weilin-comfyui-setting-item"},_hoisted_80$2={class:"weilin-comfyui-setting-item"},_hoisted_81$2={key:4},_hoisted_82$2={class:"weilin-comfyui-openai-settings"},_hoisted_83$2={class:"weilin-comfyui-setting-item"},_hoisted_84$2=["value"],_hoisted_85$2={class:"weilin-comfyui-config-list"},_hoisted_86$2={class:"weilin-comfyui-config-header"},_hoisted_87$2={class:"weilin-comfyui-config-actions"},_hoisted_88$2=["onClick"],_hoisted_89$2=["onClick"],_hoisted_90$2={key:0,class:"weilin-comfyui-config-form"},_hoisted_91$2={class:"weilin-comfyui-form-group"},_hoisted_92$2=["placeholder"],_hoisted_93$2={class:"weilin-comfyui-form-group"},_hoisted_94$2=["placeholder"],_hoisted_95$2={class:"weilin-comfyui-form-group"},_hoisted_96$2=["placeholder"],_hoisted_97$2={class:"weilin-comfyui-form-actions"},_hoisted_98$2=["onClick"],_hoisted_99$2={key:1,class:"weilin-comfyui-config-details"},_hoisted_100$2={key:0,class:"weilin-comfyui-config-form"},_hoisted_101$2={class:"weilin-comfyui-form-group"},_hoisted_102$2=["placeholder"],_hoisted_103$2={class:"weilin-comfyui-form-group"},_hoisted_104$2=["placeholder"],_hoisted_105$2={class:"weilin-comfyui-form-group"},_hoisted_106$2=["placeholder"],_hoisted_107$2={class:"weilin-comfyui-form-actions"},_hoisted_108$2={key:5},_hoisted_109$2={class:"weilin-comfyui-sponsor-me-settings"},_hoisted_110$2={key:6},_hoisted_111$2={class:"weilin-comfyui-start-panel-settings"},_sfc_main$o={__name:"setting_dialog",setup(e,{expose:t}){const{t:a}=useI18n(),n=ref(!1),o=ref("translator"),r=ref("baidu"),s=ref(""),l=ref(localStorage.getItem("weilin_prompt_ui_sourceLanguage")||"english"),c=ref(localStorage.getItem("weilin_prompt_ui_targetLanguage")||"chinese_simplified"),f=ref(localStorage.getItem("weilin_prompt_ui_floatingBallCount")||1),u=ref(localStorage.getItem("weilin_prompt_ui_floatingBallSize")||66),d=ref(localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize")||u.value),m=ref(localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true"),g=ref(localStorage.getItem("weilin_prompt_ui_ballSkinType")||"default"),v=ref(localStorage.getItem("weilin_prompt_ui_customSkinUrl")||""),b=ref(localStorage.getItem("weilin_prompt_ui_bgType")||"gradient"),$=ref(localStorage.getItem("weilin_prompt_ui_gradientColor1")||"#6a11cb"),w=ref(localStorage.getItem("weilin_prompt_ui_gradientColor2")||"#2575fc"),N=ref(localStorage.getItem("weilin_prompt_ui_ballBorderRadius")||50),P=ref(localStorage.getItem("weilin_prompt_ui_comma_conversion")==="true"),y=ref(localStorage.getItem("weilin_prompt_ui_period_conversion")==="true"),E=ref(localStorage.getItem("weilin_prompt_ui_bracket_conversion")==="true"),R=ref(localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")==="true"),F=ref(localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")==="true"),H=ref(localStorage.getItem("weilin_prompt_ui_comma_close_autocomplete")==="true"),j=ref(localStorage.getItem("weilin_prompt_ui_bracket_escape")==="true"),fe=ref(""),oe=ref(""),V=ref(""),q=ref(0),Q=ref([]),O=ref(!1),G=ref({api_key:"",base_url:"https://api.openai.com/v1",model:""}),ee=ref(!1),A=ref(-1),D=ref(""),W=ref(!1),ae=ref(!1),Y=ref(""),ne=ref(""),te=ref(25),ge=ref(localStorage.getItem("weilin_prompt_ui_auto_box_width")||450),re=ref(localStorage.getItem("weilin_prompt_ui_auto_box_height")||350),B=Te=>{o.value=Te,Te=="setting_auto_complete_limit"&&Ie()},z=()=>{localStorage.setItem("weilin_prompt_ui_sourceLanguage",l.value),localStorage.setItem("weilin_prompt_ui_targetLanguage",c.value),window.parent.postMessage({type:"weilin_prompt_ui_translate_setting"},"*"),message$1({type:"success",str:"message.saveSuccess"})},Z=Te=>{const be=Te.target.files[0];if(be){const ye=new FileReader;ye.onload=Ae=>{v.value=Ae.target.result,localStorage.setItem("weilin_prompt_ui_customSkinUrl",Ae.target.result)},ye.readAsDataURL(be)}},L=()=>{$.value="#6a11cb",w.value="#2575fc"},K=()=>{if(f.value<1||u.value<5||d.value<5){message$1({type:"warn",str:"message.error"});return}localStorage.setItem("weilin_prompt_ui_floatingBallEnabled",m.value),localStorage.setItem("weilin_prompt_ui_floatingBallCount",f.value),localStorage.setItem("weilin_prompt_ui_floatingBallSize",u.value),localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",d.value),localStorage.setItem("weilin_prompt_ui_ballSkinType",g.value),localStorage.setItem("weilin_prompt_ui_bgType",b.value),localStorage.setItem("weilin_prompt_ui_gradientColor1",$.value),localStorage.setItem("weilin_prompt_ui_gradientColor2",w.value),localStorage.setItem("weilin_prompt_ui_ballBorderRadius",N.value),localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",d.value),window.parent.postMessage({type:"weilin_prompt_ui_floating_ball_setting"},"*"),message$1({type:"success",str:"message.saveSuccess"})},x=()=>{localStorage.setItem("weilin_prompt_ui_comma_conversion",P.value),localStorage.setItem("weilin_prompt_ui_period_conversion",y.value),localStorage.setItem("weilin_prompt_ui_bracket_conversion",E.value),localStorage.setItem("weilin_prompt_ui_angle_bracket_conversion",R.value),localStorage.setItem("weilin_prompt_ui_underscore_to_bracket",F.value),localStorage.setItem("weilin_prompt_ui_comma_close_autocomplete",H.value),localStorage.setItem("weilin_prompt_ui_bracket_escape",j.value),message$1({type:"success",str:"message.saveSuccess"})},S=()=>{languageApi.getUserSetting().then(Te=>{Q.value=Te.data.openai_settings,q.value=Te.data.select_openai})},I=()=>{G.value={api_key:"",base_url:"https://api.openai.com/v1",model:""},ee.value=!1,O.value=!0},X=Te=>{openaiApi.deleteOpenAiSetting({index:Te}).then(be=>{S(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(be=>{message$1({type:"warn",str:"message.networkError"})})},ie=Te=>{A.value===Te?A.value=-1:(G.value={...Q.value[Te]},A.value=Te)},pe=Te=>{openaiApi.updateOpenAiSetting({index:Te,...G.value}).then(be=>{S(),A.value=-1,message$1({type:"success",str:"message.saveSuccess"})}).catch(be=>{message$1({type:"warn",str:"message.networkError"})})},k=()=>{openaiApi.addOpenAiSetting({...G.value}).then(Te=>{S(),O.value=!1,A.value=-1,message$1({type:"success",str:"message.saveSuccess"})}).catch(Te=>{message$1({type:"warn",str:"message.networkError"})})},_=()=>{O.value=!1,A.value=-1},M=()=>{openaiApi.setOpenAiSelect({index:q.value}).then(Te=>{message$1({type:"success",str:"message.saveSuccess"})}).catch(Te=>{message$1({type:"warn",str:"message.networkError"})})},U=()=>{window.open("https://afdian.com/a/weilin9999","_blank")},_e=()=>{languageApi.startPanel().then(Te=>{message$1({type:"success",str:"message.startPanelSuccess"})}).catch(Te=>{message$1({type:"warn",str:"message.startPanelFailed"})})},me=()=>{translatorApi.getTranslatePackagesState().then(Te=>{Te.info=="ok"?ae.value=!0:ae.value=!1}).catch(Te=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},J=()=>{translatorApi.getTranslateSetting().then(Te=>{localStorage.setItem("weilin_prompt_ui_translater_setting",Te.data),D.value=Te.data}).catch(Te=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},ue=()=>{translatorApi.applyTranslateSetting(D.value).then(Te=>{Te.info=="ok"?(localStorage.setItem("weilin_prompt_ui_translater_setting",D.value),message$1({type:"success",str:"message.applyTranslaterSuccess"})):message$1({type:"warn",str:"message.applyToTranslaterFail"})}).catch(Te=>{message$1({type:"warn",str:"message.applyTranslaterFail"})})},$e=()=>{translatorApi.getTranslateBuktSetting().then(Te=>{fe.value=Te.data.translate_service,oe.value=Te.data.translate_source_lang,V.value=Te.data.translate_target_lang}).catch(Te=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},xe=()=>{translatorApi.saveTranslateSetting(fe.value,oe.value,V.value).then(Te=>{Te.info=="ok"?message$1({type:"success",str:"message.saveSuccess"}):message$1({type:"warn",str:"message.saveFailed"})}).catch(Te=>{message$1({type:"warn",str:"message.saveFailed"})})},Ne=()=>{translatorApi.translaterInputText(Y.value).then(Te=>{ne.value=Te.text}).catch(Te=>{message$1({type:"warn",str:"message.translaterTestFail"})})},Be=ref(null),Me=()=>{W.value=!0,translatorApi.installTranslatePackage().then(Te=>{W.value=!1,ae.value=!0,message$1({type:"success",str:"message.tranlaterPackageInstallSuccess"})}).catch(Te=>{W.value=!1,message$1({type:"warn",str:"message.tranlaterPackageInstallFail"})})},Ie=async()=>{await autocompleteApi.getAutocompleteLimit().then(Te=>{te.value=Te.data}).catch(Te=>{console.error(Te),message$1({type:"warn",str:"message.networkError"})})},We=async()=>{await autocompleteApi.updateAutocompleteLimit(te.value).then(Te=>{message$1({type:"success",str:"message.saveSuccess"}),localStorage.setItem("weilin_prompt_ui_auto_box_width",ge.value),localStorage.setItem("weilin_prompt_ui_auto_box_height",re.value)}).catch(Te=>{console.error(Te),message$1({type:"warn",str:"message.networkError"})})};return onMounted(()=>{$e(),me(),J(),S()}),onUnmounted(()=>{Be.value&&clearInterval(Be.value)}),t({open:()=>{o.value="translator",r.value="baidu",s.value="",l.value=localStorage.getItem("weilin_prompt_ui_sourceLanguage")||"english",c.value=localStorage.getItem("weilin_prompt_ui_targetLanguage")||"chinese_simplified",f.value=localStorage.getItem("weilin_prompt_ui_floatingBallCount")||1,u.value=localStorage.getItem("weilin_prompt_ui_floatingBallSize")||5,m.value=localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true",P.value=localStorage.getItem("weilin_prompt_ui_comma_conversion")==="true",y.value=localStorage.getItem("weilin_prompt_ui_period_conversion")==="true",E.value=localStorage.getItem("weilin_prompt_ui_bracket_conversion")==="true",R.value=localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")==="true",F.value=localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")==="true",H.value=localStorage.getItem("weilin_prompt_ui_comma_close_autocomplete")==="true",n.value=!0}}),(Te,be)=>(openBlock(),createBlock(Dialog,{modelValue:n.value,"onUpdate:modelValue":be[41]||(be[41]=ye=>n.value=ye),title:unref(a)("promptBox.settings.title")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:be[40]||(be[40]=ye=>n.value=!1)},toDisplayString$1(unref(a)("promptBox.settings.close")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$o,[createBaseVNode("div",_hoisted_2$m,[createBaseVNode("ul",null,[createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="translator"}),onClick:be[0]||(be[0]=ye=>B("translator"))},toDisplayString$1(unref(a)("promptBox.settings.translator")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_auto_complete_limit"}),onClick:be[1]||(be[1]=ye=>B("setting_auto_complete_limit"))},toDisplayString$1(unref(a)("promptBox.settings.setting_auto_complete_limit")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_floating_ball"}),onClick:be[2]||(be[2]=ye=>B("setting_floating_ball"))},toDisplayString$1(unref(a)("promptBox.settings.setting_floating_ball")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_prompt_box"}),onClick:be[3]||(be[3]=ye=>B("setting_prompt_box"))},toDisplayString$1(unref(a)("promptBox.settings.setting_prompt_box")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_openai_box"}),onClick:be[4]||(be[4]=ye=>B("setting_openai_box"))},toDisplayString$1(unref(a)("promptBox.settings.setting_openai_box")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_sponsor_me"}),onClick:be[5]||(be[5]=ye=>B("setting_sponsor_me"))},toDisplayString$1(unref(a)("promptBox.settings.setting_sponsor_me")),3)])]),createBaseVNode("div",_hoisted_3$m,[o.value==="translator"?(openBlock(),createElementBlock("div",_hoisted_4$l,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.translator")),1),createBaseVNode("div",_hoisted_5$j,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.selectTranslater")),1),withDirectives(createBaseVNode("select",{style:{"margin-left":"10px"},"onUpdate:modelValue":be[6]||(be[6]=ye=>D.value=ye),class:"weilin-comfyui-common-select"},be[42]||(be[42]=[createBaseVNode("option",{value:"other_ai_plate"},"使用三方AI平台翻译",-1),createBaseVNode("option",{value:"openai"},"OpenAI API 翻译",-1)]),512),[[vModelSelect,D.value]]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:ue},toDisplayString$1(unref(a)("promptBox.settings.apply")),1)]),createBaseVNode("div",_hoisted_6$j,[D.value=="other_ai_plate"?(openBlock(),createElementBlock("div",_hoisted_7$j,[createVNode(aiServerSetting)])):createCommentVNode("",!0),D.value=="network"?(openBlock(),createElementBlock("div",_hoisted_8$j,[createBaseVNode("div",_hoisted_9$j,toDisplayString$1(unref(a)("promptBox.settings.selectOptionNetworkTranslaterTitle")),1),createBaseVNode("div",_hoisted_10$i,toDisplayString$1(unref(a)("promptBox.settings.selectOptionNetworkTranslaterInfo"))+":https://github.com/xnx3/translate",1),createBaseVNode("div",_hoisted_11$h,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.sourceLanguage")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[7]||(be[7]=ye=>l.value=ye),class:"weilin-comfyui-common-select"},[createBaseVNode("option",_hoisted_12$h,toDisplayString$1(unref(a)("promptBox.settings.auto_detect")),1),createBaseVNode("option",_hoisted_13$f,toDisplayString$1(unref(a)("promptBox.settings.chinese_simplified")),1),createBaseVNode("option",_hoisted_14$d,toDisplayString$1(unref(a)("promptBox.settings.english")),1)],512),[[vModelSelect,l.value]])]),createBaseVNode("div",_hoisted_15$d,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.targetLanguage")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[8]||(be[8]=ye=>c.value=ye),class:"weilin-comfyui-common-select"},[createBaseVNode("option",_hoisted_16$d,toDisplayString$1(unref(a)("promptBox.settings.chinese_simplified")),1),createBaseVNode("option",_hoisted_17$d,toDisplayString$1(unref(a)("promptBox.settings.english")),1)],512),[[vModelSelect,c.value]])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:z},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])):createCommentVNode("",!0),D.value=="translater"?(openBlock(),createElementBlock("div",_hoisted_18$a,[createBaseVNode("div",_hoisted_19$a,toDisplayString$1(unref(a)("promptBox.settings.selectOptionPythonTranslaterTitle")),1),createBaseVNode("div",_hoisted_20$a,toDisplayString$1(unref(a)("promptBox.settings.selectOptionPythonTranslaterInfo"))+":https://github.com/UlionTse/translators",1),createBaseVNode("div",_hoisted_21$a,[createBaseVNode("div",_hoisted_22$a,toDisplayString$1(unref(a)("promptBox.settings.nowTranlaterPackageState"))+" "+toDisplayString$1(ae.value?unref(a)("promptBox.settings.tranlaterPackageStateTrue"):unref(a)("promptBox.settings.tranlaterPackageStateFlase")),1),W.value?(openBlock(),createElementBlock("div",_hoisted_23$a,toDisplayString$1(unref(a)("promptBox.settings.installTranslaterPackageInfo")),1)):createCommentVNode("",!0),ae.value?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_24$a,[createBaseVNode("button",{disabled:W.value,class:"weilin-comfyui-install-button",onClick:Me},toDisplayString$1(W.value?unref(a)("promptBox.settings.installed"):unref(a)("promptBox.settings.install")),9,_hoisted_25$a)]))]),ae.value?(openBlock(),createElementBlock("div",_hoisted_26$a,[createBaseVNode("div",_hoisted_27$a,toDisplayString$1(unref(a)("promptBox.settings.translaterSetting")),1),createBaseVNode("div",_hoisted_28$9,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.chooseTranslaterSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[9]||(be[9]=ye=>fe.value=ye)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(translaterSerives),(ye,Ae)=>(openBlock(),createElementBlock("option",{index:Ae,key:"tran-item_"+Ae,value:ye},toDisplayString$1(unref(a)("translaterService."+ye)),9,_hoisted_29$9))),128))],512),[[vModelSelect,fe.value]])]),createBaseVNode("div",_hoisted_30$9,[createBaseVNode("div",_hoisted_31$9,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.translaterLangSourceSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[10]||(be[10]=ye=>oe.value=ye)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(ye,Ae)=>(openBlock(),createElementBlock("option",{index:Ae,key:"lan-item_"+Ae,value:ye.translator},toDisplayString$1(unref(a)("translaterLanguage."+ye.language)),9,_hoisted_32$9))),128))],512),[[vModelSelect,oe.value]])]),createBaseVNode("div",_hoisted_33$8,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.translaterLangTargeSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[11]||(be[11]=ye=>V.value=ye)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(ye,Ae)=>(openBlock(),createElementBlock("option",{index:Ae,key:"lan-mu-item_"+Ae,value:ye.translator},toDisplayString$1(unref(a)("translaterLanguage."+ye.language)),9,_hoisted_34$8))),128))],512),[[vModelSelect,V.value]])])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:xe},toDisplayString$1(unref(a)("promptBox.settings.saveTranslaterSetting")),1)])):createCommentVNode("",!0),ae.value?(openBlock(),createElementBlock("div",_hoisted_35$8,[createBaseVNode("div",_hoisted_36$8,toDisplayString$1(unref(a)("promptBox.settings.testTranslaterTitle")),1),createBaseVNode("div",_hoisted_37$7,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.inputTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[12]||(be[12]=ye=>Y.value=ye),placeholder:unref(a)("promptBox.settings.inputTestTranslaterPlaceholder")},null,8,_hoisted_38$7),[[vModelText,Y.value]])]),createBaseVNode("div",_hoisted_39$7,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.outPutTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[13]||(be[13]=ye=>ne.value=ye),readonly:"",placeholder:unref(a)("promptBox.settings.outPutTestTranslaterPlaceholder")},null,8,_hoisted_40$7),[[vModelText,ne.value]])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:Ne},toDisplayString$1(unref(a)("promptBox.settings.testingTranslater")),1)])):createCommentVNode("",!0)])):createCommentVNode("",!0)])])):createCommentVNode("",!0),o.value==="setting_auto_complete_limit"?(openBlock(),createElementBlock("div",_hoisted_41$7,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_auto_complete_limit")),1),createBaseVNode("div",_hoisted_42$7,[createBaseVNode("div",_hoisted_43$7,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.show_auto_limit")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[14]||(be[14]=ye=>te.value=ye),min:"1",max:"99999999",style:{width:"100px"},placeholder:unref(a)("promptBox.settings.showAutoLimitPlaceholder")},null,8,_hoisted_44$6),[[vModelText,te.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_45$6,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.settingAutoCompleteWidth")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[15]||(be[15]=ye=>ge.value=ye),min:"5",style:{width:"100px"},placeholder:unref(a)("promptBox.settings.settingAutoCompleteWidthPlaceholder")},null,8,_hoisted_46$5),[[vModelText,ge.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_47$4,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.settingAutoCompleteHeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[16]||(be[16]=ye=>re.value=ye),min:"5",style:{width:"100px"},placeholder:unref(a)("promptBox.settings.settingAutoCompleteHeightPlaceholder")},null,8,_hoisted_48$4),[[vModelText,re.value,void 0,{number:!0}]])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:We},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),o.value==="setting_floating_ball"?(openBlock(),createElementBlock("div",_hoisted_49$4,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_floating_ball")),1),createBaseVNode("div",_hoisted_50$4,[createBaseVNode("div",_hoisted_51$4,[createBaseVNode("div",_hoisted_52$4,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[17]||(be[17]=ye=>m.value=ye)},null,512),[[vModelCheckbox,m.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableFloatingBall")),1)])]),createBaseVNode("div",_hoisted_53$4,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.floatingBallCount")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[18]||(be[18]=ye=>f.value=ye),min:"1",max:"100",placeholder:unref(a)("promptBox.settings.floatingBallCountPlaceholder")},null,8,_hoisted_54$3),[[vModelText,f.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_55$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.floatingBallSize")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[19]||(be[19]=ye=>u.value=ye),min:"5",max:"999999",placeholder:unref(a)("promptBox.settings.floatingBallSizePlaceholder")},null,8,_hoisted_56$3),[[vModelText,u.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_57$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.floatingBallHeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[20]||(be[20]=ye=>d.value=ye),min:"5",max:"999999",placeholder:unref(a)("promptBox.settings.floatingBallHeightPlaceholder")},null,8,_hoisted_58$3),[[vModelText,d.value,void 0,{number:!0}]])])]),createBaseVNode("div",_hoisted_59$3,[createBaseVNode("div",_hoisted_60$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.skinSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[21]||(be[21]=ye=>g.value=ye)},[createBaseVNode("option",_hoisted_61$3,toDisplayString$1(unref(a)("promptBox.settings.defaultSkin")),1),createBaseVNode("option",_hoisted_62$3,toDisplayString$1(unref(a)("promptBox.settings.customSkin")),1)],512),[[vModelSelect,g.value]])]),g.value==="custom"?(openBlock(),createElementBlock("div",_hoisted_63$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.uploadSkin")),1),createBaseVNode("input",{type:"file",accept:"image/*",onChange:Z,ref:"skinUploader"},null,544),v.value?(openBlock(),createElementBlock("div",_hoisted_64$3,[createBaseVNode("img",{src:v.value,alt:"Custom Skin Preview"},null,8,_hoisted_65$3)])):createCommentVNode("",!0)])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_66$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.bgSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[22]||(be[22]=ye=>b.value=ye)},[createBaseVNode("option",_hoisted_67$3,toDisplayString$1(unref(a)("promptBox.settings.gradientBg")),1),createBaseVNode("option",_hoisted_68$3,toDisplayString$1(unref(a)("promptBox.settings.transparentBg")),1)],512),[[vModelSelect,b.value]])]),b.value==="gradient"?(openBlock(),createElementBlock("div",_hoisted_69$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.gradientColor")),1),createBaseVNode("div",_hoisted_70$3,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":be[23]||(be[23]=ye=>$.value=ye)},null,512),[[vModelText,$.value]]),withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":be[24]||(be[24]=ye=>w.value=ye)},null,512),[[vModelText,w.value]]),createBaseVNode("button",{onClick:L,style:{"margin-left":"10px",width:"200px"}},toDisplayString$1(unref(a)("promptBox.settings.resetToDefault")),1)])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_71$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.borderRadius")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[25]||(be[25]=ye=>N.value=ye),min:"0",max:"50"},null,512),[[vModelText,N.value,void 0,{number:!0}]])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",style:{"grid-column":"span 2"},onClick:K},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),o.value==="setting_prompt_box"?(openBlock(),createElementBlock("div",_hoisted_72$3,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_prompt_box")),1),createBaseVNode("div",_hoisted_73$2,[createBaseVNode("div",_hoisted_74$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[26]||(be[26]=ye=>P.value=ye)},null,512),[[vModelCheckbox,P.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableCommaConversion")),1)])]),createBaseVNode("div",_hoisted_75$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[27]||(be[27]=ye=>y.value=ye)},null,512),[[vModelCheckbox,y.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enablePeriodConversion")),1)])]),createBaseVNode("div",_hoisted_76$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[28]||(be[28]=ye=>E.value=ye)},null,512),[[vModelCheckbox,E.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableBracketConversion")),1)])]),createBaseVNode("div",_hoisted_77$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[29]||(be[29]=ye=>R.value=ye)},null,512),[[vModelCheckbox,R.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableAngleBracketConversion")),1)])]),createBaseVNode("div",_hoisted_78$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[30]||(be[30]=ye=>F.value=ye)},null,512),[[vModelCheckbox,F.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableUnderscoreToBracket")),1)])]),createBaseVNode("div",_hoisted_79$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[31]||(be[31]=ye=>H.value=ye)},null,512),[[vModelCheckbox,H.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableCommaCloseAutocomplete")),1)])]),createBaseVNode("div",_hoisted_80$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[32]||(be[32]=ye=>j.value=ye)},null,512),[[vModelCheckbox,j.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableBracketEscape")),1)])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:x},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),o.value==="setting_openai_box"?(openBlock(),createElementBlock("div",_hoisted_81$2,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.openaiSettings")),1),createBaseVNode("div",_hoisted_82$2,[createBaseVNode("div",_hoisted_83$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.selectedOpenaiConfig")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[33]||(be[33]=ye=>q.value=ye),onChange:M},[(openBlock(!0),createElementBlock(Fragment,null,renderList(Q.value,(ye,Ae)=>(openBlock(),createElementBlock("option",{key:Ae,value:Ae},toDisplayString$1(ye.model)+" ("+toDisplayString$1(ye.base_url)+") ",9,_hoisted_84$2))),128))],544),[[vModelSelect,q.value]])]),createBaseVNode("div",_hoisted_85$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(Q.value,(ye,Ae)=>(openBlock(),createElementBlock("div",{key:Ae,class:"weilin-comfyui-config-item"},[createBaseVNode("div",_hoisted_86$2,[createBaseVNode("span",null,toDisplayString$1(ye.model),1),createBaseVNode("div",_hoisted_87$2,[createBaseVNode("button",{onClick:Ke=>ie(Ae)},toDisplayString$1(A.value===Ae?unref(a)("promptBox.settings.cancel"):unref(a)("promptBox.settings.edit")),9,_hoisted_88$2),createBaseVNode("button",{onClick:Ke=>X(Ae)},toDisplayString$1(unref(a)("promptBox.settings.delete")),9,_hoisted_89$2)])]),A.value===Ae?(openBlock(),createElementBlock("div",_hoisted_90$2,[createBaseVNode("div",_hoisted_91$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_api_key"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[34]||(be[34]=Ke=>G.value.api_key=Ke),placeholder:unref(a)("promptBox.settings.openai_api_key_placeholder")},null,8,_hoisted_92$2),[[vModelText,G.value.api_key]])]),createBaseVNode("div",_hoisted_93$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_base_url"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[35]||(be[35]=Ke=>G.value.base_url=Ke),placeholder:unref(a)("promptBox.settings.openai_base_url_placeholder")},null,8,_hoisted_94$2),[[vModelText,G.value.base_url]])]),createBaseVNode("div",_hoisted_95$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_model"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[36]||(be[36]=Ke=>G.value.model=Ke),placeholder:unref(a)("promptBox.settings.openai_model_placeholder")},null,8,_hoisted_96$2),[[vModelText,G.value.model]])]),createBaseVNode("div",_hoisted_97$2,[createBaseVNode("button",{onClick:Ke=>pe(Ae)},toDisplayString$1(unref(a)("promptBox.settings.save")),9,_hoisted_98$2)])])):(openBlock(),createElementBlock("div",_hoisted_99$2,[createBaseVNode("div",null,toDisplayString$1(unref(a)("promptBox.settings.openai_api_key"))+": "+toDisplayString$1(ye.api_key?"******":unref(a)("promptBox.settings.not_set")),1),createBaseVNode("div",null,toDisplayString$1(unref(a)("promptBox.settings.openai_base_url"))+": "+toDisplayString$1(ye.base_url),1)]))]))),128))]),O.value?(openBlock(),createElementBlock("div",_hoisted_100$2,[createBaseVNode("div",_hoisted_101$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_api_key"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[37]||(be[37]=ye=>G.value.api_key=ye),placeholder:unref(a)("promptBox.settings.openai_api_key_placeholder")},null,8,_hoisted_102$2),[[vModelText,G.value.api_key]])]),createBaseVNode("div",_hoisted_103$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_base_url"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[38]||(be[38]=ye=>G.value.base_url=ye),placeholder:unref(a)("promptBox.settings.openai_base_url_placeholder")},null,8,_hoisted_104$2),[[vModelText,G.value.base_url]])]),createBaseVNode("div",_hoisted_105$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_model"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[39]||(be[39]=ye=>G.value.model=ye),placeholder:unref(a)("promptBox.settings.openai_model_placeholder")},null,8,_hoisted_106$2),[[vModelText,G.value.model]])]),createBaseVNode("div",_hoisted_107$2,[createBaseVNode("button",{onClick:_},toDisplayString$1(unref(a)("promptBox.settings.cancel")),1),createBaseVNode("button",{onClick:k},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),O.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:1,class:"weilin-comfyui-add-button",onClick:I},toDisplayString$1(unref(a)("promptBox.settings.addNewConfig")),1))])])):createCommentVNode("",!0),o.value==="setting_sponsor_me"?(openBlock(),createElementBlock("div",_hoisted_108$2,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_sponsor_me")),1),createBaseVNode("div",_hoisted_109$2,[createBaseVNode("h1",null,toDisplayString$1(unref(a)("promptBox.settings.sponsorMeTip")),1),createBaseVNode("h2",null,toDisplayString$1(unref(a)("promptBox.settings.sponsorMeLink")),1),createBaseVNode("button",{class:"weilin-comfyui-sponsor-me-button",onClick:U},toDisplayString$1(unref(a)("promptBox.settings.sponsorMe")),1)])])):createCommentVNode("",!0),o.value==="setting_start_panel"?(openBlock(),createElementBlock("div",_hoisted_110$2,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_start_panel")),1),createBaseVNode("div",_hoisted_111$2,[createBaseVNode("h4",null,toDisplayString$1(unref(a)("promptBox.settings.startPanelTip")),1),createBaseVNode("button",{class:"weilin-comfyui-start-panel-button",onClick:_e},toDisplayString$1(unref(a)("promptBox.settings.startPanel")),1)])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]))}},SettingDialog=_export_sfc(_sfc_main$o,[["__scopeId","data-v-d84f82b1"]]),_hoisted_1$n=["title"],_hoisted_2$l={class:"switch-icon"},_hoisted_3$l={key:0,class:"moon",viewBox:"0 0 24 24"},_hoisted_4$k={key:1,class:"sun",viewBox:"0 0 24 24"},STORAGE_PREFIX$6="weilin_tools_",_sfc_main$n={__name:"ThemeSwitch",setup(e){const{t}=useI18n(),a=`${STORAGE_PREFIX$6}theme`,n=ref(localStorage.getItem(a)==="dark"),o=()=>{n.value=!n.value;const r=document.getElementById("weilin_comfyui_tools_prompt_ui_div");r&&r.setAttribute("data-theme",n.value?"dark":"light"),localStorage.setItem(a,n.value?"dark":"light")};return(r,s)=>(openBlock(),createElementBlock("button",{class:"theme-switch",onClick:o,title:unref(t)("theme.toggle")},[createBaseVNode("div",_hoisted_2$l,[n.value?(openBlock(),createElementBlock("svg",_hoisted_3$l,s[0]||(s[0]=[createBaseVNode("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"},null,-1)]))):(openBlock(),createElementBlock("svg",_hoisted_4$k,s[1]||(s[1]=[createBaseVNode("circle",{cx:"12",cy:"12",r:"5"},null,-1),createBaseVNode("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"},null,-1)])))]),renderSlot(r.$slots,"default",{isDark:n.value},void 0,!0)],8,_hoisted_1$n))}},ThemeSwitch=_export_sfc(_sfc_main$n,[["__scopeId","data-v-43d9cf91"]]),STORAGE_PREFIX$5="weilin_tools_",tagsApi={getTagsList:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/get_group_tags",method:"get",params:{...e,lang:t}})},addPrimaryCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/add_new_f_group",method:"post",data:{...e,lang:t}})},editPrimaryCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/edit_f_group",method:"post",data:{...e,lang:t}})},deletePrimaryCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/delete_f_group",method:"post",data:{...e,lang:t}})},addSubCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/add_new_s_group",method:"post",data:{...e,lang:t}})},editSubCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/edit_s_group",method:"post",data:{...e,lang:t}})},deleteSubCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/delete_s_group",method:"post",data:{...e,lang:t}})},addNewTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/new_tags",method:"post",data:{...e,lang:t}})},editTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/edit_tags",method:"post",data:{...e,lang:t}})},deleteTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/delete_tags",method:"post",data:{...e,lang:t}})},batchDeleteTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/batch_delete_tags",method:"post",data:{...e,lang:t}})},moveTag:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/move_tag",method:"post",data:{...e,lang:t}})},getTagsGroupList:async()=>await request({url:"/prompt/get_groups_list",method:"post"}),runSQLToServer:async e=>await request({url:"/prompt/run_sql_text",method:"post",timeout:0,data:{sql:e}}),moveMainGroup:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/move_group",method:"post",data:{...e,lang:t}})},moveSubGroup:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/move_subgroup",method:"post",data:{...e,lang:t}})},getTagMainGroup:async()=>await request({url:"/prompt/get_tag_groups",method:"post"}),getTagSubGroup:async e=>await request({url:"/prompt/get_tag_subgroups",method:"post",data:{p_uuid:e}}),getTagList:async e=>await request({url:"/prompt/get_tag_tags",method:"post",data:{g_uuid:e}}),searchTag:async e=>await request({url:"/prompt/search_tags",method:"post",data:{keyword:e}})};/** +`+r):n.stack=r}catch{}}throw n}}_request(t,a){typeof t=="string"?(a=a||{},a.url=t):a=t||{},a=mergeConfig$1(this.defaults,a);const{transitional:n,paramsSerializer:o,headers:r}=a;n!==void 0&&validator.assertOptions(n,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),o!=null&&(utils$1.isFunction(o)?a.paramsSerializer={serialize:o}:validator.assertOptions(o,{encode:validators.function,serialize:validators.function},!0)),a.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?a.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:a.allowAbsoluteUrls=!0),validator.assertOptions(a,{baseUrl:validators.spelling("baseURL"),withXsrfToken:validators.spelling("withXSRFToken")},!0),a.method=(a.method||this.defaults.method||"get").toLowerCase();let s=r&&utils$1.merge(r.common,r[a.method]);r&&utils$1.forEach(["delete","get","head","post","put","patch","common"],v=>{delete r[v]}),a.headers=AxiosHeaders$1.concat(s,r);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(a)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const f=[];this.interceptors.response.forEach(function(b){f.push(b.fulfilled,b.rejected)});let u,d=0,m;if(!c){const v=[dispatchRequest.bind(this),void 0];for(v.unshift.apply(v,l),v.push.apply(v,f),m=v.length,u=Promise.resolve(a);d{if(!n._listeners)return;let r=n._listeners.length;for(;r-- >0;)n._listeners[r](o);n._listeners=null}),this.promise.then=o=>{let r;const s=new Promise(l=>{n.subscribe(l),r=l}).then(o);return s.cancel=function(){n.unsubscribe(r)},s},t(function(r,s,l){n.reason||(n.reason=new CanceledError$1(r,s,l),a(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const a=this._listeners.indexOf(t);a!==-1&&this._listeners.splice(a,1)}toAbortSignal(){const t=new AbortController,a=n=>{t.abort(n)};return this.subscribe(a),t.signal.unsubscribe=()=>this.unsubscribe(a),t.signal}static source(){let t;return{token:new la(function(o){t=o}),cancel:t}}};function spread$1(e){return function(a){return e.apply(null,a)}}function isAxiosError$1(e){return utils$1.isObject(e)&&e.isAxiosError===!0}const HttpStatusCode$1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode$1).forEach(([e,t])=>{HttpStatusCode$1[t]=e});function createInstance(e){const t=new Axios$1(e),a=bind(Axios$1.prototype.request,t);return utils$1.extend(a,Axios$1.prototype,t,{allOwnKeys:!0}),utils$1.extend(a,t,null,{allOwnKeys:!0}),a.create=function(o){return createInstance(mergeConfig$1(e,o))},a}const axios=createInstance(defaults);axios.Axios=Axios$1,axios.CanceledError=CanceledError$1,axios.CancelToken=CancelToken$1,axios.isCancel=isCancel$1,axios.VERSION=VERSION$1,axios.toFormData=toFormData$1,axios.AxiosError=AxiosError$1,axios.Cancel=axios.CanceledError,axios.all=function(t){return Promise.all(t)},axios.spread=spread$1,axios.isAxiosError=isAxiosError$1,axios.mergeConfig=mergeConfig$1,axios.AxiosHeaders=AxiosHeaders$1,axios.formToJSON=e=>formDataToJSON(utils$1.isHTMLForm(e)?new FormData(e):e),axios.getAdapter=adapters.getAdapter,axios.HttpStatusCode=HttpStatusCode$1,axios.default=axios;const{Axios,AxiosError,CanceledError,isCancel,CancelToken,VERSION,all,Cancel,isAxiosError,spread,toFormData,AxiosHeaders,HttpStatusCode,formToJSON,getAdapter,mergeConfig}=axios,baseUrl="/weilin/prompt_ui/api",request=axios.create({baseURL:baseUrl,timeout:3e4,headers:{"Content-Type":"application/json"}});request.interceptors.request.use(e=>e,e=>Promise.reject(e)),request.interceptors.response.use(e=>e.data,e=>Promise.reject(e));const languageApi={getUserSetting:async()=>await request({url:"/user_init/get_settings",method:"get"}),setUserLanguage:async e=>await request({url:"/user_init/set_user_lang",method:"post",data:{user_lang:e}}),startPanel:async()=>await request({url:"/panel/start",method:"post"})},getTagStore=()=>useTagStore(),i18n=createI18n({legacy:!1,locale:"zh_CN",fallbackLocale:"zh_CN",messages:{zh_CN,en_US}}),initLocale=()=>{const e=getTagStore();languageApi.getUserSetting().then(t=>{var n;e.setUserSetting(t.data);const a=((n=e.userSetting)==null?void 0:n.user_lang)||"zh_CN";i18n.global.locale.value=a})},setLocale=e=>{i18n.global.locale.value=e,getTagStore().setUserSetting({user_lang:e})},initI18n=()=>{initLocale()},_sfc_main$s={name:"popmessage",props:{type:{type:String,default:"success"},str:{type:String,default:"登陆成功"}},setup(){const e={warn:{color:"#E6A23C",backgroundColor:"rgb(253, 246, 236)",borderColor:"rgb(250, 236, 216)"},error:{color:"#F56C6C",backgroundColor:"rgb(254, 240, 240)",borderColor:"rgb(253, 226, 226)"},success:{color:"#67C23A",backgroundColor:"rgb(240, 249, 235)",borderColor:"rgb(225, 243, 216)"}},t=ref(!1);return onMounted(()=>{t.value=!0}),{style:e,visible:t}}},_hoisted_1$r={class:"text"};function _sfc_render(e,t,a,n,o,r){return withDirectives((openBlock(),createElementBlock("div",{class:"pop-message",style:normalizeStyle(n.style[a.type])},[createBaseVNode("i",{class:normalizeClass(["icon",[n.style[a.type].icon]])},null,2),createBaseVNode("span",_hoisted_1$r,toDisplayString$1(a.str),1)],4)),[[vShow,n.visible]])}const tip=_export_sfc(_sfc_main$s,[["render",_sfc_render],["__scopeId","data-v-ccb6bb2b"]]),div$1=document.createElement("div");document.body.appendChild(div$1);let timer=null;const message$1=({str:e,type:t,name:a=""})=>{let n=i18n.global.t(e);a.length>0&&(n=i18n.global.t(e,{name:a}));const o=createVNode(tip,{str:n,type:t});render$1(o,div$1),timer&&clearTimeout(timer),timer=setTimeout(()=>{render$1(null,div$1)},2e3)},_hoisted_1$q={class:"language-selector-content"},_hoisted_2$o=["onClick"],_hoisted_3$o={class:"lang-name"},_sfc_main$r={__name:"LanguageSwitcher",emits:["close"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(null),r=useTagStore(),s=computed(()=>r.userSetting.user_lang),l=[{code:"zh_CN",name:"简体中文"},{code:"en_US",name:"English"}],c=a,f=m=>{u(m),c("close",{})},u=m=>{languageApi.setUserLanguage(m).then(g=>{setLocale(m),window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*"),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.setLanguageSuccess"})}).catch(g=>{message$1({type:"warn",str:"message.setLanguageFailed"})})};return t({setPosition:m=>{if(!o.value)return;const g=o.value;g.style.position="fixed",g.style.top=`${m.bottom}px`}}),(m,g)=>(openBlock(),createElementBlock("div",{class:"language-selector",ref_key:"selectorRef",ref:o},[createBaseVNode("div",_hoisted_1$q,[(openBlock(),createElementBlock(Fragment,null,renderList(l,(v,b)=>createBaseVNode("div",{style:normalizeStyle({"margin-top":b===0?"0":"2px"}),key:v.code,class:normalizeClass(["language-option",{active:s.value===v.code}]),onClick:$=>f(v.code)},[createBaseVNode("span",_hoisted_3$o,toDisplayString$1(v.name),1)],14,_hoisted_2$o)),64))])],512))}},LanguageSwitcher=_export_sfc(_sfc_main$r,[["__scopeId","data-v-1a0e3baa"]]),prefix$5="weilin_prompt_ui_",_sfc_main$q={__name:"Dialog",props:{modelValue:Boolean,title:{type:String,default:"标题"},closeOnClickOverlay:{type:Boolean,default:!1},width:{type:String,default:"60%"}},emits:["update:modelValue"],setup(e,{emit:t}){const a=e,n=t,o=()=>{n("update:modelValue",!1)},r=()=>{a.closeOnClickOverlay&&o()};return(s,l)=>(openBlock(),createBlock(Teleport,{to:"#weilin_comfyui_tools_prompt_ui_div"},[createVNode(Transition,{name:`${prefix$5}dialog-fade`},{default:withCtx(()=>[e.modelValue?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(`${prefix$5}dialog-overlay`),onClick:r},[createVNode(Transition,{name:`${prefix$5}dialog-slide`},{default:withCtx(()=>[createBaseVNode("div",{style:normalizeStyle({width:e.width}),class:normalizeClass(`${prefix$5}dialog`),onClick:l[0]||(l[0]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",{class:normalizeClass(`${prefix$5}dialog-header`)},[createBaseVNode("h3",{class:normalizeClass(`${prefix$5}dialog-title`)},toDisplayString$1(e.title),3),createBaseVNode("button",{class:normalizeClass(`${prefix$5}dialog-close`),onClick:o},l[1]||(l[1]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),2)],2),createBaseVNode("div",{class:normalizeClass(`${prefix$5}dialog-content`)},[renderSlot(s.$slots,"default")],2),s.$slots.footer?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(`${prefix$5}dialog-footer`)},[renderSlot(s.$slots,"footer")],2)):createCommentVNode("",!0)],6)]),_:3},8,["name"])],2)):createCommentVNode("",!0)]),_:3},8,["name"])]))}},Dialog=_export_sfc(_sfc_main$q,[["__scopeId","data-v-d2e9c495"]]),translatorApi={getTranslateLocal:async e=>await request({url:"/prompt/local/translate",method:"post",data:{phrase:e}}),getTranslatePackagesState:async()=>await request({url:"/translate/get/packages/state",method:"post",data:{}}),getTranslateSetting:async()=>await request({url:"/translate/get/setting",method:"post",data:{}}),applyTranslateSetting:async e=>await request({url:"/translate/apply_setting",method:"post",data:{setting:e}}),installTranslatePackage:async()=>await request({url:"/translate/install/translaterpackage",method:"post",timeout:0,data:{}}),getTranslateBuktSetting:async()=>await request({url:"/translate/get/tran_setting",method:"post",data:{}}),saveTranslateSetting:async(e,t,a)=>await request({url:"/translate/save_tran/setting",method:"post",data:{service:e,source_lang:t,target_lang:a}}),translaterText:async(e,t)=>await request({url:"/translate/tran/text",method:"post",timeout:0,data:{str_object:e,text:t}}),translaterInputText:async(e,t)=>await request({url:"/translate/tran/input",method:"post",timeout:0,data:{str_object:e,text:t}})},autocompleteApi={getAutocomplete:async e=>await request({url:"/prompt/fast/autocomplete",method:"post",data:{query:e}}),getAutocompleteLimit:async()=>await request({url:"/get/setting/get_auto_limit_setting",method:"post"}),updateAutocompleteLimit:async e=>await request({url:"/update/setting/update_auto_limit_setting",method:"post",data:{limit:e}})},openaiApi={updateOpenAiSetting:async e=>await request({url:"/prompt/openai/update_settings",method:"post",data:e}),addOpenAiSetting:async e=>await request({url:"/prompt/openai/add_setting",method:"post",data:e}),deleteOpenAiSetting:async e=>await request({url:"/prompt/openai/delete_setting",method:"post",data:e}),setOpenAiSelect:async e=>await request({url:"/prompt/openai/set_select",method:"post",data:e}),getOpenAiSetting:async()=>await request({url:"/prompt/openai/get_settings",method:"get"})},translaterSerives=["alibaba","baidu","bing","deepl","youdao","qqtransmart","sogou","niutrans","mymemory","modernmt","volcengine","iciba","iflytek","google","lingvanex","yandex","itranslate","systran","argos","apertium","reverso","cloudtranslation","translatecom","tilde","caiyun","qqfanyi","translateme","papago","mirai","iflyrec","hujiang","yeekit","languagewire","elia","judic","mglip","utibet"],language=[{language:"chinese",translator:"zh"},{language:"english",translator:"en"},{language:"arabic",translator:"ar"},{language:"russian",translator:"ru"},{language:"french",translator:"fr"},{language:"german",translator:"de"},{language:"spanish",translator:"es"},{language:"portuguese",translator:"pt"},{language:"italian",translator:"it"},{language:"japanese",translator:"ja"},{language:"korean",translator:"ko"},{language:"greek",translator:"el"},{language:"dutch",translator:"nl"},{language:"hindi",translator:"hi"},{language:"turkish",translator:"tr"},{language:"malay",translator:"ms"},{language:"thai",translator:"th"},{language:"vietnamese",translator:"vi"},{language:"indonesian",translator:"id"},{language:"hebrew",translator:"he"},{language:"polish",translator:"pl"},{language:"mongolian",translator:"mn"},{language:"czech",translator:"cs"},{language:"hungarian",translator:"hu"},{language:"estonian",translator:"et"},{language:"bulgarian",translator:"bg"},{language:"danish",translator:"da"},{language:"finnish",translator:"fi"},{language:"romanian",translator:"ro"},{language:"swedish",translator:"sv"},{language:"slovenian",translator:"sl"},{language:"persian/farsi",translator:"fa"},{language:"bosnian",translator:"bs"},{language:"serbian",translator:"sr"},{language:"fijian",translator:"fj"},{language:"filipino",translator:"tl"},{language:"haitiancreole",translator:"ht"},{language:"catalan",translator:"ca"},{language:"croatian",translator:"hr"},{language:"latvian",translator:"lv"},{language:"lithuanian",translator:"lt"},{language:"urdu",translator:"ur"},{language:"ukrainian",translator:"uk"},{language:"welsh",translator:"cy"},{language:"tahiti",translator:"ty"},{language:"tongan",translator:"to"},{language:"swahili",translator:"sw"},{language:"samoan",translator:"sm"},{language:"slovak",translator:"sk"},{language:"afrikaans",translator:"af"},{language:"norwegian",translator:"no"},{language:"bengali",translator:"bn"},{language:"malagasy",translator:"mg"},{language:"maltese",translator:"mt"},{language:"queretaro otomi",translator:"otq"},{language:"klingon/tlhingan hol",translator:"tlh"},{language:"gujarati",translator:"gu"},{language:"tamil",translator:"ta"},{language:"telugu",translator:"te"},{language:"punjabi",translator:"pa"},{language:"amharic",translator:"am"},{language:"azerbaijani",translator:"az"},{language:"bashkir",translator:"ba"},{language:"belarusian",translator:"be"},{language:"cebuano",translator:"ceb"},{language:"chuvash",translator:"cv"},{language:"esperanto",translator:"eo"},{language:"basque",translator:"eu"},{language:"irish",translator:"ga"}],aiServerApi={getAiServerSetting:async e=>await request({url:"/ai_server/get_settings",method:"post",data:{}}),updateAiServerSetting:async e=>await request({url:"/ai_server/update_settings",method:"post",data:e}),getAiModels:async()=>await request({url:"/ai_server/get_ai_models",method:"post",data:{}})},_hoisted_1$p={class:"ai-server-setting-panel"},_hoisted_2$n={class:"weilin-comfyui-translater-setting-box"},_hoisted_3$n={class:"weilin-comfyui-setting-item"},_hoisted_4$m={class:"weilin-comfyui-setting-item"},_hoisted_5$k={class:"weilin-comfyui-setting-item"},_hoisted_6$k={style:{display:"flex",gap:"10px"}},_hoisted_7$k=["value"],_hoisted_8$k={class:"weilin-comfyui-translater-setting-box"},_hoisted_9$k={class:"weilin-comfyui-setting-small-titile"},_hoisted_10$j={class:"weilin-comfyui-language-selectors"},_hoisted_11$i={class:"weilin-comfyui-setting-item"},_hoisted_12$i=["index","value"],_hoisted_13$g={class:"weilin-comfyui-setting-item"},_hoisted_14$e=["index","value"],_hoisted_15$e={class:"weilin-comfyui-translater-setting-box"},_hoisted_16$e={class:"weilin-comfyui-setting-small-titile"},_hoisted_17$e={class:"weilin-comfyui-setting-item"},_hoisted_18$b=["placeholder"],_hoisted_19$b={class:"weilin-comfyui-setting-item"},_hoisted_20$b=["placeholder"],_sfc_main$p={__name:"ai_server_setting",setup(e){const{t}=useI18n(),a=ref(""),n=ref(""),o=ref(""),r=ref(""),s=ref(""),l=ref({api_key:"",base_url:"https://api.siliconflow.cn/v1",model:"",temperature:0,top_p:.7,max_tokens:4096}),c=ref({object:"list",data:[]}),f=()=>{aiServerApi.updateAiServerSetting(l.value).then(b=>{b.info=="ok"?message$1({type:"success",str:"message.saveSuccess"}):message$1({type:"warn",str:"message.saveFailed"})}).catch(b=>{message$1({type:"warn",str:"message.saveFailed"})})},u=()=>{aiServerApi.getAiServerSetting().then(b=>{l.value=b.data}).catch(b=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},d=()=>{aiServerApi.getAiModels().then(b=>{c.value=b.data}).catch(b=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},m=()=>{translatorApi.getTranslateBuktSetting().then(b=>{a.value=b.data.translate_service,n.value=b.data.translate_source_lang,o.value=b.data.translate_target_lang}).catch(b=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},g=()=>{translatorApi.saveTranslateSetting(a.value,n.value,o.value).then(b=>{b.info=="ok"?message$1({type:"success",str:"message.saveSuccess"}):message$1({type:"warn",str:"message.saveFailed"})}).catch(b=>{message$1({type:"warn",str:"message.saveFailed"})})},v=()=>{r.value="";let b={text:s.value,translate:""};const $=JSON.stringify(b);translatorApi.translaterInputText($,"").then(w=>{if(w&&w.data){const C=JSON.parse(w.data);r.value=C.translate}}).catch(w=>{message$1({type:"warn",str:"message.translaterTestFail"})})};return onMounted(()=>{u(),d(),m()}),(b,$)=>(openBlock(),createElementBlock("div",_hoisted_1$p,[createBaseVNode("div",_hoisted_2$n,[createBaseVNode("div",_hoisted_3$n,[$[7]||($[7]=createBaseVNode("label",null,"API Key",-1)),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":$[0]||($[0]=w=>l.value.api_key=w),placeholder:"请输入API Key",class:"weilin-comfyui-common-select"},null,512),[[vModelText,l.value.api_key]])]),createBaseVNode("div",_hoisted_4$m,[$[9]||($[9]=createBaseVNode("label",null,"AI平台",-1)),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[1]||($[1]=w=>l.value.base_url=w),disabled:"",class:"weilin-comfyui-common-select"},$[8]||($[8]=[createBaseVNode("option",{value:"https://api.siliconflow.cn/v1"},"硅基AI",-1)]),512),[[vModelSelect,l.value.base_url]])]),createBaseVNode("div",_hoisted_5$k,[$[10]||($[10]=createBaseVNode("label",null,"Model(获取前请先填写完API Key点击保存后再获取!)",-1)),createBaseVNode("div",_hoisted_6$k,[withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[2]||($[2]=w=>l.value.model=w),class:"weilin-comfyui-common-select",style:{flex:"1"}},[(openBlock(!0),createElementBlock(Fragment,null,renderList(c.value.data,w=>(openBlock(),createElementBlock("option",{key:w.id,value:w.id},toDisplayString$1(w.id),9,_hoisted_7$k))),128))],512),[[vModelSelect,l.value.model]]),createBaseVNode("button",{type:"button",class:"weilin-comfyui-install-button",style:{width:"auto","min-width":"120px"},onClick:d}," 获取模型列表 ")])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:f},"保存AI平台设置")]),createBaseVNode("div",_hoisted_8$k,[createBaseVNode("div",_hoisted_9$k,toDisplayString$1(unref(t)("promptBox.settings.translaterSetting")),1),createBaseVNode("div",_hoisted_10$j,[createBaseVNode("div",_hoisted_11$i,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.translaterLangSourceSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[3]||($[3]=w=>n.value=w)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(w,C)=>(openBlock(),createElementBlock("option",{index:C,key:"lan-item_"+C,value:w.translator},toDisplayString$1(unref(t)("translaterLanguage."+w.language)),9,_hoisted_12$i))),128))],512),[[vModelSelect,n.value]])]),createBaseVNode("div",_hoisted_13$g,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.translaterLangTargeSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":$[4]||($[4]=w=>o.value=w)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(w,C)=>(openBlock(),createElementBlock("option",{index:C,key:"lan-mu-item_"+C,value:w.translator},toDisplayString$1(unref(t)("translaterLanguage."+w.language)),9,_hoisted_14$e))),128))],512),[[vModelSelect,o.value]])])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:g},toDisplayString$1(unref(t)("promptBox.settings.saveTranslaterSetting")),1)]),createBaseVNode("div",_hoisted_15$e,[createBaseVNode("div",_hoisted_16$e,toDisplayString$1(unref(t)("promptBox.settings.testTranslaterTitle")),1),createBaseVNode("div",_hoisted_17$e,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.inputTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":$[5]||($[5]=w=>s.value=w),placeholder:unref(t)("promptBox.settings.inputTestTranslaterPlaceholder")},null,8,_hoisted_18$b),[[vModelText,s.value]])]),createBaseVNode("div",_hoisted_19$b,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.settings.outPutTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":$[6]||($[6]=w=>r.value=w),readonly:"",placeholder:unref(t)("promptBox.settings.outPutTestTranslaterPlaceholder")},null,8,_hoisted_20$b),[[vModelText,r.value]])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:v},toDisplayString$1(unref(t)("promptBox.settings.testingTranslater")),1)])]))}},aiServerSetting=_export_sfc(_sfc_main$p,[["__scopeId","data-v-731441c6"]]),_hoisted_1$o={class:"weilin-comfyui-settings-content"},_hoisted_2$m={class:"weilin-comfyui-settings-sidebar"},_hoisted_3$m={class:"weilin-comfyui-settings-main"},_hoisted_4$l={key:0},_hoisted_5$j={class:"weilin-comfyui-setting-select"},_hoisted_6$j={class:"weilin-comfyui-translator-settings"},_hoisted_7$j={key:0,class:"weilin-comfyui-group-box"},_hoisted_8$j={key:1,class:"weilin-comfyui-group-box"},_hoisted_9$j={class:"weilin-comfyui-group-title"},_hoisted_10$i={class:"weilin-comfyui-note-top"},_hoisted_11$h={class:"weilin-comfyui-setting-item"},_hoisted_12$h={value:"auto"},_hoisted_13$f={value:"chinese_simplified"},_hoisted_14$d={value:"english"},_hoisted_15$d={class:"weilin-comfyui-setting-item"},_hoisted_16$d={value:"chinese_simplified"},_hoisted_17$d={value:"english"},_hoisted_18$a={key:2,class:"weilin-comfyui-group-box"},_hoisted_19$a={class:"weilin-comfyui-group-title"},_hoisted_20$a={class:"weilin-comfyui-note-top"},_hoisted_21$a={class:"weilin-comfyui-translater-innstall-status"},_hoisted_22$a={class:"weilin-comfyui-translater-install-label"},_hoisted_23$a={key:0,class:"weilin-comfyui-translater-install-label"},_hoisted_24$a={key:1,class:"weilin-comfyui-translater-install-control"},_hoisted_25$a=["disabled"],_hoisted_26$a={key:0,class:"weilin-comfyui-translater-setting-box"},_hoisted_27$a={class:"weilin-comfyui-setting-small-titile"},_hoisted_28$9={class:"weilin-comfyui-setting-item"},_hoisted_29$9=["index","value"],_hoisted_30$9={class:"weilin-comfyui-language-selectors"},_hoisted_31$9={class:"weilin-comfyui-setting-item"},_hoisted_32$9=["index","value"],_hoisted_33$8={class:"weilin-comfyui-setting-item"},_hoisted_34$8=["index","value"],_hoisted_35$8={key:1,class:"weilin-comfyui-tranlater-text-box"},_hoisted_36$8={class:"weilin-comfyui-setting-small-titile"},_hoisted_37$7={class:"weilin-comfyui-setting-item"},_hoisted_38$7=["placeholder"],_hoisted_39$7={class:"weilin-comfyui-setting-item"},_hoisted_40$7=["placeholder"],_hoisted_41$7={key:1},_hoisted_42$7={class:"weilin-comfyui-floating-ball-settings"},_hoisted_43$7={class:"weilin-comfyui-setting-item"},_hoisted_44$6=["placeholder"],_hoisted_45$6={class:"weilin-comfyui-setting-item"},_hoisted_46$5=["placeholder"],_hoisted_47$4={class:"weilin-comfyui-setting-item"},_hoisted_48$4=["placeholder"],_hoisted_49$4={key:2},_hoisted_50$4={class:"weilin-comfyui-floating-ball-settings",style:{display:"grid","grid-template-columns":"repeat(2, 1fr)",gap:"15px"}},_hoisted_51$4={class:"weilin-comfyui-settings-column"},_hoisted_52$4={class:"weilin-comfyui-setting-item"},_hoisted_53$4={class:"weilin-comfyui-setting-item"},_hoisted_54$3=["placeholder"],_hoisted_55$3={class:"weilin-comfyui-setting-item"},_hoisted_56$3=["placeholder"],_hoisted_57$3={class:"weilin-comfyui-setting-item"},_hoisted_58$3=["placeholder"],_hoisted_59$3={class:"weilin-comfyui-settings-column"},_hoisted_60$3={class:"weilin-comfyui-setting-item"},_hoisted_61$3={value:"default"},_hoisted_62$3={value:"custom"},_hoisted_63$3={key:0,class:"weilin-comfyui-setting-item"},_hoisted_64$3={key:0,class:"weilin-comfyui-skin-preview"},_hoisted_65$3=["src"],_hoisted_66$3={class:"weilin-comfyui-setting-item",style:{"grid-column":"span 2"}},_hoisted_67$3={value:"gradient"},_hoisted_68$3={value:"transparent"},_hoisted_69$3={key:0,class:"weilin-comfyui-setting-item",style:{"grid-column":"span 2"}},_hoisted_70$3={style:{display:"flex",gap:"10px","align-items":"center"}},_hoisted_71$3={class:"weilin-comfyui-setting-item",style:{"grid-column":"span 2"}},_hoisted_72$3={key:3},_hoisted_73$2={class:"weilin-comfyui-floating-ball-settings"},_hoisted_74$2={class:"weilin-comfyui-setting-item"},_hoisted_75$2={class:"weilin-comfyui-setting-item"},_hoisted_76$2={class:"weilin-comfyui-setting-item"},_hoisted_77$2={class:"weilin-comfyui-setting-item"},_hoisted_78$2={class:"weilin-comfyui-setting-item"},_hoisted_79$2={class:"weilin-comfyui-setting-item"},_hoisted_80$2={class:"weilin-comfyui-setting-item"},_hoisted_81$2={key:4},_hoisted_82$2={class:"weilin-comfyui-openai-settings"},_hoisted_83$2={class:"weilin-comfyui-setting-item"},_hoisted_84$2=["value"],_hoisted_85$2={class:"weilin-comfyui-config-list"},_hoisted_86$2={class:"weilin-comfyui-config-header"},_hoisted_87$2={class:"weilin-comfyui-config-actions"},_hoisted_88$2=["onClick"],_hoisted_89$2=["onClick"],_hoisted_90$2={key:0,class:"weilin-comfyui-config-form"},_hoisted_91$2={class:"weilin-comfyui-form-group"},_hoisted_92$2=["placeholder"],_hoisted_93$2={class:"weilin-comfyui-form-group"},_hoisted_94$2=["placeholder"],_hoisted_95$2={class:"weilin-comfyui-form-group"},_hoisted_96$2=["placeholder"],_hoisted_97$2={class:"weilin-comfyui-form-actions"},_hoisted_98$2=["onClick"],_hoisted_99$2={key:1,class:"weilin-comfyui-config-details"},_hoisted_100$2={key:0,class:"weilin-comfyui-config-form"},_hoisted_101$2={class:"weilin-comfyui-form-group"},_hoisted_102$2=["placeholder"],_hoisted_103$2={class:"weilin-comfyui-form-group"},_hoisted_104$2=["placeholder"],_hoisted_105$2={class:"weilin-comfyui-form-group"},_hoisted_106$2=["placeholder"],_hoisted_107$2={class:"weilin-comfyui-form-actions"},_hoisted_108$2={key:5},_hoisted_109$2={class:"weilin-comfyui-sponsor-me-settings"},_hoisted_110$2={key:6},_hoisted_111$2={class:"weilin-comfyui-start-panel-settings"},_sfc_main$o={__name:"setting_dialog",setup(e,{expose:t}){const{t:a}=useI18n(),n=ref(!1),o=ref("translator"),r=ref("baidu"),s=ref(""),l=ref(localStorage.getItem("weilin_prompt_ui_sourceLanguage")||"english"),c=ref(localStorage.getItem("weilin_prompt_ui_targetLanguage")||"chinese_simplified"),f=ref(localStorage.getItem("weilin_prompt_ui_floatingBallCount")||1),u=ref(localStorage.getItem("weilin_prompt_ui_floatingBallSize")||66),d=ref(localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize")||u.value),m=ref(localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true"),g=ref(localStorage.getItem("weilin_prompt_ui_ballSkinType")||"default"),v=ref(localStorage.getItem("weilin_prompt_ui_customSkinUrl")||""),b=ref(localStorage.getItem("weilin_prompt_ui_bgType")||"gradient"),$=ref(localStorage.getItem("weilin_prompt_ui_gradientColor1")||"#6a11cb"),w=ref(localStorage.getItem("weilin_prompt_ui_gradientColor2")||"#2575fc"),C=ref(localStorage.getItem("weilin_prompt_ui_ballBorderRadius")||50),P=ref(localStorage.getItem("weilin_prompt_ui_comma_conversion")==="true"),y=ref(localStorage.getItem("weilin_prompt_ui_period_conversion")==="true"),E=ref(localStorage.getItem("weilin_prompt_ui_bracket_conversion")==="true"),R=ref(localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")==="true"),F=ref(localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")==="true"),H=ref(localStorage.getItem("weilin_prompt_ui_comma_close_autocomplete")==="true"),j=ref(localStorage.getItem("weilin_prompt_ui_bracket_escape")==="true"),fe=ref(""),oe=ref(""),V=ref(""),q=ref(0),Q=ref([]),O=ref(!1),G=ref({api_key:"",base_url:"https://api.openai.com/v1",model:""}),ee=ref(!1),A=ref(-1),L=ref(""),W=ref(!1),ae=ref(!1),Y=ref(""),ne=ref(""),te=ref(25),ge=ref(localStorage.getItem("weilin_prompt_ui_auto_box_width")||450),re=ref(localStorage.getItem("weilin_prompt_ui_auto_box_height")||350),B=Te=>{o.value=Te,Te=="setting_auto_complete_limit"&&Ie()},z=()=>{localStorage.setItem("weilin_prompt_ui_sourceLanguage",l.value),localStorage.setItem("weilin_prompt_ui_targetLanguage",c.value),window.parent.postMessage({type:"weilin_prompt_ui_translate_setting"},"*"),message$1({type:"success",str:"message.saveSuccess"})},Z=Te=>{const be=Te.target.files[0];if(be){const ye=new FileReader;ye.onload=Le=>{v.value=Le.target.result,localStorage.setItem("weilin_prompt_ui_customSkinUrl",Le.target.result)},ye.readAsDataURL(be)}},D=()=>{$.value="#6a11cb",w.value="#2575fc"},K=()=>{if(f.value<1||u.value<5||d.value<5){message$1({type:"warn",str:"message.error"});return}localStorage.setItem("weilin_prompt_ui_floatingBallEnabled",m.value),localStorage.setItem("weilin_prompt_ui_floatingBallCount",f.value),localStorage.setItem("weilin_prompt_ui_floatingBallSize",u.value),localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",d.value),localStorage.setItem("weilin_prompt_ui_ballSkinType",g.value),localStorage.setItem("weilin_prompt_ui_bgType",b.value),localStorage.setItem("weilin_prompt_ui_gradientColor1",$.value),localStorage.setItem("weilin_prompt_ui_gradientColor2",w.value),localStorage.setItem("weilin_prompt_ui_ballBorderRadius",C.value),localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",d.value),window.parent.postMessage({type:"weilin_prompt_ui_floating_ball_setting"},"*"),message$1({type:"success",str:"message.saveSuccess"})},x=()=>{localStorage.setItem("weilin_prompt_ui_comma_conversion",P.value),localStorage.setItem("weilin_prompt_ui_period_conversion",y.value),localStorage.setItem("weilin_prompt_ui_bracket_conversion",E.value),localStorage.setItem("weilin_prompt_ui_angle_bracket_conversion",R.value),localStorage.setItem("weilin_prompt_ui_underscore_to_bracket",F.value),localStorage.setItem("weilin_prompt_ui_comma_close_autocomplete",H.value),localStorage.setItem("weilin_prompt_ui_bracket_escape",j.value),message$1({type:"success",str:"message.saveSuccess"})},S=()=>{languageApi.getUserSetting().then(Te=>{Q.value=Te.data.openai_settings,q.value=Te.data.select_openai})},I=()=>{G.value={api_key:"",base_url:"https://api.openai.com/v1",model:""},ee.value=!1,O.value=!0},X=Te=>{openaiApi.deleteOpenAiSetting({index:Te}).then(be=>{S(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(be=>{message$1({type:"warn",str:"message.networkError"})})},ie=Te=>{A.value===Te?A.value=-1:(G.value={...Q.value[Te]},A.value=Te)},pe=Te=>{openaiApi.updateOpenAiSetting({index:Te,...G.value}).then(be=>{S(),A.value=-1,message$1({type:"success",str:"message.saveSuccess"})}).catch(be=>{message$1({type:"warn",str:"message.networkError"})})},T=()=>{openaiApi.addOpenAiSetting({...G.value}).then(Te=>{S(),O.value=!1,A.value=-1,message$1({type:"success",str:"message.saveSuccess"})}).catch(Te=>{message$1({type:"warn",str:"message.networkError"})})},_=()=>{O.value=!1,A.value=-1},M=()=>{openaiApi.setOpenAiSelect({index:q.value}).then(Te=>{message$1({type:"success",str:"message.saveSuccess"})}).catch(Te=>{message$1({type:"warn",str:"message.networkError"})})},U=()=>{window.open("https://afdian.com/a/weilin9999","_blank")},_e=()=>{languageApi.startPanel().then(Te=>{message$1({type:"success",str:"message.startPanelSuccess"})}).catch(Te=>{message$1({type:"warn",str:"message.startPanelFailed"})})},me=()=>{translatorApi.getTranslatePackagesState().then(Te=>{Te.info=="ok"?ae.value=!0:ae.value=!1}).catch(Te=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},J=()=>{translatorApi.getTranslateSetting().then(Te=>{localStorage.setItem("weilin_prompt_ui_translater_setting",Te.data),L.value=Te.data}).catch(Te=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},ce=()=>{translatorApi.applyTranslateSetting(L.value).then(Te=>{Te.info=="ok"?(localStorage.setItem("weilin_prompt_ui_translater_setting",L.value),message$1({type:"success",str:"message.applyTranslaterSuccess"})):message$1({type:"warn",str:"message.applyToTranslaterFail"})}).catch(Te=>{message$1({type:"warn",str:"message.applyTranslaterFail"})})},Se=()=>{translatorApi.getTranslateBuktSetting().then(Te=>{fe.value=Te.data.translate_service,oe.value=Te.data.translate_source_lang,V.value=Te.data.translate_target_lang}).catch(Te=>{message$1({type:"warn",str:"message.getTranslaterFail"})})},xe=()=>{translatorApi.saveTranslateSetting(fe.value,oe.value,V.value).then(Te=>{Te.info=="ok"?message$1({type:"success",str:"message.saveSuccess"}):message$1({type:"warn",str:"message.saveFailed"})}).catch(Te=>{message$1({type:"warn",str:"message.saveFailed"})})},Ne=()=>{translatorApi.translaterInputText(Y.value).then(Te=>{ne.value=Te.text}).catch(Te=>{message$1({type:"warn",str:"message.translaterTestFail"})})},Ce=ref(null),Me=()=>{W.value=!0,translatorApi.installTranslatePackage().then(Te=>{W.value=!1,ae.value=!0,message$1({type:"success",str:"message.tranlaterPackageInstallSuccess"})}).catch(Te=>{W.value=!1,message$1({type:"warn",str:"message.tranlaterPackageInstallFail"})})},Ie=async()=>{await autocompleteApi.getAutocompleteLimit().then(Te=>{te.value=Te.data}).catch(Te=>{console.error(Te),message$1({type:"warn",str:"message.networkError"})})},We=async()=>{await autocompleteApi.updateAutocompleteLimit(te.value).then(Te=>{message$1({type:"success",str:"message.saveSuccess"}),localStorage.setItem("weilin_prompt_ui_auto_box_width",ge.value),localStorage.setItem("weilin_prompt_ui_auto_box_height",re.value)}).catch(Te=>{console.error(Te),message$1({type:"warn",str:"message.networkError"})})};return onMounted(()=>{Se(),me(),J(),S()}),onUnmounted(()=>{Ce.value&&clearInterval(Ce.value)}),t({open:()=>{o.value="translator",r.value="baidu",s.value="",l.value=localStorage.getItem("weilin_prompt_ui_sourceLanguage")||"english",c.value=localStorage.getItem("weilin_prompt_ui_targetLanguage")||"chinese_simplified",f.value=localStorage.getItem("weilin_prompt_ui_floatingBallCount")||1,u.value=localStorage.getItem("weilin_prompt_ui_floatingBallSize")||5,m.value=localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true",P.value=localStorage.getItem("weilin_prompt_ui_comma_conversion")==="true",y.value=localStorage.getItem("weilin_prompt_ui_period_conversion")==="true",E.value=localStorage.getItem("weilin_prompt_ui_bracket_conversion")==="true",R.value=localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")==="true",F.value=localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")==="true",H.value=localStorage.getItem("weilin_prompt_ui_comma_close_autocomplete")==="true",n.value=!0}}),(Te,be)=>(openBlock(),createBlock(Dialog,{modelValue:n.value,"onUpdate:modelValue":be[41]||(be[41]=ye=>n.value=ye),title:unref(a)("promptBox.settings.title")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:be[40]||(be[40]=ye=>n.value=!1)},toDisplayString$1(unref(a)("promptBox.settings.close")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$o,[createBaseVNode("div",_hoisted_2$m,[createBaseVNode("ul",null,[createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="translator"}),onClick:be[0]||(be[0]=ye=>B("translator"))},toDisplayString$1(unref(a)("promptBox.settings.translator")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_auto_complete_limit"}),onClick:be[1]||(be[1]=ye=>B("setting_auto_complete_limit"))},toDisplayString$1(unref(a)("promptBox.settings.setting_auto_complete_limit")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_floating_ball"}),onClick:be[2]||(be[2]=ye=>B("setting_floating_ball"))},toDisplayString$1(unref(a)("promptBox.settings.setting_floating_ball")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_prompt_box"}),onClick:be[3]||(be[3]=ye=>B("setting_prompt_box"))},toDisplayString$1(unref(a)("promptBox.settings.setting_prompt_box")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_openai_box"}),onClick:be[4]||(be[4]=ye=>B("setting_openai_box"))},toDisplayString$1(unref(a)("promptBox.settings.setting_openai_box")),3),createBaseVNode("li",{class:normalizeClass({"weilin-comfyui-active":o.value==="setting_sponsor_me"}),onClick:be[5]||(be[5]=ye=>B("setting_sponsor_me"))},toDisplayString$1(unref(a)("promptBox.settings.setting_sponsor_me")),3)])]),createBaseVNode("div",_hoisted_3$m,[o.value==="translator"?(openBlock(),createElementBlock("div",_hoisted_4$l,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.translator")),1),createBaseVNode("div",_hoisted_5$j,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.selectTranslater")),1),withDirectives(createBaseVNode("select",{style:{"margin-left":"10px"},"onUpdate:modelValue":be[6]||(be[6]=ye=>L.value=ye),class:"weilin-comfyui-common-select"},be[42]||(be[42]=[createBaseVNode("option",{value:"other_ai_plate"},"使用三方AI平台翻译",-1),createBaseVNode("option",{value:"openai"},"OpenAI API 翻译",-1)]),512),[[vModelSelect,L.value]]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:ce},toDisplayString$1(unref(a)("promptBox.settings.apply")),1)]),createBaseVNode("div",_hoisted_6$j,[L.value=="other_ai_plate"?(openBlock(),createElementBlock("div",_hoisted_7$j,[createVNode(aiServerSetting)])):createCommentVNode("",!0),L.value=="network"?(openBlock(),createElementBlock("div",_hoisted_8$j,[createBaseVNode("div",_hoisted_9$j,toDisplayString$1(unref(a)("promptBox.settings.selectOptionNetworkTranslaterTitle")),1),createBaseVNode("div",_hoisted_10$i,toDisplayString$1(unref(a)("promptBox.settings.selectOptionNetworkTranslaterInfo"))+":https://github.com/xnx3/translate",1),createBaseVNode("div",_hoisted_11$h,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.sourceLanguage")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[7]||(be[7]=ye=>l.value=ye),class:"weilin-comfyui-common-select"},[createBaseVNode("option",_hoisted_12$h,toDisplayString$1(unref(a)("promptBox.settings.auto_detect")),1),createBaseVNode("option",_hoisted_13$f,toDisplayString$1(unref(a)("promptBox.settings.chinese_simplified")),1),createBaseVNode("option",_hoisted_14$d,toDisplayString$1(unref(a)("promptBox.settings.english")),1)],512),[[vModelSelect,l.value]])]),createBaseVNode("div",_hoisted_15$d,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.targetLanguage")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[8]||(be[8]=ye=>c.value=ye),class:"weilin-comfyui-common-select"},[createBaseVNode("option",_hoisted_16$d,toDisplayString$1(unref(a)("promptBox.settings.chinese_simplified")),1),createBaseVNode("option",_hoisted_17$d,toDisplayString$1(unref(a)("promptBox.settings.english")),1)],512),[[vModelSelect,c.value]])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:z},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])):createCommentVNode("",!0),L.value=="translater"?(openBlock(),createElementBlock("div",_hoisted_18$a,[createBaseVNode("div",_hoisted_19$a,toDisplayString$1(unref(a)("promptBox.settings.selectOptionPythonTranslaterTitle")),1),createBaseVNode("div",_hoisted_20$a,toDisplayString$1(unref(a)("promptBox.settings.selectOptionPythonTranslaterInfo"))+":https://github.com/UlionTse/translators",1),createBaseVNode("div",_hoisted_21$a,[createBaseVNode("div",_hoisted_22$a,toDisplayString$1(unref(a)("promptBox.settings.nowTranlaterPackageState"))+" "+toDisplayString$1(ae.value?unref(a)("promptBox.settings.tranlaterPackageStateTrue"):unref(a)("promptBox.settings.tranlaterPackageStateFlase")),1),W.value?(openBlock(),createElementBlock("div",_hoisted_23$a,toDisplayString$1(unref(a)("promptBox.settings.installTranslaterPackageInfo")),1)):createCommentVNode("",!0),ae.value?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_24$a,[createBaseVNode("button",{disabled:W.value,class:"weilin-comfyui-install-button",onClick:Me},toDisplayString$1(W.value?unref(a)("promptBox.settings.installed"):unref(a)("promptBox.settings.install")),9,_hoisted_25$a)]))]),ae.value?(openBlock(),createElementBlock("div",_hoisted_26$a,[createBaseVNode("div",_hoisted_27$a,toDisplayString$1(unref(a)("promptBox.settings.translaterSetting")),1),createBaseVNode("div",_hoisted_28$9,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.chooseTranslaterSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[9]||(be[9]=ye=>fe.value=ye)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(translaterSerives),(ye,Le)=>(openBlock(),createElementBlock("option",{index:Le,key:"tran-item_"+Le,value:ye},toDisplayString$1(unref(a)("translaterService."+ye)),9,_hoisted_29$9))),128))],512),[[vModelSelect,fe.value]])]),createBaseVNode("div",_hoisted_30$9,[createBaseVNode("div",_hoisted_31$9,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.translaterLangSourceSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[10]||(be[10]=ye=>oe.value=ye)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(ye,Le)=>(openBlock(),createElementBlock("option",{index:Le,key:"lan-item_"+Le,value:ye.translator},toDisplayString$1(unref(a)("translaterLanguage."+ye.language)),9,_hoisted_32$9))),128))],512),[[vModelSelect,oe.value]])]),createBaseVNode("div",_hoisted_33$8,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.translaterLangTargeSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[11]||(be[11]=ye=>V.value=ye)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(language),(ye,Le)=>(openBlock(),createElementBlock("option",{index:Le,key:"lan-mu-item_"+Le,value:ye.translator},toDisplayString$1(unref(a)("translaterLanguage."+ye.language)),9,_hoisted_34$8))),128))],512),[[vModelSelect,V.value]])])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:xe},toDisplayString$1(unref(a)("promptBox.settings.saveTranslaterSetting")),1)])):createCommentVNode("",!0),ae.value?(openBlock(),createElementBlock("div",_hoisted_35$8,[createBaseVNode("div",_hoisted_36$8,toDisplayString$1(unref(a)("promptBox.settings.testTranslaterTitle")),1),createBaseVNode("div",_hoisted_37$7,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.inputTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[12]||(be[12]=ye=>Y.value=ye),placeholder:unref(a)("promptBox.settings.inputTestTranslaterPlaceholder")},null,8,_hoisted_38$7),[[vModelText,Y.value]])]),createBaseVNode("div",_hoisted_39$7,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.outPutTestTranslater")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[13]||(be[13]=ye=>ne.value=ye),readonly:"",placeholder:unref(a)("promptBox.settings.outPutTestTranslaterPlaceholder")},null,8,_hoisted_40$7),[[vModelText,ne.value]])]),createBaseVNode("button",{class:"weilin-comfyui-install-button",onClick:Ne},toDisplayString$1(unref(a)("promptBox.settings.testingTranslater")),1)])):createCommentVNode("",!0)])):createCommentVNode("",!0)])])):createCommentVNode("",!0),o.value==="setting_auto_complete_limit"?(openBlock(),createElementBlock("div",_hoisted_41$7,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_auto_complete_limit")),1),createBaseVNode("div",_hoisted_42$7,[createBaseVNode("div",_hoisted_43$7,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.show_auto_limit")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[14]||(be[14]=ye=>te.value=ye),min:"1",max:"99999999",style:{width:"100px"},placeholder:unref(a)("promptBox.settings.showAutoLimitPlaceholder")},null,8,_hoisted_44$6),[[vModelText,te.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_45$6,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.settingAutoCompleteWidth")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[15]||(be[15]=ye=>ge.value=ye),min:"5",style:{width:"100px"},placeholder:unref(a)("promptBox.settings.settingAutoCompleteWidthPlaceholder")},null,8,_hoisted_46$5),[[vModelText,ge.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_47$4,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.settingAutoCompleteHeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[16]||(be[16]=ye=>re.value=ye),min:"5",style:{width:"100px"},placeholder:unref(a)("promptBox.settings.settingAutoCompleteHeightPlaceholder")},null,8,_hoisted_48$4),[[vModelText,re.value,void 0,{number:!0}]])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:We},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),o.value==="setting_floating_ball"?(openBlock(),createElementBlock("div",_hoisted_49$4,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_floating_ball")),1),createBaseVNode("div",_hoisted_50$4,[createBaseVNode("div",_hoisted_51$4,[createBaseVNode("div",_hoisted_52$4,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[17]||(be[17]=ye=>m.value=ye)},null,512),[[vModelCheckbox,m.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableFloatingBall")),1)])]),createBaseVNode("div",_hoisted_53$4,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.floatingBallCount")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[18]||(be[18]=ye=>f.value=ye),min:"1",max:"100",placeholder:unref(a)("promptBox.settings.floatingBallCountPlaceholder")},null,8,_hoisted_54$3),[[vModelText,f.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_55$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.floatingBallSize")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[19]||(be[19]=ye=>u.value=ye),min:"5",max:"999999",placeholder:unref(a)("promptBox.settings.floatingBallSizePlaceholder")},null,8,_hoisted_56$3),[[vModelText,u.value,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_57$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.floatingBallHeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[20]||(be[20]=ye=>d.value=ye),min:"5",max:"999999",placeholder:unref(a)("promptBox.settings.floatingBallHeightPlaceholder")},null,8,_hoisted_58$3),[[vModelText,d.value,void 0,{number:!0}]])])]),createBaseVNode("div",_hoisted_59$3,[createBaseVNode("div",_hoisted_60$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.skinSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[21]||(be[21]=ye=>g.value=ye)},[createBaseVNode("option",_hoisted_61$3,toDisplayString$1(unref(a)("promptBox.settings.defaultSkin")),1),createBaseVNode("option",_hoisted_62$3,toDisplayString$1(unref(a)("promptBox.settings.customSkin")),1)],512),[[vModelSelect,g.value]])]),g.value==="custom"?(openBlock(),createElementBlock("div",_hoisted_63$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.uploadSkin")),1),createBaseVNode("input",{type:"file",accept:"image/*",onChange:Z,ref:"skinUploader"},null,544),v.value?(openBlock(),createElementBlock("div",_hoisted_64$3,[createBaseVNode("img",{src:v.value,alt:"Custom Skin Preview"},null,8,_hoisted_65$3)])):createCommentVNode("",!0)])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_66$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.bgSetting")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[22]||(be[22]=ye=>b.value=ye)},[createBaseVNode("option",_hoisted_67$3,toDisplayString$1(unref(a)("promptBox.settings.gradientBg")),1),createBaseVNode("option",_hoisted_68$3,toDisplayString$1(unref(a)("promptBox.settings.transparentBg")),1)],512),[[vModelSelect,b.value]])]),b.value==="gradient"?(openBlock(),createElementBlock("div",_hoisted_69$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.gradientColor")),1),createBaseVNode("div",_hoisted_70$3,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":be[23]||(be[23]=ye=>$.value=ye)},null,512),[[vModelText,$.value]]),withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":be[24]||(be[24]=ye=>w.value=ye)},null,512),[[vModelText,w.value]]),createBaseVNode("button",{onClick:D,style:{"margin-left":"10px",width:"200px"}},toDisplayString$1(unref(a)("promptBox.settings.resetToDefault")),1)])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_71$3,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.borderRadius")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":be[25]||(be[25]=ye=>C.value=ye),min:"0",max:"50"},null,512),[[vModelText,C.value,void 0,{number:!0}]])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",style:{"grid-column":"span 2"},onClick:K},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),o.value==="setting_prompt_box"?(openBlock(),createElementBlock("div",_hoisted_72$3,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_prompt_box")),1),createBaseVNode("div",_hoisted_73$2,[createBaseVNode("div",_hoisted_74$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[26]||(be[26]=ye=>P.value=ye)},null,512),[[vModelCheckbox,P.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableCommaConversion")),1)])]),createBaseVNode("div",_hoisted_75$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[27]||(be[27]=ye=>y.value=ye)},null,512),[[vModelCheckbox,y.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enablePeriodConversion")),1)])]),createBaseVNode("div",_hoisted_76$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[28]||(be[28]=ye=>E.value=ye)},null,512),[[vModelCheckbox,E.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableBracketConversion")),1)])]),createBaseVNode("div",_hoisted_77$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[29]||(be[29]=ye=>R.value=ye)},null,512),[[vModelCheckbox,R.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableAngleBracketConversion")),1)])]),createBaseVNode("div",_hoisted_78$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[30]||(be[30]=ye=>F.value=ye)},null,512),[[vModelCheckbox,F.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableUnderscoreToBracket")),1)])]),createBaseVNode("div",_hoisted_79$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[31]||(be[31]=ye=>H.value=ye)},null,512),[[vModelCheckbox,H.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableCommaCloseAutocomplete")),1)])]),createBaseVNode("div",_hoisted_80$2,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":be[32]||(be[32]=ye=>j.value=ye)},null,512),[[vModelCheckbox,j.value]]),createTextVNode(" "+toDisplayString$1(unref(a)("promptBox.settings.enableBracketEscape")),1)])]),createBaseVNode("button",{class:"weilin-comfyui-save-button",onClick:x},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),o.value==="setting_openai_box"?(openBlock(),createElementBlock("div",_hoisted_81$2,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.openaiSettings")),1),createBaseVNode("div",_hoisted_82$2,[createBaseVNode("div",_hoisted_83$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.selectedOpenaiConfig")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":be[33]||(be[33]=ye=>q.value=ye),onChange:M},[(openBlock(!0),createElementBlock(Fragment,null,renderList(Q.value,(ye,Le)=>(openBlock(),createElementBlock("option",{key:Le,value:Le},toDisplayString$1(ye.model)+" ("+toDisplayString$1(ye.base_url)+") ",9,_hoisted_84$2))),128))],544),[[vModelSelect,q.value]])]),createBaseVNode("div",_hoisted_85$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(Q.value,(ye,Le)=>(openBlock(),createElementBlock("div",{key:Le,class:"weilin-comfyui-config-item"},[createBaseVNode("div",_hoisted_86$2,[createBaseVNode("span",null,toDisplayString$1(ye.model),1),createBaseVNode("div",_hoisted_87$2,[createBaseVNode("button",{onClick:Qe=>ie(Le)},toDisplayString$1(A.value===Le?unref(a)("promptBox.settings.cancel"):unref(a)("promptBox.settings.edit")),9,_hoisted_88$2),createBaseVNode("button",{onClick:Qe=>X(Le)},toDisplayString$1(unref(a)("promptBox.settings.delete")),9,_hoisted_89$2)])]),A.value===Le?(openBlock(),createElementBlock("div",_hoisted_90$2,[createBaseVNode("div",_hoisted_91$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_api_key"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[34]||(be[34]=Qe=>G.value.api_key=Qe),placeholder:unref(a)("promptBox.settings.openai_api_key_placeholder")},null,8,_hoisted_92$2),[[vModelText,G.value.api_key]])]),createBaseVNode("div",_hoisted_93$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_base_url"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[35]||(be[35]=Qe=>G.value.base_url=Qe),placeholder:unref(a)("promptBox.settings.openai_base_url_placeholder")},null,8,_hoisted_94$2),[[vModelText,G.value.base_url]])]),createBaseVNode("div",_hoisted_95$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_model"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[36]||(be[36]=Qe=>G.value.model=Qe),placeholder:unref(a)("promptBox.settings.openai_model_placeholder")},null,8,_hoisted_96$2),[[vModelText,G.value.model]])]),createBaseVNode("div",_hoisted_97$2,[createBaseVNode("button",{onClick:Qe=>pe(Le)},toDisplayString$1(unref(a)("promptBox.settings.save")),9,_hoisted_98$2)])])):(openBlock(),createElementBlock("div",_hoisted_99$2,[createBaseVNode("div",null,toDisplayString$1(unref(a)("promptBox.settings.openai_api_key"))+": "+toDisplayString$1(ye.api_key?"******":unref(a)("promptBox.settings.not_set")),1),createBaseVNode("div",null,toDisplayString$1(unref(a)("promptBox.settings.openai_base_url"))+": "+toDisplayString$1(ye.base_url),1)]))]))),128))]),O.value?(openBlock(),createElementBlock("div",_hoisted_100$2,[createBaseVNode("div",_hoisted_101$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_api_key"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[37]||(be[37]=ye=>G.value.api_key=ye),placeholder:unref(a)("promptBox.settings.openai_api_key_placeholder")},null,8,_hoisted_102$2),[[vModelText,G.value.api_key]])]),createBaseVNode("div",_hoisted_103$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_base_url"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[38]||(be[38]=ye=>G.value.base_url=ye),placeholder:unref(a)("promptBox.settings.openai_base_url_placeholder")},null,8,_hoisted_104$2),[[vModelText,G.value.base_url]])]),createBaseVNode("div",_hoisted_105$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("promptBox.settings.openai_model"))+":",1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":be[39]||(be[39]=ye=>G.value.model=ye),placeholder:unref(a)("promptBox.settings.openai_model_placeholder")},null,8,_hoisted_106$2),[[vModelText,G.value.model]])]),createBaseVNode("div",_hoisted_107$2,[createBaseVNode("button",{onClick:_},toDisplayString$1(unref(a)("promptBox.settings.cancel")),1),createBaseVNode("button",{onClick:T},toDisplayString$1(unref(a)("promptBox.settings.save")),1)])])):createCommentVNode("",!0),O.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:1,class:"weilin-comfyui-add-button",onClick:I},toDisplayString$1(unref(a)("promptBox.settings.addNewConfig")),1))])])):createCommentVNode("",!0),o.value==="setting_sponsor_me"?(openBlock(),createElementBlock("div",_hoisted_108$2,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_sponsor_me")),1),createBaseVNode("div",_hoisted_109$2,[createBaseVNode("h1",null,toDisplayString$1(unref(a)("promptBox.settings.sponsorMeTip")),1),createBaseVNode("h2",null,toDisplayString$1(unref(a)("promptBox.settings.sponsorMeLink")),1),createBaseVNode("button",{class:"weilin-comfyui-sponsor-me-button",onClick:U},toDisplayString$1(unref(a)("promptBox.settings.sponsorMe")),1)])])):createCommentVNode("",!0),o.value==="setting_start_panel"?(openBlock(),createElementBlock("div",_hoisted_110$2,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("promptBox.settings.setting_start_panel")),1),createBaseVNode("div",_hoisted_111$2,[createBaseVNode("h4",null,toDisplayString$1(unref(a)("promptBox.settings.startPanelTip")),1),createBaseVNode("button",{class:"weilin-comfyui-start-panel-button",onClick:_e},toDisplayString$1(unref(a)("promptBox.settings.startPanel")),1)])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]))}},SettingDialog=_export_sfc(_sfc_main$o,[["__scopeId","data-v-d84f82b1"]]),_hoisted_1$n=["title"],_hoisted_2$l={class:"switch-icon"},_hoisted_3$l={key:0,class:"moon",viewBox:"0 0 24 24"},_hoisted_4$k={key:1,class:"sun",viewBox:"0 0 24 24"},STORAGE_PREFIX$6="weilin_tools_",_sfc_main$n={__name:"ThemeSwitch",setup(e){const{t}=useI18n(),a=`${STORAGE_PREFIX$6}theme`,n=ref(localStorage.getItem(a)==="dark"),o=()=>{n.value=!n.value;const r=document.getElementById("weilin_comfyui_tools_prompt_ui_div");r&&r.setAttribute("data-theme",n.value?"dark":"light"),localStorage.setItem(a,n.value?"dark":"light")};return(r,s)=>(openBlock(),createElementBlock("button",{class:"theme-switch",onClick:o,title:unref(t)("theme.toggle")},[createBaseVNode("div",_hoisted_2$l,[n.value?(openBlock(),createElementBlock("svg",_hoisted_3$l,s[0]||(s[0]=[createBaseVNode("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"},null,-1)]))):(openBlock(),createElementBlock("svg",_hoisted_4$k,s[1]||(s[1]=[createBaseVNode("circle",{cx:"12",cy:"12",r:"5"},null,-1),createBaseVNode("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"},null,-1)])))]),renderSlot(r.$slots,"default",{isDark:n.value},void 0,!0)],8,_hoisted_1$n))}},ThemeSwitch=_export_sfc(_sfc_main$n,[["__scopeId","data-v-43d9cf91"]]),STORAGE_PREFIX$5="weilin_tools_",tagsApi={getTagsList:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/get_group_tags",method:"get",params:{...e,lang:t}})},addPrimaryCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/add_new_f_group",method:"post",data:{...e,lang:t}})},editPrimaryCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/edit_f_group",method:"post",data:{...e,lang:t}})},deletePrimaryCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/delete_f_group",method:"post",data:{...e,lang:t}})},addSubCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/add_new_s_group",method:"post",data:{...e,lang:t}})},editSubCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/edit_s_group",method:"post",data:{...e,lang:t}})},deleteSubCategory:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/delete_s_group",method:"post",data:{...e,lang:t}})},addNewTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/new_tags",method:"post",data:{...e,lang:t}})},editTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/edit_tags",method:"post",data:{...e,lang:t}})},deleteTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/delete_tags",method:"post",data:{...e,lang:t}})},batchDeleteTags:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/batch_delete_tags",method:"post",data:{...e,lang:t}})},moveTag:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/move_tag",method:"post",data:{...e,lang:t}})},getTagsGroupList:async()=>await request({url:"/prompt/get_groups_list",method:"post"}),runSQLToServer:async e=>await request({url:"/prompt/run_sql_text",method:"post",timeout:0,data:{sql:e}}),moveMainGroup:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/move_group",method:"post",data:{...e,lang:t}})},moveSubGroup:async e=>{const t=localStorage.getItem(`${STORAGE_PREFIX$5}userLocale`)||"zh_CN";return await request({url:"/prompt/move_subgroup",method:"post",data:{...e,lang:t}})},getTagMainGroup:async()=>await request({url:"/prompt/get_tag_groups",method:"post"}),getTagSubGroup:async e=>await request({url:"/prompt/get_tag_subgroups",method:"post",data:{p_uuid:e}}),getTagList:async e=>await request({url:"/prompt/get_tag_tags",method:"post",data:{g_uuid:e}}),searchTag:async e=>await request({url:"/prompt/search_tags",method:"post",data:{keyword:e}})};/** * uuidv7: A JavaScript implementation of UUID version 7 * * Copyright 2021-2024 LiosK * * @license Apache-2.0 * @packageDocumentation - */const DIGITS="0123456789abcdef";class UUID{constructor(t){this.bytes=t}static ofInner(t){if(t.length!==16)throw new TypeError("not 128-bit length");return new UUID(t)}static fromFieldsV7(t,a,n,o){if(!Number.isInteger(t)||!Number.isInteger(a)||!Number.isInteger(n)||!Number.isInteger(o)||t<0||a<0||n<0||o<0||t>0xffffffffffff||a>4095||n>1073741823||o>4294967295)throw new RangeError("invalid field value");const r=new Uint8Array(16);return r[0]=t/2**40,r[1]=t/2**32,r[2]=t/2**24,r[3]=t/2**16,r[4]=t/2**8,r[5]=t,r[6]=112|a>>>8,r[7]=a,r[8]=128|n>>>24,r[9]=n>>>16,r[10]=n>>>8,r[11]=n,r[12]=o>>>24,r[13]=o>>>16,r[14]=o>>>8,r[15]=o,new UUID(r)}static parse(t){var a,n,o,r;let s;switch(t.length){case 32:s=(a=/^[0-9a-f]{32}$/i.exec(t))===null||a===void 0?void 0:a[0];break;case 36:s=(n=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 38:s=(o=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t))===null||o===void 0?void 0:o.slice(1,6).join("");break;case 45:s=(r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t))===null||r===void 0?void 0:r.slice(1,6).join("");break}if(s){const l=new Uint8Array(16);for(let c=0;c<16;c+=4){const f=parseInt(s.substring(2*c,2*c+8),16);l[c+0]=f>>>24,l[c+1]=f>>>16,l[c+2]=f>>>8,l[c+3]=f}return new UUID(l)}else throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let a=0;a>>4),t+=DIGITS.charAt(this.bytes[a]&15),(a===3||a===5||a===7||a===9)&&(t+="-");return t}toHex(){let t="";for(let a=0;a>>4),t+=DIGITS.charAt(this.bytes[a]&15);return t}toJSON(){return this.toString()}getVariant(){const t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(a=>a===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(a=>a===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new UUID(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let a=0;a<16;a++){const n=this.bytes[a]-t.bytes[a];if(n!==0)return Math.sign(n)}return 0}}class V7Generator{constructor(t){this.timestamp=0,this.counter=0,this.random=t??getDefaultRandom()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,a){let n=this.generateOrAbortCore(t,a);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(t,a)),n}generateOrAbortCore(t,a){if(!Number.isInteger(t)||t<1||t>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(a<0||a>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(t>this.timestamp)this.timestamp=t,this.resetCounter();else if(t+a>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return UUID.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){const t=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return t[6]=64|t[6]>>>4,t[8]=128|t[8]>>>2,UUID.ofInner(t)}}const getDefaultRandom=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new BufferedCryptoRandom;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}};class BufferedCryptoRandom{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}}let defaultGenerator;const uuidv7=()=>uuidv7obj().toString(),uuidv7obj=()=>(defaultGenerator||(defaultGenerator=new V7Generator)).generate(),_hoisted_1$m={class:"tag-manager"},_hoisted_2$k={class:"category-tabs"},_hoisted_3$k={class:"tabs-wrapper primary-tabs"},_hoisted_4$j={class:"tabs-scroll"},_hoisted_5$i=["onClick"],_hoisted_6$i={class:"tab-text"},_hoisted_7$i={key:0,class:"tabs-wrapper group-tabs"},_hoisted_8$i={class:"tabs-scroll"},_hoisted_9$i=["onClick"],_hoisted_10$h={class:"tab-text"},_sfc_main$m={__name:"tag_group_select",emits:["sureSelect"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=a,r=ref([]),s=ref(null),l=ref(null),c=ref([]),f=ref(!1),u=ref(!1),d=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh_select"},"*")},m=async()=>{try{const N=await tagsApi.getTagsGroupList();if(r.value=N.info,l.value){const P=r.value.flatMap(y=>y.groups).find(y=>y.p_uuid===l.value.p_uuid);P?l.value=P:l.value=null}if(s.value){const P=r.value.find(y=>y.p_uuid===s.value.p_uuid);P?s.value=P:s.value=null}}catch(N){console.error("获取标签列表失败:",N)}},g=N=>{if(!N||N==="transparent")return"var(--primary-text)";let P,y,E,R=1;if(N.startsWith("rgba")){const H=N.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);H&&([,P,y,E,R]=H.map(Number))}else if(N.startsWith("rgb")){const H=N.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);H&&([,P,y,E]=H.map(Number))}return R<.5?"var(--primary-text)":(P*299+y*587+E*114)/1e3>128?"#000000":"#ffffff"};onMounted(()=>{window.addEventListener("message",$)}),onBeforeUnmount(()=>{window.removeEventListener("message",$)});const v=N=>{s.value=N,l.value=null,f.value=!1,c.value=[]},b=N=>{l.value=N,f.value=!1,c.value=[]},$=N=>{N.data.type==="weilin_prompt_ui_tag_manager_refresh_select"&&m()},w=()=>{if(l.value==null||s.value==null){message$1({type:"warn",str:"message.pleaseSelectGroup"});return}o("sureSelect",{group:s.value,sub:l.value}),u.value=!1};return t({open:()=>{d(),u.value=!0}}),(N,P)=>(openBlock(),createBlock(Dialog,{modelValue:u.value,"onUpdate:modelValue":P[1]||(P[1]=y=>u.value=y),title:unref(n)("importDialog.selectTitle")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:P[0]||(P[0]=y=>u.value=!1)},toDisplayString$1(unref(n)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:w},toDisplayString$1(unref(n)("importDialog.sureSelect")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$m,[createBaseVNode("div",_hoisted_2$k,[createBaseVNode("div",_hoisted_3$k,[createBaseVNode("div",_hoisted_4$j,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,(y,E)=>{var R,F,H;return openBlock(),createElementBlock("div",{key:"Tabss-"+E,class:normalizeClass(["tab-item",{active:((R=s.value)==null?void 0:R.name)===y.name}]),style:normalizeStyle({backgroundColor:((F=s.value)==null?void 0:F.name)===y.name?"var(--primary-color)":y.color,color:((H=s.value)==null?void 0:H.name)===y.name?"#ffffff":g(y.color)}),onClick:j=>v(y)},[createBaseVNode("span",_hoisted_6$i,toDisplayString$1(y.name),1)],14,_hoisted_5$i)}),128))])]),s.value?(openBlock(),createElementBlock("div",_hoisted_7$i,[createBaseVNode("div",_hoisted_8$i,[(openBlock(!0),createElementBlock(Fragment,null,renderList(s.value.groups,(y,E)=>{var R,F,H;return openBlock(),createElementBlock("div",{key:"TabsSw-"+E,class:normalizeClass(["tab-item",{active:((R=l.value)==null?void 0:R.name)===y.name}]),style:normalizeStyle({backgroundColor:((F=l.value)==null?void 0:F.name)===y.name?"var(--primary-color)":y.color,color:((H=l.value)==null?void 0:H.name)===y.name?"#ffffff":g(y.color)}),onClick:j=>b(y)},[createBaseVNode("span",_hoisted_10$h,toDisplayString$1(y.name),1)],14,_hoisted_9$i)}),128))])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]))}},TagGroupSelect$1=_export_sfc(_sfc_main$m,[["__scopeId","data-v-f6c0f177"]]);/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function isNothing(e){return typeof e>"u"||e===null}function isObject(e){return typeof e=="object"&&e!==null}function toArray(e){return Array.isArray(e)?e:isNothing(e)?[]:[e]}function extend(e,t){var a,n,o,r;if(t)for(r=Object.keys(t),a=0,n=r.length;a0xffffffffffff||a>4095||n>1073741823||o>4294967295)throw new RangeError("invalid field value");const r=new Uint8Array(16);return r[0]=t/2**40,r[1]=t/2**32,r[2]=t/2**24,r[3]=t/2**16,r[4]=t/2**8,r[5]=t,r[6]=112|a>>>8,r[7]=a,r[8]=128|n>>>24,r[9]=n>>>16,r[10]=n>>>8,r[11]=n,r[12]=o>>>24,r[13]=o>>>16,r[14]=o>>>8,r[15]=o,new UUID(r)}static parse(t){var a,n,o,r;let s;switch(t.length){case 32:s=(a=/^[0-9a-f]{32}$/i.exec(t))===null||a===void 0?void 0:a[0];break;case 36:s=(n=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 38:s=(o=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t))===null||o===void 0?void 0:o.slice(1,6).join("");break;case 45:s=(r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t))===null||r===void 0?void 0:r.slice(1,6).join("");break}if(s){const l=new Uint8Array(16);for(let c=0;c<16;c+=4){const f=parseInt(s.substring(2*c,2*c+8),16);l[c+0]=f>>>24,l[c+1]=f>>>16,l[c+2]=f>>>8,l[c+3]=f}return new UUID(l)}else throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let a=0;a>>4),t+=DIGITS.charAt(this.bytes[a]&15),(a===3||a===5||a===7||a===9)&&(t+="-");return t}toHex(){let t="";for(let a=0;a>>4),t+=DIGITS.charAt(this.bytes[a]&15);return t}toJSON(){return this.toString()}getVariant(){const t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(a=>a===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(a=>a===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new UUID(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let a=0;a<16;a++){const n=this.bytes[a]-t.bytes[a];if(n!==0)return Math.sign(n)}return 0}}class V7Generator{constructor(t){this.timestamp=0,this.counter=0,this.random=t??getDefaultRandom()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,a){let n=this.generateOrAbortCore(t,a);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(t,a)),n}generateOrAbortCore(t,a){if(!Number.isInteger(t)||t<1||t>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(a<0||a>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(t>this.timestamp)this.timestamp=t,this.resetCounter();else if(t+a>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return UUID.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){const t=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return t[6]=64|t[6]>>>4,t[8]=128|t[8]>>>2,UUID.ofInner(t)}}const getDefaultRandom=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new BufferedCryptoRandom;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}};class BufferedCryptoRandom{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}}let defaultGenerator;const uuidv7=()=>uuidv7obj().toString(),uuidv7obj=()=>(defaultGenerator||(defaultGenerator=new V7Generator)).generate(),_hoisted_1$m={class:"tag-manager"},_hoisted_2$k={class:"category-tabs"},_hoisted_3$k={class:"tabs-wrapper primary-tabs"},_hoisted_4$j={class:"tabs-scroll"},_hoisted_5$i=["onClick"],_hoisted_6$i={class:"tab-text"},_hoisted_7$i={key:0,class:"tabs-wrapper group-tabs"},_hoisted_8$i={class:"tabs-scroll"},_hoisted_9$i=["onClick"],_hoisted_10$h={class:"tab-text"},_sfc_main$m={__name:"tag_group_select",emits:["sureSelect"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=a,r=ref([]),s=ref(null),l=ref(null),c=ref([]),f=ref(!1),u=ref(!1),d=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh_select"},"*")},m=async()=>{try{const C=await tagsApi.getTagsGroupList();if(r.value=C.info,l.value){const P=r.value.flatMap(y=>y.groups).find(y=>y.p_uuid===l.value.p_uuid);P?l.value=P:l.value=null}if(s.value){const P=r.value.find(y=>y.p_uuid===s.value.p_uuid);P?s.value=P:s.value=null}}catch(C){console.error("获取标签列表失败:",C)}},g=C=>{if(!C||C==="transparent")return"var(--primary-text)";let P,y,E,R=1;if(C.startsWith("rgba")){const H=C.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);H&&([,P,y,E,R]=H.map(Number))}else if(C.startsWith("rgb")){const H=C.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);H&&([,P,y,E]=H.map(Number))}return R<.5?"var(--primary-text)":(P*299+y*587+E*114)/1e3>128?"#000000":"#ffffff"};onMounted(()=>{window.addEventListener("message",$)}),onBeforeUnmount(()=>{window.removeEventListener("message",$)});const v=C=>{s.value=C,l.value=null,f.value=!1,c.value=[]},b=C=>{l.value=C,f.value=!1,c.value=[]},$=C=>{C.data.type==="weilin_prompt_ui_tag_manager_refresh_select"&&m()},w=()=>{if(l.value==null||s.value==null){message$1({type:"warn",str:"message.pleaseSelectGroup"});return}o("sureSelect",{group:s.value,sub:l.value}),u.value=!1};return t({open:()=>{d(),u.value=!0}}),(C,P)=>(openBlock(),createBlock(Dialog,{modelValue:u.value,"onUpdate:modelValue":P[1]||(P[1]=y=>u.value=y),title:unref(n)("importDialog.selectTitle")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:P[0]||(P[0]=y=>u.value=!1)},toDisplayString$1(unref(n)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:w},toDisplayString$1(unref(n)("importDialog.sureSelect")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$m,[createBaseVNode("div",_hoisted_2$k,[createBaseVNode("div",_hoisted_3$k,[createBaseVNode("div",_hoisted_4$j,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,(y,E)=>{var R,F,H;return openBlock(),createElementBlock("div",{key:"Tabss-"+E,class:normalizeClass(["tab-item",{active:((R=s.value)==null?void 0:R.name)===y.name}]),style:normalizeStyle({backgroundColor:((F=s.value)==null?void 0:F.name)===y.name?"var(--primary-color)":y.color,color:((H=s.value)==null?void 0:H.name)===y.name?"#ffffff":g(y.color)}),onClick:j=>v(y)},[createBaseVNode("span",_hoisted_6$i,toDisplayString$1(y.name),1)],14,_hoisted_5$i)}),128))])]),s.value?(openBlock(),createElementBlock("div",_hoisted_7$i,[createBaseVNode("div",_hoisted_8$i,[(openBlock(!0),createElementBlock(Fragment,null,renderList(s.value.groups,(y,E)=>{var R,F,H;return openBlock(),createElementBlock("div",{key:"TabsSw-"+E,class:normalizeClass(["tab-item",{active:((R=l.value)==null?void 0:R.name)===y.name}]),style:normalizeStyle({backgroundColor:((F=l.value)==null?void 0:F.name)===y.name?"var(--primary-color)":y.color,color:((H=l.value)==null?void 0:H.name)===y.name?"#ffffff":g(y.color)}),onClick:j=>b(y)},[createBaseVNode("span",_hoisted_10$h,toDisplayString$1(y.name),1)],14,_hoisted_9$i)}),128))])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]))}},TagGroupSelect$1=_export_sfc(_sfc_main$m,[["__scopeId","data-v-f6c0f177"]]);/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function isNothing(e){return typeof e>"u"||e===null}function isObject(e){return typeof e=="object"&&e!==null}function toArray(e){return Array.isArray(e)?e:isNothing(e)?[]:[e]}function extend(e,t){var a,n,o,r;if(t)for(r=Object.keys(t),a=0,n=r.length;al&&(r=" ... ",t=n-l+r.length),a-n>l&&(s=" ...",a=n+l-s.length),{str:r+e.slice(t,a).replace(/\t/g,"→")+s,pos:n-t+r.length}}function padStart(e,t){return common.repeat(" ",t-e.length)+e}function makeSnippet(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var a=/\r?\n|\r|\0/g,n=[0],o=[],r,s=-1;r=a.exec(e.buffer);)o.push(r.index),n.push(r.index+r[0].length),e.position<=r.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",c,f,u=Math.min(e.line+t.linesAfter,o.length).toString().length,d=t.maxLength-(t.indent+u+3);for(c=1;c<=t.linesBefore&&!(s-c<0);c++)f=getLine(e.buffer,n[s-c],o[s-c],e.position-(n[s]-n[s-c]),d),l=common.repeat(" ",t.indent)+padStart((e.line-c+1).toString(),u)+" | "+f.str+` `+l;for(f=getLine(e.buffer,n[s],o[s],e.position,d),l+=common.repeat(" ",t.indent)+padStart((e.line+1).toString(),u)+" | "+f.str+` @@ -60,13 +60,13 @@ `;return l.replace(/\n$/,"")}var snippet=makeSnippet,TYPE_CONSTRUCTOR_OPTIONS=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"];function compileStyleAliases(e){var t={};return e!==null&&Object.keys(e).forEach(function(a){e[a].forEach(function(n){t[String(n)]=a})}),t}function Type$1(e,t){if(t=t||{},Object.keys(t).forEach(function(a){if(TYPE_CONSTRUCTOR_OPTIONS.indexOf(a)===-1)throw new exception('Unknown option "'+a+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(a){return a},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=compileStyleAliases(t.styleAliases||null),YAML_NODE_KINDS.indexOf(this.kind)===-1)throw new exception('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var type=Type$1;function compileList(e,t){var a=[];return e[t].forEach(function(n){var o=a.length;a.forEach(function(r,s){r.tag===n.tag&&r.kind===n.kind&&r.multi===n.multi&&(o=s)}),a[o]=n}),a}function compileMap(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,a;function n(o){o.multi?(e.multi[o.kind].push(o),e.multi.fallback.push(o)):e[o.kind][o.tag]=e.fallback[o.tag]=o}for(t=0,a=arguments.length;t=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function resolveYamlFloat(e){return!(e===null||!YAML_FLOAT_PATTERN.test(e)||e[e.length-1]==="_")}function constructYamlFloat(e){var t,a;return t=e.replace(/_/g,"").toLowerCase(),a=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?a===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:a*parseFloat(t,10)}var SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/;function representYamlFloat(e,t){var a;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(common.isNegativeZero(e))return"-0.0";return a=e.toString(10),SCIENTIFIC_WITHOUT_DOT.test(a)?a.replace("e",".e"):a}function isFloat(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||common.isNegativeZero(e))}var float=new type("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"}),json=failsafe.extend({implicit:[_null,bool,int,float]}),core=json,YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function resolveYamlTimestamp(e){return e===null?!1:YAML_DATE_REGEXP.exec(e)!==null||YAML_TIMESTAMP_REGEXP.exec(e)!==null}function constructYamlTimestamp(e){var t,a,n,o,r,s,l,c=0,f=null,u,d,m;if(t=YAML_DATE_REGEXP.exec(e),t===null&&(t=YAML_TIMESTAMP_REGEXP.exec(e)),t===null)throw new Error("Date resolve error");if(a=+t[1],n=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(a,n,o));if(r=+t[4],s=+t[5],l=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(u=+t[10],d=+(t[11]||0),f=(u*60+d)*6e4,t[9]==="-"&&(f=-f)),m=new Date(Date.UTC(a,n,o,r,s,l,c)),f&&m.setTime(m.getTime()-f),m}function representYamlTimestamp(e){return e.toISOString()}var timestamp=new type("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp});function resolveYamlMerge(e){return e==="<<"||e===null}var merge=new type("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge}),BASE64_MAP=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= \r`;function resolveYamlBinary(e){if(e===null)return!1;var t,a,n=0,o=e.length,r=BASE64_MAP;for(a=0;a64)){if(t<0)return!1;n+=6}return n%8===0}function constructYamlBinary(e){var t,a,n=e.replace(/[\r\n=]/g,""),o=n.length,r=BASE64_MAP,s=0,l=[];for(t=0;t>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|r.indexOf(n.charAt(t));return a=o%4*6,a===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):a===18?(l.push(s>>10&255),l.push(s>>2&255)):a===12&&l.push(s>>4&255),new Uint8Array(l)}function representYamlBinary(e){var t="",a=0,n,o,r=e.length,s=BASE64_MAP;for(n=0;n>18&63],t+=s[a>>12&63],t+=s[a>>6&63],t+=s[a&63]),a=(a<<8)+e[n];return o=r%3,o===0?(t+=s[a>>18&63],t+=s[a>>12&63],t+=s[a>>6&63],t+=s[a&63]):o===2?(t+=s[a>>10&63],t+=s[a>>4&63],t+=s[a<<2&63],t+=s[64]):o===1&&(t+=s[a>>2&63],t+=s[a<<4&63],t+=s[64],t+=s[64]),t}function isBinary(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var binary=new type("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary}),_hasOwnProperty$3=Object.prototype.hasOwnProperty,_toString$2=Object.prototype.toString;function resolveYamlOmap(e){if(e===null)return!0;var t=[],a,n,o,r,s,l=e;for(a=0,n=l.length;a>10)+55296,(e-65536&1023)+56320)}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);function State$1(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||_default,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function generateError(e,t){var a={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return a.snippet=snippet(a),new exception(t,a)}function throwError(e,t){throw generateError(e,t)}function throwWarning(e,t){e.onWarning&&e.onWarning.call(null,generateError(e,t))}var directiveHandlers={YAML:function(t,a,n){var o,r,s;t.version!==null&&throwError(t,"duplication of %YAML directive"),n.length!==1&&throwError(t,"YAML directive accepts exactly one argument"),o=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),o===null&&throwError(t,"ill-formed argument of the YAML directive"),r=parseInt(o[1],10),s=parseInt(o[2],10),r!==1&&throwError(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=s<2,s!==1&&s!==2&&throwWarning(t,"unsupported YAML version of the document")},TAG:function(t,a,n){var o,r;n.length!==2&&throwError(t,"TAG directive accepts exactly two arguments"),o=n[0],r=n[1],PATTERN_TAG_HANDLE.test(o)||throwError(t,"ill-formed tag handle (first argument) of the TAG directive"),_hasOwnProperty$1.call(t.tagMap,o)&&throwError(t,'there is a previously declared suffix for "'+o+'" tag handle'),PATTERN_TAG_URI.test(r)||throwError(t,"ill-formed tag prefix (second argument) of the TAG directive");try{r=decodeURIComponent(r)}catch{throwError(t,"tag prefix is malformed: "+r)}t.tagMap[o]=r}};function captureSegment(e,t,a,n){var o,r,s,l;if(t1&&(e.result+=common.repeat(` -`,t-1))}function readPlainScalar(e,t,a){var n,o,r,s,l,c,f,u,d=e.kind,m=e.result,g;if(g=e.input.charCodeAt(e.position),is_WS_OR_EOL(g)||is_FLOW_INDICATOR(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(o=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(o)||a&&is_FLOW_INDICATOR(o)))return!1;for(e.kind="scalar",e.result="",r=s=e.position,l=!1;g!==0;){if(g===58){if(o=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(o)||a&&is_FLOW_INDICATOR(o))break}else if(g===35){if(n=e.input.charCodeAt(e.position-1),is_WS_OR_EOL(n))break}else{if(e.position===e.lineStart&&testDocumentSeparator(e)||a&&is_FLOW_INDICATOR(g))break;if(is_EOL(g))if(c=e.line,f=e.lineStart,u=e.lineIndent,skipSeparationSpace(e,!1,-1),e.lineIndent>=t){l=!0,g=e.input.charCodeAt(e.position);continue}else{e.position=s,e.line=c,e.lineStart=f,e.lineIndent=u;break}}l&&(captureSegment(e,r,s,!1),writeFoldedLines(e,e.line-c),r=s=e.position,l=!1),is_WHITE_SPACE(g)||(s=e.position+1),g=e.input.charCodeAt(++e.position)}return captureSegment(e,r,s,!1),e.result?!0:(e.kind=d,e.result=m,!1)}function readSingleQuotedScalar(e,t){var a,n,o;if(a=e.input.charCodeAt(e.position),a!==39)return!1;for(e.kind="scalar",e.result="",e.position++,n=o=e.position;(a=e.input.charCodeAt(e.position))!==0;)if(a===39)if(captureSegment(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),a===39)n=e.position,e.position++,o=e.position;else return!0;else is_EOL(a)?(captureSegment(e,n,o,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),n=o=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,t){var a,n,o,r,s,l;if(l=e.input.charCodeAt(e.position),l!==34)return!1;for(e.kind="scalar",e.result="",e.position++,a=n=e.position;(l=e.input.charCodeAt(e.position))!==0;){if(l===34)return captureSegment(e,a,e.position,!0),e.position++,!0;if(l===92){if(captureSegment(e,a,e.position,!0),l=e.input.charCodeAt(++e.position),is_EOL(l))skipSeparationSpace(e,!1,t);else if(l<256&&simpleEscapeCheck[l])e.result+=simpleEscapeMap[l],e.position++;else if((s=escapedHexLen(l))>0){for(o=s,r=0;o>0;o--)l=e.input.charCodeAt(++e.position),(s=fromHexCode(l))>=0?r=(r<<4)+s:throwError(e,"expected hexadecimal character");e.result+=charFromCodepoint(r),e.position++}else throwError(e,"unknown escape sequence");a=n=e.position}else is_EOL(l)?(captureSegment(e,a,n,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),a=n=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,t){var a=!0,n,o,r,s=e.tag,l,c=e.anchor,f,u,d,m,g,v=Object.create(null),b,$,w,N;if(N=e.input.charCodeAt(e.position),N===91)u=93,g=!1,l=[];else if(N===123)u=125,g=!0,l={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=l),N=e.input.charCodeAt(++e.position);N!==0;){if(skipSeparationSpace(e,!0,t),N=e.input.charCodeAt(e.position),N===u)return e.position++,e.tag=s,e.anchor=c,e.kind=g?"mapping":"sequence",e.result=l,!0;a?N===44&&throwError(e,"expected the node content, but found ','"):throwError(e,"missed comma between flow collection entries"),$=b=w=null,d=m=!1,N===63&&(f=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(f)&&(d=m=!0,e.position++,skipSeparationSpace(e,!0,t))),n=e.line,o=e.lineStart,r=e.position,composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),$=e.tag,b=e.result,skipSeparationSpace(e,!0,t),N=e.input.charCodeAt(e.position),(m||e.line===n)&&N===58&&(d=!0,N=e.input.charCodeAt(++e.position),skipSeparationSpace(e,!0,t),composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),w=e.result),g?storeMappingPair(e,l,v,$,b,w,n,o,r):d?l.push(storeMappingPair(e,null,v,$,b,w,n,o,r)):l.push(b),skipSeparationSpace(e,!0,t),N=e.input.charCodeAt(e.position),N===44?(a=!0,N=e.input.charCodeAt(++e.position)):a=!1}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,t){var a,n,o=CHOMPING_CLIP,r=!1,s=!1,l=t,c=0,f=!1,u,d;if(d=e.input.charCodeAt(e.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)CHOMPING_CLIP===o?o=d===43?CHOMPING_KEEP:CHOMPING_STRIP:throwError(e,"repeat of a chomping mode identifier");else if((u=fromDecimalCode(d))>=0)u===0?throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?throwError(e,"repeat of an indentation width identifier"):(l=t+u-1,s=!0);else break;if(is_WHITE_SPACE(d)){do d=e.input.charCodeAt(++e.position);while(is_WHITE_SPACE(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!is_EOL(d)&&d!==0)}for(;d!==0;){for(readLineBreak(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!s||e.lineIndentl&&(l=e.lineIndent),is_EOL(d)){c++;continue}if(e.lineIndent=t){l=!0,g=e.input.charCodeAt(e.position);continue}else{e.position=s,e.line=c,e.lineStart=f,e.lineIndent=u;break}}l&&(captureSegment(e,r,s,!1),writeFoldedLines(e,e.line-c),r=s=e.position,l=!1),is_WHITE_SPACE(g)||(s=e.position+1),g=e.input.charCodeAt(++e.position)}return captureSegment(e,r,s,!1),e.result?!0:(e.kind=d,e.result=m,!1)}function readSingleQuotedScalar(e,t){var a,n,o;if(a=e.input.charCodeAt(e.position),a!==39)return!1;for(e.kind="scalar",e.result="",e.position++,n=o=e.position;(a=e.input.charCodeAt(e.position))!==0;)if(a===39)if(captureSegment(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),a===39)n=e.position,e.position++,o=e.position;else return!0;else is_EOL(a)?(captureSegment(e,n,o,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),n=o=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,t){var a,n,o,r,s,l;if(l=e.input.charCodeAt(e.position),l!==34)return!1;for(e.kind="scalar",e.result="",e.position++,a=n=e.position;(l=e.input.charCodeAt(e.position))!==0;){if(l===34)return captureSegment(e,a,e.position,!0),e.position++,!0;if(l===92){if(captureSegment(e,a,e.position,!0),l=e.input.charCodeAt(++e.position),is_EOL(l))skipSeparationSpace(e,!1,t);else if(l<256&&simpleEscapeCheck[l])e.result+=simpleEscapeMap[l],e.position++;else if((s=escapedHexLen(l))>0){for(o=s,r=0;o>0;o--)l=e.input.charCodeAt(++e.position),(s=fromHexCode(l))>=0?r=(r<<4)+s:throwError(e,"expected hexadecimal character");e.result+=charFromCodepoint(r),e.position++}else throwError(e,"unknown escape sequence");a=n=e.position}else is_EOL(l)?(captureSegment(e,a,n,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),a=n=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,t){var a=!0,n,o,r,s=e.tag,l,c=e.anchor,f,u,d,m,g,v=Object.create(null),b,$,w,C;if(C=e.input.charCodeAt(e.position),C===91)u=93,g=!1,l=[];else if(C===123)u=125,g=!0,l={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=l),C=e.input.charCodeAt(++e.position);C!==0;){if(skipSeparationSpace(e,!0,t),C=e.input.charCodeAt(e.position),C===u)return e.position++,e.tag=s,e.anchor=c,e.kind=g?"mapping":"sequence",e.result=l,!0;a?C===44&&throwError(e,"expected the node content, but found ','"):throwError(e,"missed comma between flow collection entries"),$=b=w=null,d=m=!1,C===63&&(f=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(f)&&(d=m=!0,e.position++,skipSeparationSpace(e,!0,t))),n=e.line,o=e.lineStart,r=e.position,composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),$=e.tag,b=e.result,skipSeparationSpace(e,!0,t),C=e.input.charCodeAt(e.position),(m||e.line===n)&&C===58&&(d=!0,C=e.input.charCodeAt(++e.position),skipSeparationSpace(e,!0,t),composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),w=e.result),g?storeMappingPair(e,l,v,$,b,w,n,o,r):d?l.push(storeMappingPair(e,null,v,$,b,w,n,o,r)):l.push(b),skipSeparationSpace(e,!0,t),C=e.input.charCodeAt(e.position),C===44?(a=!0,C=e.input.charCodeAt(++e.position)):a=!1}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,t){var a,n,o=CHOMPING_CLIP,r=!1,s=!1,l=t,c=0,f=!1,u,d;if(d=e.input.charCodeAt(e.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)CHOMPING_CLIP===o?o=d===43?CHOMPING_KEEP:CHOMPING_STRIP:throwError(e,"repeat of a chomping mode identifier");else if((u=fromDecimalCode(d))>=0)u===0?throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?throwError(e,"repeat of an indentation width identifier"):(l=t+u-1,s=!0);else break;if(is_WHITE_SPACE(d)){do d=e.input.charCodeAt(++e.position);while(is_WHITE_SPACE(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!is_EOL(d)&&d!==0)}for(;d!==0;){for(readLineBreak(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!s||e.lineIndentl&&(l=e.lineIndent),is_EOL(d)){c++;continue}if(e.lineIndentt)&&c!==0)throwError(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&($&&(s=e.line,l=e.lineStart,c=e.position),composeNode(e,t,CONTEXT_BLOCK_OUT,!0,o)&&($?v=e.result:b=e.result),$||(storeMappingPair(e,d,m,g,v,b,s,l,c),g=v=b=null),skipSeparationSpace(e,!0,-1),N=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&N!==0)throwError(e,"bad indentation of a mapping entry");else if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,m=e.implicitTypes.length;d"),e.result!==null&&v.kind!==e.kind&&throwError(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+v.kind+'", not "'+e.kind+'"'),v.resolve(e.result,e.tag)?(e.result=v.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||u}function readDocument(e){var t=e.position,a,n,o,r=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(skipSeparationSpace(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(r=!0,s=e.input.charCodeAt(++e.position),a=e.position;s!==0&&!is_WS_OR_EOL(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(a,e.position),o=[],n.length<1&&throwError(e,"directive name must not be less than one character in length");s!==0;){for(;is_WHITE_SPACE(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!is_EOL(s));break}if(is_EOL(s))break;for(a=e.position;s!==0&&!is_WS_OR_EOL(s);)s=e.input.charCodeAt(++e.position);o.push(e.input.slice(a,e.position))}s!==0&&readLineBreak(e),_hasOwnProperty$1.call(directiveHandlers,n)?directiveHandlers[n](e,n,o):throwWarning(e,'unknown document directive "'+n+'"')}if(skipSeparationSpace(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,skipSeparationSpace(e,!0,-1)):r&&throwError(e,"directives end mark is expected"),composeNode(e,e.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(e,!0,-1),e.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(e.input.slice(t,e.position))&&throwWarning(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&testDocumentSeparator(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,skipSeparationSpace(e,!0,-1));return}if(e.positiont)&&c!==0)throwError(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&($&&(s=e.line,l=e.lineStart,c=e.position),composeNode(e,t,CONTEXT_BLOCK_OUT,!0,o)&&($?v=e.result:b=e.result),$||(storeMappingPair(e,d,m,g,v,b,s,l,c),g=v=b=null),skipSeparationSpace(e,!0,-1),C=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&C!==0)throwError(e,"bad indentation of a mapping entry");else if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,m=e.implicitTypes.length;d"),e.result!==null&&v.kind!==e.kind&&throwError(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+v.kind+'", not "'+e.kind+'"'),v.resolve(e.result,e.tag)?(e.result=v.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||u}function readDocument(e){var t=e.position,a,n,o,r=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(skipSeparationSpace(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(r=!0,s=e.input.charCodeAt(++e.position),a=e.position;s!==0&&!is_WS_OR_EOL(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(a,e.position),o=[],n.length<1&&throwError(e,"directive name must not be less than one character in length");s!==0;){for(;is_WHITE_SPACE(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!is_EOL(s));break}if(is_EOL(s))break;for(a=e.position;s!==0&&!is_WS_OR_EOL(s);)s=e.input.charCodeAt(++e.position);o.push(e.input.slice(a,e.position))}s!==0&&readLineBreak(e),_hasOwnProperty$1.call(directiveHandlers,n)?directiveHandlers[n](e,n,o):throwWarning(e,'unknown document directive "'+n+'"')}if(skipSeparationSpace(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,skipSeparationSpace(e,!0,-1)):r&&throwError(e,"directives end mark is expected"),composeNode(e,e.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(e,!0,-1),e.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(e.input.slice(t,e.position))&&throwWarning(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&testDocumentSeparator(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,skipSeparationSpace(e,!0,-1));return}if(e.position"u"&&(a=t,t=null);var n=loadDocuments(e,a);if(typeof t!="function")return n;for(var o=0,r=n.length;ot&&s>o?c+=e.slice(o,s)+` `+e.slice(s+1):c+=e.slice(o),c.slice(1)}function escapeString(e){for(var t="",a=0,n,o=0;o=65536?o+=2:o++)a=codePointAt(e,o),n=ESCAPE_SEQUENCES[a],!n&&isPrintable(a)?(t+=e[o],a>=65536&&(t+=e[o+1])):t+=n||encodeHex(a);return t}function writeFlowSequence(e,t,a){var n="",o=e.tag,r,s,l;for(r=0,s=a.length;r"u"&&writeNode(e,t,null,!1,!1))&&(n!==""&&(n+=","+(e.condenseFlow?"":" ")),n+=e.dump);e.tag=o,e.dump="["+n+"]"}function writeBlockSequence(e,t,a,n){var o="",r=e.tag,s,l,c;for(s=0,l=a.length;s"u"&&writeNode(e,t+1,null,!0,!0,!1,!0))&&((!n||o!=="")&&(o+=generateNextLine(e,t)),e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?o+="-":o+="- ",o+=e.dump);e.tag=r,e.dump=o||"[]"}function writeFlowMapping(e,t,a){var n="",o=e.tag,r=Object.keys(a),s,l,c,f,u;for(s=0,l=r.length;s1024&&(u+="? "),u+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),writeNode(e,t,f,!1,!1)&&(u+=e.dump,n+=u));e.tag=o,e.dump="{"+n+"}"}function writeBlockMapping(e,t,a,n){var o="",r=e.tag,s=Object.keys(a),l,c,f,u,d,m;if(e.sortKeys===!0)s.sort();else if(typeof e.sortKeys=="function")s.sort(e.sortKeys);else if(e.sortKeys)throw new exception("sortKeys must be a boolean or a function");for(l=0,c=s.length;l1024,d&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?m+="?":m+="? "),m+=e.dump,d&&(m+=generateNextLine(e,t)),writeNode(e,t+1,u,!0,d)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?m+=":":m+=": ",m+=e.dump,o+=m));e.tag=r,e.dump=o||"{}"}function detectType(e,t,a){var n,o,r,s,l,c;for(o=a?e.explicitTypes:e.implicitTypes,r=0,s=o.length;r tag resolver accepts not "'+c+'" style');e.dump=n}return!0}return!1}function writeNode(e,t,a,n,o,r,s){e.tag=null,e.dump=a,detectType(e,a,!1)||detectType(e,a,!0);var l=_toString.call(e.dump),c=n,f;n&&(n=e.flowLevel<0||e.flowLevel>t);var u=l==="[object Object]"||l==="[object Array]",d,m;if(u&&(d=e.duplicates.indexOf(a),m=d!==-1),(e.tag!==null&&e.tag!=="?"||m||e.indent!==2&&t>0)&&(o=!1),m&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(u&&m&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(e.dump).length!==0?(writeBlockMapping(e,t,e.dump,o),m&&(e.dump="&ref_"+d+e.dump)):(writeFlowMapping(e,t,e.dump),m&&(e.dump="&ref_"+d+" "+e.dump));else if(l==="[object Array]")n&&e.dump.length!==0?(e.noArrayIndent&&!s&&t>0?writeBlockSequence(e,t-1,e.dump,o):writeBlockSequence(e,t,e.dump,o),m&&(e.dump="&ref_"+d+e.dump)):(writeFlowSequence(e,t,e.dump),m&&(e.dump="&ref_"+d+" "+e.dump));else if(l==="[object String]")e.tag!=="?"&&writeScalar(e,e.dump,t,r,c);else{if(l==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new exception("unacceptable kind of an object to dump "+l)}e.tag!==null&&e.tag!=="?"&&(f=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?f="!"+f:f.slice(0,18)==="tag:yaml.org,2002:"?f="!!"+f.slice(18):f="!<"+f+">",e.dump=f+" "+e.dump)}return!0}function getDuplicateReferences(e,t){var a=[],n=[],o,r;for(inspectNode(e,a,n),o=0,r=n.length;o{const k=ie.target.result.split(` -`).filter(M=>M.trim());let _=0;k.forEach(M=>{const[U,_e]=M.split(",");if(U&&_e){const me=U.trim().replace(/'/g,"''"),J=_e.trim().replace(/'/g,"''"),ue=uuidv7();_=_+1;const $e=parseInt(new Date().getTime()/1e3)+_,xe=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${me}', '${J}', 'rgba(255, 123, 2, .4)', ${$e}, '${m.value}', '${ue}');`;g.value.push(xe)}})},X.readAsText(I)}S.target.value=""}function fe(S){const I=S.target.files[0];if(I){const X=new FileReader;X.onload=ie=>{try{const pe=JSON.parse(ie.target.result);let k=0;Object.entries(pe).forEach(([_,M])=>{const U=_.replace(/'/g,"''"),_e=M.replace(/'/g,"''"),me=uuidv7();k=k+1;const J=parseInt(new Date().getTime()/1e3)+k,ue=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${U}', '${_e}', 'rgba(255, 123, 2, .4)', ${J}, '${m.value}', '${me}');`;g.value.push(ue)})}catch{message$1({type:"warn",str:"message.jsonErrorMesg"})}},X.readAsText(I)}S.target.value=""}function oe(S){const I=S.target.files[0];if(I){const X=new FileReader;X.onload=ie=>{try{const pe=jsYaml.load(ie.target.result);let k=0;Object.entries(pe).forEach(([_,M])=>{const U=_.replace(/'/g,"''"),_e=String(M).replace(/'/g,"''"),me=uuidv7();k=k+1;const J=parseInt(new Date().getTime()/1e3)+k,ue=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${U}', '${_e}', 'rgba(255, 123, 2, .4)', ${J}, '${m.value}', '${me}');`;g.value.push(ue)})}catch{message$1({type:"warn",str:"message.yamlErrorMesg"})}},X.readAsText(I)}S.target.value=""}function V(S){H();const I=S.target.files[0];if(I){const X=new FileReader;X.onload=ie=>{ie.target.result.split(";").filter(_=>_.trim()).forEach(_=>{if((_.includes("tag_groups")||_.includes("tag_subgroups"))&&_.includes("p_uuid"))if(_.includes("g_uuid")){c.value=_+";";const U=_.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);U&&(m.value=U[1]);const _e=_.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);_e&&(u.value=_e[1].replace(/''/g,"'"))}else{l.value=_+";";const U=_.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);U&&(d.value=U[1]);const _e=_.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);_e&&(f.value=_e[1].replace(/''/g,"'"))}else _.includes("tag_tags")&&g.value.push(_+";")})},X.readAsText(I)}S.target.value=""}function q(){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}P.value.click()}function Q(){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}N.value.click()}function O(){w.value.click()}function G(){const S=[l.value,c.value,...g.value].join(` +`:""}var dump_1=dump$1,dumper={dump:dump_1};function renamed(e,t){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}var Type=type,Schema=schema,FAILSAFE_SCHEMA=failsafe,JSON_SCHEMA=json,CORE_SCHEMA=core,DEFAULT_SCHEMA=_default,load=loader.load,loadAll=loader.loadAll,dump=dumper.dump,YAMLException=exception,types={binary,float,map,null:_null,pairs,set:set$1,timestamp,bool,int,merge,omap,seq,str},safeLoad=renamed("safeLoad","load"),safeLoadAll=renamed("safeLoadAll","loadAll"),safeDump=renamed("safeDump","dump"),jsYaml={Type,Schema,FAILSAFE_SCHEMA,JSON_SCHEMA,CORE_SCHEMA,DEFAULT_SCHEMA,load,loadAll,dump,YAMLException,types,safeLoad,safeLoadAll,safeDump};const _hoisted_1$l={key:0,class:"loading-overlay"},_hoisted_2$j={class:"settings-content"},_hoisted_3$j={class:"info-links"},_hoisted_4$i={class:"info-link-item"},_hoisted_5$h={class:"info-link-label"},_hoisted_6$h={href:"https://www.bilibili.com/list/288025756/?sid=4690314&spm_id_from=333.1387.0.0&oid=114342431298474&bvid=BV1txdfYxE7X",target:"_blank",class:"info-link"},_hoisted_7$h={class:"info-link-item"},_hoisted_8$h={class:"info-link-label"},_hoisted_9$h={href:"https://github.com/weilin9999/WeiLin-Comfyui-Tools-Prompt",target:"_blank",class:"info-link"},_hoisted_10$g={class:"info-link-item"},_hoisted_11$g={class:"info-link-label"},_hoisted_12$g={href:"https://weilin9999.github.io/WeiLin-Share-Prompt-Web/#/",target:"_blank",class:"info-link"},_hoisted_13$e={style:{"margin-bottom":"16px"}},_hoisted_14$c=["placeholder"],_hoisted_15$c={style:{"margin-bottom":"16px"}},_hoisted_16$c=["placeholder"],_hoisted_17$c=["placeholder"],_hoisted_18$9={style:{"margin-bottom":"16px"}},_hoisted_19$9=["placeholder"],_hoisted_20$9=["placeholder"],_hoisted_21$9={style:{"margin-bottom":"16px"}},_hoisted_22$9=["placeholder"],_hoisted_23$9={class:"data-container"},_hoisted_24$9={key:0},_hoisted_25$9={key:0},_hoisted_26$9={class:"tag-group-container"},_hoisted_27$9={style:{display:"flex","align-items":"center"}},_hoisted_28$8={key:0},_hoisted_29$8=["placeholder"],_hoisted_30$8=["onClick"],_hoisted_31$8=["onClick"],_hoisted_32$8=["onClick"],_sfc_main$l={__name:"import_tag",setup(e,{expose:t}){const{t:a}=useI18n(),n=ref(!1),o=ref(""),r=ref(""),s=ref(""),l=ref(""),c=ref(""),f=ref(""),u=ref(""),d=ref(""),m=ref(""),g=ref([]),v=ref(-1),b=ref(""),$=ref(""),w=ref(null),C=ref(null),P=ref(null),y=ref(!1),E=ref(""),R=ref(null);function F(){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}R.value.click()}function H(){o.value="",r.value="",s.value="",l.value="",c.value="",f.value="",u.value="",d.value="",m.value="",g.value=[],v.value=-1,b.value="",$.value="",y.value=!1}function j(S){const I=S.target.files[0];if(I){const X=new FileReader;X.onload=ie=>{const T=ie.target.result.split(` +`).filter(M=>M.trim());let _=0;T.forEach(M=>{const[U,_e]=M.split(",");if(U&&_e){const me=U.trim().replace(/'/g,"''"),J=_e.trim().replace(/'/g,"''"),ce=uuidv7();_=_+1;const Se=parseInt(new Date().getTime()/1e3)+_,xe=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${me}', '${J}', 'rgba(255, 123, 2, .4)', ${Se}, '${m.value}', '${ce}');`;g.value.push(xe)}})},X.readAsText(I)}S.target.value=""}function fe(S){const I=S.target.files[0];if(I){const X=new FileReader;X.onload=ie=>{try{const pe=JSON.parse(ie.target.result);let T=0;Object.entries(pe).forEach(([_,M])=>{const U=_.replace(/'/g,"''"),_e=M.replace(/'/g,"''"),me=uuidv7();T=T+1;const J=parseInt(new Date().getTime()/1e3)+T,ce=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${U}', '${_e}', 'rgba(255, 123, 2, .4)', ${J}, '${m.value}', '${me}');`;g.value.push(ce)})}catch{message$1({type:"warn",str:"message.jsonErrorMesg"})}},X.readAsText(I)}S.target.value=""}function oe(S){const I=S.target.files[0];if(I){const X=new FileReader;X.onload=ie=>{try{const pe=jsYaml.load(ie.target.result);let T=0;Object.entries(pe).forEach(([_,M])=>{const U=_.replace(/'/g,"''"),_e=String(M).replace(/'/g,"''"),me=uuidv7();T=T+1;const J=parseInt(new Date().getTime()/1e3)+T,ce=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${U}', '${_e}', 'rgba(255, 123, 2, .4)', ${J}, '${m.value}', '${me}');`;g.value.push(ce)})}catch{message$1({type:"warn",str:"message.yamlErrorMesg"})}},X.readAsText(I)}S.target.value=""}function V(S){H();const I=S.target.files[0];if(I){const X=new FileReader;X.onload=ie=>{ie.target.result.split(";").filter(_=>_.trim()).forEach(_=>{if((_.includes("tag_groups")||_.includes("tag_subgroups"))&&_.includes("p_uuid"))if(_.includes("g_uuid")){c.value=_+";";const U=_.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);U&&(m.value=U[1]);const _e=_.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);_e&&(u.value=_e[1].replace(/''/g,"'"))}else{l.value=_+";";const U=_.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);U&&(d.value=U[1]);const _e=_.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);_e&&(f.value=_e[1].replace(/''/g,"'"))}else _.includes("tag_tags")&&g.value.push(_+";")})},X.readAsText(I)}S.target.value=""}function q(){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}P.value.click()}function Q(){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}C.value.click()}function O(){w.value.click()}function G(){const S=[l.value,c.value,...g.value].join(` `),I=new Blob([S],{type:"text/sql"}),X=document.createElement("a");if(X.href=URL.createObjectURL(I),E.value.length<=0){const ie=parseInt(new Date().getTime()/1e3);X.download="export_"+ie+".sql"}else X.download=E.value+".sql";X.click()}const ee=()=>{const S=[...g.value].join(` -`),I=new Blob([S],{type:"text/sql"}),X=document.createElement("a");if(X.href=URL.createObjectURL(I),E.value.length<=0){const ie=parseInt(new Date().getTime()/1e3);X.download="export_tags_"+ie+".sql"}else X.download=E.value+".sql";X.click()};function A(S){const I=S.match(/VALUES\s*\([^']*'([^']+)'/),X=S.match(/VALUES\s*\([^']*'[^']*'\s*,\s*'([^']+)'/);return{text:I?I[1].replace(/''/g,"'"):"",desc:X?X[1].replace(/''/g,"'"):""}}function D(S){g.value.splice(S,1)}function W(S){const I=g.value[S],X=A(I);b.value=X.text,$.value=X.desc,v.value=S}function ae(S){const I=b.value.replace(/'/g,"''"),X=$.value.replace(/'/g,"''");g.value[S]=g.value[S].replace(/(VALUES\s*\([^']*')([^']+)'/,`$1${I}'`).replace(/(VALUES\s*\([^']*'[^']*'\s*,\s*')([^']+)'/,`$1${X}'`),v.value=-1}function Y(){v.value=-1}function ne(){if(!m.value){message$1({type:"warn",str:"message.pleaseAddSub"});return}const S=o.value.replace(/'/g,"''"),I=r.value.replace(/'/g,"''"),X=uuidv7(),ie=parseInt(new Date().getTime()/1e3);s.value=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${S}', '${I}', 'rgba(255, 123, 2, .4)', ${ie}, '${m.value}', '${X}');`,g.value.push(s.value)}function te(){if(f.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseAddGroupName"});return}const S=f.value.replace(/'/g,"''");d.value.length<=0&&(d.value=uuidv7());const I=parseInt(new Date().getTime()/1e3);l.value=`INSERT OR REPLACE INTO "tag_groups" ("name", "color", "create_time", "p_uuid") VALUES ('${S}', 'rgba(255, 123, 2, .4)', ${I}, '${d.value}');`}function ge(){if(u.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseAddSubGroupName"});return}if(!d.value){message$1({type:"warn",str:"message.pleaseAddMainCeb"});return}const S=u.value.replace(/'/g,"''");m.value.length<=0&&(m.value=uuidv7());const I=parseInt(new Date().getTime()/1e3);c.value=`INSERT OR REPLACE INTO "tag_subgroups" ("name", "color", "create_time", "p_uuid", "g_uuid") VALUES ('${S}', 'rgba(255, 123, 2, .4)', ${I}, '${d.value}', '${m.value}');`}const re=ref(null),B=()=>{re.value.open()},z=S=>{y.value=!0,f.value=S.group.name,u.value=S.sub.name,d.value=S.group.p_uuid,m.value=S.sub.g_uuid;const I=S.group.name.replace(/'/g,"''"),X=S.sub.name.replace(/'/g,"''");l.value=`INSERT OR REPLACE INTO "tag_groups" ("name", "color", "create_time", "p_uuid") VALUES ('${I}', '${S.group.color}', ${S.group.create_time}, '${S.group.p_uuid}');`,c.value=`INSERT OR REPLACE INTO "tag_subgroups" ("name", "color", "create_time", "p_uuid", "g_uuid") VALUES ('${X}', '${S.sub.color}', ${S.sub.create_time}, '${S.group.p_uuid}', '${S.sub.g_uuid}');`},Z=ref(!1),L=async S=>{Z.value=!0;try{await tagsApi.runSQLToServer(S).then(I=>{if(I.code!=200){message$1({type:"warn",str:I.message});return}else K(),message$1({type:"success",str:"importDialog.successImport"})}).catch(I=>{console.error(I),message$1({type:"warn",str:"importDialog.importFail"})})}catch(I){console.error(I),message$1({type:"warn",str:"importDialog.importFail"})}finally{Z.value=!1}},K=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*")},x=async()=>{if(y.value){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const S=[...g.value];await L(S)}else{if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const S=[l.value,c.value,...g.value];await L(S)}};return watch(l,(S,I)=>{var pe,k;if(!S||S===I)return;const X=(pe=S.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:pe[1],ie=(k=I==null?void 0:I.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:k[1];X&&ie&&c.value&&(c.value=c.value.replace(new RegExp(`'${ie}'`,"g"),`'${X}'`))}),watch(c,(S,I)=>{var pe,k;if(!S||S===I)return;const X=(pe=S.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:pe[1],ie=(k=I==null?void 0:I.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:k[1];X&&ie&&g.value.length>0&&(g.value=g.value.map(_=>_.replace(new RegExp(`'${ie}'`,"g"),`'${X}'`)))}),t({open:()=>{n.value=!0}}),(S,I)=>(openBlock(),createElementBlock(Fragment,null,[Z.value?(openBlock(),createElementBlock("div",_hoisted_1$l,I[11]||(I[11]=[createBaseVNode("div",{class:"loading-spinner"},null,-1)]))):createCommentVNode("",!0),createVNode(Dialog,{modelValue:n.value,"onUpdate:modelValue":I[10]||(I[10]=X=>n.value=X),title:unref(a)("importDialog.title")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:I[9]||(I[9]=X=>n.value=!1)},toDisplayString$1(unref(a)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:x},toDisplayString$1(unref(a)("importDialog.sure")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_2$j,[createBaseVNode("div",_hoisted_3$j,[createBaseVNode("div",_hoisted_4$i,[createBaseVNode("span",_hoisted_5$h,toDisplayString$1(unref(a)("importDialog.tips1")),1),createBaseVNode("a",_hoisted_6$h,toDisplayString$1(unref(a)("importDialog.tips1text")),1)]),createBaseVNode("div",_hoisted_7$h,[createBaseVNode("span",_hoisted_8$h,toDisplayString$1(unref(a)("importDialog.tips2")),1),createBaseVNode("a",_hoisted_9$h,toDisplayString$1(unref(a)("importDialog.tips2text")),1)]),createBaseVNode("div",_hoisted_10$g,[createBaseVNode("span",_hoisted_11$g,toDisplayString$1(unref(a)("importDialog.tips3")),1),createBaseVNode("a",_hoisted_12$g,toDisplayString$1(unref(a)("importDialog.tips3text")),1)])]),createBaseVNode("div",_hoisted_13$e,[createBaseVNode("button",{onClick:H,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.cleanAll")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:O,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.uploadSQL")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:B},toDisplayString$1(unref(a)("importDialog.selectGroup")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:G},toDisplayString$1(unref(a)("importDialog.dumpSQL")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:ee},toDisplayString$1(unref(a)("importDialog.dumpOnlySQL")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":I[0]||(I[0]=X=>E.value=X),placeholder:unref(a)("importDialog.settingOutputName")},null,8,_hoisted_14$c),[[vModelText,E.value]]),createBaseVNode("input",{type:"file",ref_key:"fileInput",ref:w,onChange:V,accept:".sql",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"jsonFileInput",ref:N,onChange:fe,accept:".json",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"txtFileInput",ref:P,onChange:j,accept:".txt",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"yamlFileInput",ref:R,onChange:oe,accept:".yaml,.yml",style:{display:"none"}},null,544)]),createBaseVNode("div",_hoisted_15$c,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[1]||(I[1]=X=>f.value=X),placeholder:unref(a)("importDialog.pleaseMainCeb")},null,8,_hoisted_16$c),[[vModelText,f.value]]),createBaseVNode("button",{onClick:te},toDisplayString$1(unref(a)("importDialog.setMainCeb")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":I[2]||(I[2]=X=>d.value=X),placeholder:unref(a)("importDialog.pleaseMainCebUuid")},null,8,_hoisted_17$c),[[vModelText,d.value]])]),createBaseVNode("div",_hoisted_18$9,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[3]||(I[3]=X=>u.value=X),placeholder:unref(a)("importDialog.pleaseSubGroup")},null,8,_hoisted_19$9),[[vModelText,u.value]]),createBaseVNode("button",{onClick:ge},toDisplayString$1(unref(a)("importDialog.setSubCeb")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":I[4]||(I[4]=X=>m.value=X),placeholder:unref(a)("importDialog.pleaseSubGroupUuid")},null,8,_hoisted_20$9),[[vModelText,m.value]])]),createBaseVNode("div",_hoisted_21$9,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[5]||(I[5]=X=>o.value=X),placeholder:"Tag"},null,512),[[vModelText,o.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[6]||(I[6]=X=>r.value=X),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_22$9),[[vModelText,r.value]]),createBaseVNode("button",{onClick:ne},toDisplayString$1(unref(a)("importDialog.add")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:Q,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.fromJSONImput")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:q,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.fromTxtInput")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:F,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.fromYmalInput")),1)]),createBaseVNode("div",_hoisted_23$9,[l.value?(openBlock(),createElementBlock("div",_hoisted_24$9,[createBaseVNode("h3",null,toDisplayString$1(A(l.value).text),1),c.value?(openBlock(),createElementBlock("div",_hoisted_25$9,[createBaseVNode("h4",null,toDisplayString$1(A(c.value).text),1),createBaseVNode("div",_hoisted_26$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(X,ie)=>(openBlock(),createElementBlock("div",{key:ie,style:{display:"flex","flex-direction":"column","align-items":"center"}},[createBaseVNode("p",null,toDisplayString$1(A(X).text)+" - "+toDisplayString$1(A(X).desc),1),createBaseVNode("div",_hoisted_27$9,[v.value===ie?(openBlock(),createElementBlock("div",_hoisted_28$8,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[7]||(I[7]=pe=>b.value=pe),placeholder:"Tag"},null,512),[[vModelText,b.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[8]||(I[8]=pe=>$.value=pe),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_29$8),[[vModelText,$.value]]),createBaseVNode("button",{onClick:pe=>ae(ie)},toDisplayString$1(unref(a)("importDialog.sureYes")),9,_hoisted_30$8),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:Y},toDisplayString$1(unref(a)("importDialog.cancel")),1)])):(openBlock(),createElementBlock("button",{key:1,onClick:pe=>W(ie)},toDisplayString$1(unref(a)("importDialog.edit")),9,_hoisted_31$8)),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:pe=>D(ie)},toDisplayString$1(unref(a)("importDialog.delete")),9,_hoisted_32$8)])]))),128))])])):createCommentVNode("",!0)])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]),createVNode(TagGroupSelect$1,{ref_key:"tagGroupSelectDialogItem",ref:re,onSureSelect:z},null,512)],64))}},ImportTagDialog=_export_sfc(_sfc_main$l,[["__scopeId","data-v-1971f07a"]]),_hoisted_1$k={class:"tag-manager"},_hoisted_2$i={class:"toolbar"},_hoisted_3$i={class:"toolbar-top"},_hoisted_4$h={class:"search-container"},_hoisted_5$g=["placeholder"],_hoisted_6$g={key:0,class:"no-results"},_hoisted_7$g=["onClick"],_hoisted_8$g={class:"result-content"},_hoisted_9$g={class:"result-text"},_hoisted_10$f={class:"result-path"},_hoisted_11$f={class:"toolbar-bottom"},_hoisted_12$f={class:"group-edit-mode"},_hoisted_13$d={class:"category-tabs"},_hoisted_14$b={class:"tabs-wrapper primary-tabs"},_hoisted_15$b={class:"tabs-scroll"},_hoisted_16$b=["onClick","onMouseenter","onMouseleave"],_hoisted_17$b={class:"tab-text"},_hoisted_18$8={key:0,class:"tab-actions"},_hoisted_19$8=["onClick","title"],_hoisted_20$8=["onClick","title"],_hoisted_21$8=["onClick","title"],_hoisted_22$8=["onClick","title"],_hoisted_23$8={class:"group-edit-mode"},_hoisted_24$8={key:0,class:"tabs-wrapper group-tabs"},_hoisted_25$8={class:"tabs-scroll"},_hoisted_26$8=["onClick","onMouseenter","onMouseleave"],_hoisted_27$8={class:"tab-text"},_hoisted_28$7={key:0,class:"tab-actions"},_hoisted_29$7=["onClick","title"],_hoisted_30$7=["onClick","title"],_hoisted_31$7=["onClick","title"],_hoisted_32$7=["onClick","title"],_hoisted_33$7={class:"group-edit-mode"},_hoisted_34$7={class:"tags-content"},_hoisted_35$7={class:"tags-header"},_hoisted_36$7={class:"tags-title"},_hoisted_37$6={class:"tags-actions"},_hoisted_38$6=["disabled"],_hoisted_39$6=["disabled"],_hoisted_40$6=["disabled"],_hoisted_41$6=["disabled"],_hoisted_42$6=["disabled"],_hoisted_43$6={key:0,class:"tags-grid"},_hoisted_44$5=["onClick"],_hoisted_45$5={class:"tag-actions"},_hoisted_46$4=["onClick","title"],_hoisted_47$3=["onClick","title"],_hoisted_48$3=["onClick","title"],_hoisted_49$3={class:"tag-desc"},_hoisted_50$3=["value"],_hoisted_51$3={key:0,class:"weilin-tools-dialog-overlay"},_hoisted_52$3={class:"weilin-tools-dialog-header"},_hoisted_53$3={class:"weilin-tools-dialog-body"},_hoisted_54$2={key:0,class:"form-group"},_hoisted_55$2=["placeholder"],_hoisted_56$2={key:1,class:"form-group"},_hoisted_57$2=["placeholder"],_hoisted_58$2={class:"form-group"},_hoisted_59$2={class:"color-picker"},_hoisted_60$2={class:"color-controls"},_hoisted_61$2={class:"alpha-control"},_hoisted_62$2={class:"alpha-value"},_hoisted_63$2={class:"weilin-tools-dialog-footer"},_hoisted_64$2={key:1,class:"weilin-tools-dialog-overlay"},_hoisted_65$2={class:"weilin-tools-dialog-header"},_hoisted_66$2={class:"weilin-tools-dialog-body"},_hoisted_67$2={class:"form-group"},_hoisted_68$2=["placeholder"],_hoisted_69$2={class:"form-group"},_hoisted_70$2=["placeholder"],_hoisted_71$2={class:"form-group"},_hoisted_72$2={class:"color-picker"},_hoisted_73$1={class:"color-controls"},_hoisted_74$1={class:"alpha-control"},_hoisted_75$1={class:"alpha-value"},_hoisted_76$1={class:"weilin-tools-dialog-footer"},_hoisted_77$1={key:2,class:"weilin-tools-dialog-overlay"},_hoisted_78$1={class:"weilin-tools-dialog-header"},_hoisted_79$1={class:"weilin-tools-dialog-body"},_hoisted_80$1={class:"confirm-message"},_hoisted_81$1={class:"weilin-tools-dialog-footer"},_hoisted_82$1={key:3,class:"weilin-tools-dialog-overlay"},_hoisted_83$1={class:"weilin-tools-dialog-content"},_hoisted_84$1={class:"weilin-tools-dialog-header"},_hoisted_85$1={class:"weilin-tools-dialog-body"},_hoisted_86$1={class:"form-group"},_hoisted_87$1=["value"],_hoisted_88$1={class:"form-group"},_hoisted_89$1={class:"radio-group"},_hoisted_90$1={class:"weilin-tools-dialog-footer"},_hoisted_91$1={key:4,class:"weilin-tools-dialog-overlay"},_hoisted_92$1={class:"weilin-tools-dialog-content"},_hoisted_93$1={class:"weilin-tools-dialog-header"},_hoisted_94$1={class:"weilin-tools-dialog-body"},_hoisted_95$1={class:"form-group"},_hoisted_96$1=["value"],_hoisted_97$1={class:"form-group"},_hoisted_98$1={class:"radio-group"},_hoisted_99$1={class:"weilin-tools-dialog-footer"},_hoisted_100$1={key:5,class:"weilin-tools-dialog-overlay"},_hoisted_101$1={class:"weilin-tools-dialog-header"},_hoisted_102$1={class:"weilin-tools-dialog-body"},_hoisted_103$1={class:"config-section"},_hoisted_104$1={class:"form-group"},_hoisted_105$1={class:"width-control"},_hoisted_106$1={class:"radio-label"},_hoisted_107$1={class:"radio-label"},_hoisted_108$1={class:"form-group"},_hoisted_109$1={class:"form-group"},_hoisted_110$1={class:"config-section"},_hoisted_111$1={class:"form-group"},_hoisted_112$1={class:"width-control"},_hoisted_113={class:"radio-label"},_hoisted_114={class:"radio-label"},_hoisted_115={class:"form-group"},_hoisted_116={class:"form-group"},_hoisted_117={class:"weilin-tools-dialog-footer"},_sfc_main$k={__name:"tag_index",props:{tagManager:{type:String,default:"prompt"}},setup(e){useTagStore();const{t}=useI18n(),a=ref([]),n=ref(null),o=ref([]),r=ref([]),s=ref(null),l=ref(!1),c=ref(!1),f=ref(!1),u=ref(!1),d=ref("primary"),m=ref([]),g=ref(!1),v=ref(!1),b=ref("None"),$=ref("None"),w=ref(0),N=ref(0),P=ref(null),y=ref(0),E=ref(!1),R=ref(null),F=ref("before"),H=ref(null),j=ref("before"),fe=ref(null),oe=ref(null),V=ref(!1),q=ref(!1),Q=ref(!1),O=ref({primaryTab:{width:"fit-content",height:34,fontSize:10},groupTab:{width:"fit-content",height:34,fontSize:10}}),G={primaryTab:{width:"fit-content",height:34,fontSize:10},groupTab:{width:"fit-content",height:34,fontSize:10}},ee=e,A=ref({name:"",color:"rgba(255, 123, 2, .4)",id_index:"",groups:[]}),D=ref({name:"",id_index:"",color:"rgba(255, 123, 2, .4)",tags:[]}),W=ref({text:"",desc:"",id_index:"",color:"rgba(255, 123, 2, .4)"}),ae=ce=>{const le=ce.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([0-9.]+))?\)/);if(le){const[,he,Ce,je,qe]=le,De=`#${((1<<24)+(parseInt(he)<<16)+(parseInt(Ce)<<8)+parseInt(je)).toString(16).slice(1)}`,ze=qe?Math.round(parseFloat(qe)*100):100;return{hex:De,alpha:ze}}return{hex:"#FFFFFF",alpha:100}},Y=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*")},ne=async()=>{try{await tagsApi.getTagMainGroup().then(ce=>{a.value=ce}).catch(ce=>{console.error(ce),message$1({type:"warn",str:"message.networkError"})}),n.value&&await te(n.value.p_uuid),s.value&&await ge(s.value.g_uuid)}catch(ce){console.error("Tag管理器列表失败:",ce)}},te=async ce=>{try{await tagsApi.getTagSubGroup(ce).then(le=>{o.value=le}).catch(le=>{console.error(le),message$1({type:"warn",str:"message.networkError"})})}catch(le){console.error("二级分类列表失败:",le)}},ge=async ce=>{try{await tagsApi.getTagList(ce).then(le=>{r.value=le}).catch(le=>{console.error(le),message$1({type:"warn",str:"message.networkError"})})}catch(le){console.error("Tag列表失败:",le)}};onMounted(()=>{et(),window.addEventListener("click",Et),window.addEventListener("resize",et),window.addEventListener("message",Bt),window.addEventListener("keydown",Vt),Mt(),Y()}),onBeforeUnmount(()=>{window.removeEventListener("click",Et),window.removeEventListener("resize",et),window.removeEventListener("message",Bt),window.removeEventListener("keydown",Vt)});const re=async ce=>{n.value=ce,s.value=null,g.value=!1,m.value=[],await te(ce.p_uuid)},B=async ce=>{s.value=ce,g.value=!1,m.value=[],await ge(ce.g_uuid)},z=ce=>{d.value=ce,f.value=!1,k.value=ae("rgba(255, 123, 2, .4)"),ce==="primary"?A.value={name:"",color:"rgba(255, 123, 2, .4)",groups:[]}:D.value={name:"",color:"rgba(255, 123, 2, .4)",tags:[]},l.value=!0},Z=ce=>{f.value=!0,d.value="primary",A.value={...ce},k.value=ae(ce.color),l.value=!0},L=ce=>{f.value=!0,d.value="group",D.value={...ce},k.value=ae(ce.color),l.value=!0},K=()=>{if(d.value==="primary"){if(!A.value.name){message$1({type:"warn",str:"tagManager.categoryNameRequired"});return}f.value?a.value.findIndex(le=>le.id_index===A.value.id_index)!==-1&&tagsApi.editPrimaryCategory({id_index:A.value.id_index,name:A.value.name,color:A.value.color}).then(le=>{le.code===200?(Y(),message$1({type:"success",str:"message.editSuccess"})):le.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.editFailed"})}).catch(le=>{message$1({type:"warn",str:"message.networkError"})}):tagsApi.addPrimaryCategory({name:A.value.name,color:A.value.color}).then(ce=>{ce.code===200?(Y(),message$1({type:"success",str:"message.addSuccess"})):ce.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.addFailed"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})})}else{if(!D.value.name){message$1({type:"warn",str:"tagManager.groupNameRequired"});return}f.value?tagsApi.editSubCategory({id_index:D.value.id_index,name:D.value.name,color:D.value.color}).then(ce=>{ce.code===200?(Y(),message$1({type:"success",str:"message.editSuccess"})):ce.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.editFailed"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})}):tagsApi.addSubCategory({name:D.value.name,color:D.value.color,key:n.value.id_index,p_uuid:n.value.p_uuid}).then(ce=>{ce.code===200?(Y(),message$1({type:"success",str:"message.addSuccess"})):ce.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.editFailed"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})})}S()},x=()=>f.value?d.value==="primary"?t("tagManager.editPrimaryCategory"):t("tagManager.editSubCategory"):d.value==="primary"?t("tagManager.addPrimaryCategory"):t("tagManager.addSubCategory"),S=()=>{l.value=!1,A.value={id:"",name:"",parentId:null,subCategories:[],backgroundColor:"transparent"},k.value={hex:"#FFFFFF",alpha:0}},I=()=>{s.value&&(u.value=!1,W.value={id:"",text:"",desc:"",categoryId:s.value.id,g_uuid:s.value.g_uuid,backgroundColor:D.value.color},k.value=ae(D.value.color),c.value=!0)},X=ce=>{u.value=!0,W.value={...ce},k.value=ae(ce.color),c.value=!0},ie=()=>{if(!W.value.text||!W.value.desc){message$1({type:"warn",str:"tagManager.textRequired"});return}u.value&&s.value?tagsApi.editTags({id_index:W.value.id_index,text:W.value.text,desc:W.value.desc,color:W.value.color}).then(ce=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.editSuccess"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})}):s.value&&tagsApi.addNewTags({id_index:s.value.id_index,g_uuid:s.value.g_uuid,text:W.value.text,desc:W.value.desc,color:W.value.color?W.value.color:"rgba(255, 123, 2, .4)"}).then(ce=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.addSuccess"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})}),pe()},pe=()=>{c.value=!1,W.value={text:"",desc:"",color:"rgba(255, 123, 2, .4)"},u.value=!1},k=ref({hex:"#FFFFFF",alpha:100}),_=computed(()=>U(k.value.hex,k.value.alpha)),M=()=>{const ce=U(k.value.hex,k.value.alpha);l.value?d.value==="primary"?A.value.color=ce:D.value.color=ce:c.value&&(W.value.color=ce)},U=(ce,le)=>{const he=parseInt(ce.slice(1,3),16),Ce=parseInt(ce.slice(3,5),16),je=parseInt(ce.slice(5,7),16);return`rgba(${he}, ${Ce}, ${je}, ${le/100})`},_e=ref(""),me=ref([]),J=ref(!1),ue=async()=>{J.value=_e.value.trim().length>0;const ce=_e.value.trim().toLowerCase();if(!ce){me.value=[];return}me.value=[],await tagsApi.searchTag(ce).then(le=>{me.value=le}).catch(le=>{message$1({type:"warn",str:"message.networkError"})})};watch(_e,()=>{ue()});const $e=async ce=>{const le=a.value.find(he=>he.p_uuid===ce.p_uuid);le&&await re(le).then(async()=>{await nextTick(async()=>{const he=o.value.find(Ce=>Ce.g_uuid===ce.g_uuid);he&&await B(he).then(async()=>{await nextTick(()=>{y.value==1&&window.postMessage({type:"weilin_prompt_ui_insertTag",tagText:ce.text},"*"),P.value=ce.id_index,setTimeout(()=>{const Ce=document.querySelector(".tag-wrapper.highlight");Ce&&Ce.scrollIntoView({behavior:"smooth",block:"center"})},100),setTimeout(()=>{P.value=null},5e3)})})})}),_e.value=""},xe=ce=>{if(!ce||ce==="transparent")return"var(--primary-text)";let le,he,Ce,je=1;if(ce.startsWith("rgba")){const De=ce.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);De&&([,le,he,Ce,je]=De.map(Number))}else if(ce.startsWith("rgb")){const De=ce.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);De&&([,le,he,Ce]=De.map(Number))}return je<.5?"var(--primary-text)":(le*299+he*587+Ce*114)/1e3>128?"#000000":"#ffffff"},Ne=ce=>{ee.tagManager==="prompt"&&window.postMessage({type:"weilin_prompt_ui_insertTag",tagText:ce.text},"*")},Be=ref(!1),Me=ref(""),Ie=ref(null),We=computed(()=>{if(!Ie.value)return"";switch(Me.value){case"category":return t("tagManager.deletePrimaryCategoryConfirm",{name:Ie.value.name});case"group":return t("tagManager.deleteGroupConfirm",{name:Ie.value.name});case"tag":return t("tagManager.deleteTagConfirm",{name:Ie.value.text});case"deleteSelected":return t("tagManager.confirmDeleteSelected");default:return""}}),Te=ce=>{Me.value="category",Ie.value=ce,Be.value=!0},be=ce=>{Me.value="group",Ie.value=ce,Be.value=!0},ye=ce=>{Me.value="tag",Ie.value=ce,Be.value=!0},Ae=async()=>{try{switch(Me.value){case"category":tagsApi.deletePrimaryCategory({p_uuid:Ie.value.p_uuid}).then(ce=>{Y(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})});break;case"group":tagsApi.deleteSubCategory({g_uuid:Ie.value.g_uuid}).then(ce=>{Y(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})});break;case"tag":tagsApi.deleteTags({id_index:Ie.value.id_index}).then(ce=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})});break;case"deleteSelected":tagsApi.batchDeleteTags({id_indexs:m.value}).then(ce=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ce=>{message$1({type:"warn",str:"message.networkError"})});break}Ze()}catch(ce){console.error("删除失败:",ce)}},Ke=async ce=>{const le=`INSERT OR REPLACE INTO "tag_groups" ("name", "color", "create_time", "p_uuid") VALUES ('${ce.name.replace(/'/g,"''")}', '${ce.color}', ${ce.create_time}, '${ce.p_uuid}');`;try{const he=await tagsApi.getTagSubGroup(ce.p_uuid);let Ce=[];Ce.push(le);for(const De of he){const ze=`INSERT OR REPLACE INTO "tag_subgroups" ("name", "color", "create_time", "p_uuid", "g_uuid") VALUES ('${De.name.replace(/'/g,"''")}', '${De.color}', ${De.create_time}, '${De.p_uuid}', '${De.g_uuid}');`;Ce.push(ze);try{(await tagsApi.getTagList(De.g_uuid)).forEach(Je=>{const It=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${Je.text!=null&&Je.text.length>0?Je.text.replace(/'/g,"''"):""}', '${Je.desc!=null&&Je.desc.length>0?Je.desc.replace(/'/g,"''"):""}', '${Je.color}', ${Je.create_time}, '${Je.g_uuid}', '${uuidv7()}');`;Ce.push(It)})}catch(at){console.error("Tag列表失败:",at),message$1({type:"warn",str:"message.shareTagError"})}}const je=new Blob([Ce.join(` -`)],{type:"text/sql"}),qe=document.createElement("a");qe.href=URL.createObjectURL(je),qe.download=`${ce.name}_export_${Date.now()}.sql`,qe.click(),message$1({type:"success",str:"tagManager.outputSuccess"})}catch(he){console.error("二级分类列表失败:",he),message$1({type:"warn",str:"message.shareGroupError"})}},Tt=async ce=>{try{let le=[];const he=`INSERT OR REPLACE INTO "tag_subgroups" ("name", "color", "create_time", "p_uuid", "g_uuid") VALUES ('${ce.name.replace(/'/g,"''")}', '${ce.color}', ${ce.create_time}, '${ce.p_uuid}', '${ce.g_uuid}');`;le.push(he);try{(await tagsApi.getTagList(ce.g_uuid)).forEach(De=>{const ze=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${De.text!=null&&De.text.length>0?De.text.replace(/'/g,"''"):""}', '${De.desc!=null&&De.desc.length>0?De.desc.replace(/'/g,"''"):""}', '${De.color}', ${De.create_time}, '${De.g_uuid}', '${uuidv7()}');`;le.push(ze)})}catch(qe){console.error("Tag列表失败:",qe),message$1({type:"warn",str:"message.shareTagError"})}const Ce=new Blob([le.join(` -`)],{type:"text/sql"}),je=document.createElement("a");je.href=URL.createObjectURL(Ce),je.download=`${ce.name}_export_${Date.now()}.sql`,je.click(),message$1({type:"success",str:"tagManager.outputSuccess"})}catch(le){console.error("二级分类列表失败:",le),message$1({type:"warn",str:"message.shareGroupError"})}},ft=ce=>{H.value=ce.id_index,E.value=!0},xt=async()=>{try{tagsApi.moveTag({id_index:H.value,reference_id_index:R.value,position:F.value}).then(ce=>{Y(),E.value=!1,message$1({type:"success",str:t("message.moveSuccess")})}).catch(ce=>{message$1({type:"error",str:t("message.moveFailed")})})}catch(ce){console.error("移动标签失败:",ce),message$1({type:"error",str:t("message.moveFailed")})}},gt=ref([]),ct=ref(1),mt=(ce,le)=>{ct.value=le,le===1?(gt.value=a.value,fe.value=ce.id_index,v.value=!0):(gt.value=o.value,fe.value=ce.id_index,v.value=!0)},Xe=async()=>{if(ct.value===1)try{tagsApi.moveMainGroup({id_index:fe.value,reference_id_index:oe.value,position:j.value}).then(ce=>{Y(),v.value=!1,message$1({type:"success",str:t("message.moveSuccess")})}).catch(ce=>{message$1({type:"error",str:t("message.moveFailed")})})}catch(ce){console.error("移动标签失败:",ce),message$1({type:"error",str:t("message.moveFailed")})}else try{tagsApi.moveSubGroup({id_index:fe.value,reference_id_index:oe.value,position:j.value}).then(ce=>{Y(),v.value=!1,message$1({type:"success",str:t("message.moveSuccess")})}).catch(ce=>{message$1({type:"error",str:t("message.moveFailed")})})}catch(ce){console.error("移动标签失败:",ce),message$1({type:"error",str:t("message.moveFailed")})}},Ft=()=>{g.value=!0,V.value=!0},it=()=>{g.value=!1,V.value=!1,m.value=[]},Qe=()=>{m.value.length!==0&&(Me.value="deleteSelected",Ie.value={},Be.value=!0)},ut=()=>{g.value=!0,q.value=!0},ht=()=>{g.value=!1,q.value=!1,m.value=[]},Ct=()=>{if(m.value.length===0){message$1({type:"warn",str:"tagManager.noTagsSelected"});return}const ce={};m.value.forEach(Ce=>{ce[Ce.text]=Ce.desc});const le=new Blob([jsYaml.dump(ce)],{type:"text/yaml"}),he=document.createElement("a");he.href=URL.createObjectURL(le),he.download=`selected_tags_export_${Date.now()}.yaml`,he.click(),message$1({type:"success",str:"tagManager.outputSuccess"}),ht()},Ze=()=>{Be.value=!1,Me.value="",Ie.value=null},vt=async()=>{try{await Y()}catch(ce){console.error("刷新标签列表失败:",ce)}},dt=ref(),Nt=ref({}),et=()=>{if(dt.value){const ce=dt.value.getBoundingClientRect();Nt.value={position:"fixed",top:`${ce.bottom}px`,left:`${ce.left}px`,width:`${ce.width}px`,zIndex:1e3}}},Bt=ce=>{ce.data.type==="weilin_prompt_ui_window_change_tagManager_position"||ce.data.type==="weilin_prompt_ui_window_change_tagManager_size"||ce.data.type==="weilin_prompt_ui_window_change_tagManager_scroll"||ce.data.type==="weilin_prompt_ui_window_change_promptBox_position"||ce.data.type==="weilin_prompt_ui_window_change_promptBox_size"||ce.data.type==="weilin_prompt_ui_window_change_promptBox_scroll"?et():ce.data.type==="weilin_prompt_ui_window_change_click_outside"||ce.data.type==="weilin_prompt_ui_tag_manager_refresh"&&ne()},Et=ce=>{J.value&&!dt.value.contains(ce.target)&&(J.value=!1)},Vt=ce=>{ce.key==="Escape"&&(J.value=!1)},Ut=ce=>{N.value==1&&(b.value="TabID-"+ce)},At=ce=>{b.value="None"},Dt=ce=>{w.value==1&&($.value="TabID-"+ce)},Ht=ce=>{$.value="None"},bt=ref(),Lt=()=>{bt.value.open()},Mt=()=>{const ce=JSON.parse(JSON.stringify(G));try{const le=localStorage.getItem("weilin_tag_manager_tab_size_config");if(le){const he=JSON.parse(le);O.value={...ce,...he}}else O.value={...ce}}catch(le){console.error("读取标签尺寸配置失败:",le),O.value={...ce}}},zt=()=>{try{localStorage.setItem("weilin_tag_manager_tab_size_config",JSON.stringify(O.value)),message$1({type:"success",str:"tagManager.tabSizeConfigSaved"}),Q.value=!1}catch(ce){console.error("保存标签尺寸配置失败:",ce),message$1({type:"error",str:"tagManager.tabSizeConfigSaveFailed"})}},jt=()=>{Q.value=!0},pt=()=>{Q.value=!1,Mt()},Wt=()=>{const ce=JSON.parse(JSON.stringify(G));O.value={...ce}};return(ce,le)=>(openBlock(),createElementBlock("div",_hoisted_1$k,[createBaseVNode("div",_hoisted_2$i,[createBaseVNode("div",_hoisted_3$i,[createBaseVNode("button",{class:"refresh-btn",onClick:vt},le[40]||(le[40]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"refresh-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),createBaseVNode("div",_hoisted_4$h,[withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[0]||(le[0]=he=>_e.value=he),placeholder:unref(t)("tagManager.searchPlaceholder"),class:"search-input",ref_key:"searchInput",ref:dt,onInput:le[1]||(le[1]=he=>J.value=_e.value.trim().length>0)},null,40,_hoisted_5$g),[[vModelText,_e.value]]),J.value?(openBlock(),createElementBlock("div",{key:0,class:"search-results",style:normalizeStyle(Nt.value)},[me.value.length===0?(openBlock(),createElementBlock("div",_hoisted_6$g,toDisplayString$1(unref(t)("tagManager.noResults")),1)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(me.value,(he,Ce)=>(openBlock(),createElementBlock("div",{key:`${Ce}-search_item`,class:"search-result-item",onClick:je=>$e(he)},[createBaseVNode("div",_hoisted_8$g,[createBaseVNode("span",_hoisted_9$g,toDisplayString$1(he.name||he.text),1),createBaseVNode("span",_hoisted_10$f,toDisplayString$1(he.where),1)])],8,_hoisted_7$g))),128))],4)):createCommentVNode("",!0)]),createBaseVNode("button",{class:"import-btn",onClick:Lt},toDisplayString$1(unref(t)("tagManager.importTags")),1)]),createBaseVNode("div",_hoisted_11$f,[createBaseVNode("div",_hoisted_12$f,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":le[2]||(le[2]=he=>y.value=he),"true-value":1,"false-value":0},null,512),[[vModelCheckbox,y.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.autoAddSearchTag")),1)])]),createBaseVNode("button",{class:"tab-size-btn",onClick:jt},toDisplayString$1(unref(t)("tagManager.modifyTabSize")),1)])]),createBaseVNode("div",_hoisted_13$d,[createBaseVNode("div",_hoisted_14$b,[createBaseVNode("div",_hoisted_15$b,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,(he,Ce)=>{var je,qe,De;return openBlock(),createElementBlock("div",{key:"Tabss-"+Ce,class:normalizeClass(["tab-item",{active:((je=n.value)==null?void 0:je.name)===he.name}]),style:normalizeStyle({backgroundColor:((qe=n.value)==null?void 0:qe.name)===he.name?"var(--primary-color)":he.color,color:((De=n.value)==null?void 0:De.name)===he.name?"#ffffff":xe(he.color),width:O.value.primaryTab.width==="fit-content"?"fit-content":O.value.primaryTab.width+"px",height:O.value.primaryTab.height+"px",fontSize:O.value.primaryTab.fontSize+"px"}),onClick:ze=>re(he),onMouseenter:ze=>Ut(Ce),onMouseleave:ze=>At()},[createBaseVNode("span",_hoisted_17$b,toDisplayString$1(he.name),1),b.value=="TabID-"+Ce?(openBlock(),createElementBlock("div",_hoisted_18$8,[createBaseVNode("button",{class:"action-btn move",onClick:withModifiers(ze=>mt(he,1),["stop"]),title:unref(t)("tagManager.moveGroup")},le[41]||(le[41]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"move-icon"},[createBaseVNode("path",{d:"M13 6v3h8V6h-8zm0 5v3h8v-3h-8zm-8 5v3h8v-3H5zm0-5v3h8v-3H5zm0-5v3h8V6H5z"})],-1)]),8,_hoisted_19$8),createBaseVNode("button",{class:"action-btn edit",onClick:withModifiers(ze=>Z(he),["stop"]),title:unref(t)("tagManager.edit")},le[42]||(le[42]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"})],-1)]),8,_hoisted_20$8),createBaseVNode("button",{class:"action-btn share",onClick:withModifiers(ze=>Ke(he),["stop"]),title:unref(t)("tagManager.share")},le[43]||(le[43]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"})],-1)]),8,_hoisted_21$8),createBaseVNode("button",{class:"action-btn delete",onClick:withModifiers(ze=>Te(he),["stop"]),title:unref(t)("tagManager.delete")},le[44]||(le[44]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"})],-1)]),8,_hoisted_22$8)])):createCommentVNode("",!0)],46,_hoisted_16$b)}),128)),createBaseVNode("button",{class:"add-tab",onClick:le[3]||(le[3]=he=>z("primary"))},[le[45]||(le[45]=createBaseVNode("span",{class:"plus-icon"},"+",-1)),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.addPrimaryCategory")),1)]),createBaseVNode("div",_hoisted_23$8,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":le[4]||(le[4]=he=>N.value=he),"true-value":1,"false-value":0},null,512),[[vModelCheckbox,N.value]]),createTextVNode(" "+toDisplayString$1(N.value==1?unref(t)("tagManager.exitEditMode"):unref(t)("tagManager.editGroupMode")),1)])])])]),n.value?(openBlock(),createElementBlock("div",_hoisted_24$8,[createBaseVNode("div",_hoisted_25$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.value,(he,Ce)=>{var je,qe,De;return openBlock(),createElementBlock("div",{key:"TabsSw-"+Ce,class:normalizeClass(["tab-item",{active:((je=s.value)==null?void 0:je.name)===he.name}]),style:normalizeStyle({backgroundColor:((qe=s.value)==null?void 0:qe.name)===he.name?"var(--primary-color)":he.color,color:((De=s.value)==null?void 0:De.name)===he.name?"#ffffff":xe(he.color),width:O.value.groupTab.width==="fit-content"?"fit-content":O.value.groupTab.width+"px",height:O.value.groupTab.height+"px",fontSize:O.value.groupTab.fontSize+"px"}),onClick:ze=>B(he),onMouseenter:ze=>Dt(Ce),onMouseleave:ze=>Ht()},[createBaseVNode("span",_hoisted_27$8,toDisplayString$1(he.name),1),$.value=="TabID-"+Ce?(openBlock(),createElementBlock("div",_hoisted_28$7,[createBaseVNode("button",{class:"action-btn move",onClick:withModifiers(ze=>mt(he,2),["stop"]),title:unref(t)("tagManager.moveGroup")},le[46]||(le[46]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"move-icon"},[createBaseVNode("path",{d:"M13 6v3h8V6h-8zm0 5v3h8v-3h-8zm-8 5v3h8v-3H5zm0-5v3h8v-3H5zm0-5v3h8V6H5z"})],-1)]),8,_hoisted_29$7),createBaseVNode("button",{class:"action-btn edit",onClick:withModifiers(ze=>L(he),["stop"]),title:unref(t)("tagManager.edit")},le[47]||(le[47]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"})],-1)]),8,_hoisted_30$7),createBaseVNode("button",{class:"action-btn delete",onClick:withModifiers(ze=>be(he),["stop"]),title:unref(t)("tagManager.delete")},le[48]||(le[48]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"})],-1)]),8,_hoisted_31$7),createBaseVNode("button",{class:"action-btn share",onClick:withModifiers(ze=>Tt(he),["stop"]),title:unref(t)("tagManager.share")},le[49]||(le[49]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"})],-1)]),8,_hoisted_32$7)])):createCommentVNode("",!0)],46,_hoisted_26$8)}),128)),n.value?(openBlock(),createElementBlock("button",{key:0,class:"add-tab",onClick:le[5]||(le[5]=he=>z("group"))},[le[50]||(le[50]=createBaseVNode("span",{class:"plus-icon"},"+",-1)),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.addGroup")),1)])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_33$7,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":le[6]||(le[6]=he=>w.value=he),"true-value":1,"false-value":0},null,512),[[vModelCheckbox,w.value]]),createTextVNode(" "+toDisplayString$1(w.value==1?unref(t)("tagManager.exitEditMode"):unref(t)("tagManager.editGroupMode")),1)])])])])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_34$7,[createBaseVNode("div",_hoisted_35$7,[createBaseVNode("div",_hoisted_36$7,toDisplayString$1(s.value?s.value.name:unref(t)("tagManager.selectCategory")),1),createBaseVNode("div",_hoisted_37$6,[createBaseVNode("button",{class:"add-btn",onClick:I,disabled:!s.value},[le[51]||(le[51]=createBaseVNode("span",{class:"plus-icon"},"+",-1)),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.addTag")),1)],8,_hoisted_38$6),q.value?(openBlock(),createElementBlock("button",{key:0,class:"share-selected-btn",onClick:Ct,disabled:!m.value.length},toDisplayString$1(unref(t)("tagManager.shareSelected")),9,_hoisted_39$6)):(openBlock(),createElementBlock("button",{key:1,class:"share-btn",onClick:ut,disabled:!s.value},toDisplayString$1(unref(t)("tagManager.batchShare")),9,_hoisted_40$6)),q.value?(openBlock(),createElementBlock("button",{key:2,class:"cancel-delete-btn",onClick:ht},toDisplayString$1(unref(t)("tagManager.cancelShare")),1)):createCommentVNode("",!0),V.value?(openBlock(),createElementBlock("button",{key:3,class:"delete-btn",onClick:Qe,disabled:!m.value.length},toDisplayString$1(unref(t)("tagManager.deleteSelected")),9,_hoisted_41$6)):(openBlock(),createElementBlock("button",{key:4,class:"delete-action-btn",onClick:Ft,disabled:!s.value},toDisplayString$1(unref(t)("tagManager.hasDeleteAction")),9,_hoisted_42$6)),V.value?(openBlock(),createElementBlock("button",{key:5,class:"cancel-delete-btn",onClick:it},toDisplayString$1(unref(t)("tagManager.cancelDelete")),1)):createCommentVNode("",!0)])]),s.value?(openBlock(),createElementBlock("div",_hoisted_43$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,he=>(openBlock(),createElementBlock("div",{key:"tag-grid-"+he.id_index,class:normalizeClass(P.value===he.id_index?"tag-wrapper highlight":"tag-wrapper")},[createBaseVNode("div",{class:"tag-content",onClick:Ce=>Ne(he)},[createBaseVNode("div",{class:"tag-main",style:normalizeStyle({backgroundColor:he.color||"transparent"})},[createTextVNode(toDisplayString$1(he.desc)+" ",1),createBaseVNode("div",_hoisted_45$5,[createBaseVNode("button",{class:"action-btn move",onClick:withModifiers(Ce=>ft(he),["stop"]),title:unref(t)("tagManager.moveTag")},le[52]||(le[52]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"move-icon"},[createBaseVNode("path",{d:"M13 6v3h8V6h-8zm0 5v3h8v-3h-8zm-8 5v3h8v-3H5zm0-5v3h8v-3H5zm0-5v3h8V6H5z"})],-1)]),8,_hoisted_46$4),createBaseVNode("button",{class:"action-btn edit",onClick:withModifiers(Ce=>X(he),["stop"]),title:unref(t)("tagManager.editTag")},le[53]||(le[53]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"edit-icon"},[createBaseVNode("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"})],-1)]),8,_hoisted_47$3),createBaseVNode("button",{class:"action-btn delete",onClick:withModifiers(Ce=>ye(he),["stop"]),title:unref(t)("tagManager.deleteTag")},le[54]||(le[54]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"delete-icon"},[createBaseVNode("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"})],-1)]),8,_hoisted_48$3)])],4),createBaseVNode("div",_hoisted_49$3,toDisplayString$1(he.text),1)],8,_hoisted_44$5),g.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":le[7]||(le[7]=Ce=>m.value=Ce),value:he,class:"tag-checkbox"},null,8,_hoisted_50$3)),[[vModelCheckbox,m.value]]):createCommentVNode("",!0)],2))),128))])):createCommentVNode("",!0)]),l.value?(openBlock(),createElementBlock("div",_hoisted_51$3,[createBaseVNode("div",{class:"weilin-tools-dialog-content",onMousedown:le[12]||(le[12]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_52$3,[createBaseVNode("h2",null,toDisplayString$1(x()),1),createBaseVNode("button",{class:"close-btn",onClick:S},"×")]),createBaseVNode("div",_hoisted_53$3,[d.value=="primary"?(openBlock(),createElementBlock("div",_hoisted_54$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.categoryName")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[8]||(le[8]=he=>A.value.name=he),placeholder:unref(t)("tagManager.categoryNamePlaceholder"),onKeyup:withKeys(K,["enter"])},null,40,_hoisted_55$2),[[vModelText,A.value.name]])])):createCommentVNode("",!0),d.value=="group"?(openBlock(),createElementBlock("div",_hoisted_56$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.groupName")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[9]||(le[9]=he=>D.value.name=he),placeholder:unref(t)("tagManager.groupNamePlaceholder"),onKeyup:withKeys(K,["enter"])},null,40,_hoisted_57$2),[[vModelText,D.value.name]])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_58$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),createBaseVNode("div",_hoisted_59$2,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:_.value})},null,4),createBaseVNode("div",_hoisted_60$2,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":le[10]||(le[10]=he=>k.value.hex=he),onInput:M,class:"color-input"},null,544),[[vModelText,k.value.hex]]),createBaseVNode("div",_hoisted_61$2,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[11]||(le[11]=he=>k.value.alpha=he),min:"0",max:"100",onInput:M,class:"alpha-slider"},null,544),[[vModelText,k.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_62$2,toDisplayString$1(k.value.alpha)+"%",1)])])])])]),createBaseVNode("div",_hoisted_63$2,[createBaseVNode("button",{class:"cancel-btn",onClick:S},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:K},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),c.value?(openBlock(),createElementBlock("div",_hoisted_64$2,[createBaseVNode("div",{class:"weilin-tools-dialog-content",onMousedown:le[17]||(le[17]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_65$2,[createBaseVNode("h2",null,toDisplayString$1(u.value?unref(t)("tagManager.editTag"):unref(t)("tagManager.addTag")),1),createBaseVNode("button",{class:"close-btn",onClick:pe},"×")]),createBaseVNode("div",_hoisted_66$2,[createBaseVNode("div",_hoisted_67$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.text")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[13]||(le[13]=he=>W.value.desc=he),placeholder:unref(t)("tagManager.textPlaceholder")},null,8,_hoisted_68$2),[[vModelText,W.value.desc]])]),createBaseVNode("div",_hoisted_69$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.description")),1),withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":le[14]||(le[14]=he=>W.value.text=he),placeholder:unref(t)("tagManager.descriptionPlaceholder"),rows:"4"}," ",8,_hoisted_70$2),[[vModelText,W.value.text]])]),createBaseVNode("div",_hoisted_71$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),createBaseVNode("div",_hoisted_72$2,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:_.value})},null,4),createBaseVNode("div",_hoisted_73$1,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":le[15]||(le[15]=he=>k.value.hex=he),onInput:M,class:"color-input"},null,544),[[vModelText,k.value.hex]]),createBaseVNode("div",_hoisted_74$1,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[16]||(le[16]=he=>k.value.alpha=he),min:"0",max:"100",onInput:M,class:"alpha-slider"},null,544),[[vModelText,k.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_75$1,toDisplayString$1(k.value.alpha)+"%",1)])])])])]),createBaseVNode("div",_hoisted_76$1,[createBaseVNode("button",{class:"cancel-btn",onClick:pe},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:ie},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),Be.value?(openBlock(),createElementBlock("div",_hoisted_77$1,[createBaseVNode("div",{class:"weilin-tools-dialog-content confirm-weilin-tools-dialog",onMousedown:le[18]||(le[18]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_78$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("common.confirmDelete")),1),createBaseVNode("button",{class:"close-btn",onClick:Ze},"×")]),createBaseVNode("div",_hoisted_79$1,[createBaseVNode("p",_hoisted_80$1,toDisplayString$1(We.value),1)]),createBaseVNode("div",_hoisted_81$1,[createBaseVNode("button",{class:"cancel-btn",onClick:Ze},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:Ae},toDisplayString$1(unref(t)("common.delete")),1)])],32)])):createCommentVNode("",!0),E.value?(openBlock(),createElementBlock("div",_hoisted_82$1,[createBaseVNode("div",_hoisted_83$1,[createBaseVNode("div",_hoisted_84$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("tagManager.moveTag")),1),createBaseVNode("button",{class:"close-btn",onClick:le[19]||(le[19]=he=>E.value=!1)},"×")]),createBaseVNode("div",_hoisted_85$1,[createBaseVNode("div",_hoisted_86$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.targetTag")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":le[20]||(le[20]=he=>R.value=he),class:"form-select"},[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,he=>(openBlock(),createElementBlock("option",{key:he.id_index,value:he.id_index},toDisplayString$1(he.desc+" --> "+he.text),9,_hoisted_87$1))),128))],512),[[vModelSelect,R.value]])]),createBaseVNode("div",_hoisted_88$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.movePosition")),1),createBaseVNode("div",_hoisted_89$1,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[21]||(le[21]=he=>F.value=he),value:"before"},null,512),[[vModelRadio,F.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveBefore")),1)]),createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[22]||(le[22]=he=>F.value=he),value:"after"},null,512),[[vModelRadio,F.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveAfter")),1)])])])]),createBaseVNode("div",_hoisted_90$1,[createBaseVNode("button",{class:"cancel-btn",onClick:le[23]||(le[23]=he=>E.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:xt},toDisplayString$1(unref(t)("common.confirm")),1)])])])):createCommentVNode("",!0),v.value?(openBlock(),createElementBlock("div",_hoisted_91$1,[createBaseVNode("div",_hoisted_92$1,[createBaseVNode("div",_hoisted_93$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("tagManager.moveGroup")),1),createBaseVNode("button",{class:"close-btn",onClick:le[24]||(le[24]=he=>v.value=!1)},"×")]),createBaseVNode("div",_hoisted_94$1,[createBaseVNode("div",_hoisted_95$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.targetGroup")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":le[25]||(le[25]=he=>oe.value=he),class:"form-select"},[(openBlock(!0),createElementBlock(Fragment,null,renderList(gt.value,(he,Ce)=>(openBlock(),createElementBlock("option",{key:"group_move_id"+Ce,value:he.id_index},toDisplayString$1(he.name),9,_hoisted_96$1))),128))],512),[[vModelSelect,oe.value]])]),createBaseVNode("div",_hoisted_97$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.movePosition")),1),createBaseVNode("div",_hoisted_98$1,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[26]||(le[26]=he=>j.value=he),value:"before"},null,512),[[vModelRadio,j.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveGroupBefore")),1)]),createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[27]||(le[27]=he=>j.value=he),value:"after"},null,512),[[vModelRadio,j.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveGroupAfter")),1)])])])]),createBaseVNode("div",_hoisted_99$1,[createBaseVNode("button",{class:"cancel-btn",onClick:le[28]||(le[28]=he=>v.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:Xe},toDisplayString$1(unref(t)("common.confirm")),1)])])])):createCommentVNode("",!0),Q.value?(openBlock(),createElementBlock("div",_hoisted_100$1,[createBaseVNode("div",{class:"weilin-tools-dialog-content tab-size-weilin-tools-dialog",onMousedown:le[39]||(le[39]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_101$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("tagManager.tabSizeConfig")),1),createBaseVNode("button",{class:"close-btn",onClick:pt},"×")]),createBaseVNode("div",_hoisted_102$1,[createBaseVNode("div",_hoisted_103$1,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("tagManager.primaryTabConfig")),1),createBaseVNode("div",_hoisted_104$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabWidth")),1),createBaseVNode("div",_hoisted_105$1,[createBaseVNode("label",_hoisted_106$1,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[29]||(le[29]=he=>O.value.primaryTab.width=he),value:"fit-content"},null,512),[[vModelRadio,O.value.primaryTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.fitContent")),1)]),createBaseVNode("label",_hoisted_107$1,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[30]||(le[30]=he=>O.value.primaryTab.width=he),value:"custom"},null,512),[[vModelRadio,O.value.primaryTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.customWidth")),1)]),O.value.primaryTab.width!=="fit-content"?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"number","onUpdate:modelValue":le[31]||(le[31]=he=>O.value.primaryTab.width=he),min:"50",max:"300",class:"number-input"},null,512)),[[vModelText,O.value.primaryTab.width,void 0,{number:!0}]]):createCommentVNode("",!0)])]),createBaseVNode("div",_hoisted_108$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabHeight"))+" ("+toDisplayString$1(O.value.primaryTab.height)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[32]||(le[32]=he=>O.value.primaryTab.height=he),min:"20",max:"60",class:"range-input"},null,512),[[vModelText,O.value.primaryTab.height,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_109$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.fontSize"))+" ("+toDisplayString$1(O.value.primaryTab.fontSize)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[33]||(le[33]=he=>O.value.primaryTab.fontSize=he),min:"8",max:"20",class:"range-input"},null,512),[[vModelText,O.value.primaryTab.fontSize,void 0,{number:!0}]])])]),createBaseVNode("div",_hoisted_110$1,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("tagManager.groupTabConfig")),1),createBaseVNode("div",_hoisted_111$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabWidth")),1),createBaseVNode("div",_hoisted_112$1,[createBaseVNode("label",_hoisted_113,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[34]||(le[34]=he=>O.value.groupTab.width=he),value:"fit-content"},null,512),[[vModelRadio,O.value.groupTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.fitContent")),1)]),createBaseVNode("label",_hoisted_114,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[35]||(le[35]=he=>O.value.groupTab.width=he),value:"custom"},null,512),[[vModelRadio,O.value.groupTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.customWidth")),1)]),O.value.groupTab.width!=="fit-content"?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"number","onUpdate:modelValue":le[36]||(le[36]=he=>O.value.groupTab.width=he),min:"50",max:"300",class:"number-input"},null,512)),[[vModelText,O.value.groupTab.width,void 0,{number:!0}]]):createCommentVNode("",!0)])]),createBaseVNode("div",_hoisted_115,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabHeight"))+" ("+toDisplayString$1(O.value.groupTab.height)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[37]||(le[37]=he=>O.value.groupTab.height=he),min:"20",max:"60",class:"range-input"},null,512),[[vModelText,O.value.groupTab.height,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_116,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.fontSize"))+" ("+toDisplayString$1(O.value.groupTab.fontSize)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[38]||(le[38]=he=>O.value.groupTab.fontSize=he),min:"8",max:"20",class:"range-input"},null,512),[[vModelText,O.value.groupTab.fontSize,void 0,{number:!0}]])])])]),createBaseVNode("div",_hoisted_117,[createBaseVNode("button",{class:"reset-btn",onClick:Wt},toDisplayString$1(unref(t)("tagManager.resetDefault")),1),createBaseVNode("button",{class:"cancel-btn",onClick:pt},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:zt},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),createVNode(ImportTagDialog,{ref_key:"importTagDialogItem",ref:bt},null,512)]))}},TagManager=_export_sfc(_sfc_main$k,[["__scopeId","data-v-c9c6726d"]]),baseZIndex=100,activeWindow=ref(""),windowZIndexes=ref({}),windowManager={setActiveWindow(e){activeWindow.value!==e&&(activeWindow.value=e,Object.keys(windowZIndexes.value).forEach(t=>{windowZIndexes.value[t]=baseZIndex}),windowZIndexes.value[e]=baseZIndex+10)},getZIndex(e){return windowZIndexes.value[e]||(windowZIndexes.value[e]=baseZIndex),windowZIndexes.value[e]},registerWindow(e){windowZIndexes.value[e]||(windowZIndexes.value[e]=baseZIndex)},unregisterWindow(e){delete windowZIndexes.value[e]}},loraApi={getLoraList:async e=>await request({url:"/get_lora_list",method:"get",params:e}),getAllLoraList:async e=>await request({url:"/get_lora_load_all",method:"get",params:e}),getAllLoraStatus:async e=>await request({url:"/get_lora_load_status",method:"get",params:e}),getLoraDetail:async e=>await request({url:"/lorainfo/api/loras/info",method:"get",params:e}),getLoraRefresh:async e=>await request({url:"/lorainfo/api/loras/info/refresh",method:"get",params:e}),postUplaodImg:async(e,t,a)=>{const n=new FormData;return n.append("image",e),n.append("path",t),n.append("fileName",a),await request({url:"/lorainfo/api/loras/set/img",method:"post",data:n,headers:{"Content-Type":"multipart/form-data"}})},postLoraSave:async(e,t)=>{const a=new FormData;return a.append("json",JSON.stringify(t)),await request({url:"/lorainfo/api/loras/info?file="+e,method:"post",data:a,headers:{"Content-Type":"multipart/form-data"}})},postLoraDelet:async(e,t)=>await request({url:"/lorainfo/api/delete/loras/info/filed?file="+e,method:"post",data:{json:t}}),getLoraFolderList:async()=>await request({url:"/get_lora_folder_list",method:"post"}),getLoraRangeList:async e=>await request({url:"/get_lora_list_by_range",method:"post",data:{range:e}}),searchLoraGetFolderList:async e=>await request({url:"/get_lora_list_by_search",method:"post",data:{search:e}})};function _typeof(e){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(e)}var REG_LINK$1=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,script$a={name:"JsonString",props:{jsonValue:{type:String,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var t=this.jsonValue,a=REG_LINK$1.test(t),n;return this.expand?(n={class:{"jv-item":!0,"jv-string":!0},ref:"itemRef"},a?(t='').concat(t,""),n.innerHTML='"'.concat(t.toString(),'"')):n.innerText='"'.concat(t.toString(),'"')):n={class:{"jv-ellipsis":!0},onClick:this.toggle,innerText:"..."},h("span",{},[this.canExtend&&h("span",{class:{"jv-toggle":!0,open:this.expand},onClick:this.toggle}),h("span",{class:{"jv-holder-node":!0},ref:"holderRef"}),h("span",n)])}};script$a.__file="src/Components/types/json-string.vue";var script$9={name:"JsonUndefined",functional:!0,props:{jsonValue:{type:Object,default:null}},render:function(){return h("span",{class:{"jv-item":!0,"jv-undefined":!0},innerText:this.jsonValue===null?"null":"undefined"})}};script$9.__file="src/Components/types/json-undefined.vue";var script$8={name:"JsonNumber",functional:!0,props:{jsonValue:{type:Number,required:!0}},render:function(){var t=Number.isInteger(this.jsonValue);return h("span",{class:{"jv-item":!0,"jv-number":!0,"jv-number-integer":t,"jv-number-float":!t},innerText:this.jsonValue.toString()})}};script$8.__file="src/Components/types/json-number.vue";var script$7={name:"JsonBoolean",functional:!0,props:{jsonValue:Boolean},render:function(){return h("span",{class:{"jv-item":!0,"jv-boolean":!0},innerText:this.jsonValue.toString()})}};script$7.__file="src/Components/types/json-boolean.vue";var script$6={name:"JsonObject",props:{jsonValue:{type:Object,required:!0},keyName:{type:String,default:""},depth:{type:Number,default:0},expand:Boolean,sort:Boolean,previewMode:Boolean},data:function(){return{value:{}}},computed:{ordered:function(){var t=this;if(!this.sort)return this.value;var a={};return Object.keys(this.value).sort().forEach(function(n){a[n]=t.value[n]}),a}},watch:{jsonValue:function(t){this.setValue(t)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(t){var a=this;setTimeout(function(){a.value=t},0)},toggle:function(){this.$emit("update:expand",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event("resized"))}catch{var t=document.createEvent("Event");t.initEvent("resized",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var t=[];if(!this.previewMode&&!this.keyName&&t.push(h("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),t.push(h("span",{class:{"jv-item":!0,"jv-object":!0},innerText:"{"})),this.expand){for(var a in this.ordered)if(this.ordered.hasOwnProperty(a)){var n=this.ordered[a];t.push(h(script$1,{key:a,style:{display:this.expand?void 0:"none"},sort:this.sort,keyName:a,depth:this.depth+1,value:n,previewMode:this.previewMode}))}}return!this.expand&&Object.keys(this.value).length&&t.push(h("span",{style:{display:this.expand?"none":void 0},class:{"jv-ellipsis":!0},onClick:this.toggle,title:"click to reveal object content (keys: ".concat(Object.keys(this.ordered).join(", "),")"),innerText:"..."})),t.push(h("span",{class:{"jv-item":!0,"jv-object":!0},innerText:"}"})),h("span",t)}};script$6.__file="src/Components/types/json-object.vue";var script$5={name:"JsonArray",props:{jsonValue:{type:Array,required:!0},keyName:{type:String,default:""},depth:{type:Number,default:0},sort:Boolean,expand:Boolean,previewMode:Boolean},data:function(){return{value:[]}},watch:{jsonValue:function(t){this.setValue(t)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(t){var a=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;n===0&&(this.value=[]),setTimeout(function(){t.length>n&&(a.value.push(t[n]),a.setValue(t,n+1))},0)},toggle:function(){this.$emit("update:expand",!this.expand);try{this.$el.dispatchEvent(new Event("resized"))}catch{var t=document.createEvent("Event");t.initEvent("resized",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var t=this,a=[];return!this.previewMode&&!this.keyName&&a.push(h("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),a.push(h("span",{class:{"jv-item":!0,"jv-array":!0},innerText:"["})),this.expand&&this.value.forEach(function(n,o){a.push(h(script$1,{key:o,style:{display:t.expand?void 0:"none"},sort:t.sort,depth:t.depth+1,value:n,previewMode:t.previewMode}))}),!this.expand&&this.value.length&&a.push(h("span",{style:{display:void 0},class:{"jv-ellipsis":!0},onClick:this.toggle,title:"click to reveal ".concat(this.value.length," hidden items"),innerText:"..."})),a.push(h("span",{class:{"jv-item":!0,"jv-array":!0},innerText:"]"})),h("span",a)}};script$5.__file="src/Components/types/json-array.vue";var script$4={name:"JsonFunction",functional:!0,props:{jsonValue:{type:Function,required:!0}},render:function(){return h("span",{class:{"jv-item":!0,"jv-function":!0},attrs:{title:this.jsonValue.toString()},innerHTML:"<function>"})}};script$4.__file="src/Components/types/json-function.vue";var script$3={name:"JsonDate",inject:["timeformat"],functional:!0,props:{jsonValue:{type:Date,required:!0}},render:function(){var t=this.jsonValue,a=this.timeformat;return h("span",{class:{"jv-item":!0,"jv-string":!0},innerText:'"'.concat(a(t),'"')})}};script$3.__file="src/Components/types/json-date.vue";var REG_LINK=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,script$2={name:"JsonString",props:{jsonValue:{type:RegExp,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var t=this.jsonValue,a=REG_LINK.test(t),n;return this.expand?(n={class:{"jv-item":!0,"jv-string":!0},ref:"itemRef"},a?(t='').concat(t,""),n.innerHTML="".concat(t.toString())):n.innerText="".concat(t.toString())):n={class:{"jv-ellipsis":!0},onClick:this.toggle,innerText:"..."},h("span",{},[this.canExtend&&h("span",{class:{"jv-toggle":!0,open:this.expand},onClick:this.toggle}),h("span",{class:{"jv-holder-node":!0},ref:"holderRef"}),h("span",n)])}};script$2.__file="src/Components/types/json-regexp.vue";var script$1={name:"JsonBox",inject:["expandDepth","keyClick"],props:{value:{type:[Object,Array,String,Number,Boolean,Function,Date],default:null},keyName:{type:String,default:""},sort:Boolean,depth:{type:Number,default:0},previewMode:Boolean},data:function(){return{expand:!0}},mounted:function(){this.expand=this.previewMode||!(this.depth>=this.expandDepth)},methods:{toggle:function(){this.expand=!this.expand;try{this.$el.dispatchEvent(new Event("resized"))}catch{var t=document.createEvent("Event");t.initEvent("resized",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var t=this,a=[],n;this.value===null||this.value===void 0?n=script$9:Array.isArray(this.value)?n=script$5:Object.prototype.toString.call(this.value)==="[object Date]"?n=script$3:_typeof(this.value)==="object"?n=script$6:typeof this.value=="number"?n=script$8:typeof this.value=="string"?n=script$a:typeof this.value=="boolean"?n=script$7:typeof this.value=="function"&&(n=script$4),this.value.constructor===RegExp&&(n=script$2);var o=this.keyName&&this.value&&(Array.isArray(this.value)||_typeof(this.value)==="object"&&Object.prototype.toString.call(this.value)!=="[object Date]");return!this.previewMode&&o&&a.push(h("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),this.keyName&&a.push(h("span",{class:{"jv-key":!0},onClick:function(){t.keyClick(t.keyName)},innerText:"".concat(this.keyName,":")})),a.push(h(n,{class:{"jv-push":!0},jsonValue:this.value,keyName:this.keyName,sort:this.sort,depth:this.depth,expand:this.expand,previewMode:this.previewMode,"onUpdate:expand":function(s){t.expand=s}})),h("div",{class:{"jv-node":!0,"jv-key-node":!!this.keyName&&!o,toggle:!this.previewMode&&o}},a)}};script$1.__file="src/Components/json-box.vue";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs$1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var clipboard$2={exports:{}};(function(e,t){(function(n,o){e.exports=o()})(commonjsGlobal,function(){return function(){var a={686:function(r,s,l){l.d(s,{default:function(){return ae}});var c=l(279),f=l.n(c),u=l(370),d=l.n(u),m=l(817),g=l.n(m);function v(Y){try{return document.execCommand(Y)}catch{return!1}}var b=function(ne){var te=g()(ne);return v("cut"),te},$=b;function w(Y){var ne=document.documentElement.getAttribute("dir")==="rtl",te=document.createElement("textarea");te.style.fontSize="12pt",te.style.border="0",te.style.padding="0",te.style.margin="0",te.style.position="absolute",te.style[ne?"right":"left"]="-9999px";var ge=window.pageYOffset||document.documentElement.scrollTop;return te.style.top="".concat(ge,"px"),te.setAttribute("readonly",""),te.value=Y,te}var N=function(ne,te){var ge=w(ne);te.container.appendChild(ge);var re=g()(ge);return v("copy"),ge.remove(),re},P=function(ne){var te=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},ge="";return typeof ne=="string"?ge=N(ne,te):ne instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(ne==null?void 0:ne.type)?ge=N(ne.value,te):(ge=g()(ne),v("copy")),ge},y=P;function E(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?E=function(te){return typeof te}:E=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},E(Y)}var R=function(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},te=ne.action,ge=te===void 0?"copy":te,re=ne.container,B=ne.target,z=ne.text;if(ge!=="copy"&&ge!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(B!==void 0)if(B&&E(B)==="object"&&B.nodeType===1){if(ge==="copy"&&B.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(ge==="cut"&&(B.hasAttribute("readonly")||B.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(z)return y(z,{container:re});if(B)return ge==="cut"?$(B):y(B,{container:re})},F=R;function H(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(te){return typeof te}:H=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},H(Y)}function j(Y,ne){if(!(Y instanceof ne))throw new TypeError("Cannot call a class as a function")}function fe(Y,ne){for(var te=0;te"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf:function(te){return te.__proto__||Object.getPrototypeOf(te)},A(Y)}function D(Y,ne){var te="data-clipboard-".concat(Y);if(ne.hasAttribute(te))return ne.getAttribute(te)}var W=function(Y){V(te,Y);var ne=Q(te);function te(ge,re){var B;return j(this,te),B=ne.call(this),B.resolveOptions(re),B.listenClick(ge),B}return oe(te,[{key:"resolveOptions",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof re.action=="function"?re.action:this.defaultAction,this.target=typeof re.target=="function"?re.target:this.defaultTarget,this.text=typeof re.text=="function"?re.text:this.defaultText,this.container=H(re.container)==="object"?re.container:document.body}},{key:"listenClick",value:function(re){var B=this;this.listener=d()(re,"click",function(z){return B.onClick(z)})}},{key:"onClick",value:function(re){var B=re.delegateTarget||re.currentTarget,z=this.action(B)||"copy",Z=F({action:z,container:this.container,target:this.target(B),text:this.text(B)});this.emit(Z?"success":"error",{action:z,text:Z,trigger:B,clearSelection:function(){B&&B.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(re){return D("action",re)}},{key:"defaultTarget",value:function(re){var B=D("target",re);if(B)return document.querySelector(B)}},{key:"defaultText",value:function(re){return D("text",re)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(re){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return y(re,B)}},{key:"cut",value:function(re){return $(re)}},{key:"isSupported",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],B=typeof re=="string"?[re]:re,z=!!document.queryCommandSupported;return B.forEach(function(Z){z=z&&!!document.queryCommandSupported(Z)}),z}}]),te}(f()),ae=W},828:function(r){var s=9;if(typeof Element<"u"&&!Element.prototype.matches){var l=Element.prototype;l.matches=l.matchesSelector||l.mozMatchesSelector||l.msMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector}function c(f,u){for(;f&&f.nodeType!==s;){if(typeof f.matches=="function"&&f.matches(u))return f;f=f.parentNode}}r.exports=c},438:function(r,s,l){var c=l(828);function f(m,g,v,b,$){var w=d.apply(this,arguments);return m.addEventListener(v,w,$),{destroy:function(){m.removeEventListener(v,w,$)}}}function u(m,g,v,b,$){return typeof m.addEventListener=="function"?f.apply(null,arguments):typeof v=="function"?f.bind(null,document).apply(null,arguments):(typeof m=="string"&&(m=document.querySelectorAll(m)),Array.prototype.map.call(m,function(w){return f(w,g,v,b,$)}))}function d(m,g,v,b){return function($){$.delegateTarget=c($.target,g),$.delegateTarget&&b.call(m,$)}}r.exports=u},879:function(r,s){s.node=function(l){return l!==void 0&&l instanceof HTMLElement&&l.nodeType===1},s.nodeList=function(l){var c=Object.prototype.toString.call(l);return l!==void 0&&(c==="[object NodeList]"||c==="[object HTMLCollection]")&&"length"in l&&(l.length===0||s.node(l[0]))},s.string=function(l){return typeof l=="string"||l instanceof String},s.fn=function(l){var c=Object.prototype.toString.call(l);return c==="[object Function]"}},370:function(r,s,l){var c=l(879),f=l(438);function u(v,b,$){if(!v&&!b&&!$)throw new Error("Missing required arguments");if(!c.string(b))throw new TypeError("Second argument must be a String");if(!c.fn($))throw new TypeError("Third argument must be a Function");if(c.node(v))return d(v,b,$);if(c.nodeList(v))return m(v,b,$);if(c.string(v))return g(v,b,$);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function d(v,b,$){return v.addEventListener(b,$),{destroy:function(){v.removeEventListener(b,$)}}}function m(v,b,$){return Array.prototype.forEach.call(v,function(w){w.addEventListener(b,$)}),{destroy:function(){Array.prototype.forEach.call(v,function(w){w.removeEventListener(b,$)})}}}function g(v,b,$){return f(document.body,v,b,$)}r.exports=u},817:function(r){function s(l){var c;if(l.nodeName==="SELECT")l.focus(),c=l.value;else if(l.nodeName==="INPUT"||l.nodeName==="TEXTAREA"){var f=l.hasAttribute("readonly");f||l.setAttribute("readonly",""),l.select(),l.setSelectionRange(0,l.value.length),f||l.removeAttribute("readonly"),c=l.value}else{l.hasAttribute("contenteditable")&&l.focus();var u=window.getSelection(),d=document.createRange();d.selectNodeContents(l),u.removeAllRanges(),u.addRange(d),c=u.toString()}return c}r.exports=s},279:function(r){function s(){}s.prototype={on:function(l,c,f){var u=this.e||(this.e={});return(u[l]||(u[l]=[])).push({fn:c,ctx:f}),this},once:function(l,c,f){var u=this;function d(){u.off(l,d),c.apply(f,arguments)}return d._=c,this.on(l,d,f)},emit:function(l){var c=[].slice.call(arguments,1),f=((this.e||(this.e={}))[l]||[]).slice(),u=0,d=f.length;for(u;u=250?t.expandableCode=!0:t.expandableCode=!1)})},keyClick:function(t){this.$emit("onKeyClick",t)},onCopied:function(t){var a=this;this.copied||(this.copied=!0,setTimeout(function(){a.copied=!1},this.copyText.timeout),this.$emit("copied",t))},toggleExpandCode:function(){this.expandCode=!this.expandCode}}};function render(e,t,a,n,o,r){var s=resolveComponent("json-box");return openBlock(),createElementBlock("div",{class:normalizeClass(r.jvClass)},[a.copyable?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass("jv-tooltip ".concat(r.copyText.align||"right"))},[createBaseVNode("span",{ref:"clip",class:normalizeClass(["jv-button",{copied:o.copied}])},[renderSlot(e.$slots,"copy",{copied:o.copied},function(){return[createTextVNode(toDisplayString$1(o.copied?r.copyText.copiedText:r.copyText.copyText),1)]})],2)],2)):createCommentVNode("v-if",!0),createBaseVNode("div",{class:normalizeClass(["jv-code",{open:o.expandCode,boxed:a.boxed}])},[createVNode(s,{ref:"jsonBox",value:r.parseValue,sort:a.sort,"preview-mode":a.previewMode},null,8,["value","sort","preview-mode"])],2),o.expandableCode&&a.boxed?(openBlock(),createElementBlock("div",{key:1,class:"jv-more",onClick:t[0]||(t[0]=function(){return r.toggleExpandCode&&r.toggleExpandCode.apply(r,arguments)})},[createBaseVNode("span",{class:normalizeClass(["jv-toggle",{open:!!o.expandCode}])},null,2)])):createCommentVNode("v-if",!0)],2)}script.render=render,script.__file="src/Components/json-viewer.vue";const _hoisted_1$j={class:"lora-raw__content"},STORAGE_PREFIX$4="weilin_tools_",_sfc_main$j={__name:"lora_raw",emits:["close","update"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref({}),r=ref(!1),s={loraRaw:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},c=ref((()=>{try{const g=localStorage.getItem(`${STORAGE_PREFIX$4}loraRawState`);if(g){const v=JSON.parse(g),b={...s};return v.loraRaw&&(b.loraRaw={...s.loraRaw,...v.loraRaw}),b}}catch(g){console.error("Error loading window states:",g)}return{...s}})());watch(c,g=>{try{localStorage.setItem(`${STORAGE_PREFIX$4}loraRawState`,JSON.stringify(g))}catch(v){console.error("Error saving window states:",v)}},{deep:!0}),onMounted(()=>{windowManager.registerWindow("loraRaw")}),onUnmounted(()=>{windowManager.unregisterWindow("loraRaw")});const f=g=>{r.value=!1},u=(g,v)=>{c.value[g]&&(c.value[g].position={...v})},d=(g,v)=>{c.value[g]&&(c.value[g].size={...v})};return t({open:g=>{r.value=!0,windowManager.setActiveWindow("loraRaw"),o.value=g}}),(g,v)=>r.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("lora.rawTitle"),position:c.value.loraRaw.position,size:c.value.loraRaw.size,"z-index":unref(windowManager).getZIndex("loraRaw"),"onUpdate:position":v[0]||(v[0]=b=>u("loraRaw",b)),"onUpdate:size":v[1]||(v[1]=b=>d("loraRaw",b)),onActive:v[2]||(v[2]=b=>unref(windowManager).setActiveWindow("loraRaw")),onClose:v[3]||(v[3]=b=>f())},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1$j,[createVNode(unref(script),{value:o.value,copyable:"",sort:"",theme:"dark"},null,8,["value"])])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0)}},loraRaw=_export_sfc(_sfc_main$j,[["__scopeId","data-v-378f8ede"]]),_hoisted_1$i={key:0,class:"lora-detail__loading"},_hoisted_2$h={class:"lora-detail__body"},_hoisted_3$h={class:"lora-detail__tags"},_hoisted_4$g=["title"],_hoisted_5$f=["title"],_hoisted_6$f={class:"lora-detail__table"},_hoisted_7$f={class:"label"},_hoisted_8$f={colspan:"2"},_hoisted_9$f={colspan:"3"},_hoisted_10$e={class:"label"},_hoisted_11$e={colspan:"2",class:"hash"},_hoisted_12$e={class:"label"},_hoisted_13$c={colspan:"2"},_hoisted_14$a=["href"],_hoisted_15$a={key:1,class:"not-found"},_hoisted_16$a=["title"],_hoisted_17$a={class:"label"},_hoisted_18$7=["title"],_hoisted_19$7={key:1,class:"text"},_hoisted_20$7={class:"actions"},_hoisted_21$7={class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},_hoisted_22$7={key:0,d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},_hoisted_23$7={key:1,d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},_hoisted_24$7={class:"label"},_hoisted_25$7={colspan:"2"},_hoisted_26$7={class:"label"},_hoisted_27$7={colspan:"2"},_hoisted_28$6={class:"label"},_hoisted_29$6=["title"],_hoisted_30$6=["onUpdate:modelValue","type","onKeyup"],_hoisted_31$6={key:1,class:"text"},_hoisted_32$6={class:"actions"},_hoisted_33$6=["onClick","title"],_hoisted_34$6={class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},_hoisted_35$6={key:0,d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},_hoisted_36$6={key:1,d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},_hoisted_37$5={class:"label"},_hoisted_38$5=["onUpdate:modelValue"],_hoisted_39$5={key:1},_hoisted_40$5=["onUpdate:modelValue","type","onKeyup"],_hoisted_41$5={key:1,class:"text"},_hoisted_42$5={class:"actions"},_hoisted_43$5=["onClick","title"],_hoisted_44$4={class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},_hoisted_45$4={key:0,d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},_hoisted_46$3={key:1,d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},_hoisted_47$2=["onClick","title"],_hoisted_48$2={class:"field-management"},_hoisted_49$2=["title"],_hoisted_50$2={key:0},_hoisted_51$2={class:"label"},_hoisted_52$2=["title"],_hoisted_53$2={key:0,class:"word-selection"},_hoisted_54$1={colspan:"2"},_hoisted_55$1={class:"word-list"},_hoisted_56$1=["onClick"],_hoisted_57$1={key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},_hoisted_58$1={key:1},_hoisted_59$1={key:0,class:"lora-detail__images"},_hoisted_60$1={class:"image-wrapper"},_hoisted_61$1=["onClick"],_hoisted_62$1=["src"],_hoisted_63$1={class:"image-info"},_hoisted_64$1={key:0,class:"info-item"},_hoisted_65$1=["href"],_hoisted_66$1={key:1,class:"info-item"},_hoisted_67$1={key:2,class:"info-item"},_hoisted_68$1={key:3,class:"info-item"},_hoisted_69$1={key:4,class:"info-item"},_hoisted_70$1={key:5,class:"info-item"},_hoisted_71$1={key:6,class:"info-item"},_hoisted_72$1={key:7,class:"info-item"},STORAGE_PREFIX$3="weilin_tools_",_sfc_main$i={__name:"lora_detail",emits:["close","update"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref({}),s=ref(!1),l=ref(),c=ref({}),f={loraDetail:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},d=ref((()=>{try{const B=localStorage.getItem(`${STORAGE_PREFIX$3}loraDetailState`);if(B){const z=JSON.parse(B),Z={...f};return z.loraDetail&&(Z.loraDetail={...f.loraDetail,...z.loraDetail}),Z}}catch(B){console.error("Error loading window states:",B)}return{...f}})());watch(d,B=>{try{localStorage.setItem(`${STORAGE_PREFIX$3}loraDetailState`,JSON.stringify(B))}catch(z){console.error("Error saving window states:",z)}},{deep:!0}),onMounted(()=>{windowManager.registerWindow("loraDetail")}),onUnmounted(()=>{windowManager.unregisterWindow("loraDetail")});const m=B=>{s.value=!1},g=(B,z)=>{d.value[B]&&(d.value[B].position={...z})},v=(B,z)=>{d.value[B]&&(d.value[B].size={...z})};t({open:B=>{s.value=!0,windowManager.setActiveWindow("loraDetail"),o.value=!0,r.value=B,nextTick(()=>{j()})}});const $=ref(""),w=ref(),N=B=>{w.value.open(B)},P=ref({}),y=ref({}),E=ref([]),R=[{key:"strengthMin",label:n("lora.strengthMin"),tip:n("lora.strengthMinTip"),type:"number"},{key:"strengthMax",label:n("lora.strengthMax"),tip:n("lora.strengthMaxTip"),type:"number"},{key:"strWeight",label:n("lora.strWeight"),tip:n("lora.strWeightTip"),type:"number"},{key:"loraWorks",label:n("lora.promptWords"),tip:n("lora.promptWordsTip")}],F=()=>{const B=`custom_${Date.now()}`;r.value.user_diy_fileds||(r.value.user_diy_fileds={}),c.value[B]={label:"新字段",type:"text"},r.value.user_diy_fileds[B]={label:"新字段",value:""},y.value[B]="",A(B)},H=async B=>{var z,Z;delete c.value[B],delete y.value[B],(Z=(z=r.value)==null?void 0:z.user_diy_fileds)!=null&&Z[B]&&delete r.value.user_diy_fileds[B],await nextTick(async()=>{await ae(B)})},j=()=>{$.value=r.value.name,r.value={},E.value=[],y.value={name:!1,nameValue:"",min:!1,minValue:"",max:!1,maxValue:"",notes:!1,notesValue:"",loraWorks:!1,loraWorksValue:""},loraApi.getLoraDetail({file:$.value,refresh:!1,light:!1}).then(B=>{r.value=B.data,nextTick(function(){var z,Z,L,K,x,S;r.value.name=r.value.name||((Z=(z=r.value.raw)===null||z===void 0?void 0:z.metadata)===null||Z===void 0?void 0:Z.ss_output_name===void 0?Z["modelspec.title"]:Z.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(L=r.value.strengthMin)!==null&&L!==void 0?L:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(K=r.value.strengthMax)!==null&&K!==void 0?K:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(x=r.value.userNote)!==null&&x!==void 0?x:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(S=r.value.loraWorks)!==null&&S!==void 0?S:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1})}).catch(B=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},fe=B=>{let Z=new URL(B).pathname.split("/").pop();return Z=Z.split("?")[0],decodeURIComponent(Z)},oe=async B=>{try{const z=await fetch(B),Z=fe(B),L=await z.blob();loraApi.postUplaodImg(L,r.value.file,Z).then(K=>{message$1({type:"success",str:"message.saveSuccess"})}).catch(K=>{message$1({type:"warn",str:"message.unknownError"})})}catch{message$1({type:"warn",str:"message.unknownError"})}},V=computed(()=>{var B;return(B=r.value.links)==null?void 0:B.find(z=>z.includes("civitai.com/models"))}),q=computed(()=>{var B,z;return((z=(B=r.value.raw)==null?void 0:B.civitai)==null?void 0:z.error)==="Model not found"}),Q=computed(()=>r.value.trainedWords||[]),O=async()=>{var z;const B=((z=l.value)==null?void 0:z.scrollTop)||0;o.value=!0,loraApi.getLoraRefresh({file:$.value}).then(Z=>{r.value=Z.data,nextTick(function(){var L,K,x,S,I,X;r.value.name=r.value.name||((K=(L=r.value.raw)===null||L===void 0?void 0:L.metadata)===null||K===void 0?void 0:K.ss_output_name===void 0?K["modelspec.title"]:K.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(x=r.value.strengthMin)!==null&&x!==void 0?x:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(S=r.value.strengthMax)!==null&&S!==void 0?S:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(I=r.value.userNote)!==null&&I!==void 0?I:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(X=r.value.loraWorks)!==null&&X!==void 0?X:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1}),nextTick(function(){o.value=!1}),l.value&&(l.value.scrollTop=B),message$1({type:"success",str:"message.dataLoaded"})}).catch(Z=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},G=B=>{P.value[B]?A(B):ee(B)},ee=B=>{var z,Z;P.value[B]=!0,B in c.value?y.value[B]=((Z=(z=r.value.user_diy_fileds)==null?void 0:z[B])==null?void 0:Z.value)||"":y.value[B]=r.value[B],nextTick(()=>{B==="name"&&nameInput.value&&nameInput.value.focus()})},A=B=>{B in c.value?(r.value.user_diy_fileds||(r.value.user_diy_fileds={}),r.value.user_diy_fileds[B]={label:c.value[B].label,value:y.value[B]}):r.value[B]=y.value[B],W(r.value),P.value[B]=!1},D=B=>{P.value[B]=!1,y.value[B]=r.value[B]},W=B=>{var Z;const z=((Z=l.value)==null?void 0:Z.scrollTop)||0;o.value=!0,loraApi.postLoraSave($.value,B).then(L=>{r.value=L.data,nextTick(function(){var K,x,S,I,X,ie;r.value.name=r.value.name||((x=(K=r.value.raw)===null||K===void 0?void 0:K.metadata)===null||x===void 0?void 0:x.ss_output_name===void 0?x["modelspec.title"]:x.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(S=r.value.strengthMin)!==null&&S!==void 0?S:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(I=r.value.strengthMax)!==null&&I!==void 0?I:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(X=r.value.userNote)!==null&&X!==void 0?X:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(ie=r.value.loraWorks)!==null&&ie!==void 0?ie:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1,nextTick(function(){l.value&&(l.value.scrollTop=z)})}),message$1({type:"success",str:"message.saveSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},ae=async B=>{var Z;const z=((Z=l.value)==null?void 0:Z.scrollTop)||0;o.value=!0,await loraApi.postLoraDelet($.value,B).then(L=>{r.value=L.data,nextTick(function(){var K,x,S,I,X,ie;r.value.name=r.value.name||((x=(K=r.value.raw)===null||K===void 0?void 0:K.metadata)===null||x===void 0?void 0:x.ss_output_name===void 0?x["modelspec.title"]:x.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(S=r.value.strengthMin)!==null&&S!==void 0?S:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(I=r.value.strengthMax)!==null&&I!==void 0?I:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(X=r.value.userNote)!==null&&X!==void 0?X:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(ie=r.value.loraWorks)!==null&&ie!==void 0?ie:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1,nextTick(function(){l.value&&(l.value.scrollTop=z)})}),message$1({type:"success",str:"message.deleteSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},Y=B=>{const z=E.value.indexOf(B);z===-1?E.value.push(B):E.value.splice(z,1)},ne=B=>E.value.includes(B),te=async()=>{E.value.length&&navigator.clipboard.writeText(E.value).then(B=>{message$1({type:"success",str:"message.copySuccess"})},B=>{message$1({type:"warn",str:"message.copyFailed"})})};ref(!1),ref(!1),computed(()=>o.value?n("common.loading"):n("common.ready"));const ge=ref(!0),re=()=>{ge.value=!ge.value};return(B,z)=>(openBlock(),createElementBlock(Fragment,null,[s.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("lora.title"),position:d.value.loraDetail.position,size:d.value.loraDetail.size,"z-index":unref(windowManager).getZIndex("loraDetail"),"onUpdate:position":z[5]||(z[5]=Z=>g("loraDetail",Z)),"onUpdate:size":z[6]||(z[6]=Z=>v("loraDetail",Z)),onActive:z[7]||(z[7]=Z=>unref(windowManager).setActiveWindow("loraDetail")),onClose:z[8]||(z[8]=Z=>m())},{default:withCtx(()=>{var Z;return[createBaseVNode("div",{class:"lora-detail__content",ref_key:"loraContent",ref:l},[o.value?(openBlock(),createElementBlock("div",_hoisted_1$i,z[9]||(z[9]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24",class:"is-rotating"},[createBaseVNode("path",{d:"M12 4V2C6.48 2 2 6.48 2 12H4C4 7.58 7.58 4 12 4Z"})],-1)]))):createCommentVNode("",!0),createBaseVNode("div",_hoisted_2$h,[z[24]||(z[24]=createBaseVNode("div",{class:"lora-detail__title"},"Lora 信息",-1)),createBaseVNode("ul",_hoisted_3$h,[r.value.type?(openBlock(),createElementBlock("li",{key:0,class:normalizeClass(["lora-detail__tag",`-type-${r.value.type.toLowerCase()}`]),title:unref(n)("lora.type")},toDisplayString$1(r.value.type),11,_hoisted_4$g)):createCommentVNode("",!0),r.value.baseModel?(openBlock(),createElementBlock("li",{key:1,class:normalizeClass(["lora-detail__tag",`-basemodel-${r.value.baseModel.toLowerCase()}`]),title:unref(n)("lora.baseModel")},toDisplayString$1(r.value.baseModel),11,_hoisted_5$f)):createCommentVNode("",!0)]),createBaseVNode("table",_hoisted_6$f,[createBaseVNode("tbody",null,[createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_7$f,toDisplayString$1(unref(n)("lora.file")),1),createBaseVNode("td",_hoisted_8$f,toDisplayString$1(r.value.file),1),createBaseVNode("td",_hoisted_9$f,[createBaseVNode("button",{class:"fetch-btn",onClick:z[0]||(z[0]=L=>N(r.value.raw.metadata))},toDisplayString$1(unref(n)("lora.seeLoraRaw")),1)])]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_10$e,toDisplayString$1(unref(n)("lora.hash")),1),createBaseVNode("td",_hoisted_11$e,toDisplayString$1(r.value.sha256),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_12$e,toDisplayString$1(unref(n)("lora.civitai")),1),createBaseVNode("td",_hoisted_13$c,[V.value?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("a",{href:V.value,target:"_blank",class:"civitai-link"},[z[10]||(z[10]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(n)("lora.viewOnCivitai")),1)],8,_hoisted_14$a),createBaseVNode("button",{style:{"margin-left":"10px"},class:"refresh-btn",onClick:O},toDisplayString$1(unref(n)("lora.getCivitData")),1)],64)):q.value?(openBlock(),createElementBlock("div",_hoisted_15$a,[createBaseVNode("i",null,toDisplayString$1(unref(n)("lora.modelNotFound")),1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.modelNotFoundTip")},z[11]||(z[11]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_16$a))])):(openBlock(),createElementBlock("button",{key:2,class:"fetch-btn",onClick:O},toDisplayString$1(unref(n)("lora.fetchFromCivitai")),1))])]),createBaseVNode("tr",{class:normalizeClass({"is-editing":P.value.name})},[createBaseVNode("td",_hoisted_17$a,[createTextVNode(toDisplayString$1(unref(n)("lora.name"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.nameTip")},z[12]||(z[12]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_18$7))]),createBaseVNode("td",null,[P.value.name?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":z[1]||(z[1]=L=>y.value.name=L),type:"text",onKeyup:[z[2]||(z[2]=withKeys(L=>A("name"),["enter"])),z[3]||(z[3]=withKeys(L=>D("name"),["esc"]))],ref:"nameInput"},null,544)),[[vModelText,y.value.name]]):(openBlock(),createElementBlock("span",_hoisted_19$7,toDisplayString$1(r.value.name),1))]),createBaseVNode("td",_hoisted_20$7,[createBaseVNode("button",{class:"edit-btn",onClick:z[4]||(z[4]=L=>G("name"))},[(openBlock(),createElementBlock("svg",_hoisted_21$7,[P.value.name?(openBlock(),createElementBlock("path",_hoisted_22$7)):(openBlock(),createElementBlock("path",_hoisted_23$7))]))])])],2),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_24$7,toDisplayString$1(unref(n)("lora.baseModel")),1),createBaseVNode("td",_hoisted_25$7,toDisplayString$1(!r.value.baseModelFile&&!r.value.baseModelFile?"":(r.value.baseModel||"")+(r.value.baseModelFile?` - (${r.value.baseModelFile})`:"")),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_26$7,toDisplayString$1(unref(n)("lora.skipClip")),1),createBaseVNode("td",_hoisted_27$7,toDisplayString$1((B._t=(B._s=r.value.raw)===null||B._s===void 0?void 0:B._s.metadata)===null||B._t===void 0?void 0:B._t.ss_clip_skip),1)]),(openBlock(),createElementBlock(Fragment,null,renderList(R,L=>createBaseVNode("tr",{key:L.key,class:normalizeClass({"is-editing":P.value[L.key]})},[createBaseVNode("td",_hoisted_28$6,[createTextVNode(toDisplayString$1(L.label)+" ",1),L.tip?(openBlock(),createElementBlock("svg",{key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:L.tip},z[13]||(z[13]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_29$6)):createCommentVNode("",!0)]),createBaseVNode("td",null,[P.value[L.key]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":K=>y.value[L.key]=K,type:L.type||"text",onKeyup:[withKeys(K=>A(L.key),["enter"]),withKeys(K=>D(L.key),["esc"])]},null,40,_hoisted_30$6)),[[vModelDynamic,y.value[L.key]]]):(openBlock(),createElementBlock("span",_hoisted_31$6,toDisplayString$1(r.value[L.key]),1))]),createBaseVNode("td",_hoisted_32$6,[createBaseVNode("button",{class:"edit-btn",onClick:K=>G(L.key),title:unref(n)("promptBox.settings.edit")},[(openBlock(),createElementBlock("svg",_hoisted_34$6,[P.value[L.key]?(openBlock(),createElementBlock("path",_hoisted_35$6)):(openBlock(),createElementBlock("path",_hoisted_36$6))]))],8,_hoisted_33$6)])],2)),64)),(openBlock(!0),createElementBlock(Fragment,null,renderList(c.value,(L,K)=>{var x;return openBlock(),createElementBlock("tr",{key:K,class:normalizeClass({"is-editing":P.value[K]})},[createBaseVNode("td",_hoisted_37$5,[P.value[K]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":S=>L.label=S,type:"text"},null,8,_hoisted_38$5)),[[vModelText,L.label]]):(openBlock(),createElementBlock("span",_hoisted_39$5,toDisplayString$1(L.label),1))]),createBaseVNode("td",null,[P.value[K]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":S=>y.value[K]=S,type:L.type||"text",onKeyup:[withKeys(S=>A(K),["enter"]),withKeys(S=>D(K),["esc"])]},null,40,_hoisted_40$5)),[[vModelDynamic,y.value[K]]]):(openBlock(),createElementBlock("span",_hoisted_41$5,toDisplayString$1(r.value.user_diy_fileds?(x=r.value.user_diy_fileds[K])==null?void 0:x.value:""),1))]),createBaseVNode("td",_hoisted_42$5,[createBaseVNode("button",{class:"edit-btn",onClick:S=>G(K),title:unref(n)("promptBox.settings.edit")},[(openBlock(),createElementBlock("svg",_hoisted_44$4,[P.value[K]?(openBlock(),createElementBlock("path",_hoisted_45$4)):(openBlock(),createElementBlock("path",_hoisted_46$3))]))],8,_hoisted_43$5),createBaseVNode("button",{style:{"margin-left":"5px",color:"#f87171"},onClick:S=>H(K),class:"edit-btn",title:unref(n)("promptBox.settings.delete")},toDisplayString$1(unref(n)("promptBox.settings.delete")),9,_hoisted_47$2)])],2)}),128)),createBaseVNode("div",_hoisted_48$2,[createBaseVNode("button",{onClick:F,class:"add-btn",title:unref(n)("lora.addDiyFiled")},toDisplayString$1(unref(n)("lora.addDiyFiled")),9,_hoisted_49$2)]),Q.value.length?(openBlock(),createElementBlock("tr",_hoisted_50$2,[createBaseVNode("td",_hoisted_51$2,[createTextVNode(toDisplayString$1(unref(n)("lora.trainedWords"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.trainedWordsTip")},z[14]||(z[14]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_52$2)),E.value.length?(openBlock(),createElementBlock("div",_hoisted_53$2,[createTextVNode(toDisplayString$1(unref(n)("lora.selectedWords",{count:E.value.length}))+" ",1),createBaseVNode("button",{class:"copy-btn",onClick:te},toDisplayString$1(unref(n)("common.copy")),1)])):createCommentVNode("",!0)]),createBaseVNode("td",_hoisted_54$1,[createBaseVNode("ul",_hoisted_55$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(ge.value?Q.value.slice(0,10):Q.value,(L,K)=>(openBlock(),createElementBlock("li",{key:"words-"+K,class:normalizeClass(["word-item",{"is-selected":ne(L.word),"is-hidden":ge.value&&K>=10}]),onClick:x=>Y(L.word)},[createBaseVNode("span",null,toDisplayString$1(L.word),1),L.civitai?(openBlock(),createElementBlock("svg",_hoisted_57$1,z[15]||(z[15]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"},null,-1)]))):createCommentVNode("",!0),L.count!=null?(openBlock(),createElementBlock("small",_hoisted_58$1,toDisplayString$1(L.count),1)):createCommentVNode("",!0)],10,_hoisted_56$1))),128)),Q.value.length>10?(openBlock(),createElementBlock("li",{key:0,class:"toggle-btn",onClick:re},toDisplayString$1(ge.value?unref(n)("common.showMore"):unref(n)("common.showLess")),1)):createCommentVNode("",!0)])])])):createCommentVNode("",!0)])]),(Z=r.value.images)!=null&&Z.length?(openBlock(),createElementBlock("ul",_hoisted_59$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value.images,(L,K)=>(openBlock(),createElementBlock("li",{key:K,class:"lora-detail__image-item"},[createBaseVNode("figure",null,[createBaseVNode("div",_hoisted_60$1,[createBaseVNode("div",{class:"image-action",onClick:x=>oe(L.url)}," 设置为Lora封面 ",8,_hoisted_61$1),createBaseVNode("img",{src:L.url},null,8,_hoisted_62$1)]),createBaseVNode("figcaption",_hoisted_63$1,[L.civitaiUrl?(openBlock(),createElementBlock("span",_hoisted_64$1,[createBaseVNode("a",{href:L.civitaiUrl,target:"_blank",class:"civitai-link"},z[16]||(z[16]=[createTextVNode(" C站 civitai "),createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"})],-1)]),8,_hoisted_65$1)])):createCommentVNode("",!0),L.seed?(openBlock(),createElementBlock("span",_hoisted_66$1,[z[17]||(z[17]=createBaseVNode("label",null,"种子 seed",-1)),createTextVNode(" "+toDisplayString$1(L.seed),1)])):createCommentVNode("",!0),L.steps?(openBlock(),createElementBlock("span",_hoisted_67$1,[z[18]||(z[18]=createBaseVNode("label",null,"步数 steps",-1)),createTextVNode(" "+toDisplayString$1(L.steps),1)])):createCommentVNode("",!0),L.cfg?(openBlock(),createElementBlock("span",_hoisted_68$1,[z[19]||(z[19]=createBaseVNode("label",null,"引导系数 cfg",-1)),createTextVNode(" "+toDisplayString$1(L.cfg),1)])):createCommentVNode("",!0),L.sampler?(openBlock(),createElementBlock("span",_hoisted_69$1,[z[20]||(z[20]=createBaseVNode("label",null,"采样器 sampler",-1)),createTextVNode(" "+toDisplayString$1(L.sampler),1)])):createCommentVNode("",!0),L.model?(openBlock(),createElementBlock("span",_hoisted_70$1,[z[21]||(z[21]=createBaseVNode("label",null,"基础模型 model",-1)),createTextVNode(" "+toDisplayString$1(L.model),1)])):createCommentVNode("",!0),L.positive?(openBlock(),createElementBlock("span",_hoisted_71$1,[z[22]||(z[22]=createBaseVNode("label",null,"正向提示词 positive",-1)),createTextVNode(" "+toDisplayString$1(L.positive),1)])):createCommentVNode("",!0),L.negative?(openBlock(),createElementBlock("span",_hoisted_72$1,[z[23]||(z[23]=createBaseVNode("label",null,"反向提示词 negative",-1)),createTextVNode(" "+toDisplayString$1(L.negative),1)])):createCommentVNode("",!0)])])]))),128))])):createCommentVNode("",!0)])],512)]}),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),createVNode(loraRaw,{ref_key:"loraRawRef",ref:w},null,512)],64))}},loraDetail=_export_sfc(_sfc_main$i,[["__scopeId","data-v-1b0da0a7"]]),_hoisted_1$h={key:0,class:"lora-detail__loading"},_hoisted_2$g={class:"lora-detail__body"},_hoisted_3$g={class:"lora-detail__tags"},_hoisted_4$f=["title"],_hoisted_5$e=["title"],_hoisted_6$e={class:"lora-detail__table"},_hoisted_7$e={class:"label"},_hoisted_8$e={colspan:"2"},_hoisted_9$e={class:"label"},_hoisted_10$d={colspan:"2",class:"hash"},_hoisted_11$d={class:"label"},_hoisted_12$d={colspan:"2"},_hoisted_13$b=["href"],_hoisted_14$9={key:1,class:"not-found"},_hoisted_15$9=["title"],_hoisted_16$9={class:"label"},_hoisted_17$9=["title"],_hoisted_18$6={key:1,class:"text"},_hoisted_19$6={class:"label"},_hoisted_20$6={colspan:"2"},_hoisted_21$6={class:"label"},_hoisted_22$6={colspan:"2"},_hoisted_23$6={class:"label"},_hoisted_24$6=["title"],_hoisted_25$6={class:"text"},_hoisted_26$6={class:"actions"},_hoisted_27$6=["onClick","title"],_hoisted_28$5={class:"label"},_hoisted_29$5=["onUpdate:modelValue"],_hoisted_30$5={key:1},_hoisted_31$5={class:"text"},_hoisted_32$5={class:"actions"},_hoisted_33$5=["onClick","title"],_hoisted_34$5={key:0},_hoisted_35$5={class:"label"},_hoisted_36$5=["title"],_hoisted_37$4={key:0,class:"word-selection"},_hoisted_38$4={colspan:"2"},_hoisted_39$4={class:"word-list"},_hoisted_40$4=["onClick"],_hoisted_41$4={key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},_hoisted_42$4={key:1},_hoisted_43$4={key:0,class:"lora-detail__images",style:{display:"grid","grid-template-columns":"repeat(2, 1fr)",gap:"12px"}},_hoisted_44$3={class:"image-wrapper",style:{height:"200px"}},_hoisted_45$3=["src"],_sfc_main$h={__name:"lora_card",props:{fileNmae:{type:String,required:!0},paddingLeft:{type:Number,required:!1,default:100},paddingTop:{type:Number,required:!1,default:100}},emits:["cardLeave","cardenter"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref({}),s=ref(),l=ref({}),c=e,f=ref(""),u=a,d=()=>{u("cardLeave")},m=()=>{u("cardenter")},g=ref({}),v=ref({}),b=ref([]),$=[{key:"strengthMin",label:n("lora.strengthMin"),tip:n("lora.strengthMinTip"),type:"number"},{key:"strengthMax",label:n("lora.strengthMax"),tip:n("lora.strengthMaxTip"),type:"number"},{key:"strWeight",label:n("lora.strWeight"),tip:n("lora.strWeightTip"),type:"number"},{key:"loraWorks",label:n("lora.promptWords"),tip:n("lora.promptWordsTip")}];onMounted(()=>{w()});const w=()=>{f.value=c.fileNmae,r.value={},b.value=[],v.value={name:!1,nameValue:"",min:!1,minValue:"",max:!1,maxValue:"",notes:!1,notesValue:"",loraWorks:!1,loraWorksValue:""},loraApi.getLoraDetail({file:f.value,refresh:!1,light:!1}).then(G=>{r.value=G.data,nextTick(function(){var ee,A,D,W,ae,Y;r.value.name=r.value.name||((A=(ee=r.value.raw)===null||ee===void 0?void 0:ee.metadata)===null||A===void 0?void 0:A.ss_output_name===void 0?A["modelspec.title"]:A.ss_output_name)||"",v.value.nameValue=r.value.name,r.value.strengthMin=(D=r.value.strengthMin)!==null&&D!==void 0?D:"",v.value.minValue=r.value.strengthMin,r.value.strengthMax=(W=r.value.strengthMax)!==null&&W!==void 0?W:"",v.value.maxValue=r.value.strengthMax,r.value.userNote=(ae=r.value.userNote)!==null&&ae!==void 0?ae:"",v.value.notesValue=r.value.userNote,r.value.loraWorks=(Y=r.value.loraWorks)!==null&&Y!==void 0?Y:"",v.value.loraWorksValue=r.value.loraWorks,l.value=r.value.user_diy_fileds,o.value=!1})}).catch(G=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},N=G=>{navigator.clipboard.writeText(G).then(()=>{message$1({type:"success",str:"已复制到剪贴板"})}).catch(ee=>{message$1({type:"error",str:"复制失败"})})},P=computed(()=>{var G;return(G=r.value.links)==null?void 0:G.find(ee=>ee.includes("civitai.com/models"))}),y=computed(()=>{var G,ee;return((ee=(G=r.value.raw)==null?void 0:G.civitai)==null?void 0:ee.error)==="Model not found"}),E=computed(()=>r.value.trainedWords||[]),R=async()=>{var ee;const G=((ee=s.value)==null?void 0:ee.scrollTop)||0;o.value=!0,loraApi.getLoraRefresh({file:f.value}).then(A=>{r.value=A.data,nextTick(function(){var D,W,ae,Y,ne;r.value.name=r.value.name||((W=(D=r.value.raw)===null||D===void 0?void 0:D.metadata)===null||W===void 0?void 0:W.ss_output_name===void 0?W["modelspec.title"]:W.ss_output_name)||"",v.value.nameValue=r.value.name,r.value.strengthMin=(ae=r.value.strengthMin)!==null&&ae!==void 0?ae:"",v.value.minValue=r.value.strengthMin,r.value.strengthMax=(Y=r.value.strengthMax)!==null&&Y!==void 0?Y:"",v.value.maxValue=r.value.strengthMax,r.value.userNote=(ne=r.value.userNote)!==null&&ne!==void 0?ne:"",v.value.notesValue=r.value.userNote,o.value=!1}),nextTick(function(){o.value=!1}),s.value&&(s.value.scrollTop=G),message$1({type:"success",str:"message.dataLoaded"})}).catch(A=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},F=G=>{G in l.value?(r.value.user_diy_fileds||(r.value.user_diy_fileds={}),r.value.user_diy_fileds[G]={label:l.value[G].label,value:v.value[G]}):r.value[G]=v.value[G],j(r.value),g.value[G]=!1},H=G=>{g.value[G]=!1,v.value[G]=r.value[G]},j=G=>{var A;const ee=((A=s.value)==null?void 0:A.scrollTop)||0;o.value=!0,loraApi.postLoraSave(f.value,G).then(D=>{r.value=D.data,nextTick(function(){var W,ae,Y,ne,te;r.value.name=r.value.name||((ae=(W=r.value.raw)===null||W===void 0?void 0:W.metadata)===null||ae===void 0?void 0:ae.ss_output_name===void 0?ae["modelspec.title"]:ae.ss_output_name)||"",v.value.nameValue=r.value.name,r.value.strengthMin=(Y=r.value.strengthMin)!==null&&Y!==void 0?Y:"",v.value.minValue=r.value.strengthMin,r.value.strengthMax=(ne=r.value.strengthMax)!==null&&ne!==void 0?ne:"",v.value.maxValue=r.value.strengthMax,r.value.userNote=(te=r.value.userNote)!==null&&te!==void 0?te:"",v.value.notesValue=r.value.userNote,o.value=!1,nextTick(function(){s.value&&(s.value.scrollTop=ee)})}),message$1({type:"success",str:"message.saveSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},fe=G=>{const ee=b.value.indexOf(G);ee===-1?b.value.push(G):b.value.splice(ee,1)},oe=G=>b.value.includes(G),V=async()=>{b.value.length&&navigator.clipboard.writeText(b.value).then(G=>{message$1({type:"success",str:"message.copySuccess"})},G=>{message$1({type:"warn",str:"message.copyFailed"})})},q=ref(!0),Q=()=>{q.value=!q.value};return t({refresh:()=>{w()}}),(G,ee)=>{var A;return openBlock(),createElementBlock("div",{class:"lora_catd_content",style:normalizeStyle(["left: "+e.paddingLeft+"px;top: "+e.paddingTop+"px;",{"font-size":"0.55em"}]),onMouseenter:m,onMouseleave:d},[createBaseVNode("div",{class:"close-button",onClick:d,title:"关闭"},ee[3]||(ee[3]=[createBaseVNode("span",null,"×",-1)])),createBaseVNode("div",{class:"lora-detail__content",ref_key:"loraContent",ref:s},[o.value?(openBlock(),createElementBlock("div",_hoisted_1$h,ee[4]||(ee[4]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24",class:"is-rotating"},[createBaseVNode("path",{d:"M12 4V2C6.48 2 2 6.48 2 12H4C4 7.58 7.58 4 12 4Z"})],-1)]))):createCommentVNode("",!0),createBaseVNode("div",_hoisted_2$g,[ee[13]||(ee[13]=createBaseVNode("div",{class:"lora-detail__title"},"Lora 信息",-1)),createBaseVNode("ul",_hoisted_3$g,[r.value.type?(openBlock(),createElementBlock("li",{key:0,class:normalizeClass(["lora-detail__tag",`-type-${r.value.type.toLowerCase()}`]),title:unref(n)("lora.type")},toDisplayString$1(r.value.type),11,_hoisted_4$f)):createCommentVNode("",!0),r.value.baseModel?(openBlock(),createElementBlock("li",{key:1,class:normalizeClass(["lora-detail__tag",`-basemodel-${r.value.baseModel.toLowerCase()}`]),title:unref(n)("lora.baseModel")},toDisplayString$1(r.value.baseModel),11,_hoisted_5$e)):createCommentVNode("",!0)]),createBaseVNode("table",_hoisted_6$e,[createBaseVNode("tbody",null,[createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_7$e,toDisplayString$1(unref(n)("lora.file")),1),createBaseVNode("td",_hoisted_8$e,toDisplayString$1(r.value.file),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_9$e,toDisplayString$1(unref(n)("lora.hash")),1),createBaseVNode("td",_hoisted_10$d,toDisplayString$1(r.value.sha256),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_11$d,toDisplayString$1(unref(n)("lora.civitai")),1),createBaseVNode("td",_hoisted_12$d,[P.value?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("a",{href:P.value,target:"_blank",class:"civitai-link"},[ee[5]||(ee[5]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(n)("lora.viewOnCivitai")),1)],8,_hoisted_13$b),createBaseVNode("button",{style:{"margin-left":"10px"},class:"refresh-btn",onClick:R},toDisplayString$1(unref(n)("lora.getCivitData")),1)],64)):y.value?(openBlock(),createElementBlock("div",_hoisted_14$9,[createBaseVNode("i",null,toDisplayString$1(unref(n)("lora.modelNotFound")),1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.modelNotFoundTip")},ee[6]||(ee[6]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_15$9))])):(openBlock(),createElementBlock("button",{key:2,class:"fetch-btn",onClick:R},toDisplayString$1(unref(n)("lora.fetchFromCivitai")),1))])]),createBaseVNode("tr",{class:normalizeClass({"is-editing":g.value.name})},[createBaseVNode("td",_hoisted_16$9,[createTextVNode(toDisplayString$1(unref(n)("lora.name"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.nameTip")},ee[7]||(ee[7]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_17$9))]),createBaseVNode("td",null,[g.value.name?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":ee[0]||(ee[0]=D=>v.value.name=D),type:"text",onKeyup:[ee[1]||(ee[1]=withKeys(D=>F("name"),["enter"])),ee[2]||(ee[2]=withKeys(D=>H("name"),["esc"]))],ref:"nameInput"},null,544)),[[vModelText,v.value.name]]):(openBlock(),createElementBlock("span",_hoisted_18$6,toDisplayString$1(r.value.name),1))])],2),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_19$6,toDisplayString$1(unref(n)("lora.baseModel")),1),createBaseVNode("td",_hoisted_20$6,toDisplayString$1(!r.value.baseModelFile&&!r.value.baseModelFile?"":(r.value.baseModel||"")+(r.value.baseModelFile?` - (${r.value.baseModelFile})`:"")),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_21$6,toDisplayString$1(unref(n)("lora.skipClip")),1),createBaseVNode("td",_hoisted_22$6,toDisplayString$1((G._t=(G._s=r.value.raw)===null||G._s===void 0?void 0:G._s.metadata)===null||G._t===void 0?void 0:G._t.ss_clip_skip),1)]),(openBlock(),createElementBlock(Fragment,null,renderList($,D=>createBaseVNode("tr",{key:D.key,class:normalizeClass({"is-editing":g.value[D.key]})},[createBaseVNode("td",_hoisted_23$6,[createTextVNode(toDisplayString$1(D.label)+" ",1),D.tip?(openBlock(),createElementBlock("svg",{key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:D.tip},ee[8]||(ee[8]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_24$6)):createCommentVNode("",!0)]),createBaseVNode("td",null,[createBaseVNode("span",_hoisted_25$6,toDisplayString$1(r.value[D.key]),1)]),createBaseVNode("td",_hoisted_26$6,[createBaseVNode("button",{class:"copy-btn",onClick:W=>N(r.value[D.key]),title:unref(n)("lora.copy")},[ee[9]||(ee[9]=createBaseVNode("svg",{class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"})],-1)),createTextVNode(" "+toDisplayString$1(unref(n)("lora.copy")),1)],8,_hoisted_27$6)])],2)),64)),(openBlock(!0),createElementBlock(Fragment,null,renderList(l.value,(D,W)=>{var ae;return openBlock(),createElementBlock("tr",{key:W,class:normalizeClass({"is-editing":g.value[W]})},[createBaseVNode("td",_hoisted_28$5,[g.value[W]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":Y=>D.label=Y,type:"text"},null,8,_hoisted_29$5)),[[vModelText,D.label]]):(openBlock(),createElementBlock("span",_hoisted_30$5,toDisplayString$1(D.label),1))]),createBaseVNode("td",null,[createBaseVNode("span",_hoisted_31$5,toDisplayString$1(r.value.user_diy_fileds?(ae=r.value.user_diy_fileds[W])==null?void 0:ae.value:""),1)]),createBaseVNode("td",_hoisted_32$5,[createBaseVNode("button",{class:"copy-btn",onClick:Y=>{var ne;return N((ne=r.value.user_diy_fileds[W])==null?void 0:ne.value)},title:unref(n)("lora.copy")},[ee[10]||(ee[10]=createBaseVNode("svg",{class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"})],-1)),createTextVNode(" "+toDisplayString$1(unref(n)("lora.copy")),1)],8,_hoisted_33$5)])],2)}),128)),E.value.length?(openBlock(),createElementBlock("tr",_hoisted_34$5,[createBaseVNode("td",_hoisted_35$5,[createTextVNode(toDisplayString$1(unref(n)("lora.trainedWords"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.trainedWordsTip")},ee[11]||(ee[11]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_36$5)),b.value.length?(openBlock(),createElementBlock("div",_hoisted_37$4,[createTextVNode(toDisplayString$1(unref(n)("lora.selectedWords",{count:b.value.length}))+" ",1),createBaseVNode("button",{class:"copy-btn",onClick:V},toDisplayString$1(unref(n)("common.copy")),1)])):createCommentVNode("",!0)]),createBaseVNode("td",_hoisted_38$4,[createBaseVNode("ul",_hoisted_39$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(q.value?E.value.slice(0,10):E.value,(D,W)=>(openBlock(),createElementBlock("li",{key:"words-"+W,class:normalizeClass(["word-item",{"is-selected":oe(D.word),"is-hidden":q.value&&W>=10}]),onClick:ae=>fe(D.word)},[createBaseVNode("span",null,toDisplayString$1(D.word),1),D.civitai?(openBlock(),createElementBlock("svg",_hoisted_41$4,ee[12]||(ee[12]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"},null,-1)]))):createCommentVNode("",!0),D.count!=null?(openBlock(),createElementBlock("small",_hoisted_42$4,toDisplayString$1(D.count),1)):createCommentVNode("",!0)],10,_hoisted_40$4))),128)),E.value.length>10?(openBlock(),createElementBlock("li",{key:0,class:"toggle-btn",onClick:Q},toDisplayString$1(q.value?unref(n)("common.showMore"):unref(n)("common.showLess")),1)):createCommentVNode("",!0)])])])):createCommentVNode("",!0)])]),(A=r.value.images)!=null&&A.length?(openBlock(),createElementBlock("ul",_hoisted_43$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value.images,(D,W)=>(openBlock(),createElementBlock("li",{key:W,class:"lora-detail__image-item"},[createBaseVNode("div",_hoisted_44$3,[createBaseVNode("img",{src:D.url,style:{width:"100%",height:"100%","object-fit":"contain"}},null,8,_hoisted_45$3)])]))),128))])):createCommentVNode("",!0)])],512)],36)}}},LoraCard=_export_sfc(_sfc_main$h,[["__scopeId","data-v-b11ec087"]]),_hoisted_1$g={class:"header-actions"},_hoisted_2$f=["title"],_hoisted_3$f=["onMouseover","onDragstart","onDrop"],_hoisted_4$e={class:"lora-info"},_hoisted_5$d={class:"lora-header"},_hoisted_6$d=["title"],_hoisted_7$d={class:"lora-actions"},_hoisted_8$d=["onClick","title"],_hoisted_9$d=["onClick","title"],_hoisted_10$c={class:"lora-weights-row"},_hoisted_11$c={class:"weight-item-col"},_hoisted_12$c=["onUpdate:modelValue"],_hoisted_13$a={class:"weight-item-col"},_hoisted_14$8=["onUpdate:modelValue"],_hoisted_15$8={class:"switch-item-col"},_hoisted_16$8={class:"switch"},_hoisted_17$8=["checked","onChange"],prefix$4="weilin_prompt_ui_",_sfc_main$g={__name:"lora_stack",props:{isOpen:{type:Boolean,default:!1},selectedLoras:{type:Array,default:[]}},emits:["close","update:selectedLoras"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref(""),s=ref(100),l=ref(0),c=ref(),f=ref(!1),u=ref(!1),d=ref(),m=e,g=a,v=(oe,V)=>{if(u.value=!0,r.value===oe&&o.value)return;const Q=V.currentTarget.getBoundingClientRect();let G={left:Q.left-450-10,top:Q.top};G.left<10&&(G.left=Q.right+10),G.top=Math.max(10,Math.min(G.top,window.innerHeight-310)),s.value=G.left,l.value=G.top,o.value=!0,r.value=oe,nextTick(()=>{d.value.refresh()})},b=()=>{u.value=!1,setTimeout(()=>{!f.value&&!u.value&&(o.value=!1,r.value="",f.value=!1)},200)},$=()=>{f.value=!0,u.value=!0},w=()=>{o.value=!1,r.value="",f.value=!1},N=()=>{window.postMessage({type:"weilin_prompt_ui_openLoraManager_addLora"},"*")},P=oe=>{oe.hidden=!oe.hidden},y=oe=>{console.log(m.selectedLoras),m.selectedLoras&&!m.selectedLoras.find(V=>V.name===oe.name)&&(m.selectedLoras.push({name:oe.name,weight:1,text_encoder_weight:1,...oe}),g("update:selectedLoras",m.selectedLoras))},E=oe=>{const V=m.selectedLoras.findIndex(q=>q.name===oe.name);V>-1&&(m.selectedLoras.splice(V,1),g("update:selectedLoras",m.selectedLoras))},R=ref(),F=oe=>{R.value.open({name:oe.lora})};window.addEventListener("message",oe=>{oe.data.type==="weilin_prompt_ui_selectLora"&&y(oe.data.lora)});const H=ref(null),j=oe=>{H.value=oe},fe=oe=>{if(H.value===null||H.value===oe)return;const V=m.selectedLoras.splice(H.value,1)[0];m.selectedLoras.splice(oe,0,V),H.value=null,g("update:selectedLoras",m.selectedLoras)};return t({addLora:y,removeLora:E}),(oe,V)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix$4}lora-stack`),style:normalizeStyle([{width:e.isOpen?"300px":"0"},{paddingRight:e.isOpen?"16px":"0"}])},[createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-content`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-header`)},[createBaseVNode("h3",{class:normalizeClass(`${prefix$4}lora-title`)},toDisplayString$1(unref(n)("controls.loraStack")),3),createBaseVNode("div",_hoisted_1$g,[createBaseVNode("button",{class:normalizeClass(`${prefix$4}add-btn`),onClick:N,title:unref(n)("controls.addLora")},V[2]||(V[2]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})],-1)]),10,_hoisted_2$f),createBaseVNode("button",{class:normalizeClass(`${prefix$4}close-btn`),onClick:V[0]||(V[0]=q=>oe.$emit("close"))},V[3]||(V[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),2)])],2),createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-body`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-list`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(e.selectedLoras,(q,Q)=>(openBlock(),createElementBlock("div",{ref_for:!0,ref_key:"loraStackItemRef",ref:c,key:q.name,class:normalizeClass(["lora-item",{"hidden-lora":q.hidden}]),onMouseover:O=>v(q.lora,O),onMouseleave:b,draggable:"true",onDragstart:O=>j(Q),onDragover:V[1]||(V[1]=withModifiers(()=>{},["prevent"])),onDrop:O=>fe(Q)},[createBaseVNode("div",_hoisted_4$e,[createBaseVNode("div",_hoisted_5$d,[createBaseVNode("span",{class:"lora-name",title:q.name},toDisplayString$1(q.name),9,_hoisted_6$d),createBaseVNode("div",_hoisted_7$d,[createBaseVNode("button",{class:"look-on-btn",onClick:O=>F(q),title:unref(n)("controls.lookOnLora")},V[4]||(V[4]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"14",height:"14"},[createBaseVNode("path",{d:"M576.5 930.2H163.1c-52.9 0-96-43.1-96-96v-672c0-52.9 43.1-96 96-96h672c52.9 0 96 43.1 96 96V577c0 17.7-14.3 32-32 32s-32-14.3-32-32V162.2c0-17.6-14.4-32-32-32h-672c-17.6 0-32 14.4-32 32v672c0 17.6 14.4 32 32 32h413.4c17.7 0 32 14.3 32 32s-14.3 32-32 32z","p-id":"3466"}),createBaseVNode("path",{d:"M692.4 322.3H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h446.7c17.7 0 32 14.3 32 32s-14.3 32-32 32zM388.5 530.2H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.6-14.3 32-31.9 32zM388.5 738H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.7-14.3 32-31.9 32z","p-id":"3467"}),createBaseVNode("path",{d:"M624.1 792.5c-94.8 0-172-77.2-172-172s77.2-172 172-172 172 77.2 172 172-77.1 172-172 172z m0-280c-59.6 0-108 48.4-108 108s48.4 108 108 108 108-48.4 108-108-48.4-108-108-108z","p-id":"3468"}),createBaseVNode("path",{d:"M820.8 864.2L710.5 753.9c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L866 818.9c12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.2 0z","p-id":"3469"})],-1)]),8,_hoisted_8$d),createBaseVNode("button",{class:"remove-btn",onClick:O=>E(q),title:unref(n)("controls.removeLora")},V[5]||(V[5]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,_hoisted_9$d)])]),createBaseVNode("div",_hoisted_10$c,[createBaseVNode("div",_hoisted_11$c,[createBaseVNode("label",null,toDisplayString$1(unref(n)("loraManager.modelWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":O=>q.weight=O,class:"lora-weight",step:"0.1"},null,8,_hoisted_12$c),[[vModelText,q.weight]])]),createBaseVNode("div",_hoisted_13$a,[createBaseVNode("label",null,toDisplayString$1(unref(n)("loraManager.textEncoderWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":O=>q.text_encoder_weight=O,class:"lora-weight",step:"0.1"},null,8,_hoisted_14$8),[[vModelText,q.text_encoder_weight]])]),createBaseVNode("div",_hoisted_15$8,[createBaseVNode("label",null,toDisplayString$1(q.hidden?unref(n)("lora.hideLora"):unref(n)("lora.showLora")),1),createBaseVNode("label",_hoisted_16$8,[createBaseVNode("input",{type:"checkbox",checked:!q.hidden,onChange:O=>P(q)},null,40,_hoisted_17$8),V[6]||(V[6]=createBaseVNode("span",{class:"slider"},null,-1))])])])])],42,_hoisted_3$f))),128))],2)],2)],2),createVNode(loraDetail,{ref_key:"loraDetailLoraStackRef",ref:R},null,512),o.value?(openBlock(),createBlock(LoraCard,{key:0,ref_key:"loraCardItem",ref:d,fileNmae:r.value,paddingLeft:s.value,paddingTop:l.value,onCardLeave:w,onCardenter:$},null,8,["fileNmae","paddingLeft","paddingTop"])):createCommentVNode("",!0)],6))}},LoraStack=_export_sfc(_sfc_main$g,[["__scopeId","data-v-22aa3dae"]]),_hoisted_1$f={class:"main-label-manager"},_hoisted_2$e={class:"mlm-header"},_hoisted_3$e={class:"mlm-grid"},_hoisted_4$d=["disabled"],_hoisted_5$c=["disabled"],_hoisted_6$c=["onClick","title","onDragstart","onDragenter","onDrop"],_hoisted_7$c={class:"mlm-item-main"},_hoisted_8$c={key:0,class:"pin-badge"},_hoisted_9$c={class:"mlm-name"},_hoisted_10$b={class:"mlm-item-actions"},_hoisted_11$b=["title","onClick"],_hoisted_12$b=["title","onClick"],STORAGE_KEY="weilin_prompt_ui_main_labels_v1",_sfc_main$f={__name:"main_label_manager",props:{selectedId:{type:String,default:null}},emits:["select"],setup(e,{expose:t,emit:a}){const n=e,o=a,r=ref(""),s=ref([]),l=ref(n.selectedId),c=ref(!0),f=ref(!0),u=ref("time"),d=ref(null),m=ref(null);function g(){const W={items:s.value,settings:{sortMode:u.value,sortTimeDesc:c.value,sortNameAsc:f.value,selectedId:l.value}};localStorage.setItem(STORAGE_KEY,JSON.stringify(W))}function v(){try{const W=localStorage.getItem(STORAGE_KEY);if(!W)throw new Error("no data");const ae=JSON.parse(W),Y=Array.isArray(ae)?ae:(ae==null?void 0:ae.items)??[],ne=Array.isArray(ae)?{}:(ae==null?void 0:ae.settings)??{};s.value=Y.map((te,ge)=>({id:te.id??N(),name:te.name??"未命名",content:te.content??"",createdAt:te.createdAt??te.updatedAt??Date.now(),updatedAt:te.updatedAt??te.createdAt??Date.now(),pinned:!!te.pinned,highlighted:!!te.highlighted,order:typeof te.order=="number"?te.order:ge})),ne.sortMode&&(u.value=ne.sortMode),typeof ne.sortTimeDesc=="boolean"&&(c.value=ne.sortTimeDesc),typeof ne.sortNameAsc=="boolean"&&(f.value=ne.sortNameAsc),(typeof ne.selectedId=="string"||ne.selectedId===null)&&(l.value=ne.selectedId)}catch{s.value=[]}}onMounted(()=>{var W;if(v(),s.value.length===0){const ae=N();s.value.push({id:ae,name:"示例标签",content:"",createdAt:Date.now(),updatedAt:Date.now(),pinned:!1,highlighted:!1,order:0}),g(),l.value=ae;return}if(!P(l.value))l.value=((W=s.value[0])==null?void 0:W.id)??null;else{const ae=P(l.value);o("select",ae?{...ae}:null)}}),watch(()=>n.selectedId,W=>{l.value=W}),watch([u,c,f],()=>{g()}),watch(s,()=>{g()},{deep:!0}),watch(l,W=>{g();const ae=W?P(W):null;o("select",ae?{...ae}:null)});const b=computed(()=>{const W=r.value.trim().toLowerCase();return W?s.value.filter(ae=>(ae.name||"").toLowerCase().includes(W)):s.value}),$=computed(()=>{const W=[...b.value];if(u.value==="manual")return W.sort((te,ge)=>{const re=te.order??0,B=ge.order??0;return re!==B?re-B:(te.createdAt??0)-(ge.createdAt??0)});const ae=(te,ge)=>{const re=te.name||"",B=ge.name||"";let z=re.localeCompare(B,void 0,{numeric:!0,sensitivity:"base"});return f.value||(z=-z),z},Y=(te,ge)=>{let re=te.createdAt-ge.createdAt;return c.value&&(re=-re),re},ne=te=>te.pinned?0:1;return W.sort((te,ge)=>{const re=ne(te)-ne(ge);if(re!==0)return re;if(u.value==="name"){const z=ae(te,ge);return z!==0?z:Y(te,ge)}const B=Y(te,ge);return B!==0?B:ae(te,ge)}),W}),w=computed(()=>P(l.value));function N(){return"mlm_"+Math.random().toString(36).slice(2)+"_"+Date.now()}function P(W){return s.value.find(ae=>ae.id===W)||null}function y(W){l.value=W.id,o("select",{...W})}function E(){const W=window.prompt("新建标签名称:","");if(!W)return;O(),u.value="manual";const ae=N(),Y=Date.now(),ne=s.value.reduce((ge,re)=>typeof re.order=="number"?Math.min(ge,re.order):ge,0),te={id:ae,name:W.trim(),content:"",createdAt:Y,updatedAt:Y,pinned:!1,highlighted:!1,order:ne-1};s.value.push(te),g(),l.value=ae,o("select",{...te})}function R(){const W=w.value;if(!W)return;const ae=window.prompt("重命名标签:",W.name||"");ae&&(W.name=ae.trim(),W.updatedAt=Date.now(),g())}function F(){const W=w.value;if(!W||!window.confirm(`确定删除标签"${W.name}"吗?`))return;const ae=s.value.findIndex(Y=>Y.id===W.id);ae>=0&&s.value.splice(ae,1),g(),s.value.length?(l.value=s.value[0].id,o("select",{...s.value[0]})):(l.value=null,o("select",null))}function H(){u.value="time",c.value=!c.value}function j(){u.value="name",f.value=!f.value}function fe(W){W.pinned=!W.pinned,W.updatedAt=Date.now(),g()}function oe(W){W.highlighted=!W.highlighted,W.updatedAt=Date.now(),g()}function V(W){const ae=w.value;ae&&(ae.content=W??"",ae.updatedAt=Date.now(),clearTimeout(q),q=setTimeout(()=>g(),400))}let q=null;function Q(W){try{const ae=new Date(W);return`${ae.getFullYear()}-${(ae.getMonth()+1).toString().padStart(2,"0")}-${ae.getDate().toString().padStart(2,"0")} ${ae.getHours().toString().padStart(2,"0")}:${ae.getMinutes().toString().padStart(2,"0")}`}catch{return""}}function O(){$.value.forEach((ae,Y)=>{ae.order=Y})}function G(W,ae,Y){try{Y.dataTransfer.effectAllowed="move"}catch{}d.value=W.id,m.value=null,O(),u.value="manual"}function ee(W){d.value&&(m.value=W.id)}function A(W){if(!d.value)return;const ae=d.value,Y=W==null?void 0:W.id;if(!Y||ae===Y)return D();const ne=[...$.value],te=ne.findIndex(B=>B.id===ae),ge=ne.findIndex(B=>B.id===Y);if(te<0||ge<0)return D();const[re]=ne.splice(te,1);ne.splice(ge,0,re),ne.forEach((B,z)=>{B.order=z}),g(),D()}function D(){d.value=null,m.value=null}return t({updateSelectedContent:V}),(W,ae)=>(openBlock(),createElementBlock("div",_hoisted_1$f,[createBaseVNode("div",_hoisted_2$e,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":ae[0]||(ae[0]=Y=>r.value=Y),class:"mlm-search",type:"text",placeholder:"搜索标签…"},null,512),[[vModelText,r.value]]),createBaseVNode("button",{class:"mlm-add",onClick:E},"+ 新建标签"),createBaseVNode("div",_hoisted_3$e,[createBaseVNode("button",{class:"mlm-sort",onClick:H}," 按时间 "+toDisplayString$1(c.value?"后→先":"先→后"),1),createBaseVNode("button",{class:"mlm-sort",onClick:j}," 按名称 "+toDisplayString$1(f.value?"A→Z":"Z→A"),1),createBaseVNode("button",{class:"mlm-edit",disabled:!w.value,onClick:R},"编辑",8,_hoisted_4$d),createBaseVNode("button",{class:"mlm-delete",disabled:!w.value,onClick:F},"删除",8,_hoisted_5$c)])]),createVNode(TransitionGroup,{name:"mlm",tag:"div",class:"mlm-list"},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList($.value,(Y,ne)=>(openBlock(),createElementBlock("div",{key:Y.id,class:normalizeClass(["mlm-item",{active:Y.id===l.value,pinned:!!Y.pinned,highlighted:!!Y.highlighted},{dragging:d.value===Y.id,"drag-over":m.value===Y.id}]),onClick:te=>y(Y),title:Y.updatedAt?Q(Y.updatedAt):"",draggable:"true",onDragstart:te=>G(Y,ne,te),onDragenter:withModifiers(te=>ee(Y),["prevent"]),onDragover:ae[1]||(ae[1]=withModifiers(()=>{},["prevent"])),onDrop:withModifiers(te=>A(Y),["prevent"]),onDragend:D},[createBaseVNode("div",_hoisted_7$c,[Y.pinned?(openBlock(),createElementBlock("span",_hoisted_8$c,"置顶")):createCommentVNode("",!0),createBaseVNode("span",_hoisted_9$c,toDisplayString$1(Y.name),1)]),createBaseVNode("div",_hoisted_10$b,[createBaseVNode("button",{class:normalizeClass(["mini-btn","pin",{active:Y.pinned}]),title:Y.pinned?"取消置顶":"置顶",onClick:withModifiers(te=>fe(Y),["stop"])},ae[2]||(ae[2]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"currentColor"},[createBaseVNode("path",{d:"M4 14h4v6h8v-6h4L12 4 4 14z"})],-1)]),10,_hoisted_11$b),createBaseVNode("button",{class:normalizeClass(["mini-btn","highlight",{active:Y.highlighted}]),title:Y.highlighted?"取消高亮":"高亮",onClick:withModifiers(te=>oe(Y),["stop"])},ae[3]||(ae[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"currentColor"},[createBaseVNode("path",{d:"M12 17.27L18.18 21 16.54 13.97 22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"})],-1)]),10,_hoisted_12$b)])],42,_hoisted_6$c))),128))]),_:1})]))}},MainLabelManager=_export_sfc(_sfc_main$f,[["__scopeId","data-v-a435a9c3"]]);function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var i18nJsautotranslate$1={exports:{}},i18nJsautotranslate=i18nJsautotranslate$1.exports,hasRequiredI18nJsautotranslate;function requireI18nJsautotranslate(){return hasRequiredI18nJsautotranslate||(hasRequiredI18nJsautotranslate=1,function(module){if(typeof translate=="object"&&typeof translate.version=="string")throw new Error("translate.js 已经加载过一次了,当前是重复加载,避免你的翻译出现异常,已帮你拦截此次加载。本信息只是给你一个提示,你可以检查一下你的项目中是否出现了重复引入 translate.js ,当然,这个异常并不会影响到你的具体使用,它已经自动帮你处理拦截了这个异常,只不过提示出来是让你知道,你的代码里出现了重复引入的情况。");var translate={version:"3.13.12.20250307",useVersion:"v2",setUseVersion2:function(){translate.useVersion="v2",console.log("提示:自 v2.10 之后的版本默认就是使用V2版本(当前版本为:"+translate.version+"), translate.setUseVersion2() 可以不用再加这一行了。当然加了也无所谓,只是加了跟不加是完全一样的。")},translate:null,includedLanguages:"zh-CN,zh-TW,en",resourcesUrl:"//res.zvo.cn/translate",selectLanguageTag:{documentId:"translate",show:!0,languages:"",alreadyRender:!1,selectOnChange:function(e){var t=e.target.value;translate.changeLanguage(t)},refreshRender:function(){let e=document.getElementById(translate.selectLanguageTag.documentId+"SelectLanguage");e&&e.parentNode.removeChild(e),translate.selectLanguageTag.alreadyRender=!1,translate.selectLanguageTag.render()},customUI:function(e){var t=function(l){translate.selectLanguageTag.selectOnChange(l)},a=document.createElement("select");a.id=translate.selectLanguageTag.documentId+"SelectLanguage",a.className=translate.selectLanguageTag.documentId+"SelectLanguage";for(var n=translate.language.getCurrent(),o=0;o0){var s=(","+translate.selectLanguageTag.languages+",").toLowerCase();if(s.indexOf(","+e[o].id.toLowerCase()+",")<0)continue}n!=null&&typeof n<"u"&&n.length>0?n==e[o].id&&r.setAttribute("selected","selected"):e[o].id==translate.language.getLocal()&&r.setAttribute("selected","selected"),r.appendChild(document.createTextNode(e[o].name)),a.appendChild(r)}window.addEventListener?a.addEventListener("change",t,!1):a.attachEvent("onchange",t),document.getElementById(translate.selectLanguageTag.documentId).appendChild(a)},render:function(){if(!translate.selectLanguageTag.alreadyRender&&(translate.selectLanguageTag.alreadyRender=!0,!!translate.selectLanguageTag.show)){if(document.getElementById(translate.selectLanguageTag.documentId)==null){var e=document.getElementsByTagName("body");if(e.length==0){console.log("body tag not find, translate.selectLanguageTag.render() is not show Select Language");return}var t=e[0],a=document.createElement("div");a.id=translate.selectLanguageTag.documentId,t.appendChild(a)}else if(document.getElementById(translate.selectLanguageTag.documentId+"SelectLanguage")!=null)return;translate.request.post(translate.request.api.language,{},function(n){if(n.result==0){console.log("load language list error : "+n.info);return}translate.selectLanguageTag.customUI(n.list)},null)}}},localLanguage:"zh-CN",googleTranslateElementInit:function(){var e="";document.getElementById("translate")!=null&&(e="translate"),translate.translate=new google.translate.TranslateElement({pageLanguage:"zh-CN",includedLanguages:translate.selectLanguageTag.languages,layout:0},e)},execute_v1:function(){console.log("=====ERROR======"),console.log("The v1 version has been discontinued since 2022. Please use the latest V3 version and refer to: http://translate.zvo.cn/41162.html")},setCookie:function(e,t){var a=e+"="+escape(t);document.cookie=a},getCookie:function(e){for(var t=document.cookie,a=t.split("; "),n=0;n0?e.substr(e.lastIndexOf("/")+1,e.length-1):translate.localLanguage},changeLanguage:function(e){var t=",en,de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr,";if(t.indexOf(","+e+",")>-1){console.log("您使用的是v1版本的切换语种方式,v1已在2021年就以废弃,请更换为v2,参考文档: http://translate.zvo.cn/41549.html"),translate.check();var a="/"+translate.localLanguage+"/"+e,n=document.location.host.split(".");if(n.length>2){var o=n[n.length-2]+"."+n[n.length-1];document.cookie="googtrans=;expires="+new Date(1)+";domain="+o+";path=/",document.cookie="googtrans="+a+";domain="+o+";path=/"}translate.setCookie("googtrans",""+a),translate.refreshCurrentPage();return}if(translate.useVersion="v2",translate.to!=null&&translate.to.length>0&&translate.to!=translate.language.getLocal())var r=!0;if(translate.to=e,translate.storage.set("to",e),r)location.reload();else{translate.execute();const s=document.querySelectorAll("iframe");for(let l=0;l{re.value.open()},z=S=>{y.value=!0,f.value=S.group.name,u.value=S.sub.name,d.value=S.group.p_uuid,m.value=S.sub.g_uuid;const I=S.group.name.replace(/'/g,"''"),X=S.sub.name.replace(/'/g,"''");l.value=`INSERT OR REPLACE INTO "tag_groups" ("name", "color", "create_time", "p_uuid") VALUES ('${I}', '${S.group.color}', ${S.group.create_time}, '${S.group.p_uuid}');`,c.value=`INSERT OR REPLACE INTO "tag_subgroups" ("name", "color", "create_time", "p_uuid", "g_uuid") VALUES ('${X}', '${S.sub.color}', ${S.sub.create_time}, '${S.group.p_uuid}', '${S.sub.g_uuid}');`},Z=ref(!1),D=async S=>{Z.value=!0;try{await tagsApi.runSQLToServer(S).then(I=>{if(I.code!=200){message$1({type:"warn",str:I.message});return}else K(),message$1({type:"success",str:"importDialog.successImport"})}).catch(I=>{console.error(I),message$1({type:"warn",str:"importDialog.importFail"})})}catch(I){console.error(I),message$1({type:"warn",str:"importDialog.importFail"})}finally{Z.value=!1}},K=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*")},x=async()=>{if(y.value){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const S=[...g.value];await D(S)}else{if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const S=[l.value,c.value,...g.value];await D(S)}};return watch(l,(S,I)=>{var pe,T;if(!S||S===I)return;const X=(pe=S.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:pe[1],ie=(T=I==null?void 0:I.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:T[1];X&&ie&&c.value&&(c.value=c.value.replace(new RegExp(`'${ie}'`,"g"),`'${X}'`))}),watch(c,(S,I)=>{var pe,T;if(!S||S===I)return;const X=(pe=S.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:pe[1],ie=(T=I==null?void 0:I.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:T[1];X&&ie&&g.value.length>0&&(g.value=g.value.map(_=>_.replace(new RegExp(`'${ie}'`,"g"),`'${X}'`)))}),t({open:()=>{n.value=!0}}),(S,I)=>(openBlock(),createElementBlock(Fragment,null,[Z.value?(openBlock(),createElementBlock("div",_hoisted_1$l,I[11]||(I[11]=[createBaseVNode("div",{class:"loading-spinner"},null,-1)]))):createCommentVNode("",!0),createVNode(Dialog,{modelValue:n.value,"onUpdate:modelValue":I[10]||(I[10]=X=>n.value=X),title:unref(a)("importDialog.title")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:I[9]||(I[9]=X=>n.value=!1)},toDisplayString$1(unref(a)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:x},toDisplayString$1(unref(a)("importDialog.sure")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_2$j,[createBaseVNode("div",_hoisted_3$j,[createBaseVNode("div",_hoisted_4$i,[createBaseVNode("span",_hoisted_5$h,toDisplayString$1(unref(a)("importDialog.tips1")),1),createBaseVNode("a",_hoisted_6$h,toDisplayString$1(unref(a)("importDialog.tips1text")),1)]),createBaseVNode("div",_hoisted_7$h,[createBaseVNode("span",_hoisted_8$h,toDisplayString$1(unref(a)("importDialog.tips2")),1),createBaseVNode("a",_hoisted_9$h,toDisplayString$1(unref(a)("importDialog.tips2text")),1)]),createBaseVNode("div",_hoisted_10$g,[createBaseVNode("span",_hoisted_11$g,toDisplayString$1(unref(a)("importDialog.tips3")),1),createBaseVNode("a",_hoisted_12$g,toDisplayString$1(unref(a)("importDialog.tips3text")),1)])]),createBaseVNode("div",_hoisted_13$e,[createBaseVNode("button",{onClick:H,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.cleanAll")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:O,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.uploadSQL")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:B},toDisplayString$1(unref(a)("importDialog.selectGroup")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:G},toDisplayString$1(unref(a)("importDialog.dumpSQL")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:ee},toDisplayString$1(unref(a)("importDialog.dumpOnlySQL")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":I[0]||(I[0]=X=>E.value=X),placeholder:unref(a)("importDialog.settingOutputName")},null,8,_hoisted_14$c),[[vModelText,E.value]]),createBaseVNode("input",{type:"file",ref_key:"fileInput",ref:w,onChange:V,accept:".sql",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"jsonFileInput",ref:C,onChange:fe,accept:".json",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"txtFileInput",ref:P,onChange:j,accept:".txt",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"yamlFileInput",ref:R,onChange:oe,accept:".yaml,.yml",style:{display:"none"}},null,544)]),createBaseVNode("div",_hoisted_15$c,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[1]||(I[1]=X=>f.value=X),placeholder:unref(a)("importDialog.pleaseMainCeb")},null,8,_hoisted_16$c),[[vModelText,f.value]]),createBaseVNode("button",{onClick:te},toDisplayString$1(unref(a)("importDialog.setMainCeb")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":I[2]||(I[2]=X=>d.value=X),placeholder:unref(a)("importDialog.pleaseMainCebUuid")},null,8,_hoisted_17$c),[[vModelText,d.value]])]),createBaseVNode("div",_hoisted_18$9,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[3]||(I[3]=X=>u.value=X),placeholder:unref(a)("importDialog.pleaseSubGroup")},null,8,_hoisted_19$9),[[vModelText,u.value]]),createBaseVNode("button",{onClick:ge},toDisplayString$1(unref(a)("importDialog.setSubCeb")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":I[4]||(I[4]=X=>m.value=X),placeholder:unref(a)("importDialog.pleaseSubGroupUuid")},null,8,_hoisted_20$9),[[vModelText,m.value]])]),createBaseVNode("div",_hoisted_21$9,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[5]||(I[5]=X=>o.value=X),placeholder:"Tag"},null,512),[[vModelText,o.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[6]||(I[6]=X=>r.value=X),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_22$9),[[vModelText,r.value]]),createBaseVNode("button",{onClick:ne},toDisplayString$1(unref(a)("importDialog.add")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:Q,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.fromJSONImput")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:q,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.fromTxtInput")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:F,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.fromYmalInput")),1)]),createBaseVNode("div",_hoisted_23$9,[l.value?(openBlock(),createElementBlock("div",_hoisted_24$9,[createBaseVNode("h3",null,toDisplayString$1(A(l.value).text),1),c.value?(openBlock(),createElementBlock("div",_hoisted_25$9,[createBaseVNode("h4",null,toDisplayString$1(A(c.value).text),1),createBaseVNode("div",_hoisted_26$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(X,ie)=>(openBlock(),createElementBlock("div",{key:ie,style:{display:"flex","flex-direction":"column","align-items":"center"}},[createBaseVNode("p",null,toDisplayString$1(A(X).text)+" - "+toDisplayString$1(A(X).desc),1),createBaseVNode("div",_hoisted_27$9,[v.value===ie?(openBlock(),createElementBlock("div",_hoisted_28$8,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[7]||(I[7]=pe=>b.value=pe),placeholder:"Tag"},null,512),[[vModelText,b.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":I[8]||(I[8]=pe=>$.value=pe),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_29$8),[[vModelText,$.value]]),createBaseVNode("button",{onClick:pe=>ae(ie)},toDisplayString$1(unref(a)("importDialog.sureYes")),9,_hoisted_30$8),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:Y},toDisplayString$1(unref(a)("importDialog.cancel")),1)])):(openBlock(),createElementBlock("button",{key:1,onClick:pe=>W(ie)},toDisplayString$1(unref(a)("importDialog.edit")),9,_hoisted_31$8)),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:pe=>L(ie)},toDisplayString$1(unref(a)("importDialog.delete")),9,_hoisted_32$8)])]))),128))])])):createCommentVNode("",!0)])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]),createVNode(TagGroupSelect$1,{ref_key:"tagGroupSelectDialogItem",ref:re,onSureSelect:z},null,512)],64))}},ImportTagDialog=_export_sfc(_sfc_main$l,[["__scopeId","data-v-1971f07a"]]),_hoisted_1$k={class:"tag-manager"},_hoisted_2$i={class:"toolbar"},_hoisted_3$i={class:"toolbar-top"},_hoisted_4$h={class:"search-container"},_hoisted_5$g=["placeholder"],_hoisted_6$g={key:0,class:"no-results"},_hoisted_7$g=["onClick"],_hoisted_8$g={class:"result-content"},_hoisted_9$g={class:"result-text"},_hoisted_10$f={class:"result-path"},_hoisted_11$f={class:"toolbar-bottom"},_hoisted_12$f={class:"group-edit-mode"},_hoisted_13$d={class:"category-tabs"},_hoisted_14$b={class:"tabs-wrapper primary-tabs"},_hoisted_15$b={class:"tabs-scroll"},_hoisted_16$b=["onClick","onMouseenter","onMouseleave"],_hoisted_17$b={class:"tab-text"},_hoisted_18$8={key:0,class:"tab-actions"},_hoisted_19$8=["onClick","title"],_hoisted_20$8=["onClick","title"],_hoisted_21$8=["onClick","title"],_hoisted_22$8=["onClick","title"],_hoisted_23$8={class:"group-edit-mode"},_hoisted_24$8={key:0,class:"tabs-wrapper group-tabs"},_hoisted_25$8={class:"tabs-scroll"},_hoisted_26$8=["onClick","onMouseenter","onMouseleave"],_hoisted_27$8={class:"tab-text"},_hoisted_28$7={key:0,class:"tab-actions"},_hoisted_29$7=["onClick","title"],_hoisted_30$7=["onClick","title"],_hoisted_31$7=["onClick","title"],_hoisted_32$7=["onClick","title"],_hoisted_33$7={class:"group-edit-mode"},_hoisted_34$7={class:"tags-content"},_hoisted_35$7={class:"tags-header"},_hoisted_36$7={class:"tags-title"},_hoisted_37$6={class:"tags-actions"},_hoisted_38$6=["disabled"],_hoisted_39$6=["disabled"],_hoisted_40$6=["disabled"],_hoisted_41$6=["disabled"],_hoisted_42$6=["disabled"],_hoisted_43$6={key:0,class:"tags-grid"},_hoisted_44$5=["onClick"],_hoisted_45$5={class:"tag-actions"},_hoisted_46$4=["onClick","title"],_hoisted_47$3=["onClick","title"],_hoisted_48$3=["onClick","title"],_hoisted_49$3={class:"tag-desc"},_hoisted_50$3=["value"],_hoisted_51$3={key:0,class:"weilin-tools-dialog-overlay"},_hoisted_52$3={class:"weilin-tools-dialog-header"},_hoisted_53$3={class:"weilin-tools-dialog-body"},_hoisted_54$2={key:0,class:"form-group"},_hoisted_55$2=["placeholder"],_hoisted_56$2={key:1,class:"form-group"},_hoisted_57$2=["placeholder"],_hoisted_58$2={class:"form-group"},_hoisted_59$2={class:"color-picker"},_hoisted_60$2={class:"color-controls"},_hoisted_61$2={class:"alpha-control"},_hoisted_62$2={class:"alpha-value"},_hoisted_63$2={class:"weilin-tools-dialog-footer"},_hoisted_64$2={key:1,class:"weilin-tools-dialog-overlay"},_hoisted_65$2={class:"weilin-tools-dialog-header"},_hoisted_66$2={class:"weilin-tools-dialog-body"},_hoisted_67$2={class:"form-group"},_hoisted_68$2=["placeholder"],_hoisted_69$2={class:"form-group"},_hoisted_70$2=["placeholder"],_hoisted_71$2={class:"form-group"},_hoisted_72$2={class:"color-picker"},_hoisted_73$1={class:"color-controls"},_hoisted_74$1={class:"alpha-control"},_hoisted_75$1={class:"alpha-value"},_hoisted_76$1={class:"weilin-tools-dialog-footer"},_hoisted_77$1={key:2,class:"weilin-tools-dialog-overlay"},_hoisted_78$1={class:"weilin-tools-dialog-header"},_hoisted_79$1={class:"weilin-tools-dialog-body"},_hoisted_80$1={class:"confirm-message"},_hoisted_81$1={class:"weilin-tools-dialog-footer"},_hoisted_82$1={key:3,class:"weilin-tools-dialog-overlay"},_hoisted_83$1={class:"weilin-tools-dialog-content"},_hoisted_84$1={class:"weilin-tools-dialog-header"},_hoisted_85$1={class:"weilin-tools-dialog-body"},_hoisted_86$1={class:"form-group"},_hoisted_87$1=["value"],_hoisted_88$1={class:"form-group"},_hoisted_89$1={class:"radio-group"},_hoisted_90$1={class:"weilin-tools-dialog-footer"},_hoisted_91$1={key:4,class:"weilin-tools-dialog-overlay"},_hoisted_92$1={class:"weilin-tools-dialog-content"},_hoisted_93$1={class:"weilin-tools-dialog-header"},_hoisted_94$1={class:"weilin-tools-dialog-body"},_hoisted_95$1={class:"form-group"},_hoisted_96$1=["value"],_hoisted_97$1={class:"form-group"},_hoisted_98$1={class:"radio-group"},_hoisted_99$1={class:"weilin-tools-dialog-footer"},_hoisted_100$1={key:5,class:"weilin-tools-dialog-overlay"},_hoisted_101$1={class:"weilin-tools-dialog-header"},_hoisted_102$1={class:"weilin-tools-dialog-body"},_hoisted_103$1={class:"config-section"},_hoisted_104$1={class:"form-group"},_hoisted_105$1={class:"width-control"},_hoisted_106$1={class:"radio-label"},_hoisted_107$1={class:"radio-label"},_hoisted_108$1={class:"form-group"},_hoisted_109$1={class:"form-group"},_hoisted_110$1={class:"config-section"},_hoisted_111$1={class:"form-group"},_hoisted_112$1={class:"width-control"},_hoisted_113$1={class:"radio-label"},_hoisted_114={class:"radio-label"},_hoisted_115={class:"form-group"},_hoisted_116={class:"form-group"},_hoisted_117={class:"weilin-tools-dialog-footer"},_sfc_main$k={__name:"tag_index",props:{tagManager:{type:String,default:"prompt"}},setup(e){useTagStore();const{t}=useI18n(),a=ref([]),n=ref(null),o=ref([]),r=ref([]),s=ref(null),l=ref(!1),c=ref(!1),f=ref(!1),u=ref(!1),d=ref("primary"),m=ref([]),g=ref(!1),v=ref(!1),b=ref("None"),$=ref("None"),w=ref(0),C=ref(0),P=ref(null),y=ref(0),E=ref(!1),R=ref(null),F=ref("before"),H=ref(null),j=ref("before"),fe=ref(null),oe=ref(null),V=ref(!1),q=ref(!1),Q=ref(!1),O=ref({primaryTab:{width:"fit-content",height:34,fontSize:10},groupTab:{width:"fit-content",height:34,fontSize:10}}),G={primaryTab:{width:"fit-content",height:34,fontSize:10},groupTab:{width:"fit-content",height:34,fontSize:10}},ee=e,A=ref({name:"",color:"rgba(255, 123, 2, .4)",id_index:"",groups:[]}),L=ref({name:"",id_index:"",color:"rgba(255, 123, 2, .4)",tags:[]}),W=ref({text:"",desc:"",id_index:"",color:"rgba(255, 123, 2, .4)"}),ae=ue=>{const le=ue.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([0-9.]+))?\)/);if(le){const[,ve,Be,ze,qe]=le,Re=`#${((1<<24)+(parseInt(ve)<<16)+(parseInt(Be)<<8)+parseInt(ze)).toString(16).slice(1)}`,je=qe?Math.round(parseFloat(qe)*100):100;return{hex:Re,alpha:je}}return{hex:"#FFFFFF",alpha:100}},Y=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*")},ne=async()=>{try{await tagsApi.getTagMainGroup().then(ue=>{a.value=ue}).catch(ue=>{console.error(ue),message$1({type:"warn",str:"message.networkError"})}),n.value&&await te(n.value.p_uuid),s.value&&await ge(s.value.g_uuid)}catch(ue){console.error("Tag管理器列表失败:",ue)}},te=async ue=>{try{await tagsApi.getTagSubGroup(ue).then(le=>{o.value=le}).catch(le=>{console.error(le),message$1({type:"warn",str:"message.networkError"})})}catch(le){console.error("二级分类列表失败:",le)}},ge=async ue=>{try{await tagsApi.getTagList(ue).then(le=>{r.value=le}).catch(le=>{console.error(le),message$1({type:"warn",str:"message.networkError"})})}catch(le){console.error("Tag列表失败:",le)}};onMounted(()=>{Ze(),window.addEventListener("click",Vt),window.addEventListener("resize",Ze),window.addEventListener("message",Et),window.addEventListener("keydown",wt),$t(),Y()}),onBeforeUnmount(()=>{window.removeEventListener("click",Vt),window.removeEventListener("resize",Ze),window.removeEventListener("message",Et),window.removeEventListener("keydown",wt)});const re=async ue=>{n.value=ue,s.value=null,g.value=!1,m.value=[],await te(ue.p_uuid)},B=async ue=>{s.value=ue,g.value=!1,m.value=[],await ge(ue.g_uuid)},z=ue=>{d.value=ue,f.value=!1,T.value=ae("rgba(255, 123, 2, .4)"),ue==="primary"?A.value={name:"",color:"rgba(255, 123, 2, .4)",groups:[]}:L.value={name:"",color:"rgba(255, 123, 2, .4)",tags:[]},l.value=!0},Z=ue=>{f.value=!0,d.value="primary",A.value={...ue},T.value=ae(ue.color),l.value=!0},D=ue=>{f.value=!0,d.value="group",L.value={...ue},T.value=ae(ue.color),l.value=!0},K=()=>{if(d.value==="primary"){if(!A.value.name){message$1({type:"warn",str:"tagManager.categoryNameRequired"});return}f.value?a.value.findIndex(le=>le.id_index===A.value.id_index)!==-1&&tagsApi.editPrimaryCategory({id_index:A.value.id_index,name:A.value.name,color:A.value.color}).then(le=>{le.code===200?(Y(),message$1({type:"success",str:"message.editSuccess"})):le.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.editFailed"})}).catch(le=>{message$1({type:"warn",str:"message.networkError"})}):tagsApi.addPrimaryCategory({name:A.value.name,color:A.value.color}).then(ue=>{ue.code===200?(Y(),message$1({type:"success",str:"message.addSuccess"})):ue.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.addFailed"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})})}else{if(!L.value.name){message$1({type:"warn",str:"tagManager.groupNameRequired"});return}f.value?tagsApi.editSubCategory({id_index:L.value.id_index,name:L.value.name,color:L.value.color}).then(ue=>{ue.code===200?(Y(),message$1({type:"success",str:"message.editSuccess"})):ue.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.editFailed"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})}):tagsApi.addSubCategory({name:L.value.name,color:L.value.color,key:n.value.id_index,p_uuid:n.value.p_uuid}).then(ue=>{ue.code===200?(Y(),message$1({type:"success",str:"message.addSuccess"})):ue.code===201?message$1({type:"error",str:"message.editNameExist"}):message$1({type:"error",str:"message.editFailed"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})})}S()},x=()=>f.value?d.value==="primary"?t("tagManager.editPrimaryCategory"):t("tagManager.editSubCategory"):d.value==="primary"?t("tagManager.addPrimaryCategory"):t("tagManager.addSubCategory"),S=()=>{l.value=!1,A.value={id:"",name:"",parentId:null,subCategories:[],backgroundColor:"transparent"},T.value={hex:"#FFFFFF",alpha:0}},I=()=>{s.value&&(u.value=!1,W.value={id:"",text:"",desc:"",categoryId:s.value.id,g_uuid:s.value.g_uuid,backgroundColor:L.value.color},T.value=ae(L.value.color),c.value=!0)},X=ue=>{u.value=!0,W.value={...ue},T.value=ae(ue.color),c.value=!0},ie=()=>{if(!W.value.text||!W.value.desc){message$1({type:"warn",str:"tagManager.textRequired"});return}u.value&&s.value?tagsApi.editTags({id_index:W.value.id_index,text:W.value.text,desc:W.value.desc,color:W.value.color}).then(ue=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.editSuccess"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})}):s.value&&tagsApi.addNewTags({id_index:s.value.id_index,g_uuid:s.value.g_uuid,text:W.value.text,desc:W.value.desc,color:W.value.color?W.value.color:"rgba(255, 123, 2, .4)"}).then(ue=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.addSuccess"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})}),pe()},pe=()=>{c.value=!1,W.value={text:"",desc:"",color:"rgba(255, 123, 2, .4)"},u.value=!1},T=ref({hex:"#FFFFFF",alpha:100}),_=computed(()=>U(T.value.hex,T.value.alpha)),M=()=>{const ue=U(T.value.hex,T.value.alpha);l.value?d.value==="primary"?A.value.color=ue:L.value.color=ue:c.value&&(W.value.color=ue)},U=(ue,le)=>{const ve=parseInt(ue.slice(1,3),16),Be=parseInt(ue.slice(3,5),16),ze=parseInt(ue.slice(5,7),16);return`rgba(${ve}, ${Be}, ${ze}, ${le/100})`},_e=ref(""),me=ref([]),J=ref(!1),ce=async()=>{J.value=_e.value.trim().length>0;const ue=_e.value.trim().toLowerCase();if(!ue){me.value=[];return}me.value=[],await tagsApi.searchTag(ue).then(le=>{me.value=le}).catch(le=>{message$1({type:"warn",str:"message.networkError"})})};watch(_e,()=>{ce()});const Se=async ue=>{const le=a.value.find(ve=>ve.p_uuid===ue.p_uuid);le&&await re(le).then(async()=>{await nextTick(async()=>{const ve=o.value.find(Be=>Be.g_uuid===ue.g_uuid);ve&&await B(ve).then(async()=>{await nextTick(()=>{y.value==1&&window.postMessage({type:"weilin_prompt_ui_insertTag",tagText:ue.text},"*"),P.value=ue.id_index,setTimeout(()=>{const Be=document.querySelector(".tag-wrapper.highlight");Be&&Be.scrollIntoView({behavior:"smooth",block:"center"})},100),setTimeout(()=>{P.value=null},5e3)})})})}),_e.value=""},xe=ue=>{if(!ue||ue==="transparent")return"var(--primary-text)";let le,ve,Be,ze=1;if(ue.startsWith("rgba")){const Re=ue.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);Re&&([,le,ve,Be,ze]=Re.map(Number))}else if(ue.startsWith("rgb")){const Re=ue.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);Re&&([,le,ve,Be]=Re.map(Number))}return ze<.5?"var(--primary-text)":(le*299+ve*587+Be*114)/1e3>128?"#000000":"#ffffff"},Ne=ue=>{ee.tagManager==="prompt"&&window.postMessage({type:"weilin_prompt_ui_insertTag",tagText:ue.text},"*")},Ce=ref(!1),Me=ref(""),Ie=ref(null),We=computed(()=>{if(!Ie.value)return"";switch(Me.value){case"category":return t("tagManager.deletePrimaryCategoryConfirm",{name:Ie.value.name});case"group":return t("tagManager.deleteGroupConfirm",{name:Ie.value.name});case"tag":return t("tagManager.deleteTagConfirm",{name:Ie.value.text});case"deleteSelected":return t("tagManager.confirmDeleteSelected");default:return""}}),Te=ue=>{Me.value="category",Ie.value=ue,Ce.value=!0},be=ue=>{Me.value="group",Ie.value=ue,Ce.value=!0},ye=ue=>{Me.value="tag",Ie.value=ue,Ce.value=!0},Le=async()=>{try{switch(Me.value){case"category":tagsApi.deletePrimaryCategory({p_uuid:Ie.value.p_uuid}).then(ue=>{Y(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})});break;case"group":tagsApi.deleteSubCategory({g_uuid:Ie.value.g_uuid}).then(ue=>{Y(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})});break;case"tag":tagsApi.deleteTags({id_index:Ie.value.id_index}).then(ue=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})});break;case"deleteSelected":tagsApi.batchDeleteTags({id_indexs:m.value}).then(ue=>{Y(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(ue=>{message$1({type:"warn",str:"message.networkError"})});break}mt()}catch(ue){console.error("删除失败:",ue)}},Qe=async ue=>{const le=`INSERT OR REPLACE INTO "tag_groups" ("name", "color", "create_time", "p_uuid") VALUES ('${ue.name.replace(/'/g,"''")}', '${ue.color}', ${ue.create_time}, '${ue.p_uuid}');`;try{const ve=await tagsApi.getTagSubGroup(ue.p_uuid);let Be=[];Be.push(le);for(const Re of ve){const je=`INSERT OR REPLACE INTO "tag_subgroups" ("name", "color", "create_time", "p_uuid", "g_uuid") VALUES ('${Re.name.replace(/'/g,"''")}', '${Re.color}', ${Re.create_time}, '${Re.p_uuid}', '${Re.g_uuid}');`;Be.push(je);try{(await tagsApi.getTagList(Re.g_uuid)).forEach(Ge=>{const Rt=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${Ge.text!=null&&Ge.text.length>0?Ge.text.replace(/'/g,"''"):""}', '${Ge.desc!=null&&Ge.desc.length>0?Ge.desc.replace(/'/g,"''"):""}', '${Ge.color}', ${Ge.create_time}, '${Ge.g_uuid}', '${uuidv7()}');`;Be.push(Rt)})}catch(dt){console.error("Tag列表失败:",dt),message$1({type:"warn",str:"message.shareTagError"})}}const ze=new Blob([Be.join(` +`)],{type:"text/sql"}),qe=document.createElement("a");qe.href=URL.createObjectURL(ze),qe.download=`${ue.name}_export_${Date.now()}.sql`,qe.click(),message$1({type:"success",str:"tagManager.outputSuccess"})}catch(ve){console.error("二级分类列表失败:",ve),message$1({type:"warn",str:"message.shareGroupError"})}},Nt=async ue=>{try{let le=[];const ve=`INSERT OR REPLACE INTO "tag_subgroups" ("name", "color", "create_time", "p_uuid", "g_uuid") VALUES ('${ue.name.replace(/'/g,"''")}', '${ue.color}', ${ue.create_time}, '${ue.p_uuid}', '${ue.g_uuid}');`;le.push(ve);try{(await tagsApi.getTagList(ue.g_uuid)).forEach(Re=>{const je=`INSERT OR REPLACE INTO "tag_tags" ("text", "desc", "color", "create_time", "g_uuid", "t_uuid") VALUES ('${Re.text!=null&&Re.text.length>0?Re.text.replace(/'/g,"''"):""}', '${Re.desc!=null&&Re.desc.length>0?Re.desc.replace(/'/g,"''"):""}', '${Re.color}', ${Re.create_time}, '${Re.g_uuid}', '${uuidv7()}');`;le.push(je)})}catch(qe){console.error("Tag列表失败:",qe),message$1({type:"warn",str:"message.shareTagError"})}const Be=new Blob([le.join(` +`)],{type:"text/sql"}),ze=document.createElement("a");ze.href=URL.createObjectURL(Be),ze.download=`${ue.name}_export_${Date.now()}.sql`,ze.click(),message$1({type:"success",str:"tagManager.outputSuccess"})}catch(le){console.error("二级分类列表失败:",le),message$1({type:"warn",str:"message.shareGroupError"})}},pt=ue=>{H.value=ue.id_index,E.value=!0},Ct=async()=>{try{tagsApi.moveTag({id_index:H.value,reference_id_index:R.value,position:F.value}).then(ue=>{Y(),E.value=!1,message$1({type:"success",str:t("message.moveSuccess")})}).catch(ue=>{message$1({type:"error",str:t("message.moveFailed")})})}catch(ue){console.error("移动标签失败:",ue),message$1({type:"error",str:t("message.moveFailed")})}},ft=ref([]),ut=ref(1),gt=(ue,le)=>{ut.value=le,le===1?(ft.value=a.value,fe.value=ue.id_index,v.value=!0):(ft.value=o.value,fe.value=ue.id_index,v.value=!0)},Xe=async()=>{if(ut.value===1)try{tagsApi.moveMainGroup({id_index:fe.value,reference_id_index:oe.value,position:j.value}).then(ue=>{Y(),v.value=!1,message$1({type:"success",str:t("message.moveSuccess")})}).catch(ue=>{message$1({type:"error",str:t("message.moveFailed")})})}catch(ue){console.error("移动标签失败:",ue),message$1({type:"error",str:t("message.moveFailed")})}else try{tagsApi.moveSubGroup({id_index:fe.value,reference_id_index:oe.value,position:j.value}).then(ue=>{Y(),v.value=!1,message$1({type:"success",str:t("message.moveSuccess")})}).catch(ue=>{message$1({type:"error",str:t("message.moveFailed")})})}catch(ue){console.error("移动标签失败:",ue),message$1({type:"error",str:t("message.moveFailed")})}},Ut=()=>{g.value=!0,V.value=!0},Bt=()=>{g.value=!1,V.value=!1,m.value=[]},it=()=>{m.value.length!==0&&(Me.value="deleteSelected",Ie.value={},Ce.value=!0)},Je=()=>{g.value=!0,q.value=!0},lt=()=>{g.value=!1,q.value=!1,m.value=[]},yt=()=>{if(m.value.length===0){message$1({type:"warn",str:"tagManager.noTagsSelected"});return}const ue={};m.value.forEach(Be=>{ue[Be.text]=Be.desc});const le=new Blob([jsYaml.dump(ue)],{type:"text/yaml"}),ve=document.createElement("a");ve.href=URL.createObjectURL(le),ve.download=`selected_tags_export_${Date.now()}.yaml`,ve.click(),message$1({type:"success",str:"tagManager.outputSuccess"}),lt()},mt=()=>{Ce.value=!1,Me.value="",Ie.value=null},ot=async()=>{try{await Y()}catch(ue){console.error("刷新标签列表失败:",ue)}},rt=ref(),bt=ref({}),Ze=()=>{if(rt.value){const ue=rt.value.getBoundingClientRect();bt.value={position:"fixed",top:`${ue.bottom}px`,left:`${ue.left}px`,width:`${ue.width}px`,zIndex:1e3}}},Et=ue=>{ue.data.type==="weilin_prompt_ui_window_change_tagManager_position"||ue.data.type==="weilin_prompt_ui_window_change_tagManager_size"||ue.data.type==="weilin_prompt_ui_window_change_tagManager_scroll"||ue.data.type==="weilin_prompt_ui_window_change_promptBox_position"||ue.data.type==="weilin_prompt_ui_window_change_promptBox_size"||ue.data.type==="weilin_prompt_ui_window_change_promptBox_scroll"?Ze():ue.data.type==="weilin_prompt_ui_window_change_click_outside"||ue.data.type==="weilin_prompt_ui_tag_manager_refresh"&&ne()},Vt=ue=>{J.value&&!rt.value.contains(ue.target)&&(J.value=!1)},wt=ue=>{ue.key==="Escape"&&(J.value=!1)},Ht=ue=>{C.value==1&&(b.value="TabID-"+ue)},zt=ue=>{b.value="None"},At=ue=>{w.value==1&&($.value="TabID-"+ue)},Lt=ue=>{$.value="None"},Dt=ref(),Mt=()=>{Dt.value.open()},$t=()=>{const ue=JSON.parse(JSON.stringify(G));try{const le=localStorage.getItem("weilin_tag_manager_tab_size_config");if(le){const ve=JSON.parse(le);O.value={...ue,...ve}}else O.value={...ue}}catch(le){console.error("读取标签尺寸配置失败:",le),O.value={...ue}}},jt=()=>{try{localStorage.setItem("weilin_tag_manager_tab_size_config",JSON.stringify(O.value)),message$1({type:"success",str:"tagManager.tabSizeConfigSaved"}),Q.value=!1}catch(ue){console.error("保存标签尺寸配置失败:",ue),message$1({type:"error",str:"tagManager.tabSizeConfigSaveFailed"})}},Wt=()=>{Q.value=!0},It=()=>{Q.value=!1,$t()},ht=()=>{const ue=JSON.parse(JSON.stringify(G));O.value={...ue}};return(ue,le)=>(openBlock(),createElementBlock("div",_hoisted_1$k,[createBaseVNode("div",_hoisted_2$i,[createBaseVNode("div",_hoisted_3$i,[createBaseVNode("button",{class:"refresh-btn",onClick:ot},le[40]||(le[40]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"refresh-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),createBaseVNode("div",_hoisted_4$h,[withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[0]||(le[0]=ve=>_e.value=ve),placeholder:unref(t)("tagManager.searchPlaceholder"),class:"search-input",ref_key:"searchInput",ref:rt,onInput:le[1]||(le[1]=ve=>J.value=_e.value.trim().length>0)},null,40,_hoisted_5$g),[[vModelText,_e.value]]),J.value?(openBlock(),createElementBlock("div",{key:0,class:"search-results",style:normalizeStyle(bt.value)},[me.value.length===0?(openBlock(),createElementBlock("div",_hoisted_6$g,toDisplayString$1(unref(t)("tagManager.noResults")),1)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(me.value,(ve,Be)=>(openBlock(),createElementBlock("div",{key:`${Be}-search_item`,class:"search-result-item",onClick:ze=>Se(ve)},[createBaseVNode("div",_hoisted_8$g,[createBaseVNode("span",_hoisted_9$g,toDisplayString$1(ve.name||ve.text),1),createBaseVNode("span",_hoisted_10$f,toDisplayString$1(ve.where),1)])],8,_hoisted_7$g))),128))],4)):createCommentVNode("",!0)]),createBaseVNode("button",{class:"import-btn",onClick:Mt},toDisplayString$1(unref(t)("tagManager.importTags")),1)]),createBaseVNode("div",_hoisted_11$f,[createBaseVNode("div",_hoisted_12$f,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":le[2]||(le[2]=ve=>y.value=ve),"true-value":1,"false-value":0},null,512),[[vModelCheckbox,y.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.autoAddSearchTag")),1)])]),createBaseVNode("button",{class:"tab-size-btn",onClick:Wt},toDisplayString$1(unref(t)("tagManager.modifyTabSize")),1)])]),createBaseVNode("div",_hoisted_13$d,[createBaseVNode("div",_hoisted_14$b,[createBaseVNode("div",_hoisted_15$b,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,(ve,Be)=>{var ze,qe,Re;return openBlock(),createElementBlock("div",{key:"Tabss-"+Be,class:normalizeClass(["tab-item",{active:((ze=n.value)==null?void 0:ze.name)===ve.name}]),style:normalizeStyle({backgroundColor:((qe=n.value)==null?void 0:qe.name)===ve.name?"var(--primary-color)":ve.color,color:((Re=n.value)==null?void 0:Re.name)===ve.name?"#ffffff":xe(ve.color),width:O.value.primaryTab.width==="fit-content"?"fit-content":O.value.primaryTab.width+"px",height:O.value.primaryTab.height+"px",fontSize:O.value.primaryTab.fontSize+"px"}),onClick:je=>re(ve),onMouseenter:je=>Ht(Be),onMouseleave:je=>zt()},[createBaseVNode("span",_hoisted_17$b,toDisplayString$1(ve.name),1),b.value=="TabID-"+Be?(openBlock(),createElementBlock("div",_hoisted_18$8,[createBaseVNode("button",{class:"action-btn move",onClick:withModifiers(je=>gt(ve,1),["stop"]),title:unref(t)("tagManager.moveGroup")},le[41]||(le[41]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"move-icon"},[createBaseVNode("path",{d:"M13 6v3h8V6h-8zm0 5v3h8v-3h-8zm-8 5v3h8v-3H5zm0-5v3h8v-3H5zm0-5v3h8V6H5z"})],-1)]),8,_hoisted_19$8),createBaseVNode("button",{class:"action-btn edit",onClick:withModifiers(je=>Z(ve),["stop"]),title:unref(t)("tagManager.edit")},le[42]||(le[42]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"})],-1)]),8,_hoisted_20$8),createBaseVNode("button",{class:"action-btn share",onClick:withModifiers(je=>Qe(ve),["stop"]),title:unref(t)("tagManager.share")},le[43]||(le[43]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"})],-1)]),8,_hoisted_21$8),createBaseVNode("button",{class:"action-btn delete",onClick:withModifiers(je=>Te(ve),["stop"]),title:unref(t)("tagManager.delete")},le[44]||(le[44]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"})],-1)]),8,_hoisted_22$8)])):createCommentVNode("",!0)],46,_hoisted_16$b)}),128)),createBaseVNode("button",{class:"add-tab",onClick:le[3]||(le[3]=ve=>z("primary"))},[le[45]||(le[45]=createBaseVNode("span",{class:"plus-icon"},"+",-1)),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.addPrimaryCategory")),1)]),createBaseVNode("div",_hoisted_23$8,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":le[4]||(le[4]=ve=>C.value=ve),"true-value":1,"false-value":0},null,512),[[vModelCheckbox,C.value]]),createTextVNode(" "+toDisplayString$1(C.value==1?unref(t)("tagManager.exitEditMode"):unref(t)("tagManager.editGroupMode")),1)])])])]),n.value?(openBlock(),createElementBlock("div",_hoisted_24$8,[createBaseVNode("div",_hoisted_25$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.value,(ve,Be)=>{var ze,qe,Re;return openBlock(),createElementBlock("div",{key:"TabsSw-"+Be,class:normalizeClass(["tab-item",{active:((ze=s.value)==null?void 0:ze.name)===ve.name}]),style:normalizeStyle({backgroundColor:((qe=s.value)==null?void 0:qe.name)===ve.name?"var(--primary-color)":ve.color,color:((Re=s.value)==null?void 0:Re.name)===ve.name?"#ffffff":xe(ve.color),width:O.value.groupTab.width==="fit-content"?"fit-content":O.value.groupTab.width+"px",height:O.value.groupTab.height+"px",fontSize:O.value.groupTab.fontSize+"px"}),onClick:je=>B(ve),onMouseenter:je=>At(Be),onMouseleave:je=>Lt()},[createBaseVNode("span",_hoisted_27$8,toDisplayString$1(ve.name),1),$.value=="TabID-"+Be?(openBlock(),createElementBlock("div",_hoisted_28$7,[createBaseVNode("button",{class:"action-btn move",onClick:withModifiers(je=>gt(ve,2),["stop"]),title:unref(t)("tagManager.moveGroup")},le[46]||(le[46]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"move-icon"},[createBaseVNode("path",{d:"M13 6v3h8V6h-8zm0 5v3h8v-3h-8zm-8 5v3h8v-3H5zm0-5v3h8v-3H5zm0-5v3h8V6H5z"})],-1)]),8,_hoisted_29$7),createBaseVNode("button",{class:"action-btn edit",onClick:withModifiers(je=>D(ve),["stop"]),title:unref(t)("tagManager.edit")},le[47]||(le[47]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"})],-1)]),8,_hoisted_30$7),createBaseVNode("button",{class:"action-btn delete",onClick:withModifiers(je=>be(ve),["stop"]),title:unref(t)("tagManager.delete")},le[48]||(le[48]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"})],-1)]),8,_hoisted_31$7),createBaseVNode("button",{class:"action-btn share",onClick:withModifiers(je=>Nt(ve),["stop"]),title:unref(t)("tagManager.share")},le[49]||(le[49]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"action-icon"},[createBaseVNode("path",{d:"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"})],-1)]),8,_hoisted_32$7)])):createCommentVNode("",!0)],46,_hoisted_26$8)}),128)),n.value?(openBlock(),createElementBlock("button",{key:0,class:"add-tab",onClick:le[5]||(le[5]=ve=>z("group"))},[le[50]||(le[50]=createBaseVNode("span",{class:"plus-icon"},"+",-1)),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.addGroup")),1)])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_33$7,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":le[6]||(le[6]=ve=>w.value=ve),"true-value":1,"false-value":0},null,512),[[vModelCheckbox,w.value]]),createTextVNode(" "+toDisplayString$1(w.value==1?unref(t)("tagManager.exitEditMode"):unref(t)("tagManager.editGroupMode")),1)])])])])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_34$7,[createBaseVNode("div",_hoisted_35$7,[createBaseVNode("div",_hoisted_36$7,toDisplayString$1(s.value?s.value.name:unref(t)("tagManager.selectCategory")),1),createBaseVNode("div",_hoisted_37$6,[createBaseVNode("button",{class:"add-btn",onClick:I,disabled:!s.value},[le[51]||(le[51]=createBaseVNode("span",{class:"plus-icon"},"+",-1)),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.addTag")),1)],8,_hoisted_38$6),q.value?(openBlock(),createElementBlock("button",{key:0,class:"share-selected-btn",onClick:yt,disabled:!m.value.length},toDisplayString$1(unref(t)("tagManager.shareSelected")),9,_hoisted_39$6)):(openBlock(),createElementBlock("button",{key:1,class:"share-btn",onClick:Je,disabled:!s.value},toDisplayString$1(unref(t)("tagManager.batchShare")),9,_hoisted_40$6)),q.value?(openBlock(),createElementBlock("button",{key:2,class:"cancel-delete-btn",onClick:lt},toDisplayString$1(unref(t)("tagManager.cancelShare")),1)):createCommentVNode("",!0),V.value?(openBlock(),createElementBlock("button",{key:3,class:"delete-btn",onClick:it,disabled:!m.value.length},toDisplayString$1(unref(t)("tagManager.deleteSelected")),9,_hoisted_41$6)):(openBlock(),createElementBlock("button",{key:4,class:"delete-action-btn",onClick:Ut,disabled:!s.value},toDisplayString$1(unref(t)("tagManager.hasDeleteAction")),9,_hoisted_42$6)),V.value?(openBlock(),createElementBlock("button",{key:5,class:"cancel-delete-btn",onClick:Bt},toDisplayString$1(unref(t)("tagManager.cancelDelete")),1)):createCommentVNode("",!0)])]),s.value?(openBlock(),createElementBlock("div",_hoisted_43$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,ve=>(openBlock(),createElementBlock("div",{key:"tag-grid-"+ve.id_index,class:normalizeClass(P.value===ve.id_index?"tag-wrapper highlight":"tag-wrapper")},[createBaseVNode("div",{class:"tag-content",onClick:Be=>Ne(ve)},[createBaseVNode("div",{class:"tag-main",style:normalizeStyle({backgroundColor:ve.color||"transparent"})},[createTextVNode(toDisplayString$1(ve.desc)+" ",1),createBaseVNode("div",_hoisted_45$5,[createBaseVNode("button",{class:"action-btn move",onClick:withModifiers(Be=>pt(ve),["stop"]),title:unref(t)("tagManager.moveTag")},le[52]||(le[52]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"move-icon"},[createBaseVNode("path",{d:"M13 6v3h8V6h-8zm0 5v3h8v-3h-8zm-8 5v3h8v-3H5zm0-5v3h8v-3H5zm0-5v3h8V6H5z"})],-1)]),8,_hoisted_46$4),createBaseVNode("button",{class:"action-btn edit",onClick:withModifiers(Be=>X(ve),["stop"]),title:unref(t)("tagManager.editTag")},le[53]||(le[53]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"edit-icon"},[createBaseVNode("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"})],-1)]),8,_hoisted_47$3),createBaseVNode("button",{class:"action-btn delete",onClick:withModifiers(Be=>ye(ve),["stop"]),title:unref(t)("tagManager.deleteTag")},le[54]||(le[54]=[createBaseVNode("svg",{viewBox:"0 0 24 24",class:"delete-icon"},[createBaseVNode("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"})],-1)]),8,_hoisted_48$3)])],4),createBaseVNode("div",_hoisted_49$3,toDisplayString$1(ve.text),1)],8,_hoisted_44$5),g.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":le[7]||(le[7]=Be=>m.value=Be),value:ve,class:"tag-checkbox"},null,8,_hoisted_50$3)),[[vModelCheckbox,m.value]]):createCommentVNode("",!0)],2))),128))])):createCommentVNode("",!0)]),l.value?(openBlock(),createElementBlock("div",_hoisted_51$3,[createBaseVNode("div",{class:"weilin-tools-dialog-content",onMousedown:le[12]||(le[12]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_52$3,[createBaseVNode("h2",null,toDisplayString$1(x()),1),createBaseVNode("button",{class:"close-btn",onClick:S},"×")]),createBaseVNode("div",_hoisted_53$3,[d.value=="primary"?(openBlock(),createElementBlock("div",_hoisted_54$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.categoryName")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[8]||(le[8]=ve=>A.value.name=ve),placeholder:unref(t)("tagManager.categoryNamePlaceholder"),onKeyup:withKeys(K,["enter"])},null,40,_hoisted_55$2),[[vModelText,A.value.name]])])):createCommentVNode("",!0),d.value=="group"?(openBlock(),createElementBlock("div",_hoisted_56$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.groupName")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[9]||(le[9]=ve=>L.value.name=ve),placeholder:unref(t)("tagManager.groupNamePlaceholder"),onKeyup:withKeys(K,["enter"])},null,40,_hoisted_57$2),[[vModelText,L.value.name]])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_58$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),createBaseVNode("div",_hoisted_59$2,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:_.value})},null,4),createBaseVNode("div",_hoisted_60$2,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":le[10]||(le[10]=ve=>T.value.hex=ve),onInput:M,class:"color-input"},null,544),[[vModelText,T.value.hex]]),createBaseVNode("div",_hoisted_61$2,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[11]||(le[11]=ve=>T.value.alpha=ve),min:"0",max:"100",onInput:M,class:"alpha-slider"},null,544),[[vModelText,T.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_62$2,toDisplayString$1(T.value.alpha)+"%",1)])])])])]),createBaseVNode("div",_hoisted_63$2,[createBaseVNode("button",{class:"cancel-btn",onClick:S},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:K},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),c.value?(openBlock(),createElementBlock("div",_hoisted_64$2,[createBaseVNode("div",{class:"weilin-tools-dialog-content",onMousedown:le[17]||(le[17]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_65$2,[createBaseVNode("h2",null,toDisplayString$1(u.value?unref(t)("tagManager.editTag"):unref(t)("tagManager.addTag")),1),createBaseVNode("button",{class:"close-btn",onClick:pe},"×")]),createBaseVNode("div",_hoisted_66$2,[createBaseVNode("div",_hoisted_67$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.text")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":le[13]||(le[13]=ve=>W.value.desc=ve),placeholder:unref(t)("tagManager.textPlaceholder")},null,8,_hoisted_68$2),[[vModelText,W.value.desc]])]),createBaseVNode("div",_hoisted_69$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.description")),1),withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":le[14]||(le[14]=ve=>W.value.text=ve),placeholder:unref(t)("tagManager.descriptionPlaceholder"),rows:"4"}," ",8,_hoisted_70$2),[[vModelText,W.value.text]])]),createBaseVNode("div",_hoisted_71$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),createBaseVNode("div",_hoisted_72$2,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:_.value})},null,4),createBaseVNode("div",_hoisted_73$1,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":le[15]||(le[15]=ve=>T.value.hex=ve),onInput:M,class:"color-input"},null,544),[[vModelText,T.value.hex]]),createBaseVNode("div",_hoisted_74$1,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[16]||(le[16]=ve=>T.value.alpha=ve),min:"0",max:"100",onInput:M,class:"alpha-slider"},null,544),[[vModelText,T.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_75$1,toDisplayString$1(T.value.alpha)+"%",1)])])])])]),createBaseVNode("div",_hoisted_76$1,[createBaseVNode("button",{class:"cancel-btn",onClick:pe},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:ie},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),Ce.value?(openBlock(),createElementBlock("div",_hoisted_77$1,[createBaseVNode("div",{class:"weilin-tools-dialog-content confirm-weilin-tools-dialog",onMousedown:le[18]||(le[18]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_78$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("common.confirmDelete")),1),createBaseVNode("button",{class:"close-btn",onClick:mt},"×")]),createBaseVNode("div",_hoisted_79$1,[createBaseVNode("p",_hoisted_80$1,toDisplayString$1(We.value),1)]),createBaseVNode("div",_hoisted_81$1,[createBaseVNode("button",{class:"cancel-btn",onClick:mt},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:Le},toDisplayString$1(unref(t)("common.delete")),1)])],32)])):createCommentVNode("",!0),E.value?(openBlock(),createElementBlock("div",_hoisted_82$1,[createBaseVNode("div",_hoisted_83$1,[createBaseVNode("div",_hoisted_84$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("tagManager.moveTag")),1),createBaseVNode("button",{class:"close-btn",onClick:le[19]||(le[19]=ve=>E.value=!1)},"×")]),createBaseVNode("div",_hoisted_85$1,[createBaseVNode("div",_hoisted_86$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.targetTag")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":le[20]||(le[20]=ve=>R.value=ve),class:"form-select"},[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,ve=>(openBlock(),createElementBlock("option",{key:ve.id_index,value:ve.id_index},toDisplayString$1(ve.desc+" --> "+ve.text),9,_hoisted_87$1))),128))],512),[[vModelSelect,R.value]])]),createBaseVNode("div",_hoisted_88$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.movePosition")),1),createBaseVNode("div",_hoisted_89$1,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[21]||(le[21]=ve=>F.value=ve),value:"before"},null,512),[[vModelRadio,F.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveBefore")),1)]),createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[22]||(le[22]=ve=>F.value=ve),value:"after"},null,512),[[vModelRadio,F.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveAfter")),1)])])])]),createBaseVNode("div",_hoisted_90$1,[createBaseVNode("button",{class:"cancel-btn",onClick:le[23]||(le[23]=ve=>E.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:Ct},toDisplayString$1(unref(t)("common.confirm")),1)])])])):createCommentVNode("",!0),v.value?(openBlock(),createElementBlock("div",_hoisted_91$1,[createBaseVNode("div",_hoisted_92$1,[createBaseVNode("div",_hoisted_93$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("tagManager.moveGroup")),1),createBaseVNode("button",{class:"close-btn",onClick:le[24]||(le[24]=ve=>v.value=!1)},"×")]),createBaseVNode("div",_hoisted_94$1,[createBaseVNode("div",_hoisted_95$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.targetGroup")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":le[25]||(le[25]=ve=>oe.value=ve),class:"form-select"},[(openBlock(!0),createElementBlock(Fragment,null,renderList(ft.value,(ve,Be)=>(openBlock(),createElementBlock("option",{key:"group_move_id"+Be,value:ve.id_index},toDisplayString$1(ve.name),9,_hoisted_96$1))),128))],512),[[vModelSelect,oe.value]])]),createBaseVNode("div",_hoisted_97$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.movePosition")),1),createBaseVNode("div",_hoisted_98$1,[createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[26]||(le[26]=ve=>j.value=ve),value:"before"},null,512),[[vModelRadio,j.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveGroupBefore")),1)]),createBaseVNode("label",null,[withDirectives(createBaseVNode("input",{class:"radio-input",type:"radio","onUpdate:modelValue":le[27]||(le[27]=ve=>j.value=ve),value:"after"},null,512),[[vModelRadio,j.value]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.moveGroupAfter")),1)])])])]),createBaseVNode("div",_hoisted_99$1,[createBaseVNode("button",{class:"cancel-btn",onClick:le[28]||(le[28]=ve=>v.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:Xe},toDisplayString$1(unref(t)("common.confirm")),1)])])])):createCommentVNode("",!0),Q.value?(openBlock(),createElementBlock("div",_hoisted_100$1,[createBaseVNode("div",{class:"weilin-tools-dialog-content tab-size-weilin-tools-dialog",onMousedown:le[39]||(le[39]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_101$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("tagManager.tabSizeConfig")),1),createBaseVNode("button",{class:"close-btn",onClick:It},"×")]),createBaseVNode("div",_hoisted_102$1,[createBaseVNode("div",_hoisted_103$1,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("tagManager.primaryTabConfig")),1),createBaseVNode("div",_hoisted_104$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabWidth")),1),createBaseVNode("div",_hoisted_105$1,[createBaseVNode("label",_hoisted_106$1,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[29]||(le[29]=ve=>O.value.primaryTab.width=ve),value:"fit-content"},null,512),[[vModelRadio,O.value.primaryTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.fitContent")),1)]),createBaseVNode("label",_hoisted_107$1,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[30]||(le[30]=ve=>O.value.primaryTab.width=ve),value:"custom"},null,512),[[vModelRadio,O.value.primaryTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.customWidth")),1)]),O.value.primaryTab.width!=="fit-content"?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"number","onUpdate:modelValue":le[31]||(le[31]=ve=>O.value.primaryTab.width=ve),min:"50",max:"300",class:"number-input"},null,512)),[[vModelText,O.value.primaryTab.width,void 0,{number:!0}]]):createCommentVNode("",!0)])]),createBaseVNode("div",_hoisted_108$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabHeight"))+" ("+toDisplayString$1(O.value.primaryTab.height)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[32]||(le[32]=ve=>O.value.primaryTab.height=ve),min:"20",max:"60",class:"range-input"},null,512),[[vModelText,O.value.primaryTab.height,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_109$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.fontSize"))+" ("+toDisplayString$1(O.value.primaryTab.fontSize)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[33]||(le[33]=ve=>O.value.primaryTab.fontSize=ve),min:"8",max:"20",class:"range-input"},null,512),[[vModelText,O.value.primaryTab.fontSize,void 0,{number:!0}]])])]),createBaseVNode("div",_hoisted_110$1,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("tagManager.groupTabConfig")),1),createBaseVNode("div",_hoisted_111$1,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabWidth")),1),createBaseVNode("div",_hoisted_112$1,[createBaseVNode("label",_hoisted_113$1,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[34]||(le[34]=ve=>O.value.groupTab.width=ve),value:"fit-content"},null,512),[[vModelRadio,O.value.groupTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.fitContent")),1)]),createBaseVNode("label",_hoisted_114,[withDirectives(createBaseVNode("input",{type:"radio","onUpdate:modelValue":le[35]||(le[35]=ve=>O.value.groupTab.width=ve),value:"custom"},null,512),[[vModelRadio,O.value.groupTab.width]]),createTextVNode(" "+toDisplayString$1(unref(t)("tagManager.customWidth")),1)]),O.value.groupTab.width!=="fit-content"?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"number","onUpdate:modelValue":le[36]||(le[36]=ve=>O.value.groupTab.width=ve),min:"50",max:"300",class:"number-input"},null,512)),[[vModelText,O.value.groupTab.width,void 0,{number:!0}]]):createCommentVNode("",!0)])]),createBaseVNode("div",_hoisted_115,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.tabHeight"))+" ("+toDisplayString$1(O.value.groupTab.height)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[37]||(le[37]=ve=>O.value.groupTab.height=ve),min:"20",max:"60",class:"range-input"},null,512),[[vModelText,O.value.groupTab.height,void 0,{number:!0}]])]),createBaseVNode("div",_hoisted_116,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.fontSize"))+" ("+toDisplayString$1(O.value.groupTab.fontSize)+"px)",1),withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":le[38]||(le[38]=ve=>O.value.groupTab.fontSize=ve),min:"8",max:"20",class:"range-input"},null,512),[[vModelText,O.value.groupTab.fontSize,void 0,{number:!0}]])])])]),createBaseVNode("div",_hoisted_117,[createBaseVNode("button",{class:"reset-btn",onClick:ht},toDisplayString$1(unref(t)("tagManager.resetDefault")),1),createBaseVNode("button",{class:"cancel-btn",onClick:It},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:jt},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),createVNode(ImportTagDialog,{ref_key:"importTagDialogItem",ref:Dt},null,512)]))}},TagManager=_export_sfc(_sfc_main$k,[["__scopeId","data-v-c9c6726d"]]),baseZIndex=100,activeWindow=ref(""),windowZIndexes=ref({}),windowManager={setActiveWindow(e){activeWindow.value!==e&&(activeWindow.value=e,Object.keys(windowZIndexes.value).forEach(t=>{windowZIndexes.value[t]=baseZIndex}),windowZIndexes.value[e]=baseZIndex+10)},getZIndex(e){return windowZIndexes.value[e]||(windowZIndexes.value[e]=baseZIndex),windowZIndexes.value[e]},registerWindow(e){windowZIndexes.value[e]||(windowZIndexes.value[e]=baseZIndex)},unregisterWindow(e){delete windowZIndexes.value[e]}},loraApi={getLoraList:async e=>await request({url:"/get_lora_list",method:"get",params:e}),getAllLoraList:async e=>await request({url:"/get_lora_load_all",method:"get",params:e}),getAllLoraStatus:async e=>await request({url:"/get_lora_load_status",method:"get",params:e}),getLoraDetail:async e=>await request({url:"/lorainfo/api/loras/info",method:"get",params:e}),getLoraRefresh:async e=>await request({url:"/lorainfo/api/loras/info/refresh",method:"get",params:e}),postUplaodImg:async(e,t,a)=>{const n=new FormData;return n.append("image",e),n.append("path",t),n.append("fileName",a),await request({url:"/lorainfo/api/loras/set/img",method:"post",data:n,headers:{"Content-Type":"multipart/form-data"}})},postLoraSave:async(e,t)=>{const a=new FormData;return a.append("json",JSON.stringify(t)),await request({url:"/lorainfo/api/loras/info?file="+e,method:"post",data:a,headers:{"Content-Type":"multipart/form-data"}})},postLoraDelet:async(e,t)=>await request({url:"/lorainfo/api/delete/loras/info/filed?file="+e,method:"post",data:{json:t}}),getLoraFolderList:async()=>await request({url:"/get_lora_folder_list",method:"post"}),getLoraRangeList:async e=>await request({url:"/get_lora_list_by_range",method:"post",data:{range:e}}),searchLoraGetFolderList:async e=>await request({url:"/get_lora_list_by_search",method:"post",data:{search:e}})};function _typeof(e){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(e)}var REG_LINK$1=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,script$a={name:"JsonString",props:{jsonValue:{type:String,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var t=this.jsonValue,a=REG_LINK$1.test(t),n;return this.expand?(n={class:{"jv-item":!0,"jv-string":!0},ref:"itemRef"},a?(t='').concat(t,""),n.innerHTML='"'.concat(t.toString(),'"')):n.innerText='"'.concat(t.toString(),'"')):n={class:{"jv-ellipsis":!0},onClick:this.toggle,innerText:"..."},h("span",{},[this.canExtend&&h("span",{class:{"jv-toggle":!0,open:this.expand},onClick:this.toggle}),h("span",{class:{"jv-holder-node":!0},ref:"holderRef"}),h("span",n)])}};script$a.__file="src/Components/types/json-string.vue";var script$9={name:"JsonUndefined",functional:!0,props:{jsonValue:{type:Object,default:null}},render:function(){return h("span",{class:{"jv-item":!0,"jv-undefined":!0},innerText:this.jsonValue===null?"null":"undefined"})}};script$9.__file="src/Components/types/json-undefined.vue";var script$8={name:"JsonNumber",functional:!0,props:{jsonValue:{type:Number,required:!0}},render:function(){var t=Number.isInteger(this.jsonValue);return h("span",{class:{"jv-item":!0,"jv-number":!0,"jv-number-integer":t,"jv-number-float":!t},innerText:this.jsonValue.toString()})}};script$8.__file="src/Components/types/json-number.vue";var script$7={name:"JsonBoolean",functional:!0,props:{jsonValue:Boolean},render:function(){return h("span",{class:{"jv-item":!0,"jv-boolean":!0},innerText:this.jsonValue.toString()})}};script$7.__file="src/Components/types/json-boolean.vue";var script$6={name:"JsonObject",props:{jsonValue:{type:Object,required:!0},keyName:{type:String,default:""},depth:{type:Number,default:0},expand:Boolean,sort:Boolean,previewMode:Boolean},data:function(){return{value:{}}},computed:{ordered:function(){var t=this;if(!this.sort)return this.value;var a={};return Object.keys(this.value).sort().forEach(function(n){a[n]=t.value[n]}),a}},watch:{jsonValue:function(t){this.setValue(t)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(t){var a=this;setTimeout(function(){a.value=t},0)},toggle:function(){this.$emit("update:expand",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event("resized"))}catch{var t=document.createEvent("Event");t.initEvent("resized",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var t=[];if(!this.previewMode&&!this.keyName&&t.push(h("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),t.push(h("span",{class:{"jv-item":!0,"jv-object":!0},innerText:"{"})),this.expand){for(var a in this.ordered)if(this.ordered.hasOwnProperty(a)){var n=this.ordered[a];t.push(h(script$1,{key:a,style:{display:this.expand?void 0:"none"},sort:this.sort,keyName:a,depth:this.depth+1,value:n,previewMode:this.previewMode}))}}return!this.expand&&Object.keys(this.value).length&&t.push(h("span",{style:{display:this.expand?"none":void 0},class:{"jv-ellipsis":!0},onClick:this.toggle,title:"click to reveal object content (keys: ".concat(Object.keys(this.ordered).join(", "),")"),innerText:"..."})),t.push(h("span",{class:{"jv-item":!0,"jv-object":!0},innerText:"}"})),h("span",t)}};script$6.__file="src/Components/types/json-object.vue";var script$5={name:"JsonArray",props:{jsonValue:{type:Array,required:!0},keyName:{type:String,default:""},depth:{type:Number,default:0},sort:Boolean,expand:Boolean,previewMode:Boolean},data:function(){return{value:[]}},watch:{jsonValue:function(t){this.setValue(t)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(t){var a=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;n===0&&(this.value=[]),setTimeout(function(){t.length>n&&(a.value.push(t[n]),a.setValue(t,n+1))},0)},toggle:function(){this.$emit("update:expand",!this.expand);try{this.$el.dispatchEvent(new Event("resized"))}catch{var t=document.createEvent("Event");t.initEvent("resized",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var t=this,a=[];return!this.previewMode&&!this.keyName&&a.push(h("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),a.push(h("span",{class:{"jv-item":!0,"jv-array":!0},innerText:"["})),this.expand&&this.value.forEach(function(n,o){a.push(h(script$1,{key:o,style:{display:t.expand?void 0:"none"},sort:t.sort,depth:t.depth+1,value:n,previewMode:t.previewMode}))}),!this.expand&&this.value.length&&a.push(h("span",{style:{display:void 0},class:{"jv-ellipsis":!0},onClick:this.toggle,title:"click to reveal ".concat(this.value.length," hidden items"),innerText:"..."})),a.push(h("span",{class:{"jv-item":!0,"jv-array":!0},innerText:"]"})),h("span",a)}};script$5.__file="src/Components/types/json-array.vue";var script$4={name:"JsonFunction",functional:!0,props:{jsonValue:{type:Function,required:!0}},render:function(){return h("span",{class:{"jv-item":!0,"jv-function":!0},attrs:{title:this.jsonValue.toString()},innerHTML:"<function>"})}};script$4.__file="src/Components/types/json-function.vue";var script$3={name:"JsonDate",inject:["timeformat"],functional:!0,props:{jsonValue:{type:Date,required:!0}},render:function(){var t=this.jsonValue,a=this.timeformat;return h("span",{class:{"jv-item":!0,"jv-string":!0},innerText:'"'.concat(a(t),'"')})}};script$3.__file="src/Components/types/json-date.vue";var REG_LINK=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,script$2={name:"JsonString",props:{jsonValue:{type:RegExp,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var t=this.jsonValue,a=REG_LINK.test(t),n;return this.expand?(n={class:{"jv-item":!0,"jv-string":!0},ref:"itemRef"},a?(t='').concat(t,""),n.innerHTML="".concat(t.toString())):n.innerText="".concat(t.toString())):n={class:{"jv-ellipsis":!0},onClick:this.toggle,innerText:"..."},h("span",{},[this.canExtend&&h("span",{class:{"jv-toggle":!0,open:this.expand},onClick:this.toggle}),h("span",{class:{"jv-holder-node":!0},ref:"holderRef"}),h("span",n)])}};script$2.__file="src/Components/types/json-regexp.vue";var script$1={name:"JsonBox",inject:["expandDepth","keyClick"],props:{value:{type:[Object,Array,String,Number,Boolean,Function,Date],default:null},keyName:{type:String,default:""},sort:Boolean,depth:{type:Number,default:0},previewMode:Boolean},data:function(){return{expand:!0}},mounted:function(){this.expand=this.previewMode||!(this.depth>=this.expandDepth)},methods:{toggle:function(){this.expand=!this.expand;try{this.$el.dispatchEvent(new Event("resized"))}catch{var t=document.createEvent("Event");t.initEvent("resized",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var t=this,a=[],n;this.value===null||this.value===void 0?n=script$9:Array.isArray(this.value)?n=script$5:Object.prototype.toString.call(this.value)==="[object Date]"?n=script$3:_typeof(this.value)==="object"?n=script$6:typeof this.value=="number"?n=script$8:typeof this.value=="string"?n=script$a:typeof this.value=="boolean"?n=script$7:typeof this.value=="function"&&(n=script$4),this.value.constructor===RegExp&&(n=script$2);var o=this.keyName&&this.value&&(Array.isArray(this.value)||_typeof(this.value)==="object"&&Object.prototype.toString.call(this.value)!=="[object Date]");return!this.previewMode&&o&&a.push(h("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),this.keyName&&a.push(h("span",{class:{"jv-key":!0},onClick:function(){t.keyClick(t.keyName)},innerText:"".concat(this.keyName,":")})),a.push(h(n,{class:{"jv-push":!0},jsonValue:this.value,keyName:this.keyName,sort:this.sort,depth:this.depth,expand:this.expand,previewMode:this.previewMode,"onUpdate:expand":function(s){t.expand=s}})),h("div",{class:{"jv-node":!0,"jv-key-node":!!this.keyName&&!o,toggle:!this.previewMode&&o}},a)}};script$1.__file="src/Components/json-box.vue";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs$1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var clipboard$2={exports:{}};(function(e,t){(function(n,o){e.exports=o()})(commonjsGlobal,function(){return function(){var a={686:function(r,s,l){l.d(s,{default:function(){return ae}});var c=l(279),f=l.n(c),u=l(370),d=l.n(u),m=l(817),g=l.n(m);function v(Y){try{return document.execCommand(Y)}catch{return!1}}var b=function(ne){var te=g()(ne);return v("cut"),te},$=b;function w(Y){var ne=document.documentElement.getAttribute("dir")==="rtl",te=document.createElement("textarea");te.style.fontSize="12pt",te.style.border="0",te.style.padding="0",te.style.margin="0",te.style.position="absolute",te.style[ne?"right":"left"]="-9999px";var ge=window.pageYOffset||document.documentElement.scrollTop;return te.style.top="".concat(ge,"px"),te.setAttribute("readonly",""),te.value=Y,te}var C=function(ne,te){var ge=w(ne);te.container.appendChild(ge);var re=g()(ge);return v("copy"),ge.remove(),re},P=function(ne){var te=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},ge="";return typeof ne=="string"?ge=C(ne,te):ne instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(ne==null?void 0:ne.type)?ge=C(ne.value,te):(ge=g()(ne),v("copy")),ge},y=P;function E(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?E=function(te){return typeof te}:E=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},E(Y)}var R=function(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},te=ne.action,ge=te===void 0?"copy":te,re=ne.container,B=ne.target,z=ne.text;if(ge!=="copy"&&ge!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(B!==void 0)if(B&&E(B)==="object"&&B.nodeType===1){if(ge==="copy"&&B.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(ge==="cut"&&(B.hasAttribute("readonly")||B.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(z)return y(z,{container:re});if(B)return ge==="cut"?$(B):y(B,{container:re})},F=R;function H(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(te){return typeof te}:H=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},H(Y)}function j(Y,ne){if(!(Y instanceof ne))throw new TypeError("Cannot call a class as a function")}function fe(Y,ne){for(var te=0;te"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf:function(te){return te.__proto__||Object.getPrototypeOf(te)},A(Y)}function L(Y,ne){var te="data-clipboard-".concat(Y);if(ne.hasAttribute(te))return ne.getAttribute(te)}var W=function(Y){V(te,Y);var ne=Q(te);function te(ge,re){var B;return j(this,te),B=ne.call(this),B.resolveOptions(re),B.listenClick(ge),B}return oe(te,[{key:"resolveOptions",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof re.action=="function"?re.action:this.defaultAction,this.target=typeof re.target=="function"?re.target:this.defaultTarget,this.text=typeof re.text=="function"?re.text:this.defaultText,this.container=H(re.container)==="object"?re.container:document.body}},{key:"listenClick",value:function(re){var B=this;this.listener=d()(re,"click",function(z){return B.onClick(z)})}},{key:"onClick",value:function(re){var B=re.delegateTarget||re.currentTarget,z=this.action(B)||"copy",Z=F({action:z,container:this.container,target:this.target(B),text:this.text(B)});this.emit(Z?"success":"error",{action:z,text:Z,trigger:B,clearSelection:function(){B&&B.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(re){return L("action",re)}},{key:"defaultTarget",value:function(re){var B=L("target",re);if(B)return document.querySelector(B)}},{key:"defaultText",value:function(re){return L("text",re)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(re){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return y(re,B)}},{key:"cut",value:function(re){return $(re)}},{key:"isSupported",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],B=typeof re=="string"?[re]:re,z=!!document.queryCommandSupported;return B.forEach(function(Z){z=z&&!!document.queryCommandSupported(Z)}),z}}]),te}(f()),ae=W},828:function(r){var s=9;if(typeof Element<"u"&&!Element.prototype.matches){var l=Element.prototype;l.matches=l.matchesSelector||l.mozMatchesSelector||l.msMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector}function c(f,u){for(;f&&f.nodeType!==s;){if(typeof f.matches=="function"&&f.matches(u))return f;f=f.parentNode}}r.exports=c},438:function(r,s,l){var c=l(828);function f(m,g,v,b,$){var w=d.apply(this,arguments);return m.addEventListener(v,w,$),{destroy:function(){m.removeEventListener(v,w,$)}}}function u(m,g,v,b,$){return typeof m.addEventListener=="function"?f.apply(null,arguments):typeof v=="function"?f.bind(null,document).apply(null,arguments):(typeof m=="string"&&(m=document.querySelectorAll(m)),Array.prototype.map.call(m,function(w){return f(w,g,v,b,$)}))}function d(m,g,v,b){return function($){$.delegateTarget=c($.target,g),$.delegateTarget&&b.call(m,$)}}r.exports=u},879:function(r,s){s.node=function(l){return l!==void 0&&l instanceof HTMLElement&&l.nodeType===1},s.nodeList=function(l){var c=Object.prototype.toString.call(l);return l!==void 0&&(c==="[object NodeList]"||c==="[object HTMLCollection]")&&"length"in l&&(l.length===0||s.node(l[0]))},s.string=function(l){return typeof l=="string"||l instanceof String},s.fn=function(l){var c=Object.prototype.toString.call(l);return c==="[object Function]"}},370:function(r,s,l){var c=l(879),f=l(438);function u(v,b,$){if(!v&&!b&&!$)throw new Error("Missing required arguments");if(!c.string(b))throw new TypeError("Second argument must be a String");if(!c.fn($))throw new TypeError("Third argument must be a Function");if(c.node(v))return d(v,b,$);if(c.nodeList(v))return m(v,b,$);if(c.string(v))return g(v,b,$);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function d(v,b,$){return v.addEventListener(b,$),{destroy:function(){v.removeEventListener(b,$)}}}function m(v,b,$){return Array.prototype.forEach.call(v,function(w){w.addEventListener(b,$)}),{destroy:function(){Array.prototype.forEach.call(v,function(w){w.removeEventListener(b,$)})}}}function g(v,b,$){return f(document.body,v,b,$)}r.exports=u},817:function(r){function s(l){var c;if(l.nodeName==="SELECT")l.focus(),c=l.value;else if(l.nodeName==="INPUT"||l.nodeName==="TEXTAREA"){var f=l.hasAttribute("readonly");f||l.setAttribute("readonly",""),l.select(),l.setSelectionRange(0,l.value.length),f||l.removeAttribute("readonly"),c=l.value}else{l.hasAttribute("contenteditable")&&l.focus();var u=window.getSelection(),d=document.createRange();d.selectNodeContents(l),u.removeAllRanges(),u.addRange(d),c=u.toString()}return c}r.exports=s},279:function(r){function s(){}s.prototype={on:function(l,c,f){var u=this.e||(this.e={});return(u[l]||(u[l]=[])).push({fn:c,ctx:f}),this},once:function(l,c,f){var u=this;function d(){u.off(l,d),c.apply(f,arguments)}return d._=c,this.on(l,d,f)},emit:function(l){var c=[].slice.call(arguments,1),f=((this.e||(this.e={}))[l]||[]).slice(),u=0,d=f.length;for(u;u=250?t.expandableCode=!0:t.expandableCode=!1)})},keyClick:function(t){this.$emit("onKeyClick",t)},onCopied:function(t){var a=this;this.copied||(this.copied=!0,setTimeout(function(){a.copied=!1},this.copyText.timeout),this.$emit("copied",t))},toggleExpandCode:function(){this.expandCode=!this.expandCode}}};function render(e,t,a,n,o,r){var s=resolveComponent("json-box");return openBlock(),createElementBlock("div",{class:normalizeClass(r.jvClass)},[a.copyable?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass("jv-tooltip ".concat(r.copyText.align||"right"))},[createBaseVNode("span",{ref:"clip",class:normalizeClass(["jv-button",{copied:o.copied}])},[renderSlot(e.$slots,"copy",{copied:o.copied},function(){return[createTextVNode(toDisplayString$1(o.copied?r.copyText.copiedText:r.copyText.copyText),1)]})],2)],2)):createCommentVNode("v-if",!0),createBaseVNode("div",{class:normalizeClass(["jv-code",{open:o.expandCode,boxed:a.boxed}])},[createVNode(s,{ref:"jsonBox",value:r.parseValue,sort:a.sort,"preview-mode":a.previewMode},null,8,["value","sort","preview-mode"])],2),o.expandableCode&&a.boxed?(openBlock(),createElementBlock("div",{key:1,class:"jv-more",onClick:t[0]||(t[0]=function(){return r.toggleExpandCode&&r.toggleExpandCode.apply(r,arguments)})},[createBaseVNode("span",{class:normalizeClass(["jv-toggle",{open:!!o.expandCode}])},null,2)])):createCommentVNode("v-if",!0)],2)}script.render=render,script.__file="src/Components/json-viewer.vue";const _hoisted_1$j={class:"lora-raw__content"},STORAGE_PREFIX$4="weilin_tools_",_sfc_main$j={__name:"lora_raw",emits:["close","update"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref({}),r=ref(!1),s={loraRaw:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},c=ref((()=>{try{const g=localStorage.getItem(`${STORAGE_PREFIX$4}loraRawState`);if(g){const v=JSON.parse(g),b={...s};return v.loraRaw&&(b.loraRaw={...s.loraRaw,...v.loraRaw}),b}}catch(g){console.error("Error loading window states:",g)}return{...s}})());watch(c,g=>{try{localStorage.setItem(`${STORAGE_PREFIX$4}loraRawState`,JSON.stringify(g))}catch(v){console.error("Error saving window states:",v)}},{deep:!0}),onMounted(()=>{windowManager.registerWindow("loraRaw")}),onUnmounted(()=>{windowManager.unregisterWindow("loraRaw")});const f=g=>{r.value=!1},u=(g,v)=>{c.value[g]&&(c.value[g].position={...v})},d=(g,v)=>{c.value[g]&&(c.value[g].size={...v})};return t({open:g=>{r.value=!0,windowManager.setActiveWindow("loraRaw"),o.value=g}}),(g,v)=>r.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("lora.rawTitle"),position:c.value.loraRaw.position,size:c.value.loraRaw.size,"z-index":unref(windowManager).getZIndex("loraRaw"),"onUpdate:position":v[0]||(v[0]=b=>u("loraRaw",b)),"onUpdate:size":v[1]||(v[1]=b=>d("loraRaw",b)),onActive:v[2]||(v[2]=b=>unref(windowManager).setActiveWindow("loraRaw")),onClose:v[3]||(v[3]=b=>f())},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1$j,[createVNode(unref(script),{value:o.value,copyable:"",sort:"",theme:"dark"},null,8,["value"])])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0)}},loraRaw=_export_sfc(_sfc_main$j,[["__scopeId","data-v-378f8ede"]]),_hoisted_1$i={key:0,class:"lora-detail__loading"},_hoisted_2$h={class:"lora-detail__body"},_hoisted_3$h={class:"lora-detail__tags"},_hoisted_4$g=["title"],_hoisted_5$f=["title"],_hoisted_6$f={class:"lora-detail__table"},_hoisted_7$f={class:"label"},_hoisted_8$f={colspan:"2"},_hoisted_9$f={colspan:"3"},_hoisted_10$e={class:"label"},_hoisted_11$e={colspan:"2",class:"hash"},_hoisted_12$e={class:"label"},_hoisted_13$c={colspan:"2"},_hoisted_14$a=["href"],_hoisted_15$a={key:1,class:"not-found"},_hoisted_16$a=["title"],_hoisted_17$a={class:"label"},_hoisted_18$7=["title"],_hoisted_19$7={key:1,class:"text"},_hoisted_20$7={class:"actions"},_hoisted_21$7={class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},_hoisted_22$7={key:0,d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},_hoisted_23$7={key:1,d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},_hoisted_24$7={class:"label"},_hoisted_25$7={colspan:"2"},_hoisted_26$7={class:"label"},_hoisted_27$7={colspan:"2"},_hoisted_28$6={class:"label"},_hoisted_29$6=["title"],_hoisted_30$6=["onUpdate:modelValue","type","onKeyup"],_hoisted_31$6={key:1,class:"text"},_hoisted_32$6={class:"actions"},_hoisted_33$6=["onClick","title"],_hoisted_34$6={class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},_hoisted_35$6={key:0,d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},_hoisted_36$6={key:1,d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},_hoisted_37$5={class:"label"},_hoisted_38$5=["onUpdate:modelValue"],_hoisted_39$5={key:1},_hoisted_40$5=["onUpdate:modelValue","type","onKeyup"],_hoisted_41$5={key:1,class:"text"},_hoisted_42$5={class:"actions"},_hoisted_43$5=["onClick","title"],_hoisted_44$4={class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},_hoisted_45$4={key:0,d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"},_hoisted_46$3={key:1,d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},_hoisted_47$2=["onClick","title"],_hoisted_48$2={class:"field-management"},_hoisted_49$2=["title"],_hoisted_50$2={key:0},_hoisted_51$2={class:"label"},_hoisted_52$2=["title"],_hoisted_53$2={key:0,class:"word-selection"},_hoisted_54$1={colspan:"2"},_hoisted_55$1={class:"word-list"},_hoisted_56$1=["onClick"],_hoisted_57$1={key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},_hoisted_58$1={key:1},_hoisted_59$1={key:0,class:"lora-detail__images"},_hoisted_60$1={class:"image-wrapper"},_hoisted_61$1=["onClick"],_hoisted_62$1=["src"],_hoisted_63$1={class:"image-info"},_hoisted_64$1={key:0,class:"info-item"},_hoisted_65$1=["href"],_hoisted_66$1={key:1,class:"info-item"},_hoisted_67$1={key:2,class:"info-item"},_hoisted_68$1={key:3,class:"info-item"},_hoisted_69$1={key:4,class:"info-item"},_hoisted_70$1={key:5,class:"info-item"},_hoisted_71$1={key:6,class:"info-item"},_hoisted_72$1={key:7,class:"info-item"},STORAGE_PREFIX$3="weilin_tools_",_sfc_main$i={__name:"lora_detail",emits:["close","update"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref({}),s=ref(!1),l=ref(),c=ref({}),f={loraDetail:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},d=ref((()=>{try{const B=localStorage.getItem(`${STORAGE_PREFIX$3}loraDetailState`);if(B){const z=JSON.parse(B),Z={...f};return z.loraDetail&&(Z.loraDetail={...f.loraDetail,...z.loraDetail}),Z}}catch(B){console.error("Error loading window states:",B)}return{...f}})());watch(d,B=>{try{localStorage.setItem(`${STORAGE_PREFIX$3}loraDetailState`,JSON.stringify(B))}catch(z){console.error("Error saving window states:",z)}},{deep:!0}),onMounted(()=>{windowManager.registerWindow("loraDetail")}),onUnmounted(()=>{windowManager.unregisterWindow("loraDetail")});const m=B=>{s.value=!1},g=(B,z)=>{d.value[B]&&(d.value[B].position={...z})},v=(B,z)=>{d.value[B]&&(d.value[B].size={...z})};t({open:B=>{s.value=!0,windowManager.setActiveWindow("loraDetail"),o.value=!0,r.value=B,nextTick(()=>{j()})}});const $=ref(""),w=ref(),C=B=>{w.value.open(B)},P=ref({}),y=ref({}),E=ref([]),R=[{key:"strengthMin",label:n("lora.strengthMin"),tip:n("lora.strengthMinTip"),type:"number"},{key:"strengthMax",label:n("lora.strengthMax"),tip:n("lora.strengthMaxTip"),type:"number"},{key:"strWeight",label:n("lora.strWeight"),tip:n("lora.strWeightTip"),type:"number"},{key:"loraWorks",label:n("lora.promptWords"),tip:n("lora.promptWordsTip")}],F=()=>{const B=`custom_${Date.now()}`;r.value.user_diy_fileds||(r.value.user_diy_fileds={}),c.value[B]={label:"新字段",type:"text"},r.value.user_diy_fileds[B]={label:"新字段",value:""},y.value[B]="",A(B)},H=async B=>{var z,Z;delete c.value[B],delete y.value[B],(Z=(z=r.value)==null?void 0:z.user_diy_fileds)!=null&&Z[B]&&delete r.value.user_diy_fileds[B],await nextTick(async()=>{await ae(B)})},j=()=>{$.value=r.value.name,r.value={},E.value=[],y.value={name:!1,nameValue:"",min:!1,minValue:"",max:!1,maxValue:"",notes:!1,notesValue:"",loraWorks:!1,loraWorksValue:""},loraApi.getLoraDetail({file:$.value,refresh:!1,light:!1}).then(B=>{r.value=B.data,nextTick(function(){var z,Z,D,K,x,S;r.value.name=r.value.name||((Z=(z=r.value.raw)===null||z===void 0?void 0:z.metadata)===null||Z===void 0?void 0:Z.ss_output_name===void 0?Z["modelspec.title"]:Z.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(D=r.value.strengthMin)!==null&&D!==void 0?D:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(K=r.value.strengthMax)!==null&&K!==void 0?K:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(x=r.value.userNote)!==null&&x!==void 0?x:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(S=r.value.loraWorks)!==null&&S!==void 0?S:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1})}).catch(B=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},fe=B=>{let Z=new URL(B).pathname.split("/").pop();return Z=Z.split("?")[0],decodeURIComponent(Z)},oe=async B=>{try{const z=await fetch(B),Z=fe(B),D=await z.blob();loraApi.postUplaodImg(D,r.value.file,Z).then(K=>{message$1({type:"success",str:"message.saveSuccess"})}).catch(K=>{message$1({type:"warn",str:"message.unknownError"})})}catch{message$1({type:"warn",str:"message.unknownError"})}},V=computed(()=>{var B;return(B=r.value.links)==null?void 0:B.find(z=>z.includes("civitai.com/models"))}),q=computed(()=>{var B,z;return((z=(B=r.value.raw)==null?void 0:B.civitai)==null?void 0:z.error)==="Model not found"}),Q=computed(()=>r.value.trainedWords||[]),O=async()=>{var z;const B=((z=l.value)==null?void 0:z.scrollTop)||0;o.value=!0,loraApi.getLoraRefresh({file:$.value}).then(Z=>{r.value=Z.data,nextTick(function(){var D,K,x,S,I,X;r.value.name=r.value.name||((K=(D=r.value.raw)===null||D===void 0?void 0:D.metadata)===null||K===void 0?void 0:K.ss_output_name===void 0?K["modelspec.title"]:K.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(x=r.value.strengthMin)!==null&&x!==void 0?x:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(S=r.value.strengthMax)!==null&&S!==void 0?S:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(I=r.value.userNote)!==null&&I!==void 0?I:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(X=r.value.loraWorks)!==null&&X!==void 0?X:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1}),nextTick(function(){o.value=!1}),l.value&&(l.value.scrollTop=B),message$1({type:"success",str:"message.dataLoaded"})}).catch(Z=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},G=B=>{P.value[B]?A(B):ee(B)},ee=B=>{var z,Z;P.value[B]=!0,B in c.value?y.value[B]=((Z=(z=r.value.user_diy_fileds)==null?void 0:z[B])==null?void 0:Z.value)||"":y.value[B]=r.value[B],nextTick(()=>{B==="name"&&nameInput.value&&nameInput.value.focus()})},A=B=>{B in c.value?(r.value.user_diy_fileds||(r.value.user_diy_fileds={}),r.value.user_diy_fileds[B]={label:c.value[B].label,value:y.value[B]}):r.value[B]=y.value[B],W(r.value),P.value[B]=!1},L=B=>{P.value[B]=!1,y.value[B]=r.value[B]},W=B=>{var Z;const z=((Z=l.value)==null?void 0:Z.scrollTop)||0;o.value=!0,loraApi.postLoraSave($.value,B).then(D=>{r.value=D.data,nextTick(function(){var K,x,S,I,X,ie;r.value.name=r.value.name||((x=(K=r.value.raw)===null||K===void 0?void 0:K.metadata)===null||x===void 0?void 0:x.ss_output_name===void 0?x["modelspec.title"]:x.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(S=r.value.strengthMin)!==null&&S!==void 0?S:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(I=r.value.strengthMax)!==null&&I!==void 0?I:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(X=r.value.userNote)!==null&&X!==void 0?X:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(ie=r.value.loraWorks)!==null&&ie!==void 0?ie:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1,nextTick(function(){l.value&&(l.value.scrollTop=z)})}),message$1({type:"success",str:"message.saveSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},ae=async B=>{var Z;const z=((Z=l.value)==null?void 0:Z.scrollTop)||0;o.value=!0,await loraApi.postLoraDelet($.value,B).then(D=>{r.value=D.data,nextTick(function(){var K,x,S,I,X,ie;r.value.name=r.value.name||((x=(K=r.value.raw)===null||K===void 0?void 0:K.metadata)===null||x===void 0?void 0:x.ss_output_name===void 0?x["modelspec.title"]:x.ss_output_name)||"",y.value.nameValue=r.value.name,r.value.strengthMin=(S=r.value.strengthMin)!==null&&S!==void 0?S:"",y.value.minValue=r.value.strengthMin,r.value.strengthMax=(I=r.value.strengthMax)!==null&&I!==void 0?I:"",y.value.maxValue=r.value.strengthMax,r.value.userNote=(X=r.value.userNote)!==null&&X!==void 0?X:"",y.value.notesValue=r.value.userNote,r.value.loraWorks=(ie=r.value.loraWorks)!==null&&ie!==void 0?ie:"",y.value.loraWorksValue=r.value.loraWorks,r.value.user_diy_fileds&&(c.value=r.value.user_diy_fileds),o.value=!1,nextTick(function(){l.value&&(l.value.scrollTop=z)})}),message$1({type:"success",str:"message.deleteSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},Y=B=>{const z=E.value.indexOf(B);z===-1?E.value.push(B):E.value.splice(z,1)},ne=B=>E.value.includes(B),te=async()=>{E.value.length&&navigator.clipboard.writeText(E.value).then(B=>{message$1({type:"success",str:"message.copySuccess"})},B=>{message$1({type:"warn",str:"message.copyFailed"})})};ref(!1),ref(!1),computed(()=>o.value?n("common.loading"):n("common.ready"));const ge=ref(!0),re=()=>{ge.value=!ge.value};return(B,z)=>(openBlock(),createElementBlock(Fragment,null,[s.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("lora.title"),position:d.value.loraDetail.position,size:d.value.loraDetail.size,"z-index":unref(windowManager).getZIndex("loraDetail"),"onUpdate:position":z[5]||(z[5]=Z=>g("loraDetail",Z)),"onUpdate:size":z[6]||(z[6]=Z=>v("loraDetail",Z)),onActive:z[7]||(z[7]=Z=>unref(windowManager).setActiveWindow("loraDetail")),onClose:z[8]||(z[8]=Z=>m())},{default:withCtx(()=>{var Z;return[createBaseVNode("div",{class:"lora-detail__content",ref_key:"loraContent",ref:l},[o.value?(openBlock(),createElementBlock("div",_hoisted_1$i,z[9]||(z[9]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24",class:"is-rotating"},[createBaseVNode("path",{d:"M12 4V2C6.48 2 2 6.48 2 12H4C4 7.58 7.58 4 12 4Z"})],-1)]))):createCommentVNode("",!0),createBaseVNode("div",_hoisted_2$h,[z[24]||(z[24]=createBaseVNode("div",{class:"lora-detail__title"},"Lora 信息",-1)),createBaseVNode("ul",_hoisted_3$h,[r.value.type?(openBlock(),createElementBlock("li",{key:0,class:normalizeClass(["lora-detail__tag",`-type-${r.value.type.toLowerCase()}`]),title:unref(n)("lora.type")},toDisplayString$1(r.value.type),11,_hoisted_4$g)):createCommentVNode("",!0),r.value.baseModel?(openBlock(),createElementBlock("li",{key:1,class:normalizeClass(["lora-detail__tag",`-basemodel-${r.value.baseModel.toLowerCase()}`]),title:unref(n)("lora.baseModel")},toDisplayString$1(r.value.baseModel),11,_hoisted_5$f)):createCommentVNode("",!0)]),createBaseVNode("table",_hoisted_6$f,[createBaseVNode("tbody",null,[createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_7$f,toDisplayString$1(unref(n)("lora.file")),1),createBaseVNode("td",_hoisted_8$f,toDisplayString$1(r.value.file),1),createBaseVNode("td",_hoisted_9$f,[createBaseVNode("button",{class:"fetch-btn",onClick:z[0]||(z[0]=D=>C(r.value.raw.metadata))},toDisplayString$1(unref(n)("lora.seeLoraRaw")),1)])]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_10$e,toDisplayString$1(unref(n)("lora.hash")),1),createBaseVNode("td",_hoisted_11$e,toDisplayString$1(r.value.sha256),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_12$e,toDisplayString$1(unref(n)("lora.civitai")),1),createBaseVNode("td",_hoisted_13$c,[V.value?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("a",{href:V.value,target:"_blank",class:"civitai-link"},[z[10]||(z[10]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(n)("lora.viewOnCivitai")),1)],8,_hoisted_14$a),createBaseVNode("button",{style:{"margin-left":"10px"},class:"refresh-btn",onClick:O},toDisplayString$1(unref(n)("lora.getCivitData")),1)],64)):q.value?(openBlock(),createElementBlock("div",_hoisted_15$a,[createBaseVNode("i",null,toDisplayString$1(unref(n)("lora.modelNotFound")),1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.modelNotFoundTip")},z[11]||(z[11]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_16$a))])):(openBlock(),createElementBlock("button",{key:2,class:"fetch-btn",onClick:O},toDisplayString$1(unref(n)("lora.fetchFromCivitai")),1))])]),createBaseVNode("tr",{class:normalizeClass({"is-editing":P.value.name})},[createBaseVNode("td",_hoisted_17$a,[createTextVNode(toDisplayString$1(unref(n)("lora.name"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.nameTip")},z[12]||(z[12]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_18$7))]),createBaseVNode("td",null,[P.value.name?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":z[1]||(z[1]=D=>y.value.name=D),type:"text",onKeyup:[z[2]||(z[2]=withKeys(D=>A("name"),["enter"])),z[3]||(z[3]=withKeys(D=>L("name"),["esc"]))],ref:"nameInput"},null,544)),[[vModelText,y.value.name]]):(openBlock(),createElementBlock("span",_hoisted_19$7,toDisplayString$1(r.value.name),1))]),createBaseVNode("td",_hoisted_20$7,[createBaseVNode("button",{class:"edit-btn",onClick:z[4]||(z[4]=D=>G("name"))},[(openBlock(),createElementBlock("svg",_hoisted_21$7,[P.value.name?(openBlock(),createElementBlock("path",_hoisted_22$7)):(openBlock(),createElementBlock("path",_hoisted_23$7))]))])])],2),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_24$7,toDisplayString$1(unref(n)("lora.baseModel")),1),createBaseVNode("td",_hoisted_25$7,toDisplayString$1(!r.value.baseModelFile&&!r.value.baseModelFile?"":(r.value.baseModel||"")+(r.value.baseModelFile?` + (${r.value.baseModelFile})`:"")),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_26$7,toDisplayString$1(unref(n)("lora.skipClip")),1),createBaseVNode("td",_hoisted_27$7,toDisplayString$1((B._t=(B._s=r.value.raw)===null||B._s===void 0?void 0:B._s.metadata)===null||B._t===void 0?void 0:B._t.ss_clip_skip),1)]),(openBlock(),createElementBlock(Fragment,null,renderList(R,D=>createBaseVNode("tr",{key:D.key,class:normalizeClass({"is-editing":P.value[D.key]})},[createBaseVNode("td",_hoisted_28$6,[createTextVNode(toDisplayString$1(D.label)+" ",1),D.tip?(openBlock(),createElementBlock("svg",{key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:D.tip},z[13]||(z[13]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_29$6)):createCommentVNode("",!0)]),createBaseVNode("td",null,[P.value[D.key]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":K=>y.value[D.key]=K,type:D.type||"text",onKeyup:[withKeys(K=>A(D.key),["enter"]),withKeys(K=>L(D.key),["esc"])]},null,40,_hoisted_30$6)),[[vModelDynamic,y.value[D.key]]]):(openBlock(),createElementBlock("span",_hoisted_31$6,toDisplayString$1(r.value[D.key]),1))]),createBaseVNode("td",_hoisted_32$6,[createBaseVNode("button",{class:"edit-btn",onClick:K=>G(D.key),title:unref(n)("promptBox.settings.edit")},[(openBlock(),createElementBlock("svg",_hoisted_34$6,[P.value[D.key]?(openBlock(),createElementBlock("path",_hoisted_35$6)):(openBlock(),createElementBlock("path",_hoisted_36$6))]))],8,_hoisted_33$6)])],2)),64)),(openBlock(!0),createElementBlock(Fragment,null,renderList(c.value,(D,K)=>{var x;return openBlock(),createElementBlock("tr",{key:K,class:normalizeClass({"is-editing":P.value[K]})},[createBaseVNode("td",_hoisted_37$5,[P.value[K]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":S=>D.label=S,type:"text"},null,8,_hoisted_38$5)),[[vModelText,D.label]]):(openBlock(),createElementBlock("span",_hoisted_39$5,toDisplayString$1(D.label),1))]),createBaseVNode("td",null,[P.value[K]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":S=>y.value[K]=S,type:D.type||"text",onKeyup:[withKeys(S=>A(K),["enter"]),withKeys(S=>L(K),["esc"])]},null,40,_hoisted_40$5)),[[vModelDynamic,y.value[K]]]):(openBlock(),createElementBlock("span",_hoisted_41$5,toDisplayString$1(r.value.user_diy_fileds?(x=r.value.user_diy_fileds[K])==null?void 0:x.value:""),1))]),createBaseVNode("td",_hoisted_42$5,[createBaseVNode("button",{class:"edit-btn",onClick:S=>G(K),title:unref(n)("promptBox.settings.edit")},[(openBlock(),createElementBlock("svg",_hoisted_44$4,[P.value[K]?(openBlock(),createElementBlock("path",_hoisted_45$4)):(openBlock(),createElementBlock("path",_hoisted_46$3))]))],8,_hoisted_43$5),createBaseVNode("button",{style:{"margin-left":"5px",color:"#f87171"},onClick:S=>H(K),class:"edit-btn",title:unref(n)("promptBox.settings.delete")},toDisplayString$1(unref(n)("promptBox.settings.delete")),9,_hoisted_47$2)])],2)}),128)),createBaseVNode("div",_hoisted_48$2,[createBaseVNode("button",{onClick:F,class:"add-btn",title:unref(n)("lora.addDiyFiled")},toDisplayString$1(unref(n)("lora.addDiyFiled")),9,_hoisted_49$2)]),Q.value.length?(openBlock(),createElementBlock("tr",_hoisted_50$2,[createBaseVNode("td",_hoisted_51$2,[createTextVNode(toDisplayString$1(unref(n)("lora.trainedWords"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.trainedWordsTip")},z[14]||(z[14]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_52$2)),E.value.length?(openBlock(),createElementBlock("div",_hoisted_53$2,[createTextVNode(toDisplayString$1(unref(n)("lora.selectedWords",{count:E.value.length}))+" ",1),createBaseVNode("button",{class:"copy-btn",onClick:te},toDisplayString$1(unref(n)("common.copy")),1)])):createCommentVNode("",!0)]),createBaseVNode("td",_hoisted_54$1,[createBaseVNode("ul",_hoisted_55$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(ge.value?Q.value.slice(0,10):Q.value,(D,K)=>(openBlock(),createElementBlock("li",{key:"words-"+K,class:normalizeClass(["word-item",{"is-selected":ne(D.word),"is-hidden":ge.value&&K>=10}]),onClick:x=>Y(D.word)},[createBaseVNode("span",null,toDisplayString$1(D.word),1),D.civitai?(openBlock(),createElementBlock("svg",_hoisted_57$1,z[15]||(z[15]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"},null,-1)]))):createCommentVNode("",!0),D.count!=null?(openBlock(),createElementBlock("small",_hoisted_58$1,toDisplayString$1(D.count),1)):createCommentVNode("",!0)],10,_hoisted_56$1))),128)),Q.value.length>10?(openBlock(),createElementBlock("li",{key:0,class:"toggle-btn",onClick:re},toDisplayString$1(ge.value?unref(n)("common.showMore"):unref(n)("common.showLess")),1)):createCommentVNode("",!0)])])])):createCommentVNode("",!0)])]),(Z=r.value.images)!=null&&Z.length?(openBlock(),createElementBlock("ul",_hoisted_59$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value.images,(D,K)=>(openBlock(),createElementBlock("li",{key:K,class:"lora-detail__image-item"},[createBaseVNode("figure",null,[createBaseVNode("div",_hoisted_60$1,[createBaseVNode("div",{class:"image-action",onClick:x=>oe(D.url)}," 设置为Lora封面 ",8,_hoisted_61$1),createBaseVNode("img",{src:D.url},null,8,_hoisted_62$1)]),createBaseVNode("figcaption",_hoisted_63$1,[D.civitaiUrl?(openBlock(),createElementBlock("span",_hoisted_64$1,[createBaseVNode("a",{href:D.civitaiUrl,target:"_blank",class:"civitai-link"},z[16]||(z[16]=[createTextVNode(" C站 civitai "),createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"})],-1)]),8,_hoisted_65$1)])):createCommentVNode("",!0),D.seed?(openBlock(),createElementBlock("span",_hoisted_66$1,[z[17]||(z[17]=createBaseVNode("label",null,"种子 seed",-1)),createTextVNode(" "+toDisplayString$1(D.seed),1)])):createCommentVNode("",!0),D.steps?(openBlock(),createElementBlock("span",_hoisted_67$1,[z[18]||(z[18]=createBaseVNode("label",null,"步数 steps",-1)),createTextVNode(" "+toDisplayString$1(D.steps),1)])):createCommentVNode("",!0),D.cfg?(openBlock(),createElementBlock("span",_hoisted_68$1,[z[19]||(z[19]=createBaseVNode("label",null,"引导系数 cfg",-1)),createTextVNode(" "+toDisplayString$1(D.cfg),1)])):createCommentVNode("",!0),D.sampler?(openBlock(),createElementBlock("span",_hoisted_69$1,[z[20]||(z[20]=createBaseVNode("label",null,"采样器 sampler",-1)),createTextVNode(" "+toDisplayString$1(D.sampler),1)])):createCommentVNode("",!0),D.model?(openBlock(),createElementBlock("span",_hoisted_70$1,[z[21]||(z[21]=createBaseVNode("label",null,"基础模型 model",-1)),createTextVNode(" "+toDisplayString$1(D.model),1)])):createCommentVNode("",!0),D.positive?(openBlock(),createElementBlock("span",_hoisted_71$1,[z[22]||(z[22]=createBaseVNode("label",null,"正向提示词 positive",-1)),createTextVNode(" "+toDisplayString$1(D.positive),1)])):createCommentVNode("",!0),D.negative?(openBlock(),createElementBlock("span",_hoisted_72$1,[z[23]||(z[23]=createBaseVNode("label",null,"反向提示词 negative",-1)),createTextVNode(" "+toDisplayString$1(D.negative),1)])):createCommentVNode("",!0)])])]))),128))])):createCommentVNode("",!0)])],512)]}),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),createVNode(loraRaw,{ref_key:"loraRawRef",ref:w},null,512)],64))}},loraDetail=_export_sfc(_sfc_main$i,[["__scopeId","data-v-1b0da0a7"]]),_hoisted_1$h={key:0,class:"lora-detail__loading"},_hoisted_2$g={class:"lora-detail__body"},_hoisted_3$g={class:"lora-detail__tags"},_hoisted_4$f=["title"],_hoisted_5$e=["title"],_hoisted_6$e={class:"lora-detail__table"},_hoisted_7$e={class:"label"},_hoisted_8$e={colspan:"2"},_hoisted_9$e={class:"label"},_hoisted_10$d={colspan:"2",class:"hash"},_hoisted_11$d={class:"label"},_hoisted_12$d={colspan:"2"},_hoisted_13$b=["href"],_hoisted_14$9={key:1,class:"not-found"},_hoisted_15$9=["title"],_hoisted_16$9={class:"label"},_hoisted_17$9=["title"],_hoisted_18$6={key:1,class:"text"},_hoisted_19$6={class:"label"},_hoisted_20$6={colspan:"2"},_hoisted_21$6={class:"label"},_hoisted_22$6={colspan:"2"},_hoisted_23$6={class:"label"},_hoisted_24$6=["title"],_hoisted_25$6={class:"text"},_hoisted_26$6={class:"actions"},_hoisted_27$6=["onClick","title"],_hoisted_28$5={class:"label"},_hoisted_29$5=["onUpdate:modelValue"],_hoisted_30$5={key:1},_hoisted_31$5={class:"text"},_hoisted_32$5={class:"actions"},_hoisted_33$5=["onClick","title"],_hoisted_34$5={key:0},_hoisted_35$5={class:"label"},_hoisted_36$5=["title"],_hoisted_37$4={key:0,class:"word-selection"},_hoisted_38$4={colspan:"2"},_hoisted_39$4={class:"word-list"},_hoisted_40$4=["onClick"],_hoisted_41$4={key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},_hoisted_42$4={key:1},_hoisted_43$4={key:0,class:"lora-detail__images",style:{display:"grid","grid-template-columns":"repeat(2, 1fr)",gap:"12px"}},_hoisted_44$3={class:"image-wrapper",style:{height:"200px"}},_hoisted_45$3=["src"],_sfc_main$h={__name:"lora_card",props:{fileNmae:{type:String,required:!0},paddingLeft:{type:Number,required:!1,default:100},paddingTop:{type:Number,required:!1,default:100}},emits:["cardLeave","cardenter"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref({}),s=ref(),l=ref({}),c=e,f=ref(""),u=a,d=()=>{u("cardLeave")},m=()=>{u("cardenter")},g=ref({}),v=ref({}),b=ref([]),$=[{key:"strengthMin",label:n("lora.strengthMin"),tip:n("lora.strengthMinTip"),type:"number"},{key:"strengthMax",label:n("lora.strengthMax"),tip:n("lora.strengthMaxTip"),type:"number"},{key:"strWeight",label:n("lora.strWeight"),tip:n("lora.strWeightTip"),type:"number"},{key:"loraWorks",label:n("lora.promptWords"),tip:n("lora.promptWordsTip")}];onMounted(()=>{w()});const w=()=>{f.value=c.fileNmae,r.value={},b.value=[],v.value={name:!1,nameValue:"",min:!1,minValue:"",max:!1,maxValue:"",notes:!1,notesValue:"",loraWorks:!1,loraWorksValue:""},loraApi.getLoraDetail({file:f.value,refresh:!1,light:!1}).then(G=>{r.value=G.data,nextTick(function(){var ee,A,L,W,ae,Y;r.value.name=r.value.name||((A=(ee=r.value.raw)===null||ee===void 0?void 0:ee.metadata)===null||A===void 0?void 0:A.ss_output_name===void 0?A["modelspec.title"]:A.ss_output_name)||"",v.value.nameValue=r.value.name,r.value.strengthMin=(L=r.value.strengthMin)!==null&&L!==void 0?L:"",v.value.minValue=r.value.strengthMin,r.value.strengthMax=(W=r.value.strengthMax)!==null&&W!==void 0?W:"",v.value.maxValue=r.value.strengthMax,r.value.userNote=(ae=r.value.userNote)!==null&&ae!==void 0?ae:"",v.value.notesValue=r.value.userNote,r.value.loraWorks=(Y=r.value.loraWorks)!==null&&Y!==void 0?Y:"",v.value.loraWorksValue=r.value.loraWorks,l.value=r.value.user_diy_fileds,o.value=!1})}).catch(G=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},C=G=>{navigator.clipboard.writeText(G).then(()=>{message$1({type:"success",str:"已复制到剪贴板"})}).catch(ee=>{message$1({type:"error",str:"复制失败"})})},P=computed(()=>{var G;return(G=r.value.links)==null?void 0:G.find(ee=>ee.includes("civitai.com/models"))}),y=computed(()=>{var G,ee;return((ee=(G=r.value.raw)==null?void 0:G.civitai)==null?void 0:ee.error)==="Model not found"}),E=computed(()=>r.value.trainedWords||[]),R=async()=>{var ee;const G=((ee=s.value)==null?void 0:ee.scrollTop)||0;o.value=!0,loraApi.getLoraRefresh({file:f.value}).then(A=>{r.value=A.data,nextTick(function(){var L,W,ae,Y,ne;r.value.name=r.value.name||((W=(L=r.value.raw)===null||L===void 0?void 0:L.metadata)===null||W===void 0?void 0:W.ss_output_name===void 0?W["modelspec.title"]:W.ss_output_name)||"",v.value.nameValue=r.value.name,r.value.strengthMin=(ae=r.value.strengthMin)!==null&&ae!==void 0?ae:"",v.value.minValue=r.value.strengthMin,r.value.strengthMax=(Y=r.value.strengthMax)!==null&&Y!==void 0?Y:"",v.value.maxValue=r.value.strengthMax,r.value.userNote=(ne=r.value.userNote)!==null&&ne!==void 0?ne:"",v.value.notesValue=r.value.userNote,o.value=!1}),nextTick(function(){o.value=!1}),s.value&&(s.value.scrollTop=G),message$1({type:"success",str:"message.dataLoaded"})}).catch(A=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},F=G=>{G in l.value?(r.value.user_diy_fileds||(r.value.user_diy_fileds={}),r.value.user_diy_fileds[G]={label:l.value[G].label,value:v.value[G]}):r.value[G]=v.value[G],j(r.value),g.value[G]=!1},H=G=>{g.value[G]=!1,v.value[G]=r.value[G]},j=G=>{var A;const ee=((A=s.value)==null?void 0:A.scrollTop)||0;o.value=!0,loraApi.postLoraSave(f.value,G).then(L=>{r.value=L.data,nextTick(function(){var W,ae,Y,ne,te;r.value.name=r.value.name||((ae=(W=r.value.raw)===null||W===void 0?void 0:W.metadata)===null||ae===void 0?void 0:ae.ss_output_name===void 0?ae["modelspec.title"]:ae.ss_output_name)||"",v.value.nameValue=r.value.name,r.value.strengthMin=(Y=r.value.strengthMin)!==null&&Y!==void 0?Y:"",v.value.minValue=r.value.strengthMin,r.value.strengthMax=(ne=r.value.strengthMax)!==null&&ne!==void 0?ne:"",v.value.maxValue=r.value.strengthMax,r.value.userNote=(te=r.value.userNote)!==null&&te!==void 0?te:"",v.value.notesValue=r.value.userNote,o.value=!1,nextTick(function(){s.value&&(s.value.scrollTop=ee)})}),message$1({type:"success",str:"message.saveSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"}),o.value=!1})},fe=G=>{const ee=b.value.indexOf(G);ee===-1?b.value.push(G):b.value.splice(ee,1)},oe=G=>b.value.includes(G),V=async()=>{b.value.length&&navigator.clipboard.writeText(b.value).then(G=>{message$1({type:"success",str:"message.copySuccess"})},G=>{message$1({type:"warn",str:"message.copyFailed"})})},q=ref(!0),Q=()=>{q.value=!q.value};return t({refresh:()=>{w()}}),(G,ee)=>{var A;return openBlock(),createElementBlock("div",{class:"lora_catd_content",style:normalizeStyle(["left: "+e.paddingLeft+"px;top: "+e.paddingTop+"px;",{"font-size":"0.55em"}]),onMouseenter:m,onMouseleave:d},[createBaseVNode("div",{class:"close-button",onClick:d,title:"关闭"},ee[3]||(ee[3]=[createBaseVNode("span",null,"×",-1)])),createBaseVNode("div",{class:"lora-detail__content",ref_key:"loraContent",ref:s},[o.value?(openBlock(),createElementBlock("div",_hoisted_1$h,ee[4]||(ee[4]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24",class:"is-rotating"},[createBaseVNode("path",{d:"M12 4V2C6.48 2 2 6.48 2 12H4C4 7.58 7.58 4 12 4Z"})],-1)]))):createCommentVNode("",!0),createBaseVNode("div",_hoisted_2$g,[ee[13]||(ee[13]=createBaseVNode("div",{class:"lora-detail__title"},"Lora 信息",-1)),createBaseVNode("ul",_hoisted_3$g,[r.value.type?(openBlock(),createElementBlock("li",{key:0,class:normalizeClass(["lora-detail__tag",`-type-${r.value.type.toLowerCase()}`]),title:unref(n)("lora.type")},toDisplayString$1(r.value.type),11,_hoisted_4$f)):createCommentVNode("",!0),r.value.baseModel?(openBlock(),createElementBlock("li",{key:1,class:normalizeClass(["lora-detail__tag",`-basemodel-${r.value.baseModel.toLowerCase()}`]),title:unref(n)("lora.baseModel")},toDisplayString$1(r.value.baseModel),11,_hoisted_5$e)):createCommentVNode("",!0)]),createBaseVNode("table",_hoisted_6$e,[createBaseVNode("tbody",null,[createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_7$e,toDisplayString$1(unref(n)("lora.file")),1),createBaseVNode("td",_hoisted_8$e,toDisplayString$1(r.value.file),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_9$e,toDisplayString$1(unref(n)("lora.hash")),1),createBaseVNode("td",_hoisted_10$d,toDisplayString$1(r.value.sha256),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_11$d,toDisplayString$1(unref(n)("lora.civitai")),1),createBaseVNode("td",_hoisted_12$d,[P.value?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("a",{href:P.value,target:"_blank",class:"civitai-link"},[ee[5]||(ee[5]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"civitai-icon"},[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(n)("lora.viewOnCivitai")),1)],8,_hoisted_13$b),createBaseVNode("button",{style:{"margin-left":"10px"},class:"refresh-btn",onClick:R},toDisplayString$1(unref(n)("lora.getCivitData")),1)],64)):y.value?(openBlock(),createElementBlock("div",_hoisted_14$9,[createBaseVNode("i",null,toDisplayString$1(unref(n)("lora.modelNotFound")),1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.modelNotFoundTip")},ee[6]||(ee[6]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_15$9))])):(openBlock(),createElementBlock("button",{key:2,class:"fetch-btn",onClick:R},toDisplayString$1(unref(n)("lora.fetchFromCivitai")),1))])]),createBaseVNode("tr",{class:normalizeClass({"is-editing":g.value.name})},[createBaseVNode("td",_hoisted_16$9,[createTextVNode(toDisplayString$1(unref(n)("lora.name"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.nameTip")},ee[7]||(ee[7]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_17$9))]),createBaseVNode("td",null,[g.value.name?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":ee[0]||(ee[0]=L=>v.value.name=L),type:"text",onKeyup:[ee[1]||(ee[1]=withKeys(L=>F("name"),["enter"])),ee[2]||(ee[2]=withKeys(L=>H("name"),["esc"]))],ref:"nameInput"},null,544)),[[vModelText,v.value.name]]):(openBlock(),createElementBlock("span",_hoisted_18$6,toDisplayString$1(r.value.name),1))])],2),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_19$6,toDisplayString$1(unref(n)("lora.baseModel")),1),createBaseVNode("td",_hoisted_20$6,toDisplayString$1(!r.value.baseModelFile&&!r.value.baseModelFile?"":(r.value.baseModel||"")+(r.value.baseModelFile?` + (${r.value.baseModelFile})`:"")),1)]),createBaseVNode("tr",null,[createBaseVNode("td",_hoisted_21$6,toDisplayString$1(unref(n)("lora.skipClip")),1),createBaseVNode("td",_hoisted_22$6,toDisplayString$1((G._t=(G._s=r.value.raw)===null||G._s===void 0?void 0:G._s.metadata)===null||G._t===void 0?void 0:G._t.ss_clip_skip),1)]),(openBlock(),createElementBlock(Fragment,null,renderList($,L=>createBaseVNode("tr",{key:L.key,class:normalizeClass({"is-editing":g.value[L.key]})},[createBaseVNode("td",_hoisted_23$6,[createTextVNode(toDisplayString$1(L.label)+" ",1),L.tip?(openBlock(),createElementBlock("svg",{key:0,viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:L.tip},ee[8]||(ee[8]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_24$6)):createCommentVNode("",!0)]),createBaseVNode("td",null,[createBaseVNode("span",_hoisted_25$6,toDisplayString$1(r.value[L.key]),1)]),createBaseVNode("td",_hoisted_26$6,[createBaseVNode("button",{class:"copy-btn",onClick:W=>C(r.value[L.key]),title:unref(n)("lora.copy")},[ee[9]||(ee[9]=createBaseVNode("svg",{class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"})],-1)),createTextVNode(" "+toDisplayString$1(unref(n)("lora.copy")),1)],8,_hoisted_27$6)])],2)),64)),(openBlock(!0),createElementBlock(Fragment,null,renderList(l.value,(L,W)=>{var ae;return openBlock(),createElementBlock("tr",{key:W,class:normalizeClass({"is-editing":g.value[W]})},[createBaseVNode("td",_hoisted_28$5,[g.value[W]?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":Y=>L.label=Y,type:"text"},null,8,_hoisted_29$5)),[[vModelText,L.label]]):(openBlock(),createElementBlock("span",_hoisted_30$5,toDisplayString$1(L.label),1))]),createBaseVNode("td",null,[createBaseVNode("span",_hoisted_31$5,toDisplayString$1(r.value.user_diy_fileds?(ae=r.value.user_diy_fileds[W])==null?void 0:ae.value:""),1)]),createBaseVNode("td",_hoisted_32$5,[createBaseVNode("button",{class:"copy-btn",onClick:Y=>{var ne;return C((ne=r.value.user_diy_fileds[W])==null?void 0:ne.value)},title:unref(n)("lora.copy")},[ee[10]||(ee[10]=createBaseVNode("svg",{class:"svg-icon",viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"})],-1)),createTextVNode(" "+toDisplayString$1(unref(n)("lora.copy")),1)],8,_hoisted_33$5)])],2)}),128)),E.value.length?(openBlock(),createElementBlock("tr",_hoisted_34$5,[createBaseVNode("td",_hoisted_35$5,[createTextVNode(toDisplayString$1(unref(n)("lora.trainedWords"))+" ",1),(openBlock(),createElementBlock("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"help-icon",title:unref(n)("lora.trainedWordsTip")},ee[11]||(ee[11]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"},null,-1)]),8,_hoisted_36$5)),b.value.length?(openBlock(),createElementBlock("div",_hoisted_37$4,[createTextVNode(toDisplayString$1(unref(n)("lora.selectedWords",{count:b.value.length}))+" ",1),createBaseVNode("button",{class:"copy-btn",onClick:V},toDisplayString$1(unref(n)("common.copy")),1)])):createCommentVNode("",!0)]),createBaseVNode("td",_hoisted_38$4,[createBaseVNode("ul",_hoisted_39$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(q.value?E.value.slice(0,10):E.value,(L,W)=>(openBlock(),createElementBlock("li",{key:"words-"+W,class:normalizeClass(["word-item",{"is-selected":oe(L.word),"is-hidden":q.value&&W>=10}]),onClick:ae=>fe(L.word)},[createBaseVNode("span",null,toDisplayString$1(L.word),1),L.civitai?(openBlock(),createElementBlock("svg",_hoisted_41$4,ee[12]||(ee[12]=[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15v-4H8l4-7v4h3l-4 7z"},null,-1)]))):createCommentVNode("",!0),L.count!=null?(openBlock(),createElementBlock("small",_hoisted_42$4,toDisplayString$1(L.count),1)):createCommentVNode("",!0)],10,_hoisted_40$4))),128)),E.value.length>10?(openBlock(),createElementBlock("li",{key:0,class:"toggle-btn",onClick:Q},toDisplayString$1(q.value?unref(n)("common.showMore"):unref(n)("common.showLess")),1)):createCommentVNode("",!0)])])])):createCommentVNode("",!0)])]),(A=r.value.images)!=null&&A.length?(openBlock(),createElementBlock("ul",_hoisted_43$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value.images,(L,W)=>(openBlock(),createElementBlock("li",{key:W,class:"lora-detail__image-item"},[createBaseVNode("div",_hoisted_44$3,[createBaseVNode("img",{src:L.url,style:{width:"100%",height:"100%","object-fit":"contain"}},null,8,_hoisted_45$3)])]))),128))])):createCommentVNode("",!0)])],512)],36)}}},LoraCard=_export_sfc(_sfc_main$h,[["__scopeId","data-v-b11ec087"]]),_hoisted_1$g={class:"header-actions"},_hoisted_2$f=["title"],_hoisted_3$f=["onMouseover","onDragstart","onDrop"],_hoisted_4$e={class:"lora-info"},_hoisted_5$d={class:"lora-header"},_hoisted_6$d=["title"],_hoisted_7$d={class:"lora-actions"},_hoisted_8$d=["onClick","title"],_hoisted_9$d=["onClick","title"],_hoisted_10$c={class:"lora-weights-row"},_hoisted_11$c={class:"weight-item-col"},_hoisted_12$c=["onUpdate:modelValue"],_hoisted_13$a={class:"weight-item-col"},_hoisted_14$8=["onUpdate:modelValue"],_hoisted_15$8={class:"switch-item-col"},_hoisted_16$8={class:"switch"},_hoisted_17$8=["checked","onChange"],prefix$4="weilin_prompt_ui_",_sfc_main$g={__name:"lora_stack",props:{isOpen:{type:Boolean,default:!1},selectedLoras:{type:Array,default:[]}},emits:["close","update:selectedLoras"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref(""),s=ref(100),l=ref(0),c=ref(),f=ref(!1),u=ref(!1),d=ref(),m=e,g=a,v=(oe,V)=>{if(u.value=!0,r.value===oe&&o.value)return;const Q=V.currentTarget.getBoundingClientRect();let G={left:Q.left-450-10,top:Q.top};G.left<10&&(G.left=Q.right+10),G.top=Math.max(10,Math.min(G.top,window.innerHeight-310)),s.value=G.left,l.value=G.top,o.value=!0,r.value=oe,nextTick(()=>{d.value.refresh()})},b=()=>{u.value=!1,setTimeout(()=>{!f.value&&!u.value&&(o.value=!1,r.value="",f.value=!1)},200)},$=()=>{f.value=!0,u.value=!0},w=()=>{o.value=!1,r.value="",f.value=!1},C=()=>{window.postMessage({type:"weilin_prompt_ui_openLoraManager_addLora"},"*")},P=oe=>{oe.hidden=!oe.hidden},y=oe=>{console.log(m.selectedLoras),m.selectedLoras&&!m.selectedLoras.find(V=>V.name===oe.name)&&(m.selectedLoras.push({name:oe.name,weight:1,text_encoder_weight:1,...oe}),g("update:selectedLoras",m.selectedLoras))},E=oe=>{const V=m.selectedLoras.findIndex(q=>q.name===oe.name);V>-1&&(m.selectedLoras.splice(V,1),g("update:selectedLoras",m.selectedLoras))},R=ref(),F=oe=>{R.value.open({name:oe.lora})};window.addEventListener("message",oe=>{oe.data.type==="weilin_prompt_ui_selectLora"&&y(oe.data.lora)});const H=ref(null),j=oe=>{H.value=oe},fe=oe=>{if(H.value===null||H.value===oe)return;const V=m.selectedLoras.splice(H.value,1)[0];m.selectedLoras.splice(oe,0,V),H.value=null,g("update:selectedLoras",m.selectedLoras)};return t({addLora:y,removeLora:E}),(oe,V)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix$4}lora-stack`),style:normalizeStyle([{width:e.isOpen?"300px":"0"},{paddingRight:e.isOpen?"16px":"0"}])},[createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-content`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-header`)},[createBaseVNode("h3",{class:normalizeClass(`${prefix$4}lora-title`)},toDisplayString$1(unref(n)("controls.loraStack")),3),createBaseVNode("div",_hoisted_1$g,[createBaseVNode("button",{class:normalizeClass(`${prefix$4}add-btn`),onClick:C,title:unref(n)("controls.addLora")},V[2]||(V[2]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})],-1)]),10,_hoisted_2$f),createBaseVNode("button",{class:normalizeClass(`${prefix$4}close-btn`),onClick:V[0]||(V[0]=q=>oe.$emit("close"))},V[3]||(V[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),2)])],2),createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-body`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$4}lora-list`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(e.selectedLoras,(q,Q)=>(openBlock(),createElementBlock("div",{ref_for:!0,ref_key:"loraStackItemRef",ref:c,key:q.name,class:normalizeClass(["lora-item",{"hidden-lora":q.hidden}]),onMouseover:O=>v(q.lora,O),onMouseleave:b,draggable:"true",onDragstart:O=>j(Q),onDragover:V[1]||(V[1]=withModifiers(()=>{},["prevent"])),onDrop:O=>fe(Q)},[createBaseVNode("div",_hoisted_4$e,[createBaseVNode("div",_hoisted_5$d,[createBaseVNode("span",{class:"lora-name",title:q.name},toDisplayString$1(q.name),9,_hoisted_6$d),createBaseVNode("div",_hoisted_7$d,[createBaseVNode("button",{class:"look-on-btn",onClick:O=>F(q),title:unref(n)("controls.lookOnLora")},V[4]||(V[4]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"14",height:"14"},[createBaseVNode("path",{d:"M576.5 930.2H163.1c-52.9 0-96-43.1-96-96v-672c0-52.9 43.1-96 96-96h672c52.9 0 96 43.1 96 96V577c0 17.7-14.3 32-32 32s-32-14.3-32-32V162.2c0-17.6-14.4-32-32-32h-672c-17.6 0-32 14.4-32 32v672c0 17.6 14.4 32 32 32h413.4c17.7 0 32 14.3 32 32s-14.3 32-32 32z","p-id":"3466"}),createBaseVNode("path",{d:"M692.4 322.3H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h446.7c17.7 0 32 14.3 32 32s-14.3 32-32 32zM388.5 530.2H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.6-14.3 32-31.9 32zM388.5 738H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.7-14.3 32-31.9 32z","p-id":"3467"}),createBaseVNode("path",{d:"M624.1 792.5c-94.8 0-172-77.2-172-172s77.2-172 172-172 172 77.2 172 172-77.1 172-172 172z m0-280c-59.6 0-108 48.4-108 108s48.4 108 108 108 108-48.4 108-108-48.4-108-108-108z","p-id":"3468"}),createBaseVNode("path",{d:"M820.8 864.2L710.5 753.9c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L866 818.9c12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.2 0z","p-id":"3469"})],-1)]),8,_hoisted_8$d),createBaseVNode("button",{class:"remove-btn",onClick:O=>E(q),title:unref(n)("controls.removeLora")},V[5]||(V[5]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,_hoisted_9$d)])]),createBaseVNode("div",_hoisted_10$c,[createBaseVNode("div",_hoisted_11$c,[createBaseVNode("label",null,toDisplayString$1(unref(n)("loraManager.modelWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":O=>q.weight=O,class:"lora-weight",step:"0.1"},null,8,_hoisted_12$c),[[vModelText,q.weight]])]),createBaseVNode("div",_hoisted_13$a,[createBaseVNode("label",null,toDisplayString$1(unref(n)("loraManager.textEncoderWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":O=>q.text_encoder_weight=O,class:"lora-weight",step:"0.1"},null,8,_hoisted_14$8),[[vModelText,q.text_encoder_weight]])]),createBaseVNode("div",_hoisted_15$8,[createBaseVNode("label",null,toDisplayString$1(q.hidden?unref(n)("lora.hideLora"):unref(n)("lora.showLora")),1),createBaseVNode("label",_hoisted_16$8,[createBaseVNode("input",{type:"checkbox",checked:!q.hidden,onChange:O=>P(q)},null,40,_hoisted_17$8),V[6]||(V[6]=createBaseVNode("span",{class:"slider"},null,-1))])])])])],42,_hoisted_3$f))),128))],2)],2)],2),createVNode(loraDetail,{ref_key:"loraDetailLoraStackRef",ref:R},null,512),o.value?(openBlock(),createBlock(LoraCard,{key:0,ref_key:"loraCardItem",ref:d,fileNmae:r.value,paddingLeft:s.value,paddingTop:l.value,onCardLeave:w,onCardenter:$},null,8,["fileNmae","paddingLeft","paddingTop"])):createCommentVNode("",!0)],6))}},LoraStack=_export_sfc(_sfc_main$g,[["__scopeId","data-v-22aa3dae"]]),_hoisted_1$f={class:"main-label-manager"},_hoisted_2$e={class:"mlm-header"},_hoisted_3$e={class:"mlm-grid"},_hoisted_4$d=["disabled"],_hoisted_5$c=["disabled"],_hoisted_6$c=["onClick","title","onDragstart","onDragenter","onDrop"],_hoisted_7$c={class:"mlm-item-main"},_hoisted_8$c={key:0,class:"pin-badge"},_hoisted_9$c={class:"mlm-name"},_hoisted_10$b={class:"mlm-item-actions"},_hoisted_11$b=["title","onClick"],_hoisted_12$b=["title","onClick"],STORAGE_KEY="weilin_prompt_ui_main_labels_v1",_sfc_main$f={__name:"main_label_manager",props:{selectedId:{type:String,default:null}},emits:["select"],setup(e,{expose:t,emit:a}){const n=e,o=a,r=ref(""),s=ref([]),l=ref(n.selectedId),c=ref(!0),f=ref(!0),u=ref("time"),d=ref(null),m=ref(null);function g(){const W={items:s.value,settings:{sortMode:u.value,sortTimeDesc:c.value,sortNameAsc:f.value,selectedId:l.value}};localStorage.setItem(STORAGE_KEY,JSON.stringify(W))}function v(){try{const W=localStorage.getItem(STORAGE_KEY);if(!W)throw new Error("no data");const ae=JSON.parse(W),Y=Array.isArray(ae)?ae:(ae==null?void 0:ae.items)??[],ne=Array.isArray(ae)?{}:(ae==null?void 0:ae.settings)??{};s.value=Y.map((te,ge)=>({id:te.id??C(),name:te.name??"未命名",content:te.content??"",createdAt:te.createdAt??te.updatedAt??Date.now(),updatedAt:te.updatedAt??te.createdAt??Date.now(),pinned:!!te.pinned,highlighted:!!te.highlighted,order:typeof te.order=="number"?te.order:ge})),ne.sortMode&&(u.value=ne.sortMode),typeof ne.sortTimeDesc=="boolean"&&(c.value=ne.sortTimeDesc),typeof ne.sortNameAsc=="boolean"&&(f.value=ne.sortNameAsc),(typeof ne.selectedId=="string"||ne.selectedId===null)&&(l.value=ne.selectedId)}catch{s.value=[]}}onMounted(()=>{var W;if(v(),s.value.length===0){const ae=C();s.value.push({id:ae,name:"示例标签",content:"",createdAt:Date.now(),updatedAt:Date.now(),pinned:!1,highlighted:!1,order:0}),g(),l.value=ae;return}if(!P(l.value))l.value=((W=s.value[0])==null?void 0:W.id)??null;else{const ae=P(l.value);o("select",ae?{...ae}:null)}}),watch(()=>n.selectedId,W=>{l.value=W}),watch([u,c,f],()=>{g()}),watch(s,()=>{g()},{deep:!0}),watch(l,W=>{g();const ae=W?P(W):null;o("select",ae?{...ae}:null)});const b=computed(()=>{const W=r.value.trim().toLowerCase();return W?s.value.filter(ae=>(ae.name||"").toLowerCase().includes(W)):s.value}),$=computed(()=>{const W=[...b.value];if(u.value==="manual")return W.sort((te,ge)=>{const re=te.order??0,B=ge.order??0;return re!==B?re-B:(te.createdAt??0)-(ge.createdAt??0)});const ae=(te,ge)=>{const re=te.name||"",B=ge.name||"";let z=re.localeCompare(B,void 0,{numeric:!0,sensitivity:"base"});return f.value||(z=-z),z},Y=(te,ge)=>{let re=te.createdAt-ge.createdAt;return c.value&&(re=-re),re},ne=te=>te.pinned?0:1;return W.sort((te,ge)=>{const re=ne(te)-ne(ge);if(re!==0)return re;if(u.value==="name"){const z=ae(te,ge);return z!==0?z:Y(te,ge)}const B=Y(te,ge);return B!==0?B:ae(te,ge)}),W}),w=computed(()=>P(l.value));function C(){return"mlm_"+Math.random().toString(36).slice(2)+"_"+Date.now()}function P(W){return s.value.find(ae=>ae.id===W)||null}function y(W){l.value=W.id,o("select",{...W})}function E(){const W=window.prompt("新建标签名称:","");if(!W)return;O(),u.value="manual";const ae=C(),Y=Date.now(),ne=s.value.reduce((ge,re)=>typeof re.order=="number"?Math.min(ge,re.order):ge,0),te={id:ae,name:W.trim(),content:"",createdAt:Y,updatedAt:Y,pinned:!1,highlighted:!1,order:ne-1};s.value.push(te),g(),l.value=ae,o("select",{...te})}function R(){const W=w.value;if(!W)return;const ae=window.prompt("重命名标签:",W.name||"");ae&&(W.name=ae.trim(),W.updatedAt=Date.now(),g())}function F(){const W=w.value;if(!W||!window.confirm(`确定删除标签"${W.name}"吗?`))return;const ae=s.value.findIndex(Y=>Y.id===W.id);ae>=0&&s.value.splice(ae,1),g(),s.value.length?(l.value=s.value[0].id,o("select",{...s.value[0]})):(l.value=null,o("select",null))}function H(){u.value="time",c.value=!c.value}function j(){u.value="name",f.value=!f.value}function fe(W){W.pinned=!W.pinned,W.updatedAt=Date.now(),g()}function oe(W){W.highlighted=!W.highlighted,W.updatedAt=Date.now(),g()}function V(W){const ae=w.value;ae&&(ae.content=W??"",ae.updatedAt=Date.now(),clearTimeout(q),q=setTimeout(()=>g(),400))}let q=null;function Q(W){try{const ae=new Date(W);return`${ae.getFullYear()}-${(ae.getMonth()+1).toString().padStart(2,"0")}-${ae.getDate().toString().padStart(2,"0")} ${ae.getHours().toString().padStart(2,"0")}:${ae.getMinutes().toString().padStart(2,"0")}`}catch{return""}}function O(){$.value.forEach((ae,Y)=>{ae.order=Y})}function G(W,ae,Y){try{Y.dataTransfer.effectAllowed="move"}catch{}d.value=W.id,m.value=null,O(),u.value="manual"}function ee(W){d.value&&(m.value=W.id)}function A(W){if(!d.value)return;const ae=d.value,Y=W==null?void 0:W.id;if(!Y||ae===Y)return L();const ne=[...$.value],te=ne.findIndex(B=>B.id===ae),ge=ne.findIndex(B=>B.id===Y);if(te<0||ge<0)return L();const[re]=ne.splice(te,1);ne.splice(ge,0,re),ne.forEach((B,z)=>{B.order=z}),g(),L()}function L(){d.value=null,m.value=null}return t({updateSelectedContent:V}),(W,ae)=>(openBlock(),createElementBlock("div",_hoisted_1$f,[createBaseVNode("div",_hoisted_2$e,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":ae[0]||(ae[0]=Y=>r.value=Y),class:"mlm-search",type:"text",placeholder:"搜索标签…"},null,512),[[vModelText,r.value]]),createBaseVNode("button",{class:"mlm-add",onClick:E},"+ 新建标签"),createBaseVNode("div",_hoisted_3$e,[createBaseVNode("button",{class:"mlm-sort",onClick:H}," 按时间 "+toDisplayString$1(c.value?"后→先":"先→后"),1),createBaseVNode("button",{class:"mlm-sort",onClick:j}," 按名称 "+toDisplayString$1(f.value?"A→Z":"Z→A"),1),createBaseVNode("button",{class:"mlm-edit",disabled:!w.value,onClick:R},"编辑",8,_hoisted_4$d),createBaseVNode("button",{class:"mlm-delete",disabled:!w.value,onClick:F},"删除",8,_hoisted_5$c)])]),createVNode(TransitionGroup,{name:"mlm",tag:"div",class:"mlm-list"},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList($.value,(Y,ne)=>(openBlock(),createElementBlock("div",{key:Y.id,class:normalizeClass(["mlm-item",{active:Y.id===l.value,pinned:!!Y.pinned,highlighted:!!Y.highlighted},{dragging:d.value===Y.id,"drag-over":m.value===Y.id}]),onClick:te=>y(Y),title:Y.updatedAt?Q(Y.updatedAt):"",draggable:"true",onDragstart:te=>G(Y,ne,te),onDragenter:withModifiers(te=>ee(Y),["prevent"]),onDragover:ae[1]||(ae[1]=withModifiers(()=>{},["prevent"])),onDrop:withModifiers(te=>A(Y),["prevent"]),onDragend:L},[createBaseVNode("div",_hoisted_7$c,[Y.pinned?(openBlock(),createElementBlock("span",_hoisted_8$c,"置顶")):createCommentVNode("",!0),createBaseVNode("span",_hoisted_9$c,toDisplayString$1(Y.name),1)]),createBaseVNode("div",_hoisted_10$b,[createBaseVNode("button",{class:normalizeClass(["mini-btn","pin",{active:Y.pinned}]),title:Y.pinned?"取消置顶":"置顶",onClick:withModifiers(te=>fe(Y),["stop"])},ae[2]||(ae[2]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"currentColor"},[createBaseVNode("path",{d:"M4 14h4v6h8v-6h4L12 4 4 14z"})],-1)]),10,_hoisted_11$b),createBaseVNode("button",{class:normalizeClass(["mini-btn","highlight",{active:Y.highlighted}]),title:Y.highlighted?"取消高亮":"高亮",onClick:withModifiers(te=>oe(Y),["stop"])},ae[3]||(ae[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"currentColor"},[createBaseVNode("path",{d:"M12 17.27L18.18 21 16.54 13.97 22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"})],-1)]),10,_hoisted_12$b)])],42,_hoisted_6$c))),128))]),_:1})]))}},MainLabelManager=_export_sfc(_sfc_main$f,[["__scopeId","data-v-a435a9c3"]]);function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var i18nJsautotranslate$1={exports:{}},i18nJsautotranslate=i18nJsautotranslate$1.exports,hasRequiredI18nJsautotranslate;function requireI18nJsautotranslate(){return hasRequiredI18nJsautotranslate||(hasRequiredI18nJsautotranslate=1,function(module){if(typeof translate=="object"&&typeof translate.version=="string")throw new Error("translate.js 已经加载过一次了,当前是重复加载,避免你的翻译出现异常,已帮你拦截此次加载。本信息只是给你一个提示,你可以检查一下你的项目中是否出现了重复引入 translate.js ,当然,这个异常并不会影响到你的具体使用,它已经自动帮你处理拦截了这个异常,只不过提示出来是让你知道,你的代码里出现了重复引入的情况。");var translate={version:"3.13.12.20250307",useVersion:"v2",setUseVersion2:function(){translate.useVersion="v2",console.log("提示:自 v2.10 之后的版本默认就是使用V2版本(当前版本为:"+translate.version+"), translate.setUseVersion2() 可以不用再加这一行了。当然加了也无所谓,只是加了跟不加是完全一样的。")},translate:null,includedLanguages:"zh-CN,zh-TW,en",resourcesUrl:"//res.zvo.cn/translate",selectLanguageTag:{documentId:"translate",show:!0,languages:"",alreadyRender:!1,selectOnChange:function(e){var t=e.target.value;translate.changeLanguage(t)},refreshRender:function(){let e=document.getElementById(translate.selectLanguageTag.documentId+"SelectLanguage");e&&e.parentNode.removeChild(e),translate.selectLanguageTag.alreadyRender=!1,translate.selectLanguageTag.render()},customUI:function(e){var t=function(l){translate.selectLanguageTag.selectOnChange(l)},a=document.createElement("select");a.id=translate.selectLanguageTag.documentId+"SelectLanguage",a.className=translate.selectLanguageTag.documentId+"SelectLanguage";for(var n=translate.language.getCurrent(),o=0;o0){var s=(","+translate.selectLanguageTag.languages+",").toLowerCase();if(s.indexOf(","+e[o].id.toLowerCase()+",")<0)continue}n!=null&&typeof n<"u"&&n.length>0?n==e[o].id&&r.setAttribute("selected","selected"):e[o].id==translate.language.getLocal()&&r.setAttribute("selected","selected"),r.appendChild(document.createTextNode(e[o].name)),a.appendChild(r)}window.addEventListener?a.addEventListener("change",t,!1):a.attachEvent("onchange",t),document.getElementById(translate.selectLanguageTag.documentId).appendChild(a)},render:function(){if(!translate.selectLanguageTag.alreadyRender&&(translate.selectLanguageTag.alreadyRender=!0,!!translate.selectLanguageTag.show)){if(document.getElementById(translate.selectLanguageTag.documentId)==null){var e=document.getElementsByTagName("body");if(e.length==0){console.log("body tag not find, translate.selectLanguageTag.render() is not show Select Language");return}var t=e[0],a=document.createElement("div");a.id=translate.selectLanguageTag.documentId,t.appendChild(a)}else if(document.getElementById(translate.selectLanguageTag.documentId+"SelectLanguage")!=null)return;translate.request.post(translate.request.api.language,{},function(n){if(n.result==0){console.log("load language list error : "+n.info);return}translate.selectLanguageTag.customUI(n.list)},null)}}},localLanguage:"zh-CN",googleTranslateElementInit:function(){var e="";document.getElementById("translate")!=null&&(e="translate"),translate.translate=new google.translate.TranslateElement({pageLanguage:"zh-CN",includedLanguages:translate.selectLanguageTag.languages,layout:0},e)},execute_v1:function(){console.log("=====ERROR======"),console.log("The v1 version has been discontinued since 2022. Please use the latest V3 version and refer to: http://translate.zvo.cn/41162.html")},setCookie:function(e,t){var a=e+"="+escape(t);document.cookie=a},getCookie:function(e){for(var t=document.cookie,a=t.split("; "),n=0;n0?e.substr(e.lastIndexOf("/")+1,e.length-1):translate.localLanguage},changeLanguage:function(e){var t=",en,de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr,";if(t.indexOf(","+e+",")>-1){console.log("您使用的是v1版本的切换语种方式,v1已在2021年就以废弃,请更换为v2,参考文档: http://translate.zvo.cn/41549.html"),translate.check();var a="/"+translate.localLanguage+"/"+e,n=document.location.host.split(".");if(n.length>2){var o=n[n.length-2]+"."+n[n.length-1];document.cookie="googtrans=;expires="+new Date(1)+";domain="+o+";path=/",document.cookie="googtrans="+a+";domain="+o+";path=/"}translate.setCookie("googtrans",""+a),translate.refreshCurrentPage();return}if(translate.useVersion="v2",translate.to!=null&&translate.to.length>0&&translate.to!=translate.language.getLocal())var r=!0;if(translate.to=e,translate.storage.set("to",e),r)location.reload();else{translate.execute();const s=document.querySelectorAll("iframe");for(let l=0;l"u")return!1;for(var t=e,a=100;a-- >0;){if(t==null||typeof t>"u")return!1;var n=translate.element.getNodeName(t).toLowerCase();if(n.length>0){if(n=="body"||n=="html"||n=="#document")return!1;if(translate.ignore.tag.indexOf(n)>-1)return!0}if(t.className!=null){var o=t.className;if(o==null||typeof o!="string")continue;o=o.trim().split(" ");for(var r=0;r0&&translate.ignore.class.indexOf(o[r])>-1)return!0}if(t.id!=null&&typeof t.id<"u"&&translate.ignore.id.indexOf(t.id)>-1)return!0;t=t.parentNode}return!1},text:[]},refreshCurrentPage:function(){location.reload()},nomenclature:{data:new Array,old_Data:[],set:function(e){alert("请将 translate.nomenclature.set 更换为 append,具体使用可参考: https://github.com/xnx3/translate ")},append:function(e,t,a){typeof translate.nomenclature.data[e]>"u"&&(translate.nomenclature.data[e]=new Array),typeof translate.nomenclature.data[e][t]>"u"&&(translate.nomenclature.data[e][t]=new Array);for(var n=a.split(` `),o=0;o"u"||typeof translate.nomenclature.data[translate.language.getLocal()][translate.to]>"u")return e;for(var t in translate.nomenclature.data[translate.language.getLocal()][translate.to]){var a=translate.nomenclature.data[translate.language.getLocal()][translate.to][t];if(typeof a!="function"){var n=e.indexOf(t);if(n>-1)if(translate.language.getLocal()=="english"){var o="";if(n!=0){o=e.substr(n-1,1);var r=translate.language.getCharLanguage(o);if(r=="english"||r=="romance")continue}var s="";if(n+t.length!=e.length){s=e.substr(n+t.length,1);var r=translate.language.getCharLanguage(s);if(r=="english"||r=="romance")continue}e=e.replace(new RegExp(o+t+s,"g"),o+a+s)}else e=e.replace(new RegExp(t,"g"),a)}}return e}},office:{export:function(){if(translate.language.getLocal()==translate.language.getCurrent()){alert("本地语种跟要翻译的语种一致,无需导出");return}var e="";for(var t in translate.nodeQueue){translate.nodeQueue[t];for(var a in translate.nodeQueue[t].list)if(!(typeof a!="string"||a.length<1))for(var n in translate.nodeQueue[t].list[a])e=e+` `+translate.nodeQueue[t].list[a][n].original+"="+translate.storage.get("hash_"+translate.language.getCurrent()+"_"+n)}e.length>0?(e="translate.office.append('"+translate.language.getCurrent()+"',`"+e+"\n`);",translate.util.loadMsgJs(),msg.popups({text:'',width:"750px",height:"600px",padding:"1px"}),document.getElementById("msgPopupsTextarea").value=e):msg.alert("无有效内容!")},showPanel:function(){let e=document.createElement("div");e.setAttribute("id","translate_export"),e.setAttribute("class","ignore");let t=document.createElement("button");t.onclick=function(){translate.office.export()},t.innerHTML="导出配置信息",t.setAttribute("style","margin-left: 72px; margin-top: 30px; margin-bottom: 20px; font-size: 25px; background-color: blue; padding: 15px; padding-top: 3px; padding-bottom: 3px; border-radius: 3px;"),e.appendChild(t);let a=document.createElement("div");a.innerHTML='1. 首先将当前语种切换为你要翻译的语种
2. 点击导出按钮,将翻译的配置信息导出
3. 将导出的配置信息粘贴到代码中,即可完成
点此进行查阅详细使用说明',a.setAttribute("style","font-size: 14px; padding: 12px;"),e.appendChild(a),e.setAttribute("style","background-color: black; color: #fff; width: 320px; height: 206px; position: fixed; bottom: 50px; right: 50px;"),document.body.appendChild(e),translate.util.loadMsgJs()},append:function(e,t){for(var a=t.split(` -`),n=0;n"u"||(typeof e.length>"u"?translate.documents[0]=e:translate.documents=e,translate.nodeQueue={})},getDocuments:function(){if(translate.documents!=null&&typeof translate.documents<"u"&&translate.documents.length>0)return translate.documents;var e=new Array;return e[0]=document.documentElement,e},listener:{isStart:!1,start:function(){translate.temp_linstenerStartInterval=setInterval(function(){if(document.readyState=="complete"){if(clearInterval(translate.temp_linstenerStartInterval),translate.language.getCurrent()==translate.language.getLocal()&&!translate.language.translateLocal)return;translate.listener.addListener()}},300)},ignoreNode:[],translateExecuteNodeIgnoreExpireTime:1e3,addIgnore:function(e,t){let a="";typeof e=="string"?a=e:a=nodeuuid.uuid(e),translate.listener.ignoreNode[a]=Date.now()+t},refreshIgnoreNode:function(){var e=Date.now();for(const t in translate.listener.ignoreNode)translate.listener.ignoreNode[t]0?m=d.addedNodes:d.removedNodes.length>0:d.type==="attributes"||d.type==="characterData"&&(m=[d.target]);for(let g of m){for(var s=!1,l=0;l0){var c=[];for(let d of r){for(var f=!1,u=0;uDate.now()||c.push(d)}if(c.length<1)return;setTimeout(function(){translate.execute(c)},10)}},translate.listener.observer=new MutationObserver(translate.listener.callback);for(var e=translate.getDocuments(),t=0;t"u"&&(this.nodes[r]=new Array),this.nodes[r].push(e);var s=this.taskQueue[r];(s==null||typeof s>"u")&&(s=new Array);var l=new Array;t.substr(0,1)==" "&&a.substr(0,1)!=" "&&(a=" "+a),t.substr(t.length-1,1)===" "&&a.substr(0,1)!=" "&&(a=a+" "),l.originalText=t,l.resultText=a,l.attribute=n,s.push(l),this.taskQueue[r]=s}execute(){for(var e in this.taskQueue){var t=this.taskQueue[e];typeof t!="function"&&(t.sort((l,c)=>c.originalText.length-l.originalText.length),this.taskQueue[e]=t)}translate.listener.refreshIgnoreNode();for(var e in this.nodes)for(var t=this.taskQueue[e],a=0;a0){var s=this;setTimeout(function(){for(var l in s.nodes)for(var c in s.nodes[l]){var f=translate.element.nodeAnalyse.get(s.nodes[l][0]),u=nodeuuid.uuid(f.node);u.length!=0&&(translate.nodeHistory[u]={},translate.nodeHistory[u].node=f.node,translate.nodeHistory[u].translateText=f.text)}translate.listener.renderTaskFinish(s)},50)}}},state:0,waitingExecute:{queue:[],add:function(e){translate.waitingExecute.queue.push(e);let t=setInterval(function(){if(translate.state==0){clearInterval(t);var a=translate.waitingExecute.get();translate.execute(a)}},500)},get:function(){return translate.waitingExecute.queue.length>0?translate.waitingExecute.queue.shift():(console.log("警告, translate.waitingExecute.get 出现异常,quque已空,但还往外取。"),null)},isAllExecuteFinish:function(e){for(var t in translate.translateRequest[e])for(var a=0;a0&&(translate.to=a)}try{translate.selectLanguageTag.render()}catch(x){console.log(x)}if(translate.to==null||typeof translate.to>"u"||translate.to.length==0){translate.autoDiscriminateLocalLanguage&&translate.executeByLocalLanguage(),translate.state=0;return}if(translate.to==translate.language.getLocal()&&!translate.language.translateLocal){translate.state=0;return}translate.images.execute();var n;typeof e<"u"&&e!=null?typeof e.length>"u"?(n=new Array,n[0]=e):n=e:n=translate.getDocuments(),n.length>500&&(console.log("------tip------"),console.log("translate.execute( docs ) 传入的docs.length 过大,超过500,这很不正常,当前 docs.length : "+n.length+" ,如果你感觉真的没问题,请联系作者 http://translate.zvo.cn/43006.html 说明情况,根据你的情况进行分析。 当前只取前500个元素进行翻译"));for(var o=0;o0)for(var s in translate.nodeQueue[t].list)translate.language.translateLanguagesRange.indexOf(s)<0&&delete translate.nodeQueue[t].list[s];typeof translate.nodeQueue[t]>"u"&&(translate.nodeQueue[t]=new Array,translate.nodeQueue[t].list=[],console.log("--- translate.js warn tip 警告!! ---"),console.log("您使用translate.js时可能放的位置不对,不要吧 translate.js 放在网页最顶部,这样当 translate.js 进行执行,也就是 translate.execute() 执行时,因为网页是从上往下加载,它放在网页最顶部,那么它执行时网页后面的内容都还没加载出来,这个是不会获取到网页任何内容的,也就是它是不起任何作用的"));for(var s in translate.nodeQueue[t].list){for(var l in translate.nodeQueue[t].list[s])if(typeof translate.nodeQueue[t].list[s][l]!="function"){for(var c=translate.nodeQueue[t].list[s][l].nodes.length-1;c>-1;c--){var f=translate.element.nodeAnalyse.get(translate.nodeQueue[t].list[s][l].nodes[c].node),u=nodeuuid.uuid(f.node);typeof translate.nodeHistory[u]<"u"&&translate.nodeHistory[u].translateText==f.text&&translate.nodeQueue[t].list[s][l].nodes.splice(c,1)}translate.nodeQueue[t].list[s][l].nodes.length==0&&delete translate.nodeQueue[t].list[s][l]}Object.keys(translate.nodeQueue[t].list[s]).length==0&&delete translate.nodeQueue[t].list[s]}var d={},m={},g={},v=[];for(var s in translate.nodeQueue[t].list){if(s==null||typeof s>"u"||s.length==0||s=="undefined")continue;d[s]=[],m[s]=[];let S=new translate.renderTask;g[s]=[];for(var l in translate.nodeQueue[t].list[s])if(typeof translate.nodeQueue[t].list[s][l]!="function"){var b=translate.nodeQueue[t].list[s][l].original,$=translate.nodeQueue[t].list[s][l].translateText,w=b==$?l:translate.util.hash($);translate.nodeQueue[t].list[s][l].cacheHash=w;var N=translate.storage.get("hash_"+translate.to+"_"+w);if(N!=null&&N.length>0){for(var P=0;P"u"||(typeof e.length>"u"?translate.documents[0]=e:translate.documents=e,translate.nodeQueue={})},getDocuments:function(){if(translate.documents!=null&&typeof translate.documents<"u"&&translate.documents.length>0)return translate.documents;var e=new Array;return e[0]=document.documentElement,e},listener:{isStart:!1,start:function(){translate.temp_linstenerStartInterval=setInterval(function(){if(document.readyState=="complete"){if(clearInterval(translate.temp_linstenerStartInterval),translate.language.getCurrent()==translate.language.getLocal()&&!translate.language.translateLocal)return;translate.listener.addListener()}},300)},ignoreNode:[],translateExecuteNodeIgnoreExpireTime:1e3,addIgnore:function(e,t){let a="";typeof e=="string"?a=e:a=nodeuuid.uuid(e),translate.listener.ignoreNode[a]=Date.now()+t},refreshIgnoreNode:function(){var e=Date.now();for(const t in translate.listener.ignoreNode)translate.listener.ignoreNode[t]0?m=d.addedNodes:d.removedNodes.length>0:d.type==="attributes"||d.type==="characterData"&&(m=[d.target]);for(let g of m){for(var s=!1,l=0;l0){var c=[];for(let d of r){for(var f=!1,u=0;uDate.now()||c.push(d)}if(c.length<1)return;setTimeout(function(){translate.execute(c)},10)}},translate.listener.observer=new MutationObserver(translate.listener.callback);for(var e=translate.getDocuments(),t=0;t"u"&&(this.nodes[r]=new Array),this.nodes[r].push(e);var s=this.taskQueue[r];(s==null||typeof s>"u")&&(s=new Array);var l=new Array;t.substr(0,1)==" "&&a.substr(0,1)!=" "&&(a=" "+a),t.substr(t.length-1,1)===" "&&a.substr(0,1)!=" "&&(a=a+" "),l.originalText=t,l.resultText=a,l.attribute=n,s.push(l),this.taskQueue[r]=s}execute(){for(var e in this.taskQueue){var t=this.taskQueue[e];typeof t!="function"&&(t.sort((l,c)=>c.originalText.length-l.originalText.length),this.taskQueue[e]=t)}translate.listener.refreshIgnoreNode();for(var e in this.nodes)for(var t=this.taskQueue[e],a=0;a0){var s=this;setTimeout(function(){for(var l in s.nodes)for(var c in s.nodes[l]){var f=translate.element.nodeAnalyse.get(s.nodes[l][0]),u=nodeuuid.uuid(f.node);u.length!=0&&(translate.nodeHistory[u]={},translate.nodeHistory[u].node=f.node,translate.nodeHistory[u].translateText=f.text)}translate.listener.renderTaskFinish(s)},50)}}},state:0,waitingExecute:{queue:[],add:function(e){translate.waitingExecute.queue.push(e);let t=setInterval(function(){if(translate.state==0){clearInterval(t);var a=translate.waitingExecute.get();translate.execute(a)}},500)},get:function(){return translate.waitingExecute.queue.length>0?translate.waitingExecute.queue.shift():(console.log("警告, translate.waitingExecute.get 出现异常,quque已空,但还往外取。"),null)},isAllExecuteFinish:function(e){for(var t in translate.translateRequest[e])for(var a=0;a0&&(translate.to=a)}try{translate.selectLanguageTag.render()}catch(x){console.log(x)}if(translate.to==null||typeof translate.to>"u"||translate.to.length==0){translate.autoDiscriminateLocalLanguage&&translate.executeByLocalLanguage(),translate.state=0;return}if(translate.to==translate.language.getLocal()&&!translate.language.translateLocal){translate.state=0;return}translate.images.execute();var n;typeof e<"u"&&e!=null?typeof e.length>"u"?(n=new Array,n[0]=e):n=e:n=translate.getDocuments(),n.length>500&&(console.log("------tip------"),console.log("translate.execute( docs ) 传入的docs.length 过大,超过500,这很不正常,当前 docs.length : "+n.length+" ,如果你感觉真的没问题,请联系作者 http://translate.zvo.cn/43006.html 说明情况,根据你的情况进行分析。 当前只取前500个元素进行翻译"));for(var o=0;o0)for(var s in translate.nodeQueue[t].list)translate.language.translateLanguagesRange.indexOf(s)<0&&delete translate.nodeQueue[t].list[s];typeof translate.nodeQueue[t]>"u"&&(translate.nodeQueue[t]=new Array,translate.nodeQueue[t].list=[],console.log("--- translate.js warn tip 警告!! ---"),console.log("您使用translate.js时可能放的位置不对,不要吧 translate.js 放在网页最顶部,这样当 translate.js 进行执行,也就是 translate.execute() 执行时,因为网页是从上往下加载,它放在网页最顶部,那么它执行时网页后面的内容都还没加载出来,这个是不会获取到网页任何内容的,也就是它是不起任何作用的"));for(var s in translate.nodeQueue[t].list){for(var l in translate.nodeQueue[t].list[s])if(typeof translate.nodeQueue[t].list[s][l]!="function"){for(var c=translate.nodeQueue[t].list[s][l].nodes.length-1;c>-1;c--){var f=translate.element.nodeAnalyse.get(translate.nodeQueue[t].list[s][l].nodes[c].node),u=nodeuuid.uuid(f.node);typeof translate.nodeHistory[u]<"u"&&translate.nodeHistory[u].translateText==f.text&&translate.nodeQueue[t].list[s][l].nodes.splice(c,1)}translate.nodeQueue[t].list[s][l].nodes.length==0&&delete translate.nodeQueue[t].list[s][l]}Object.keys(translate.nodeQueue[t].list[s]).length==0&&delete translate.nodeQueue[t].list[s]}var d={},m={},g={},v=[];for(var s in translate.nodeQueue[t].list){if(s==null||typeof s>"u"||s.length==0||s=="undefined")continue;d[s]=[],m[s]=[];let S=new translate.renderTask;g[s]=[];for(var l in translate.nodeQueue[t].list[s])if(typeof translate.nodeQueue[t].list[s][l]!="function"){var b=translate.nodeQueue[t].list[s][l].original,$=translate.nodeQueue[t].list[s][l].translateText,w=b==$?l:translate.util.hash($);translate.nodeQueue[t].list[s][l].cacheHash=w;var C=translate.storage.get("hash_"+translate.to+"_"+w);if(C!=null&&C.length>0){for(var P=0;P"u"||d[s].length<1||s!=translate.to&&ge.push(s);if(ge.length==0){translate.state=0,translate.executeNumber++;return}for(var s in m)if(!(typeof m[s]>"u")&&!(m[s].length<1))for(var re=0;re"u"||d[s].length<1){console.log("异常,理论上不应该存在: typeof(translateTextArray[lang]) == 'undefined' || translateTextArray[lang].length < 1"),translate.state=0,translate.executeNumber++;return}(typeof translate.translateRequest[t]>"u"||translate.translateRequest[t]==null)&&(translate.translateRequest[t]={}),translate.translateRequest[t][s]={},translate.translateRequest[t][s].executeFinish=0,translate.translateRequest[t][s].addtime=Math.floor(Date.now()/1e3);var L=translate.request.api.translate,K={from:s,to:translate.to,text:encodeURIComponent(JSON.stringify(d[s]))};translate.request.post(L,K,function(S){if(S.result==0){translate.translateRequest[t][ie].result=2,translate.translateRequest[t][ie].executeFinish=1,translate.translateRequest[t][ie].stoptime=Math.floor(Date.now()/1e3),translate.waitingExecute.isAllExecuteFinish(t),console.log("=======ERROR START======="),console.log(d[S.from]),console.log("response : "+S.info),console.log("=======ERROR END =======");return}if(typeof translate.nodeQueue[t]>"u"){console.log("提示:你很可能多次引入了 translate.js 所以造成了翻译本身的数据错乱,这只是个提示,它还是会给你正常翻译的,但是你最好不要重复引入太多次 translate.js ,正常情况下只需要引入一次 translate.js 就可以了。太多的话很可能会导致你页面卡顿");return}let I=new translate.renderTask;for(var X=0;X-1&&(pe=d[S.from][X]);var k=m[S.from][X],_=translate.nodeQueue[t].list[ie][k].cacheHash,M="";try{M=translate.nodeQueue[t].list[ie][k].original}catch(_e){console.log("uuid:"+t+", originalWord:"+M+", lang:"+ie+", hash:"+k+", text:"+pe+", queue:"+translate.nodeQueue[t]),console.log(_e);continue}for(var U=0;U0){if(o.text=e[n],typeof t<"u"&&t.length>0){typeof e[n]<"u"&&(e[n]=e[n].replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a)));var s=e.getAttribute(n);s!=null&&typeof s<"u"&&e.setAttribute(n,s.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a)))}return o}if(r=="#text"&&typeof e.parentNode<"u"){var l=translate.element.getNodeName(e.parentNode);l=="TEXTAREA"&&(r="TEXTAREA",e=e.parentNode)}if(r=="INPUT"||r=="TEXTAREA"){if(e.attributes==null||typeof e.attributes>"u")return o.text="",o;if(r=="INPUT"&&typeof e.attributes.type<"u"&&typeof e.attributes.type.nodeValue!=null&&(e.attributes.type.nodeValue.toLowerCase()=="button"||e.attributes.type.nodeValue.toLowerCase()=="submit")){var c=e.attributes.value;if(c!=null&&typeof c<"u"&&typeof c.nodeValue<"u"&&c.nodeValue.length>0)return typeof t<"u"&&t.length>0&&(c.nodeValue=c.nodeValue.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=c.nodeValue,o.node=c,o}return typeof e.attributes.placeholder<"u"?(typeof t<"u"&&t.length>0&&(e.attributes.placeholder.nodeValue=e.attributes.placeholder.nodeValue.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.attributes.placeholder.nodeValue,o.node=e.attributes.placeholder,o):(o.text="",o)}if(r=="META"){if(typeof e.name<"u"&&e.name!=null){var f=e.name.toLowerCase(),u=e.getAttribute("property"),d="";if(typeof u<"u"&&u!=null&&u.length>0&&(d=u.toLowerCase()),f=="keywords"||f=="description"||f=="sharetitle"||d=="og:title"||d=="og:description"||d=="og:site_name"||d=="og:novel:latest_chapter_name")return typeof t<"u"&&t!=null&&t.length>0&&(e.content=e.content.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.content,o}return o.text="",o}return r=="IMG"?typeof e.alt>"u"||e.alt==null?(o.text="",o):(typeof t<"u"&&t.length>0&&(e.alt=e.alt.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.alt,o):(e.nodeValue==null||typeof e.nodeValue>"u"||e.nodeValue.trim().length==0?o.text="":(typeof t<"u"&&t!=null&&t.length>0&&(e.nodeValue=e.nodeValue.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.nodeValue),o)}},getNodeName:function(e){if(e==null||typeof e>"u"||e.nodeName==null||typeof e.nodeName>"u")return"";var t=e.nodeName;return t},whileNodes:function(e,t){if(!(t==null||typeof t>"u")){(typeof translate.nodeQueue[e]>"u"||translate.nodeQueue[e]==null)&&(translate.nodeQueue[e]=new Array,translate.nodeQueue[e].expireTime=Date.now()+120*1e3,translate.nodeQueue[e].list=new Array),typeof t=="object"&&typeof t.title=="string"&&t.title.length>0&&(translate.ignore.isIgnore(t)||translate.addNodeToQueue(e,t,t.title,"title"));var a=translate.element.getNodeName(t).toLowerCase();if(typeof translate.element.tagAttribute[a]<"u")for(var n in translate.element.tagAttribute[a]){var o=translate.element.tagAttribute[a][n],r=t.getAttribute(o);(typeof r>"u"||r==null)&&(r=t[o]),!(typeof r>"u"||r==null)&&translate.addNodeToQueue(e,t,r,o)}var s=t.childNodes;if(!(s==null||typeof s>"u"))if(s.length>0)for(var l=0;l"u")&&t.parentNode!=null){var a=translate.element.getNodeName(t.parentNode);if(a!=""&&!(translate.ignore.tag.indexOf(a.toLowerCase())>-1)&&!translate.ignore.isIgnore(t)){var n=translate.element.nodeAnalyse.get(t);n.text.length>0&&translate.addNodeToQueue(e,n.node,n.text)}}}},addNodeToQueue:function(e,t,a,n){if(!(t==null||a==null||a.length==0)){var o=translate.element.getNodeName(t);if(o.toLowerCase()!="#comment"){if(translate.util.hash(a),translate.util.findTag(a)){if(t.parentNode==null)return;var r=translate.element.getNodeName(t.parentNode);if(r=="SCRIPT"||r=="STYLE")return}var s=new Array;s.push(a);for(var l=0;l"u"&&(translate.temp_nomenclature=new Array),typeof translate.temp_nomenclature[translate.language.getLocal()]>"u"&&(c=new Array),typeof translate.nomenclature.data[translate.language.getLocal()]<"u"&&typeof translate.nomenclature.data[translate.language.getLocal()][translate.to]<"u"){var c;for(var f in translate.nomenclature.data[translate.language.getLocal()][translate.to]){var u=translate.nomenclature.data[translate.language.getLocal()][translate.to][f];s=translate.addNodeToQueueTextAnalysis(e,t,s,n,f,u),typeof c<"u"&&c.push(f)}typeof translate.temp_nomenclature[translate.language.getLocal()]>"u"&&(translate.temp_nomenclature[translate.language.getLocal()]=c)}for(var d=0;d-1||typeof translate.temp_nomenclature[translate.language.getLocal()]<"u"&&translate.temp_nomenclature[translate.language.getLocal()].indexOf(s[d].trim())>-1||translate.addNodeToQueueAnalysis(e,t,s[d],n))}}},addNodeToQueueTextAnalysis:function(e,t,a,n,o,r){for(var s=new Array,l=0;l-1){if(o!=r){var u=f-r.length;u<0&&(u=0);var d=f+r.length;d>c.length&&(d=c.length);var m=c.substring(u,d);if(m.indexOf(r)>-1)continue}if(translate.language.wordBlankConnector(translate.to)){if(f>0){var g=c.charAt(f-1);/\s/.test(g)||(r=" "+r)}f+o.length0)for(var w=0;w-1&&a.splice(N,1)}return a},addNodeToQueueAnalysis:function(e,t,a,n){var o=translate.language.recognition(a),r=o.languageArray;typeof r[translate.to]<"u"&&delete r[translate.to];var s=translate.whole.isWhole(t);if(s){var l=o.languageName;translate.addNodeQueueItem(e,t,a,n,l,"","")}else for(var l in r)for(var c=0;c"u"||typeof r[l].list[c].text>"u")){var f=r[l].list[c].text,u=r[l].list[c].beforeText,d=r[l].list[c].afterText;translate.addNodeQueueItem(e,t,f,n,l,u,d)}},addNodeQueueItem:function(e,t,a,n,o,r,s){(translate.nodeQueue[e].list[o]==null||typeof translate.nodeQueue[e].list[o]>"u")&&(translate.nodeQueue[e].list[o]=new Array);var l=translate.util.hash(a);(translate.nodeQueue[e].list[o][l]==null||typeof translate.nodeQueue[e].list[o][l]>"u")&&(translate.nodeQueue[e].list[o][l]=new Array,translate.nodeQueue[e].list[o][l].nodes=new Array,translate.nodeQueue[e].list[o][l].original=a,translate.nodeQueue[e].list[o][l].translateText=a);var c=!1;if(typeof t.isSameNode<"u"){for(var f=0;f-1&&console.log("自检发现您设置了 translate.whole.tag 其中有 html ,这个是不生效的,最大只允许设置到 body ")},isWhole:function(e){if(translate.whole.class.length==0&&translate.whole.tag.length==0&&translate.whole.id.length==0&&translate.whole.isEnableAll==!1||e==null||typeof e>"u")return!1;if(translate.whole.isEnableAll)return!0;for(var t=e,a=100;a-- >0;){if(t==null||typeof t>"u")return!1;var n=translate.element.getNodeName(t).toLowerCase();if(n.length>0){if(n=="html"||n=="#document")return!1;if(translate.whole.tag.indexOf(n)>-1)return!0}if(t.className!=null){var o=t.className;if(o==null||typeof o!="string")continue;o=o.trim().split(" ");for(var r=0;r0&&translate.whole.class.indexOf(o[r])>-1)return!0}if(t.id!=null&&typeof t.id<"u"&&translate.whole.id.indexOf(t.id)>-1)return!0;t=t.parentNode}return!1}},language:{englishVarietys:["french","italian","deutsch"],local:"",translateLocal:!1,translateLanguagesRange:[],setLocal:function(e){translate.useVersion="v2",translate.language.local=e},getLocal:function(){return(translate.language.local==null||translate.language.local.length<1)&&translate.language.autoRecognitionLocalLanguage(),translate.language.local},getCurrent:function(){var e=translate.storage.get("to");return e!=null&&typeof e<"u"&&e.length>0?e:translate.language.getLocal()},setDefaultTo:function(e){var t=translate.storage.get("to");t!=null&&typeof t<"u"&&t.length>0||(translate.storage.set("to",e),translate.to=e)},clearCacheLanguage:function(){translate.to="",translate.storage.set("to","")},setUrlParamControl:function(e){(typeof e>"u"||e.length<1)&&(e="language");var t=translate.util.getUrlParam(e);typeof t>"u"||t==""||t=="null"||t=="undefined"||(translate.storage.set("to",t),translate.to=t)},autoRecognitionLocalLanguage:function(){if(!(translate.language.local!=null&&translate.language.local.length>2)){var e=document.body.outerText;if(e==null||typeof e>"u"||e.length<1){translate.language.local="chinese_simplified";return}e=e.replace(/\n|\t|\r/g,""),translate.language.local="chinese_simplified";var t=translate.language.recognition(e);return translate.language.local=t.languageName,translate.language.local}},get:function(e){for(var t=new Array,a=new Array,n=[],o=[],r=0;r.01&&(c[c.length]=f+"");if(c.length>1&&c.indexOf("english")>-1)if(c.indexOf("romance")>-1){var u=translate.language.romanceSentenceAnaly(e);u.length==0?console.log("语种识别异常,应该是 法语、西班牙语、葡萄牙语、意大利语 中的一种才是,除非是除了这四种语种之外的别的 罗曼语族 中的语种,当前已将 "+e+"识别为英语。 你可以联系我们求助 https://translate.zvo.cn/4030.html"):(a[u]=a.romance+a.english,a.english=0)}else a.english=0;c.indexOf("chinese_simplified")>-1&&c.indexOf("chinese_traditional")>-1&&(a.chinese_simplified=0);var d="",m=0;for(var f in a)a[f]>m&&(d=f,m=a[f]);var g={};for(var f in t)g[f]={},g[f].number=n[f],g[f].list=t[f];var v={languageName:d,languageArray:g};if(v.languageName=="english"){var b=translate.language.getLocal();translate.language.englishVarietys.indexOf(b)>-1&&(v.languageName=b)}return v},getCharLanguage:function(e){if(e==null||typeof e>"u")return"";if(this.russian(e))return"russian";if(this.english(e))return"english";if(this.romance(e))return"romance";if(this.specialCharacter(e))return"specialCharacter";if(this.number(e))return"number";var t=this.chinese(e);return t=="simplified"?"chinese_simplified":t=="traditional"?"chinese_traditional":this.japanese(e)?"japanese":this.korean(e)?"korean":""},analyse:function(e,t,a,n,o){typeof t[e]>"u"&&(t[e]=new Array);var r=0;typeof a.storage_language>"u"||(translate.language.connector(o)&&(e=a.storage_language),a.storage_language==e?r=t[e].length-1:r=t[e].length),typeof t[e][r]>"u"&&(t[e][r]=new Array,t[e][r].beforeText="",t[e][r].afterText="",t[e][r].text=""),t[e][r].text=t[e][r].text+o,translate.language.wordBlankConnector(translate.language.getLocal())==!1&&translate.language.wordBlankConnector(translate.to)&&a.storage_language!=null&&typeof a.storage_language<"u"&&a.storage_language.length>0&&a.storage_language!="specialCharacter"&&(translate.language.wordBlankConnector(a.storage_language)==!1&&translate.language.wordBlankConnector(e)?t[a.storage_language][t[a.storage_language].length-1].afterText=" ":a.storage_language=="english"&&e!="english"&&(t[e][r].beforeText=" "));var s=new Array;return s.langStrs=t,s.storage_language=e,s},connector:function(e){return!!(/.*[\u0020\u00A0\u202F\u205F\u3000]+.*$/.test(e)||/.*[\u0030-\u0039]+.*$/.test(e)||/.*[\u0021\u0022\u0023\u0024\u0025\u0026\u0027\u002C\u002D\u002E\u003A\u003B\u003F\u0040]+.*$/.test(e)||/.*[\u3002\uFF1F\uFF01\uFF0C\u3001\uFF1B\uFF1A\u300C\u300D\u300E\u300F\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\u3010\u3011\u2014\u2026\u2013\uFF0E\u300A\u300B\u3008\u3009\u00b7]+.*$/.test(e))},wordBlankConnector:function(e){if(e==null||typeof e>"u")return!0;switch(e.trim().toLowerCase()){case"chinese_simplified":return!1;case"chinese_traditional":return!1;case"korean":return!1;case"japanese":return!1}return!0},chinese_traditional_dict:"皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊",chinese:function(e){return/.*[\u4e00-\u9fa5]+.*$/.test(e)?this.chinese_traditional_dict.indexOf(e)>-1?"traditional":"simplified":""},japanese:function(e){return!!/.*[\u3040-\u309F\u30A0-\u30FF]+.*$/.test(e)},korean:function(e){return!!/.*[\uAC00-\uD7AF]+.*$/.test(e)},russian:function(e){return!!/.*[\u0411\u0412\u0414\u0416\u0417\u0418\u0419\u041B\u041C\u041D\u041E\u041F\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042E\u042F\u0407\u0406]+.*$/.test(e)},number:function(e){return!!/.*[\u0030-\u0039]+.*$/.test(e)},english:function(e){return/.*[\u0041-\u005a]+.*$/.test(e)?!0:!!/.*[\u0061-\u007a]+.*$/.test(e)},romance_dict:["é","è","ê","à","ç","œ","ñ","á","ó","ò","ì","ã","õ"],romance:function(e){return this.romance_dict.indexOf(e)>-1},romanceSentenceAnaly:function(e){const t={french:{score:0,chars:["é","è","ê","à","ç","œ"]},spanish:{score:0,chars:["ñ","á","ó"],pairs:["ll"]},italian:{score:0,chars:["ò","ì"],pairs:["cc","ss"]},portuguese:{score:0,chars:["ã","õ"]}};for(let o=0;o{t[s].chars.includes(r)&&(t[s].score+=1)}),o{const c=t[l].pairs;c&&c.includes(s)&&(t[l].score+=2)})}}let a="",n=-1;return Object.keys(t).forEach(o=>{t[o].score>n&&(n=t[o].score,a=o)}),a||""},specialCharacter:function(e){return!!(/.*[\u2460-\u24E9]+.*$/.test(e)||/.*[\u2500-\u25FF]+.*$/.test(e)||/.*[\u3200-\u33FF]+.*$/.test(e)||/.*[\uFF00-\uFF5E]+.*$/.test(e)||/.*[\u2000-\u22FF]+.*$/.test(e)||/.*[\u3001-\u3036]+.*$/.test(e)||/.*[\u0020-\u002F]+.*$/.test(e)||/.*[\u003B\u003B\u003C\u003D\u003E\u003F\u005B\u005C\u005D\u005E\u005F\u0060\u007B\u007C\u007D\u007E]+.*$/.test(e)||/.*[\u0009\u000a\u0020\u00A0\u1680\u180E\u202F\u205F\u3000\uFEFF]+.*$/.test(e)||/.*[\u2000-\u200B]+.*$/.test(e)||/.*[\u00A1-\u0105]+.*$/.test(e)||/.*[\u2C60-\u2C77]+.*$/.test(e))}},executeByLocalLanguage:function(){var e=translate.util.browserDefaultLanguage();if(typeof e<"u"&&e.length>0){translate.changeLanguage(e);return}translate.request.post(translate.request.api.ip,{},function(t){t.result==0?(console.log("==== ERROR 获取当前用户所在区域异常 ===="),console.log(t.info),console.log("==== ERROR END ====")):(translate.storage.set("to",t.language),translate.to=t.language,translate.selectLanguageTag,translate.execute())},null)},util:{uuid:function(){var e=new Date().getTime();window.performance&&typeof window.performance.now=="function"&&(e+=performance.now());var t="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".replace(/[xy]/g,function(a){var n=(e+Math.random()*16)%16|0;return e=Math.floor(e/16),(a=="x"?n:n&3|8).toString(16)});return t},findTag:function(e){var t=/<[^>]+>/g;return t.test(e)},arrayFindMaxNumber:function(e){for(var t={},a=[],n=0,o=0,r=e.length;on&&(n=t[e[o]]);for(var s in t)t[s]===n&&a.push(s);return a},hash:function(e){if(e==null||typeof e>"u")return e;var t=0,a,n;if(e.length===0)return t;for(a=0;a=200&&t.status<300||t.status==0||t.status==304){var a=document.getElementsByTagName("HTML")[0],n=document.createElement("script");n.language="javascript",n.type="text/javascript";try{n.appendChild(document.createTextNode(t.responseText))}catch{n.text=t.responseText}return a.appendChild(n),!0}else return!1;else return!1},loadMsgJs:function(){typeof msg<"u"||translate.util.synchronizesLoadJs("https://res.zvo.cn/msg/msg.js")},objSort:function(e){var t=Array.from(Object.keys(e));t.sort(function(o,r){return r.length-o.length});var a=new Array;for(var n of t)a[n]=e[n];return a},versionStringToInt:function(e){var t=e.split("."),a=0;return a=parseInt(t[0])*1e3*1e3+a,a=parseInt(t[1])*1e3+a,a=parseInt(t[2])+a,a},split:function(e,t,a){let n=t,o=[];if(JSON.stringify(e).length<=t)o.push(e);else{let r=JSON.stringify(e).trim().substring(1,JSON.stringify(e).length-1);if(JSON.stringify(e).length-t<=2){t=t-4;let s=r.substring(0,r.lastIndexOf('","')+1),l=r.substring(r.lastIndexOf('","')+2);o.push(JSON.parse("["+s+"]")),o.push(JSON.parse("["+l+"]"))}else{t=t-2;let s=0;for(;s-r.length<0;){let l="";s+t-r.length>=0?l=r.substring(s):l=r.substring(s,s+t);let c=l.length,f=1;l.endsWith('"')?l.endsWith('","')?c-=2:l.startsWith('"')||(c=l.lastIndexOf('","')+1):l.endsWith('",')?c-=1:(c=l.lastIndexOf('","')+1,c<=0&&(l.startsWith('"')?c=l.length-1:c=l.length-2,l.endsWith('"')||(f=0)));let u="";c-l.length>0||c-0==0?(u=l,c=c+u.length):u=l.substring(0,c),!u.startsWith('"')&&!u.startsWith(',"')&&(u='"'+u),u.endsWith('"')||(u=u+'"'),s+=c+f,u="["+u+"]";try{o.push(JSON.parse(u))}catch{s=s-(c+f)+1}}}}return a&&a>0&&(o=translate.util._splitMaxSize(o,n,a)),o},_splitMaxSize:function(e,t,a){let n=[],o=[];if(e.forEach(function(r,s){if(r=o.concat(r),r.length>a){let c=r.slice(0,a),f=r.slice(a),u=1;for(;JSON.stringify(c).length>t&&(c=r.slice(0,a-u),f=r.slice(a-u),u++,!(u>=r.length+1)););n.push(c),o.length=0,o=f}else{let c=r,f=[],u=1;for(;JSON.stringify(c).length>t&&(c=r.slice(0,a-u),f=r.slice(a-u),u++,!(u>=r.length+1)););n.push(c),o.length=0,o=f}}),o.length>0){let r=[];r.push(o);let s=translate.util._splitMaxSize(r,t,a);n=n.concat(s)}return n},browserLanguage:{"zh-CN":"chinese_simplified","zh-TW":"chinese_traditional","zh-HK":"chinese_traditional",co:"corsican",gn:"guarani",rw:"kinyarwanda",ha:"hausa",no:"norwegian",nl:"dutch",yo:"yoruba",en:"english","en-US":"english",kok:"gongen",la:"latin",ne:"nepali",fr:"french",cs:"czech",haw:"hawaiian",ka:"georgian",ru:"russian",fa:"persian",bho:"bhojpuri",hi:"hindi",be:"belarusian",sw:"swahili",is:"icelandic",yi:"yiddish",tw:"twi",ga:"irish",gu:"gujarati",km:"khmer",sk:"slovak",he:"hebrew",kn:"kannada",hu:"hungarian",ta:"tamil",ar:"arabic",bn:"bengali",az:"azerbaijani",sm:"samoan",af:"afrikaans",id:"indonesian",da:"danish",sn:"shona",bm:"bambara",lt:"lithuanian",vi:"vietnamese",mt:"maltese",tk:"turkmen",as:"assamese",ca:"catalan",si:"singapore",ceb:"cebuano",gd:"scottish-gaelic",sa:"sanskrit",pl:"polish",gl:"galician",lv:"latvian",uk:"ukrainian",tt:"tatar",cy:"welsh",ja:"japanese",fil:"filipino",ay:"aymara",lo:"lao",te:"telugu",ro:"romanian",ht:"haitian_creole",doi:"dogrid",sv:"swedish",mai:"maithili",th:"thai",hy:"armenian",my:"burmese",ps:"pashto",hmn:"hmong",dv:"dhivehi",lb:"luxembourgish",sd:"sindhi",ku:"kurdish",tr:"turkish",mk:"macedonian",bg:"bulgarian",ms:"malay",lg:"luganda",mr:"marathi",et:"estonian",ml:"malayalam",de:"deutsch",sl:"slovene",ur:"urdu",pt:"portuguese",ig:"igbo",ckb:"kurdish_sorani",om:"oromo",el:"greek",es:"spanish",fy:"frisian",so:"somali",am:"amharic",ny:"nyanja",pa:"punjabi",eu:"basque",it:"italian",sq:"albanian",ko:"korean",tg:"tajik",fi:"finnish",ky:"kyrgyz",ee:"ewe",hr:"croatian",kri:"creole",qu:"quechua",bs:"bosnian",mi:"maori"},browserDefaultLanguage:function(){var e=navigator.language||navigator.userLanguage;if(typeof e=="string"&&e.length>0){var t=translate.util.browserLanguage[e];if(typeof t>"u")console.log("browser default language : "+e+", translate.js current translate channel not support this language ");else return t}return""}},service:{name:"translate.service",use:function(e){if(translate.enterprise.isUse==!0){console.log("您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use('"+e+"'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。");return}typeof e=="string"&&e=="client.edge"&&(translate.service.name=e,translate.whole.enableAll())},edge:{api:{auth:"https://edge.microsoft.com/translate/auth",translate:"https://api.cognitive.microsofttranslator.com/translate?from={from}&to={to}&api-version=3.0&includeSentenceLength=true"},language:{json:[{id:"ukrainian",name:"Україна",serviceId:"uk"},{id:"norwegian",name:"Norge",serviceId:"no"},{id:"welsh",name:"Iaith Weleg",serviceId:"cy"},{id:"dutch",name:"nederlands",serviceId:"nl"},{id:"japanese",name:"日本語",serviceId:"ja"},{id:"filipino",name:"Pilipino",serviceId:"fil"},{id:"english",name:"English",serviceId:"en"},{id:"lao",name:"ກະຣຸນາ",serviceId:"lo"},{id:"telugu",name:"తెలుగుName",serviceId:"te"},{id:"romanian",name:"Română",serviceId:"ro"},{id:"nepali",name:"नेपालीName",serviceId:"ne"},{id:"french",name:"Français",serviceId:"fr"},{id:"haitian_creole",name:"Kreyòl ayisyen",serviceId:"ht"},{id:"czech",name:"český",serviceId:"cs"},{id:"swedish",name:"Svenska",serviceId:"sv"},{id:"russian",name:"Русский язык",serviceId:"ru"},{id:"malagasy",name:"Malagasy",serviceId:"mg"},{id:"burmese",name:"ဗာရမ်",serviceId:"my"},{id:"pashto",name:"پښتوName",serviceId:"ps"},{id:"thai",name:"คนไทย",serviceId:"th"},{id:"armenian",name:"Արմենյան",serviceId:"hy"},{id:"chinese_simplified",name:"简体中文",serviceId:"zh-CHS"},{id:"persian",name:"Persian",serviceId:"fa"},{id:"chinese_traditional",name:"繁體中文",serviceId:"zh-CHT"},{id:"kurdish",name:"Kurdî",serviceId:"ku"},{id:"turkish",name:"Türkçe",serviceId:"tr"},{id:"hindi",name:"हिन्दी",serviceId:"hi"},{id:"bulgarian",name:"български",serviceId:"bg"},{id:"malay",name:"Malay",serviceId:"ms"},{id:"swahili",name:"Kiswahili",serviceId:"sw"},{id:"oriya",name:"ଓଡିଆ",serviceId:"or"},{id:"icelandic",name:"ÍslandName",serviceId:"is"},{id:"irish",name:"Íris",serviceId:"ga"},{id:"khmer",name:"ភាសា​ខ្មែរName",serviceId:"km"},{id:"gujarati",name:"ગુજરાતી",serviceId:"gu"},{id:"slovak",name:"Slovenská",serviceId:"sk"},{id:"kannada",name:"ಕನ್ನಡ್Name",serviceId:"kn"},{id:"hebrew",name:"היברית",serviceId:"he"},{id:"hungarian",name:"magyar",serviceId:"hu"},{id:"marathi",name:"मराठीName",serviceId:"mr"},{id:"tamil",name:"தாமில்",serviceId:"ta"},{id:"estonian",name:"eesti keel",serviceId:"et"},{id:"malayalam",name:"മലമാലം",serviceId:"ml"},{id:"inuktitut",name:"ᐃᓄᒃᑎᑐᑦ",serviceId:"iu"},{id:"arabic",name:"بالعربية",serviceId:"ar"},{id:"deutsch",name:"Deutsch",serviceId:"de"},{id:"slovene",name:"slovenščina",serviceId:"sl"},{id:"bengali",name:"বেঙ্গালী",serviceId:"bn"},{id:"urdu",name:"اوردو",serviceId:"ur"},{id:"azerbaijani",name:"azerbaijani",serviceId:"az"},{id:"portuguese",name:"português",serviceId:"pt"},{id:"samoan",name:"lifiava",serviceId:"sm"},{id:"afrikaans",name:"afrikaans",serviceId:"af"},{id:"tongan",name:"汤加语",serviceId:"to"},{id:"greek",name:"ελληνικά",serviceId:"el"},{id:"indonesian",name:"IndonesiaName",serviceId:"id"},{id:"spanish",name:"Español",serviceId:"es"},{id:"danish",name:"dansk",serviceId:"da"},{id:"amharic",name:"amharic",serviceId:"am"},{id:"punjabi",name:"ਪੰਜਾਬੀName",serviceId:"pa"},{id:"albanian",name:"albanian",serviceId:"sq"},{id:"lithuanian",name:"Lietuva",serviceId:"lt"},{id:"italian",name:"italiano",serviceId:"it"},{id:"vietnamese",name:"Tiếng Việt",serviceId:"vi"},{id:"korean",name:"한국어",serviceId:"ko"},{id:"maltese",name:"Malti",serviceId:"mt"},{id:"finnish",name:"suomi",serviceId:"fi"},{id:"catalan",name:"català",serviceId:"ca"},{id:"croatian",name:"hrvatski",serviceId:"hr"},{id:"bosnian",name:"bosnian",serviceId:"bs-Latn"},{id:"polish",name:"Polski",serviceId:"pl"},{id:"latvian",name:"latviešu",serviceId:"lv"},{id:"maori",name:"Maori",serviceId:"mi"}],getMap:function(){if(typeof translate.service.edge.language.map>"u"){translate.service.edge.language.map=new Array;for(var e=0;e1){for(var $=-1,w=0;w$;E--)for(var R=r[E].length,y=0;y"u"){typeof translate.request.api.host=="string"&&(translate.request.api.host=[""+translate.request.api.host]),translate.request.speedDetectionControl.hostQueue=[];for(var t=0;t"u")&&(n=0);var o=6e4;new Date().getTime()-n>o&&translate.request.speedDetectionControl.checkResponseSpeed()}return translate.request.speedDetectionControl.hostQueue},checkResponseSpeed_Storage:function(e,t){translate.request.speedDetectionControl.checkHostQueue.push({host:e,time:t}),translate.request.speedDetectionControl.checkHostQueue.sort((a,n)=>a.time-n.time),translate.storage.set("speedDetectionControl_hostQueue",JSON.stringify(translate.request.speedDetectionControl.checkHostQueue)),translate.storage.set("speedDetectionControl_lasttime",new Date().getTime()),translate.request.speedDetectionControl.hostQueue=translate.request.speedDetectionControl.checkHostQueue},checkResponseSpeed:function(){var e={"content-type":"application/x-www-form-urlencoded"};translate.request.speedDetectionControl.checkHostQueue=[],translate.request.speedDetectionControl.checkHostQueueMap=[],typeof translate.request.api.host=="string"&&(translate.request.api.host=[""+translate.request.api.host]);for(var t=0;t"u"||e==null?(translate.request.speedDetectionControl.hostQueueIndex=0,translate.storage.set("speedDetectionControl_hostQueueIndex",0)):translate.request.speedDetectionControl.hostQueueIndex=e}return translate.request.speedDetectionControl.hostQueueIndex},getHost:function(){var e=translate.request.speedDetectionControl.getHostQueue(),t=translate.request.speedDetectionControl.getHostQueueIndex();return e.length>t||(console.log("异常,下标越界了!index:"+t),t=e.length-1),e[t].host}},getUrl:function(e){var t=translate.request.speedDetectionControl.getHost(),a=t+e+"?v="+translate.version;return a},post:function(e,t,a,n){var o={"content-type":"application/x-www-form-urlencoded"};if(!(typeof t>"u")){if(translate.enterprise.automaticAdaptationService(),translate.request.getUrl(e),translate.service.name=="client.edge"){if(e==translate.request.api.translate){translate.service.edge.translate(e,t,a,n);return}if(e==translate.request.api.language){var r={};r.info="SUCCESS",r.result=1,r.list=translate.service.edge.language.json,a(r);return}}this.send(e,t,a,"post",!0,o,n,!0)}},send:function(e,t,a,n,o,r,s,l){var c="";if((t==null||typeof t>"u")&&(t={}),typeof t=="string")c=t;else{t.browserDefaultLanguage=translate.util.browserDefaultLanguage(),typeof translate.enterprise.key<"u"&&typeof translate.enterprise.key=="string"&&translate.enterprise.key.length>0&&(t.key=translate.enterprise.key);for(var f in t)c.length>0&&(c=c+"&"),c=c+f+"="+t[f]}e.indexOf("https://")==0||e.indexOf("http://")==0||(e=translate.request.getUrl(e));var u=null;try{u=new XMLHttpRequest}catch{u=new ActiveXObject("Microsoft.XMLHTTP")}if(u.open(n,e,o),r!=null)for(var f in r)u.setRequestHeader(f,r[f]);return translate.service.name=="translate.service"&&u.setRequestHeader("currentpage",window.location.href+""),u.send(c),u.onreadystatechange=function(){if(u.readyState==4)if(translate.request.response(u),u.status==200){var d=null;if(!(typeof u.responseText>"u"||u.responseText==null)){if(u.responseText.indexOf("{")>-1&&u.responseText.indexOf("}")>-1)try{d=JSON.parse(u.responseText)}catch(m){console.log(m)}}d==null?a(u.responseText):a(d)}else l&&(e.indexOf(translate.request.api.connectTest)>-1||(translate.service.name=="translate.service"&&!translate.enterprise.isUse&&console.log(`----- translate.js 提示 ----- +`),L=0;L"u"||d[s].length<1||s!=translate.to&&ge.push(s);if(ge.length==0){translate.state=0,translate.executeNumber++;return}for(var s in m)if(!(typeof m[s]>"u")&&!(m[s].length<1))for(var re=0;re"u"||d[s].length<1){console.log("异常,理论上不应该存在: typeof(translateTextArray[lang]) == 'undefined' || translateTextArray[lang].length < 1"),translate.state=0,translate.executeNumber++;return}(typeof translate.translateRequest[t]>"u"||translate.translateRequest[t]==null)&&(translate.translateRequest[t]={}),translate.translateRequest[t][s]={},translate.translateRequest[t][s].executeFinish=0,translate.translateRequest[t][s].addtime=Math.floor(Date.now()/1e3);var D=translate.request.api.translate,K={from:s,to:translate.to,text:encodeURIComponent(JSON.stringify(d[s]))};translate.request.post(D,K,function(S){if(S.result==0){translate.translateRequest[t][ie].result=2,translate.translateRequest[t][ie].executeFinish=1,translate.translateRequest[t][ie].stoptime=Math.floor(Date.now()/1e3),translate.waitingExecute.isAllExecuteFinish(t),console.log("=======ERROR START======="),console.log(d[S.from]),console.log("response : "+S.info),console.log("=======ERROR END =======");return}if(typeof translate.nodeQueue[t]>"u"){console.log("提示:你很可能多次引入了 translate.js 所以造成了翻译本身的数据错乱,这只是个提示,它还是会给你正常翻译的,但是你最好不要重复引入太多次 translate.js ,正常情况下只需要引入一次 translate.js 就可以了。太多的话很可能会导致你页面卡顿");return}let I=new translate.renderTask;for(var X=0;X-1&&(pe=d[S.from][X]);var T=m[S.from][X],_=translate.nodeQueue[t].list[ie][T].cacheHash,M="";try{M=translate.nodeQueue[t].list[ie][T].original}catch(_e){console.log("uuid:"+t+", originalWord:"+M+", lang:"+ie+", hash:"+T+", text:"+pe+", queue:"+translate.nodeQueue[t]),console.log(_e);continue}for(var U=0;U0){if(o.text=e[n],typeof t<"u"&&t.length>0){typeof e[n]<"u"&&(e[n]=e[n].replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a)));var s=e.getAttribute(n);s!=null&&typeof s<"u"&&e.setAttribute(n,s.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a)))}return o}if(r=="#text"&&typeof e.parentNode<"u"){var l=translate.element.getNodeName(e.parentNode);l=="TEXTAREA"&&(r="TEXTAREA",e=e.parentNode)}if(r=="INPUT"||r=="TEXTAREA"){if(e.attributes==null||typeof e.attributes>"u")return o.text="",o;if(r=="INPUT"&&typeof e.attributes.type<"u"&&typeof e.attributes.type.nodeValue!=null&&(e.attributes.type.nodeValue.toLowerCase()=="button"||e.attributes.type.nodeValue.toLowerCase()=="submit")){var c=e.attributes.value;if(c!=null&&typeof c<"u"&&typeof c.nodeValue<"u"&&c.nodeValue.length>0)return typeof t<"u"&&t.length>0&&(c.nodeValue=c.nodeValue.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=c.nodeValue,o.node=c,o}return typeof e.attributes.placeholder<"u"?(typeof t<"u"&&t.length>0&&(e.attributes.placeholder.nodeValue=e.attributes.placeholder.nodeValue.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.attributes.placeholder.nodeValue,o.node=e.attributes.placeholder,o):(o.text="",o)}if(r=="META"){if(typeof e.name<"u"&&e.name!=null){var f=e.name.toLowerCase(),u=e.getAttribute("property"),d="";if(typeof u<"u"&&u!=null&&u.length>0&&(d=u.toLowerCase()),f=="keywords"||f=="description"||f=="sharetitle"||d=="og:title"||d=="og:description"||d=="og:site_name"||d=="og:novel:latest_chapter_name")return typeof t<"u"&&t!=null&&t.length>0&&(e.content=e.content.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.content,o}return o.text="",o}return r=="IMG"?typeof e.alt>"u"||e.alt==null?(o.text="",o):(typeof t<"u"&&t.length>0&&(e.alt=e.alt.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.alt,o):(e.nodeValue==null||typeof e.nodeValue>"u"||e.nodeValue.trim().length==0?o.text="":(typeof t<"u"&&t!=null&&t.length>0&&(e.nodeValue=e.nodeValue.replace(new RegExp(translate.util.regExp.pattern(t),"g"),translate.util.regExp.resultText(a))),o.text=e.nodeValue),o)}},getNodeName:function(e){if(e==null||typeof e>"u"||e.nodeName==null||typeof e.nodeName>"u")return"";var t=e.nodeName;return t},whileNodes:function(e,t){if(!(t==null||typeof t>"u")){(typeof translate.nodeQueue[e]>"u"||translate.nodeQueue[e]==null)&&(translate.nodeQueue[e]=new Array,translate.nodeQueue[e].expireTime=Date.now()+120*1e3,translate.nodeQueue[e].list=new Array),typeof t=="object"&&typeof t.title=="string"&&t.title.length>0&&(translate.ignore.isIgnore(t)||translate.addNodeToQueue(e,t,t.title,"title"));var a=translate.element.getNodeName(t).toLowerCase();if(typeof translate.element.tagAttribute[a]<"u")for(var n in translate.element.tagAttribute[a]){var o=translate.element.tagAttribute[a][n],r=t.getAttribute(o);(typeof r>"u"||r==null)&&(r=t[o]),!(typeof r>"u"||r==null)&&translate.addNodeToQueue(e,t,r,o)}var s=t.childNodes;if(!(s==null||typeof s>"u"))if(s.length>0)for(var l=0;l"u")&&t.parentNode!=null){var a=translate.element.getNodeName(t.parentNode);if(a!=""&&!(translate.ignore.tag.indexOf(a.toLowerCase())>-1)&&!translate.ignore.isIgnore(t)){var n=translate.element.nodeAnalyse.get(t);n.text.length>0&&translate.addNodeToQueue(e,n.node,n.text)}}}},addNodeToQueue:function(e,t,a,n){if(!(t==null||a==null||a.length==0)){var o=translate.element.getNodeName(t);if(o.toLowerCase()!="#comment"){if(translate.util.hash(a),translate.util.findTag(a)){if(t.parentNode==null)return;var r=translate.element.getNodeName(t.parentNode);if(r=="SCRIPT"||r=="STYLE")return}var s=new Array;s.push(a);for(var l=0;l"u"&&(translate.temp_nomenclature=new Array),typeof translate.temp_nomenclature[translate.language.getLocal()]>"u"&&(c=new Array),typeof translate.nomenclature.data[translate.language.getLocal()]<"u"&&typeof translate.nomenclature.data[translate.language.getLocal()][translate.to]<"u"){var c;for(var f in translate.nomenclature.data[translate.language.getLocal()][translate.to]){var u=translate.nomenclature.data[translate.language.getLocal()][translate.to][f];s=translate.addNodeToQueueTextAnalysis(e,t,s,n,f,u),typeof c<"u"&&c.push(f)}typeof translate.temp_nomenclature[translate.language.getLocal()]>"u"&&(translate.temp_nomenclature[translate.language.getLocal()]=c)}for(var d=0;d-1||typeof translate.temp_nomenclature[translate.language.getLocal()]<"u"&&translate.temp_nomenclature[translate.language.getLocal()].indexOf(s[d].trim())>-1||translate.addNodeToQueueAnalysis(e,t,s[d],n))}}},addNodeToQueueTextAnalysis:function(e,t,a,n,o,r){for(var s=new Array,l=0;l-1){if(o!=r){var u=f-r.length;u<0&&(u=0);var d=f+r.length;d>c.length&&(d=c.length);var m=c.substring(u,d);if(m.indexOf(r)>-1)continue}if(translate.language.wordBlankConnector(translate.to)){if(f>0){var g=c.charAt(f-1);/\s/.test(g)||(r=" "+r)}f+o.length0)for(var w=0;w-1&&a.splice(C,1)}return a},addNodeToQueueAnalysis:function(e,t,a,n){var o=translate.language.recognition(a),r=o.languageArray;typeof r[translate.to]<"u"&&delete r[translate.to];var s=translate.whole.isWhole(t);if(s){var l=o.languageName;translate.addNodeQueueItem(e,t,a,n,l,"","")}else for(var l in r)for(var c=0;c"u"||typeof r[l].list[c].text>"u")){var f=r[l].list[c].text,u=r[l].list[c].beforeText,d=r[l].list[c].afterText;translate.addNodeQueueItem(e,t,f,n,l,u,d)}},addNodeQueueItem:function(e,t,a,n,o,r,s){(translate.nodeQueue[e].list[o]==null||typeof translate.nodeQueue[e].list[o]>"u")&&(translate.nodeQueue[e].list[o]=new Array);var l=translate.util.hash(a);(translate.nodeQueue[e].list[o][l]==null||typeof translate.nodeQueue[e].list[o][l]>"u")&&(translate.nodeQueue[e].list[o][l]=new Array,translate.nodeQueue[e].list[o][l].nodes=new Array,translate.nodeQueue[e].list[o][l].original=a,translate.nodeQueue[e].list[o][l].translateText=a);var c=!1;if(typeof t.isSameNode<"u"){for(var f=0;f-1&&console.log("自检发现您设置了 translate.whole.tag 其中有 html ,这个是不生效的,最大只允许设置到 body ")},isWhole:function(e){if(translate.whole.class.length==0&&translate.whole.tag.length==0&&translate.whole.id.length==0&&translate.whole.isEnableAll==!1||e==null||typeof e>"u")return!1;if(translate.whole.isEnableAll)return!0;for(var t=e,a=100;a-- >0;){if(t==null||typeof t>"u")return!1;var n=translate.element.getNodeName(t).toLowerCase();if(n.length>0){if(n=="html"||n=="#document")return!1;if(translate.whole.tag.indexOf(n)>-1)return!0}if(t.className!=null){var o=t.className;if(o==null||typeof o!="string")continue;o=o.trim().split(" ");for(var r=0;r0&&translate.whole.class.indexOf(o[r])>-1)return!0}if(t.id!=null&&typeof t.id<"u"&&translate.whole.id.indexOf(t.id)>-1)return!0;t=t.parentNode}return!1}},language:{englishVarietys:["french","italian","deutsch"],local:"",translateLocal:!1,translateLanguagesRange:[],setLocal:function(e){translate.useVersion="v2",translate.language.local=e},getLocal:function(){return(translate.language.local==null||translate.language.local.length<1)&&translate.language.autoRecognitionLocalLanguage(),translate.language.local},getCurrent:function(){var e=translate.storage.get("to");return e!=null&&typeof e<"u"&&e.length>0?e:translate.language.getLocal()},setDefaultTo:function(e){var t=translate.storage.get("to");t!=null&&typeof t<"u"&&t.length>0||(translate.storage.set("to",e),translate.to=e)},clearCacheLanguage:function(){translate.to="",translate.storage.set("to","")},setUrlParamControl:function(e){(typeof e>"u"||e.length<1)&&(e="language");var t=translate.util.getUrlParam(e);typeof t>"u"||t==""||t=="null"||t=="undefined"||(translate.storage.set("to",t),translate.to=t)},autoRecognitionLocalLanguage:function(){if(!(translate.language.local!=null&&translate.language.local.length>2)){var e=document.body.outerText;if(e==null||typeof e>"u"||e.length<1){translate.language.local="chinese_simplified";return}e=e.replace(/\n|\t|\r/g,""),translate.language.local="chinese_simplified";var t=translate.language.recognition(e);return translate.language.local=t.languageName,translate.language.local}},get:function(e){for(var t=new Array,a=new Array,n=[],o=[],r=0;r.01&&(c[c.length]=f+"");if(c.length>1&&c.indexOf("english")>-1)if(c.indexOf("romance")>-1){var u=translate.language.romanceSentenceAnaly(e);u.length==0?console.log("语种识别异常,应该是 法语、西班牙语、葡萄牙语、意大利语 中的一种才是,除非是除了这四种语种之外的别的 罗曼语族 中的语种,当前已将 "+e+"识别为英语。 你可以联系我们求助 https://translate.zvo.cn/4030.html"):(a[u]=a.romance+a.english,a.english=0)}else a.english=0;c.indexOf("chinese_simplified")>-1&&c.indexOf("chinese_traditional")>-1&&(a.chinese_simplified=0);var d="",m=0;for(var f in a)a[f]>m&&(d=f,m=a[f]);var g={};for(var f in t)g[f]={},g[f].number=n[f],g[f].list=t[f];var v={languageName:d,languageArray:g};if(v.languageName=="english"){var b=translate.language.getLocal();translate.language.englishVarietys.indexOf(b)>-1&&(v.languageName=b)}return v},getCharLanguage:function(e){if(e==null||typeof e>"u")return"";if(this.russian(e))return"russian";if(this.english(e))return"english";if(this.romance(e))return"romance";if(this.specialCharacter(e))return"specialCharacter";if(this.number(e))return"number";var t=this.chinese(e);return t=="simplified"?"chinese_simplified":t=="traditional"?"chinese_traditional":this.japanese(e)?"japanese":this.korean(e)?"korean":""},analyse:function(e,t,a,n,o){typeof t[e]>"u"&&(t[e]=new Array);var r=0;typeof a.storage_language>"u"||(translate.language.connector(o)&&(e=a.storage_language),a.storage_language==e?r=t[e].length-1:r=t[e].length),typeof t[e][r]>"u"&&(t[e][r]=new Array,t[e][r].beforeText="",t[e][r].afterText="",t[e][r].text=""),t[e][r].text=t[e][r].text+o,translate.language.wordBlankConnector(translate.language.getLocal())==!1&&translate.language.wordBlankConnector(translate.to)&&a.storage_language!=null&&typeof a.storage_language<"u"&&a.storage_language.length>0&&a.storage_language!="specialCharacter"&&(translate.language.wordBlankConnector(a.storage_language)==!1&&translate.language.wordBlankConnector(e)?t[a.storage_language][t[a.storage_language].length-1].afterText=" ":a.storage_language=="english"&&e!="english"&&(t[e][r].beforeText=" "));var s=new Array;return s.langStrs=t,s.storage_language=e,s},connector:function(e){return!!(/.*[\u0020\u00A0\u202F\u205F\u3000]+.*$/.test(e)||/.*[\u0030-\u0039]+.*$/.test(e)||/.*[\u0021\u0022\u0023\u0024\u0025\u0026\u0027\u002C\u002D\u002E\u003A\u003B\u003F\u0040]+.*$/.test(e)||/.*[\u3002\uFF1F\uFF01\uFF0C\u3001\uFF1B\uFF1A\u300C\u300D\u300E\u300F\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\u3010\u3011\u2014\u2026\u2013\uFF0E\u300A\u300B\u3008\u3009\u00b7]+.*$/.test(e))},wordBlankConnector:function(e){if(e==null||typeof e>"u")return!0;switch(e.trim().toLowerCase()){case"chinese_simplified":return!1;case"chinese_traditional":return!1;case"korean":return!1;case"japanese":return!1}return!0},chinese_traditional_dict:"皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊",chinese:function(e){return/.*[\u4e00-\u9fa5]+.*$/.test(e)?this.chinese_traditional_dict.indexOf(e)>-1?"traditional":"simplified":""},japanese:function(e){return!!/.*[\u3040-\u309F\u30A0-\u30FF]+.*$/.test(e)},korean:function(e){return!!/.*[\uAC00-\uD7AF]+.*$/.test(e)},russian:function(e){return!!/.*[\u0411\u0412\u0414\u0416\u0417\u0418\u0419\u041B\u041C\u041D\u041E\u041F\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042E\u042F\u0407\u0406]+.*$/.test(e)},number:function(e){return!!/.*[\u0030-\u0039]+.*$/.test(e)},english:function(e){return/.*[\u0041-\u005a]+.*$/.test(e)?!0:!!/.*[\u0061-\u007a]+.*$/.test(e)},romance_dict:["é","è","ê","à","ç","œ","ñ","á","ó","ò","ì","ã","õ"],romance:function(e){return this.romance_dict.indexOf(e)>-1},romanceSentenceAnaly:function(e){const t={french:{score:0,chars:["é","è","ê","à","ç","œ"]},spanish:{score:0,chars:["ñ","á","ó"],pairs:["ll"]},italian:{score:0,chars:["ò","ì"],pairs:["cc","ss"]},portuguese:{score:0,chars:["ã","õ"]}};for(let o=0;o{t[s].chars.includes(r)&&(t[s].score+=1)}),o{const c=t[l].pairs;c&&c.includes(s)&&(t[l].score+=2)})}}let a="",n=-1;return Object.keys(t).forEach(o=>{t[o].score>n&&(n=t[o].score,a=o)}),a||""},specialCharacter:function(e){return!!(/.*[\u2460-\u24E9]+.*$/.test(e)||/.*[\u2500-\u25FF]+.*$/.test(e)||/.*[\u3200-\u33FF]+.*$/.test(e)||/.*[\uFF00-\uFF5E]+.*$/.test(e)||/.*[\u2000-\u22FF]+.*$/.test(e)||/.*[\u3001-\u3036]+.*$/.test(e)||/.*[\u0020-\u002F]+.*$/.test(e)||/.*[\u003B\u003B\u003C\u003D\u003E\u003F\u005B\u005C\u005D\u005E\u005F\u0060\u007B\u007C\u007D\u007E]+.*$/.test(e)||/.*[\u0009\u000a\u0020\u00A0\u1680\u180E\u202F\u205F\u3000\uFEFF]+.*$/.test(e)||/.*[\u2000-\u200B]+.*$/.test(e)||/.*[\u00A1-\u0105]+.*$/.test(e)||/.*[\u2C60-\u2C77]+.*$/.test(e))}},executeByLocalLanguage:function(){var e=translate.util.browserDefaultLanguage();if(typeof e<"u"&&e.length>0){translate.changeLanguage(e);return}translate.request.post(translate.request.api.ip,{},function(t){t.result==0?(console.log("==== ERROR 获取当前用户所在区域异常 ===="),console.log(t.info),console.log("==== ERROR END ====")):(translate.storage.set("to",t.language),translate.to=t.language,translate.selectLanguageTag,translate.execute())},null)},util:{uuid:function(){var e=new Date().getTime();window.performance&&typeof window.performance.now=="function"&&(e+=performance.now());var t="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".replace(/[xy]/g,function(a){var n=(e+Math.random()*16)%16|0;return e=Math.floor(e/16),(a=="x"?n:n&3|8).toString(16)});return t},findTag:function(e){var t=/<[^>]+>/g;return t.test(e)},arrayFindMaxNumber:function(e){for(var t={},a=[],n=0,o=0,r=e.length;on&&(n=t[e[o]]);for(var s in t)t[s]===n&&a.push(s);return a},hash:function(e){if(e==null||typeof e>"u")return e;var t=0,a,n;if(e.length===0)return t;for(a=0;a=200&&t.status<300||t.status==0||t.status==304){var a=document.getElementsByTagName("HTML")[0],n=document.createElement("script");n.language="javascript",n.type="text/javascript";try{n.appendChild(document.createTextNode(t.responseText))}catch{n.text=t.responseText}return a.appendChild(n),!0}else return!1;else return!1},loadMsgJs:function(){typeof msg<"u"||translate.util.synchronizesLoadJs("https://res.zvo.cn/msg/msg.js")},objSort:function(e){var t=Array.from(Object.keys(e));t.sort(function(o,r){return r.length-o.length});var a=new Array;for(var n of t)a[n]=e[n];return a},versionStringToInt:function(e){var t=e.split("."),a=0;return a=parseInt(t[0])*1e3*1e3+a,a=parseInt(t[1])*1e3+a,a=parseInt(t[2])+a,a},split:function(e,t,a){let n=t,o=[];if(JSON.stringify(e).length<=t)o.push(e);else{let r=JSON.stringify(e).trim().substring(1,JSON.stringify(e).length-1);if(JSON.stringify(e).length-t<=2){t=t-4;let s=r.substring(0,r.lastIndexOf('","')+1),l=r.substring(r.lastIndexOf('","')+2);o.push(JSON.parse("["+s+"]")),o.push(JSON.parse("["+l+"]"))}else{t=t-2;let s=0;for(;s-r.length<0;){let l="";s+t-r.length>=0?l=r.substring(s):l=r.substring(s,s+t);let c=l.length,f=1;l.endsWith('"')?l.endsWith('","')?c-=2:l.startsWith('"')||(c=l.lastIndexOf('","')+1):l.endsWith('",')?c-=1:(c=l.lastIndexOf('","')+1,c<=0&&(l.startsWith('"')?c=l.length-1:c=l.length-2,l.endsWith('"')||(f=0)));let u="";c-l.length>0||c-0==0?(u=l,c=c+u.length):u=l.substring(0,c),!u.startsWith('"')&&!u.startsWith(',"')&&(u='"'+u),u.endsWith('"')||(u=u+'"'),s+=c+f,u="["+u+"]";try{o.push(JSON.parse(u))}catch{s=s-(c+f)+1}}}}return a&&a>0&&(o=translate.util._splitMaxSize(o,n,a)),o},_splitMaxSize:function(e,t,a){let n=[],o=[];if(e.forEach(function(r,s){if(r=o.concat(r),r.length>a){let c=r.slice(0,a),f=r.slice(a),u=1;for(;JSON.stringify(c).length>t&&(c=r.slice(0,a-u),f=r.slice(a-u),u++,!(u>=r.length+1)););n.push(c),o.length=0,o=f}else{let c=r,f=[],u=1;for(;JSON.stringify(c).length>t&&(c=r.slice(0,a-u),f=r.slice(a-u),u++,!(u>=r.length+1)););n.push(c),o.length=0,o=f}}),o.length>0){let r=[];r.push(o);let s=translate.util._splitMaxSize(r,t,a);n=n.concat(s)}return n},browserLanguage:{"zh-CN":"chinese_simplified","zh-TW":"chinese_traditional","zh-HK":"chinese_traditional",co:"corsican",gn:"guarani",rw:"kinyarwanda",ha:"hausa",no:"norwegian",nl:"dutch",yo:"yoruba",en:"english","en-US":"english",kok:"gongen",la:"latin",ne:"nepali",fr:"french",cs:"czech",haw:"hawaiian",ka:"georgian",ru:"russian",fa:"persian",bho:"bhojpuri",hi:"hindi",be:"belarusian",sw:"swahili",is:"icelandic",yi:"yiddish",tw:"twi",ga:"irish",gu:"gujarati",km:"khmer",sk:"slovak",he:"hebrew",kn:"kannada",hu:"hungarian",ta:"tamil",ar:"arabic",bn:"bengali",az:"azerbaijani",sm:"samoan",af:"afrikaans",id:"indonesian",da:"danish",sn:"shona",bm:"bambara",lt:"lithuanian",vi:"vietnamese",mt:"maltese",tk:"turkmen",as:"assamese",ca:"catalan",si:"singapore",ceb:"cebuano",gd:"scottish-gaelic",sa:"sanskrit",pl:"polish",gl:"galician",lv:"latvian",uk:"ukrainian",tt:"tatar",cy:"welsh",ja:"japanese",fil:"filipino",ay:"aymara",lo:"lao",te:"telugu",ro:"romanian",ht:"haitian_creole",doi:"dogrid",sv:"swedish",mai:"maithili",th:"thai",hy:"armenian",my:"burmese",ps:"pashto",hmn:"hmong",dv:"dhivehi",lb:"luxembourgish",sd:"sindhi",ku:"kurdish",tr:"turkish",mk:"macedonian",bg:"bulgarian",ms:"malay",lg:"luganda",mr:"marathi",et:"estonian",ml:"malayalam",de:"deutsch",sl:"slovene",ur:"urdu",pt:"portuguese",ig:"igbo",ckb:"kurdish_sorani",om:"oromo",el:"greek",es:"spanish",fy:"frisian",so:"somali",am:"amharic",ny:"nyanja",pa:"punjabi",eu:"basque",it:"italian",sq:"albanian",ko:"korean",tg:"tajik",fi:"finnish",ky:"kyrgyz",ee:"ewe",hr:"croatian",kri:"creole",qu:"quechua",bs:"bosnian",mi:"maori"},browserDefaultLanguage:function(){var e=navigator.language||navigator.userLanguage;if(typeof e=="string"&&e.length>0){var t=translate.util.browserLanguage[e];if(typeof t>"u")console.log("browser default language : "+e+", translate.js current translate channel not support this language ");else return t}return""}},service:{name:"translate.service",use:function(e){if(translate.enterprise.isUse==!0){console.log("您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use('"+e+"'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。");return}typeof e=="string"&&e=="client.edge"&&(translate.service.name=e,translate.whole.enableAll())},edge:{api:{auth:"https://edge.microsoft.com/translate/auth",translate:"https://api.cognitive.microsofttranslator.com/translate?from={from}&to={to}&api-version=3.0&includeSentenceLength=true"},language:{json:[{id:"ukrainian",name:"Україна",serviceId:"uk"},{id:"norwegian",name:"Norge",serviceId:"no"},{id:"welsh",name:"Iaith Weleg",serviceId:"cy"},{id:"dutch",name:"nederlands",serviceId:"nl"},{id:"japanese",name:"日本語",serviceId:"ja"},{id:"filipino",name:"Pilipino",serviceId:"fil"},{id:"english",name:"English",serviceId:"en"},{id:"lao",name:"ກະຣຸນາ",serviceId:"lo"},{id:"telugu",name:"తెలుగుName",serviceId:"te"},{id:"romanian",name:"Română",serviceId:"ro"},{id:"nepali",name:"नेपालीName",serviceId:"ne"},{id:"french",name:"Français",serviceId:"fr"},{id:"haitian_creole",name:"Kreyòl ayisyen",serviceId:"ht"},{id:"czech",name:"český",serviceId:"cs"},{id:"swedish",name:"Svenska",serviceId:"sv"},{id:"russian",name:"Русский язык",serviceId:"ru"},{id:"malagasy",name:"Malagasy",serviceId:"mg"},{id:"burmese",name:"ဗာရမ်",serviceId:"my"},{id:"pashto",name:"پښتوName",serviceId:"ps"},{id:"thai",name:"คนไทย",serviceId:"th"},{id:"armenian",name:"Արմենյան",serviceId:"hy"},{id:"chinese_simplified",name:"简体中文",serviceId:"zh-CHS"},{id:"persian",name:"Persian",serviceId:"fa"},{id:"chinese_traditional",name:"繁體中文",serviceId:"zh-CHT"},{id:"kurdish",name:"Kurdî",serviceId:"ku"},{id:"turkish",name:"Türkçe",serviceId:"tr"},{id:"hindi",name:"हिन्दी",serviceId:"hi"},{id:"bulgarian",name:"български",serviceId:"bg"},{id:"malay",name:"Malay",serviceId:"ms"},{id:"swahili",name:"Kiswahili",serviceId:"sw"},{id:"oriya",name:"ଓଡିଆ",serviceId:"or"},{id:"icelandic",name:"ÍslandName",serviceId:"is"},{id:"irish",name:"Íris",serviceId:"ga"},{id:"khmer",name:"ភាសា​ខ្មែរName",serviceId:"km"},{id:"gujarati",name:"ગુજરાતી",serviceId:"gu"},{id:"slovak",name:"Slovenská",serviceId:"sk"},{id:"kannada",name:"ಕನ್ನಡ್Name",serviceId:"kn"},{id:"hebrew",name:"היברית",serviceId:"he"},{id:"hungarian",name:"magyar",serviceId:"hu"},{id:"marathi",name:"मराठीName",serviceId:"mr"},{id:"tamil",name:"தாமில்",serviceId:"ta"},{id:"estonian",name:"eesti keel",serviceId:"et"},{id:"malayalam",name:"മലമാലം",serviceId:"ml"},{id:"inuktitut",name:"ᐃᓄᒃᑎᑐᑦ",serviceId:"iu"},{id:"arabic",name:"بالعربية",serviceId:"ar"},{id:"deutsch",name:"Deutsch",serviceId:"de"},{id:"slovene",name:"slovenščina",serviceId:"sl"},{id:"bengali",name:"বেঙ্গালী",serviceId:"bn"},{id:"urdu",name:"اوردو",serviceId:"ur"},{id:"azerbaijani",name:"azerbaijani",serviceId:"az"},{id:"portuguese",name:"português",serviceId:"pt"},{id:"samoan",name:"lifiava",serviceId:"sm"},{id:"afrikaans",name:"afrikaans",serviceId:"af"},{id:"tongan",name:"汤加语",serviceId:"to"},{id:"greek",name:"ελληνικά",serviceId:"el"},{id:"indonesian",name:"IndonesiaName",serviceId:"id"},{id:"spanish",name:"Español",serviceId:"es"},{id:"danish",name:"dansk",serviceId:"da"},{id:"amharic",name:"amharic",serviceId:"am"},{id:"punjabi",name:"ਪੰਜਾਬੀName",serviceId:"pa"},{id:"albanian",name:"albanian",serviceId:"sq"},{id:"lithuanian",name:"Lietuva",serviceId:"lt"},{id:"italian",name:"italiano",serviceId:"it"},{id:"vietnamese",name:"Tiếng Việt",serviceId:"vi"},{id:"korean",name:"한국어",serviceId:"ko"},{id:"maltese",name:"Malti",serviceId:"mt"},{id:"finnish",name:"suomi",serviceId:"fi"},{id:"catalan",name:"català",serviceId:"ca"},{id:"croatian",name:"hrvatski",serviceId:"hr"},{id:"bosnian",name:"bosnian",serviceId:"bs-Latn"},{id:"polish",name:"Polski",serviceId:"pl"},{id:"latvian",name:"latviešu",serviceId:"lv"},{id:"maori",name:"Maori",serviceId:"mi"}],getMap:function(){if(typeof translate.service.edge.language.map>"u"){translate.service.edge.language.map=new Array;for(var e=0;e1){for(var $=-1,w=0;w$;E--)for(var R=r[E].length,y=0;y"u"){typeof translate.request.api.host=="string"&&(translate.request.api.host=[""+translate.request.api.host]),translate.request.speedDetectionControl.hostQueue=[];for(var t=0;t"u")&&(n=0);var o=6e4;new Date().getTime()-n>o&&translate.request.speedDetectionControl.checkResponseSpeed()}return translate.request.speedDetectionControl.hostQueue},checkResponseSpeed_Storage:function(e,t){translate.request.speedDetectionControl.checkHostQueue.push({host:e,time:t}),translate.request.speedDetectionControl.checkHostQueue.sort((a,n)=>a.time-n.time),translate.storage.set("speedDetectionControl_hostQueue",JSON.stringify(translate.request.speedDetectionControl.checkHostQueue)),translate.storage.set("speedDetectionControl_lasttime",new Date().getTime()),translate.request.speedDetectionControl.hostQueue=translate.request.speedDetectionControl.checkHostQueue},checkResponseSpeed:function(){var e={"content-type":"application/x-www-form-urlencoded"};translate.request.speedDetectionControl.checkHostQueue=[],translate.request.speedDetectionControl.checkHostQueueMap=[],typeof translate.request.api.host=="string"&&(translate.request.api.host=[""+translate.request.api.host]);for(var t=0;t"u"||e==null?(translate.request.speedDetectionControl.hostQueueIndex=0,translate.storage.set("speedDetectionControl_hostQueueIndex",0)):translate.request.speedDetectionControl.hostQueueIndex=e}return translate.request.speedDetectionControl.hostQueueIndex},getHost:function(){var e=translate.request.speedDetectionControl.getHostQueue(),t=translate.request.speedDetectionControl.getHostQueueIndex();return e.length>t||(console.log("异常,下标越界了!index:"+t),t=e.length-1),e[t].host}},getUrl:function(e){var t=translate.request.speedDetectionControl.getHost(),a=t+e+"?v="+translate.version;return a},post:function(e,t,a,n){var o={"content-type":"application/x-www-form-urlencoded"};if(!(typeof t>"u")){if(translate.enterprise.automaticAdaptationService(),translate.request.getUrl(e),translate.service.name=="client.edge"){if(e==translate.request.api.translate){translate.service.edge.translate(e,t,a,n);return}if(e==translate.request.api.language){var r={};r.info="SUCCESS",r.result=1,r.list=translate.service.edge.language.json,a(r);return}}this.send(e,t,a,"post",!0,o,n,!0)}},send:function(e,t,a,n,o,r,s,l){var c="";if((t==null||typeof t>"u")&&(t={}),typeof t=="string")c=t;else{t.browserDefaultLanguage=translate.util.browserDefaultLanguage(),typeof translate.enterprise.key<"u"&&typeof translate.enterprise.key=="string"&&translate.enterprise.key.length>0&&(t.key=translate.enterprise.key);for(var f in t)c.length>0&&(c=c+"&"),c=c+f+"="+t[f]}e.indexOf("https://")==0||e.indexOf("http://")==0||(e=translate.request.getUrl(e));var u=null;try{u=new XMLHttpRequest}catch{u=new ActiveXObject("Microsoft.XMLHTTP")}if(u.open(n,e,o),r!=null)for(var f in r)u.setRequestHeader(f,r[f]);return translate.service.name=="translate.service"&&u.setRequestHeader("currentpage",window.location.href+""),u.send(c),u.onreadystatechange=function(){if(u.readyState==4)if(translate.request.response(u),u.status==200){var d=null;if(!(typeof u.responseText>"u"||u.responseText==null)){if(u.responseText.indexOf("{")>-1&&u.responseText.indexOf("}")>-1)try{d=JSON.parse(u.responseText)}catch(m){console.log(m)}}d==null?a(u.responseText):a(d)}else l&&(e.indexOf(translate.request.api.connectTest)>-1||(translate.service.name=="translate.service"&&!translate.enterprise.isUse&&console.log(`----- translate.js 提示 ----- 非常抱歉,translate.service 开源免费的翻译服务器当前并发及流量太大导致阻塞! 这个情况是时不时发生的,大概一天24小时可能会有一二十分钟这种情况,主要是因为使用量太大了,月使用量能超四十亿次,所以在高发时会出现这种情况。 解决这种情况可以有两种方案: @@ -156,22 +156,22 @@ translate.js 主动翻译组件自检异常,当前协议是file协议,翻译 } `,document.head.appendChild(e),translate.progress.api.isTip&&(translate.listener.execute.renderStartByApi.push(function(t){for(var a in translate.nodeQueue[t].list)if(translate.language.getCurrent()!=a)for(var n in translate.nodeQueue[t].list[a])for(var o in translate.nodeQueue[t].list[a][n].nodes){var r=translate.nodeQueue[t].list[a][n].nodes[o].node,s=r.parentNode;if(s!=null&&s.childNodes.length==1)if(typeof s.className>"u"||s.className==null||s.className=="")s.className=" translate_api_in_progress";else{if(s.className.indexOf("translate_api_in_progress")>-1)continue;s.className=s.className+" translate_api_in_progress"}}}),translate.listener.execute.renderFinishByApi.push(function(t){for(var a in translate.nodeQueue[t].list)if(translate.language.getCurrent()!=a)for(var n in translate.nodeQueue[t].list[a])for(var o in translate.nodeQueue[t].list[a][n].nodes){var r=translate.nodeQueue[t].list[a][n].nodes[o].node,s=r.parentNode;if(s!=null){var l=s.className;typeof l>"u"||l==null||l==""||l.indexOf("translate_api_in_progress")<-1||(s.className=l.replace(/translate_api_in_progress/g,""))}}}))}}},jsObject:function(e,t=""){var a={};if(typeof e=="object"&&e!==null)if(Array.isArray(e))e.forEach((n,o)=>{const r=t?`${t}[${o}]`:`[${o}]`;translate.jsObject(n,r)});else for(const n in e){const o=t?`${t}.${n}`:n;typeof e[n]=="object"&&e[n]!==null?translate.jsObject(e[n],o):typeof e[n]=="string"&&typeof a[e[n]]>"u"&&(a[e[n]]=new Array)}else typeof e=="string"&&typeof e=="string"&&(typeof a[e]>"u"&&(a[e]=new Array),a[e].push("not key"));return a}},nodeuuid={index:function(e){var t=e.parentNode;if(t==null)return"";var a;if(typeof e.tagName>"u")a=t.childNodes;else{a=[];for(var n=t.childNodes,o=0;oawait request({url:"/prompt/history/get_history",method:"get"}),saveHistory:async e=>await request({url:"/prompt/history/add_history",method:"post",data:e}),deleteHistory:async e=>await request({url:"/prompt/history/delete_history",method:"post",data:{id_index:e}}),batchDeleteHistory:async e=>await request({url:"/prompt/history/batch_delete_history",method:"post",data:{id_index:e}}),getFavorite:async()=>await request({url:"/prompt/collect_history/get_collect_history",method:"get"}),addFavorite:async e=>await request({url:"/prompt/collect_history/add_collect_history",method:"post",data:e}),editFavorite:async e=>await request({url:"/prompt/collect_history/edit_collect_history",method:"post",data:e}),deleteFavorite:async e=>await request({url:"/prompt/collect_history/delete_collect_history",method:"post",data:{id_index:e}}),batchDeleteFavorite:async e=>await request({url:"/prompt/collect_history/batch_delete_collect_history",method:"post",data:{id_indices:e}})},_hoisted_1$e={class:"lora-manager-top-bar"},_hoisted_2$d=["placeholder"],_hoisted_3$d=["title"],_hoisted_4$c=["title"],_hoisted_5$b={class:"checkbox-container"},_hoisted_6$b=["onClick"],_hoisted_7$b=["onClick"],_hoisted_8$b={key:0,class:"loading-indicator"},_hoisted_9$b={key:1,class:"empty-list"},_hoisted_10$a=["onClick","onMouseover"],_hoisted_11$a=["src","alt","title"],_hoisted_12$a={key:0,class:"loading-more"},_hoisted_13$9={key:1,class:"no-more-data"},prefix$3="weilin_prompt_ui_",_sfc_main$e={__name:"lora_index",props:{loraManager:{type:String,default:"look"}},setup(e,{expose:t}){const{t:a}=useI18n(),n=ref(!1),o=ref(!1),r=ref(!1),s=ref(!1),l=ref("all"),c=ref(""),f=ref(null),u=ref(""),d=ref(null),m=ref(!1),g=ref(""),v=ref(100),b=ref(0),$=ref(),w=ref(!1),N=ref(!1),P=ref(),y=ref(localStorage.getItem("weilin_prompt_ui_showHoverInfo")),E=ref(localStorage.getItem("weilin_prompt_ui_clickAddTag"));(y.value===null||y.value===void 0||y.value==="")&&(localStorage.setItem("weilin_prompt_ui_showHoverInfo",!0),y.value=!0),(E.value===null||E.value===void 0||E.value==="")&&(localStorage.setItem("weilin_prompt_ui_clickAddTag",!1),E.value=!1);const R=e;watch(y,_=>{localStorage.setItem("weilin_prompt_ui_showHoverInfo",_)}),watch(E,_=>{localStorage.setItem("weilin_prompt_ui_clickAddTag",_)});const F=ref(1),H=ref(50),j=computed(()=>{if(l.value==="all"){const _=O.value;if(_){const M=Object.values(_);return Math.ceil(M.length/H.value)}}else{const _=O.value[c.value];if(_){const M=Object.values(_);return Math.ceil(M.length/H.value)}return 1}}),fe=()=>{w.value=!0,N.value=!0},oe=(_,M)=>{if(!y.value||y.value=="false"||(N.value=!0,g.value===_&&m.value))return;const _e=M.currentTarget.getBoundingClientRect(),me=window.innerHeight,J=450;let ue={left:_e.left+(_e.width-J)/2,top:_e.top+_e.height+10};ue.top+310>me&&(ue.top=_e.top-310),ue.left=Math.max(10,Math.min(ue.left,window.innerWidth-J-10)),ue.top=Math.max(10,Math.min(ue.top,me-310)),v.value=ue.left,b.value=ue.top,m.value=!0,g.value=_,nextTick(()=>{P.value.refresh()})},V=()=>{N.value=!1,setTimeout(()=>{!w.value&&!N.value&&(m.value=!1,g.value="",w.value=!1)},200)},q=()=>{m.value=!1,g.value="",w.value=!1},Q=ref([]),O=ref([]),G=ref(""),ee=ref(0),A=(_,M)=>{ee.value=_,G.value=M},D=async()=>{try{const _=await loraApi.getLoraFolderList();Q.value=_.data}catch(_){console.error("Failed to get folder list:",_),message$1({type:"error",str:"message.loadFailed"})}},W=()=>{if(!d.value||r.value||s.value)return;const _=d.value;_.scrollHeight-_.scrollTop-_.clientHeight<100&&X()},ae=ref(!1);let Y=null;const ne=()=>{Y&&clearTimeout(Y),Y=setTimeout(()=>{u.value.length>0?(ae.value=!0,B()):(ae.value=!1,I())},300)},te=_=>{var M;return(M=_.local_info)!=null&&M.name&&_.local_info.name!==""&&_.local_info.name.length>0?_.local_info.name:_.name},ge=ref(),re=_=>{R.loraManager==="addLora"?pe(_):R.loraManager==="prompt_inner"&&E.value?k(_):ge.value.open(_)},B=async()=>{try{const _=await loraApi.searchLoraGetFolderList(u.value);if(O.value=_.data,O.value.length>0){F.value=1;const M=Object.values(O.value),U=(F.value-1)*50,_e=U+50,me=M.slice(U,_e);K(me)}}catch(_){console.error("Failed to get folder list:",_),message$1({type:"error",str:"message.loadFailed"})}},z=ref([]),Z=_=>{if(_==="all"){z.value=[],l.value=_,c.value="/",O.value=Q.value[_];const M=O.value;if(M){s.value=!1,F.value=1;const U=Object.values(M),_e=(F.value-1)*50,me=_e+50,J=U.slice(_e,me);K(J)}}else{z.value=[],l.value=_,c.value="/",O.value=Q.value[_];const M=O.value["/"];if(M){s.value=!1,F.value=1;const U=Object.values(M),_e=(F.value-1)*50,me=_e+50,J=U.slice(_e,me);K(J)}}},L=_=>{if(_!=c.value){c.value=_,z.value=[];const M=O.value[c.value];if(M){s.value=!1,F.value=1;const U=Object.values(M),_e=(F.value-1)*50,me=_e+50,J=U.slice(_e,me);K(J)}}},K=async _=>{const M=await loraApi.getLoraRangeList(_);F.value===1?z.value=M.data.loras:z.value=z.value.concat(M.data.loras)},x=async()=>{if(f.value!=null){message$1({type:"warn",str:"message.isLoading"});return}try{message$1({type:"success",str:"message.isLoadingPleaseWait"}),await loraApi.getAllLoraList(),f.value=setInterval(async()=>{await S()},1e3)}catch(_){console.error("Failed to get all lora list:",_),message$1({type:"error",str:"message.loadFailed"})}},S=async()=>{try{const _=await loraApi.getAllLoraStatus();_.data.isLoading===!1?(clearInterval(f.value),f.value=null,message$1({type:"success",str:"message.loaddingSuccess"}),await I()):message$1({type:"warn",str:"message.loaddingPrc",name:_.data.progress})}catch(_){console.error("Failed to get lora status:",_),clearInterval(f.value),f.value=null,message$1({type:"error",str:"message.loadFailed"})}},I=async()=>{if(!n.value){n.value=!0,F.value=1,s.value=!1,r.value=!1;try{await D(),nextTick(()=>{Z("all")})}catch(_){console.error("Failed to refresh lora list:",_)}finally{n.value=!1}}},X=async()=>{if(F.value>=j.value){s.value=!0;return}r.value=!0;try{if(F.value++,ae.value){if(O.value=res.data,O.value.length>0){const _=Object.values(O.value),M=(F.value-1)*50,U=M+50,_e=_.slice(M,U);K(_e)}}else if(l.value==="all"){O.value=Q.value[l.value];const _=O.value;if(_){const M=Object.values(_),U=(F.value-1)*50,_e=U+50,me=M.slice(U,_e);K(me)}}else{const _=O.value[c.value];if(_){const M=Object.values(_),U=(F.value-1)*50,_e=U+50,me=M.slice(U,_e);K(me)}}}finally{r.value=!1}},ie=()=>{F.value=1,s.value=!1,r.value=!1};watch([l,c,u],()=>{ie()}),onMounted(()=>{I()});const pe=_=>{var M,U,_e,me,J,ue,$e,xe,Ne;ee.value===0?window.postMessage({type:"weilin_prompt_ui_selectLora",lora:{name:_.model_name,display_name:te(_),lora:_.name,weight:(M=_.local_info)!=null&&M.strengthMin?_.local_info.strengthMin:1,text_encoder_weight:(U=_.local_info)!=null&&U.strWeight?_.local_info.strWeight:1,loraWorks:(_e=_.local_info)!=null&&_e.loraWorks?_.local_info.loraWorks:""}},"*"):ee.value===1?window.postMessage({type:"weilin_prompt_ui_selectLora_stack_"+G.value,lora:{name:_.model_name,display_name:te(_),lora:_.name,weight:(me=_.local_info)!=null&&me.strengthMin?_.local_info.strengthMin:1,text_encoder_weight:(J=_.local_info)!=null&&J.strWeight?_.local_info.strWeight:1,loraWorks:(ue=_.local_info)!=null&&ue.loraWorks?_.local_info.loraWorks:""}},"*"):ee.value===2&&window.postMessage({type:"weilin_prompt_ui_selectLora_stack_node_"+G.value,lora:{name:_.model_name,display_name:te(_),lora:_.name,weight:($e=_.local_info)!=null&&$e.strengthMin?_.local_info.strengthMin:1,text_encoder_weight:(xe=_.local_info)!=null&&xe.strWeight?_.local_info.strWeight:1,loraWorks:(Ne=_.local_info)!=null&&Ne.loraWorks?_.local_info.loraWorks:""}},"*")},k=_=>{var M,U,_e;window.postMessage({type:"weilin_prompt_ui_addLoraTag_inner",lora:{tag:``,loraWorks:(_e=_.local_info)!=null&&_e.loraWorks?_.local_info.loraWorks:""}},"*")};return t({openSetSeed:A}),(_,M)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix$3}lora-manager`)},[createBaseVNode("div",_hoisted_1$e,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":M[0]||(M[0]=U=>u.value=U),class:normalizeClass(`${prefix$3}search-input`),placeholder:unref(a)("loraManager.searchPlaceholder"),onInput:ne},null,42,_hoisted_2$d),[[vModelText,u.value]]),createBaseVNode("button",{class:normalizeClass(`${prefix$3}refresh-btn`),onClick:I,title:unref(a)("loraManager.refresh")},[(openBlock(),createElementBlock("svg",{class:normalizeClass([`${prefix$3}refresh-icon`,{"is-rotating":n.value}]),viewBox:"0 0 24 24",width:"20",height:"20"},M[3]||(M[3]=[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},null,-1)]),2))],10,_hoisted_3$d),createBaseVNode("button",{style:{"margin-left":"10px"},class:normalizeClass(`${prefix$3}refresh-btn`),onClick:x,title:unref(a)("loraManager.cacheAll")},[(openBlock(),createElementBlock("svg",{class:normalizeClass([`${prefix$3}refresh-icon`,{"is-rotating":n.value}]),viewBox:"0 0 24 24",width:"20",height:"20"},M[4]||(M[4]=[createBaseVNode("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"},null,-1)]),2))],10,_hoisted_4$c),createBaseVNode("div",_hoisted_5$b,[createBaseVNode("label",{class:normalizeClass(`${prefix$3}checkbox-label`)},[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":M[1]||(M[1]=U=>y.value=U),class:normalizeClass(`${prefix$3}checkbox`)},null,2),[[vModelCheckbox,y.value]]),M[5]||(M[5]=createBaseVNode("span",null,"悬浮信息",-1))],2),e.loraManager=="prompt_inner"?(openBlock(),createElementBlock("label",{key:0,class:normalizeClass(`${prefix$3}checkbox-label`)},[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":M[2]||(M[2]=U=>E.value=U),class:normalizeClass(`${prefix$3}checkbox`)},null,2),[[vModelCheckbox,E.value]]),M[6]||(M[6]=createBaseVNode("span",null,"点击添加Tag",-1))],2)):createCommentVNode("",!0)])]),ae.value?createCommentVNode("",!0):(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(`${prefix$3}category-nav`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(Object.keys(Q.value),U=>(openBlock(),createElementBlock("button",{key:U,class:normalizeClass([`${prefix$3}category-btn`,{active:l.value===U}]),onClick:_e=>Z(U)},toDisplayString$1(U==="/"?unref(a)("loraManager.root"):U=="all"?unref(a)("loraManager.all"):U),11,_hoisted_6$b))),128))],2)),l.value!="all"&&!ae.value?(openBlock(),createElementBlock("div",{key:1,class:normalizeClass(`${prefix$3}subcategory-nav`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(Object.keys(O.value),U=>(openBlock(),createElementBlock("button",{key:U,class:normalizeClass([`${prefix$3}category-btn`,{active:c.value===U}]),onClick:_e=>L(U)},toDisplayString$1(U==="/"?unref(a)("loraManager.root"):U=="all"?unref(a)("loraManager.all"):U),11,_hoisted_7$b))),128))],2)):createCommentVNode("",!0),createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-list-container`),ref_key:"scrollContainer",ref:d,onScroll:W},[o.value&&!r.value?(openBlock(),createElementBlock("div",_hoisted_8$b,toDisplayString$1(unref(a)("loraManager.loading")),1)):z.value.length===0?(openBlock(),createElementBlock("div",_hoisted_9$b,toDisplayString$1(unref(a)("loraManager.noResults")),1)):createCommentVNode("",!0),createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-list`),style:{display:"grid","grid-template-columns":"repeat(auto-fill, minmax(150px, 1fr))",gap:"12px"}},[(openBlock(!0),createElementBlock(Fragment,null,renderList(z.value,U=>(openBlock(),createElementBlock("div",{key:U.file_path,class:normalizeClass(`${prefix$3}lora-card`),ref_for:!0,ref_key:"loraCardRef",ref:$,onClick:_e=>re(U),onMouseover:_e=>oe(U.name,_e),onMouseleave:V,style:{display:"flex","flex-direction":"column","min-height":"200px",cursor:"pointer"}},[createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-preview`),style:{flex:"1",display:"flex","align-items":"center","justify-content":"center",overflow:"hidden",width:"100%"}},[U.preview?(openBlock(),createElementBlock("img",{key:0,src:U.preview,alt:U.model_name,title:U.model_name,loading:"lazy",style:{width:"100%",height:"100%","object-fit":"contain","min-height":"150px"}},null,8,_hoisted_11$a)):(openBlock(),createElementBlock("div",{key:1,class:normalizeClass(`${prefix$3}no-preview`),style:{width:"100%",height:"100%",display:"flex","align-items":"center","justify-content":"center","min-height":"150px"}},M[7]||(M[7]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24"},[createBaseVNode("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"})],-1)]),2))],2),createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-name`),style:{padding:"8px","text-align":"center","word-break":"break-word","white-space":"normal",display:"-webkit-box","-webkit-line-clamp":"2","-webkit-box-orient":"vertical",overflow:"hidden","min-height":"40px","max-height":"40px","line-height":"1.2","text-overflow":"ellipsis"}},toDisplayString$1(te(U)),3)],42,_hoisted_10$a))),128))],2),createBaseVNode("div",null,[r.value?(openBlock(),createElementBlock("div",_hoisted_12$a,toDisplayString$1(unref(a)("loraManager.loadingMore")),1)):createCommentVNode("",!0),!r.value&&s.value?(openBlock(),createElementBlock("div",_hoisted_13$9,toDisplayString$1(unref(a)("loraManager.noMoreData")),1)):createCommentVNode("",!0)])],34),createVNode(loraDetail,{ref_key:"loraDetailRef",ref:ge},null,512),m.value?(openBlock(),createBlock(LoraCard,{key:2,ref_key:"loraCardItem",ref:P,fileNmae:g.value,paddingLeft:v.value,paddingTop:b.value,onCardLeave:q,onCardenter:fe},null,8,["fileNmae","paddingLeft","paddingTop"])):createCommentVNode("",!0)],2))}},LoraManager=_export_sfc(_sfc_main$e,[["__scopeId","data-v-e5643d0b"]]),_hoisted_1$d={class:"tag-manager"},_hoisted_2$c={class:"selected-categories-container"},_hoisted_3$c={class:"selected-categories-header"},_hoisted_4$b={class:"selected-categories-content"},_hoisted_5$a={key:0,class:"selected-category-section"},_hoisted_6$a={class:"section-title"},_hoisted_7$a={class:"selected-items"},_hoisted_8$a={class:"category-name"},_hoisted_9$a=["onClick"],_hoisted_10$9={key:1,class:"selected-category-section"},_hoisted_11$9={class:"section-title"},_hoisted_12$9={class:"selected-items"},_hoisted_13$8={class:"category-name"},_hoisted_14$7={class:"subcategory-name"},_hoisted_15$7=["onClick"],_hoisted_16$7={key:2,class:"no-selected"},_hoisted_17$7={class:"category-tabs"},_hoisted_18$5={class:"tabs-wrapper primary-tabs"},_hoisted_19$5={class:"tabs-scroll"},_hoisted_20$5=["onClick"],_hoisted_21$5={class:"tab-text"},_hoisted_22$5=["onClick","title"],_hoisted_23$5={key:0,class:"tabs-wrapper group-tabs"},_hoisted_24$5={class:"tabs-scroll"},_hoisted_25$5=["onClick"],_hoisted_26$5={class:"tab-text"},_hoisted_27$5=["onClick","disabled","title"],_sfc_main$d={__name:"tag_group_select",emits:["sureSelect"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=a,r=ref([]),s=ref(null),l=ref(null),c=ref([]),f=ref(!1),u=ref([]),d=ref(!1),m=ref(0),g=computed(()=>u.value.filter(q=>!q.sub)),v=computed(()=>u.value.filter(q=>q.sub)),b=q=>u.value.findIndex(Q=>Q.group.p_uuid===q.group.p_uuid&&!Q.sub),$=q=>u.value.findIndex(Q=>Q.group.p_uuid===q.group.p_uuid&&Q.sub&&Q.sub.g_uuid===q.sub.g_uuid),w=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh_select"},"*")},N=async()=>{try{const q=await tagsApi.getTagsGroupList();if(r.value=q.info,l.value){const Q=r.value.flatMap(O=>O.groups).find(O=>O.p_uuid===l.value.p_uuid);Q?l.value=Q:l.value=null}if(s.value){const Q=r.value.find(O=>O.p_uuid===s.value.p_uuid);Q?s.value=Q:s.value=null}}catch(q){console.error("获取标签列表失败:",q)}},P=q=>{if(!q||q==="transparent")return"var(--primary-text)";let Q,O,G,ee=1;if(q.startsWith("rgba")){const D=q.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);D&&([,Q,O,G,ee]=D.map(Number))}else if(q.startsWith("rgb")){const D=q.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);D&&([,Q,O,G]=D.map(Number))}return ee<.5?"var(--primary-text)":(Q*299+O*587+G*114)/1e3>128?"#000000":"#ffffff"};onMounted(()=>{window.addEventListener("message",oe)}),onBeforeUnmount(()=>{window.removeEventListener("message",oe)});const y=q=>{s.value=q,l.value=null,f.value=!1,c.value=[]},E=q=>{R(s.value)||(l.value=q,f.value=!1,c.value=[])},R=q=>q?u.value.some(Q=>Q.group.p_uuid===q.p_uuid&&!Q.sub):!1,F=q=>{const Q=u.value.findIndex(O=>O.group.p_uuid===q.p_uuid&&!O.sub);Q!==-1?u.value.splice(Q,1):(u.value=u.value.filter(O=>O.group.p_uuid!==q.p_uuid),u.value.push({group:{p_uuid:q.p_uuid,name:q.name},sub:null}))},H=(q,Q)=>{if(R(q))return;const O=u.value.findIndex(G=>G.group.p_uuid===q.p_uuid&&G.sub&&G.sub.g_uuid===Q.g_uuid);if(O!==-1)u.value.splice(O,1);else{const G=u.value.findIndex(ee=>ee.group.p_uuid===q.p_uuid&&!ee.sub);G!==-1&&u.value.splice(G,1),u.value.push({group:{p_uuid:q.p_uuid,name:q.name},sub:Q?{g_uuid:Q.g_uuid,name:Q.name}:null})}},j=q=>{u.value.splice(q,1)},fe=()=>{u.value=[]},oe=q=>{q.data.type==="weilin_prompt_ui_tag_manager_refresh_select"&&N()},V=()=>{if(u.value.length===0){message$1({type:"warn",str:"message.pleaseSelectGroup"});return}o("sureSelect",{data:u.value,index:m.value}),d.value=!1};return t({open:(q,Q)=>{w(),m.value=q,u.value=Q,d.value=!0}}),(q,Q)=>(openBlock(),createBlock(Dialog,{modelValue:d.value,"onUpdate:modelValue":Q[1]||(Q[1]=O=>d.value=O),title:unref(n)("importDialog.selectTitle")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:Q[0]||(Q[0]=O=>d.value=!1)},toDisplayString$1(unref(n)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:V},toDisplayString$1(unref(n)("importDialog.sureSelect")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$d,[createBaseVNode("div",_hoisted_2$c,[createBaseVNode("div",_hoisted_3$c,[createBaseVNode("span",null,toDisplayString$1(unref(n)("importDialog.selectedCategories")),1),u.value.length>0?(openBlock(),createElementBlock("button",{key:0,class:"clear-all-btn",onClick:fe},toDisplayString$1(unref(n)("importDialog.clearAll")),1)):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_4$b,[g.value.length>0?(openBlock(),createElementBlock("div",_hoisted_5$a,[createBaseVNode("div",_hoisted_6$a,toDisplayString$1(unref(n)("importDialog.primaryCategories")),1),createBaseVNode("div",_hoisted_7$a,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(O,G)=>(openBlock(),createElementBlock("div",{key:"primary-"+G,class:"selected-item"},[createBaseVNode("span",_hoisted_8$a,toDisplayString$1(O.group.name),1),createBaseVNode("button",{class:"remove-selected-btn",onClick:ee=>j(b(O))},"×",8,_hoisted_9$a)]))),128))])])):createCommentVNode("",!0),v.value.length>0?(openBlock(),createElementBlock("div",_hoisted_10$9,[createBaseVNode("div",_hoisted_11$9,toDisplayString$1(unref(n)("importDialog.subCategories")),1),createBaseVNode("div",_hoisted_12$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(v.value,(O,G)=>(openBlock(),createElementBlock("div",{key:"sub-"+G,class:"selected-item"},[createBaseVNode("span",_hoisted_13$8,toDisplayString$1(O.group.name),1),Q[2]||(Q[2]=createBaseVNode("span",{class:"separator"},">",-1)),createBaseVNode("span",_hoisted_14$7,toDisplayString$1(O.sub.name),1),createBaseVNode("button",{class:"remove-selected-btn",onClick:ee=>j($(O))},"×",8,_hoisted_15$7)]))),128))])])):createCommentVNode("",!0),u.value.length===0?(openBlock(),createElementBlock("div",_hoisted_16$7,toDisplayString$1(unref(n)("importDialog.noSelectedCategories")),1)):createCommentVNode("",!0)])]),createBaseVNode("div",_hoisted_17$7,[createBaseVNode("div",_hoisted_18$5,[createBaseVNode("div",_hoisted_19$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,(O,G)=>{var ee,A,D;return openBlock(),createElementBlock("div",{key:"Tabss-"+G,class:normalizeClass(["tab-item",{active:((ee=s.value)==null?void 0:ee.p_uuid)===O.p_uuid}]),style:normalizeStyle({backgroundColor:((A=s.value)==null?void 0:A.p_uuid)===O.p_uuid?"var(--weilin-prompt-ui-primary-bg)":O.color,color:((D=s.value)==null?void 0:D.p_uuid)===O.p_uuid?"var(--weilin-prompt-ui-primary-text)":P(O.color)}),onClick:W=>y(O)},[createBaseVNode("span",_hoisted_21$5,toDisplayString$1(O.name),1),createBaseVNode("button",{class:"select-tab-btn",onClick:withModifiers(W=>F(O),["stop"]),title:unref(n)("importDialog.selectCategory")},Q[3]||(Q[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"28",height:"28"},[createBaseVNode("path",{fill:"currentColor",d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]),8,_hoisted_22$5)],14,_hoisted_20$5)}),128))])]),s.value?(openBlock(),createElementBlock("div",_hoisted_23$5,[createBaseVNode("div",_hoisted_24$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(s.value.groups,(O,G)=>{var ee,A,D;return openBlock(),createElementBlock("div",{key:"TabsSw-"+G,class:normalizeClass(["tab-item",{active:((ee=l.value)==null?void 0:ee.g_uuid)===O.g_uuid,disabled:R(s.value)}]),style:normalizeStyle({backgroundColor:((A=l.value)==null?void 0:A.g_uuid)===O.g_uuid?"var(--weilin-prompt-ui-primary-bg)":O.color,color:((D=l.value)==null?void 0:D.g_uuid)===O.g_uuid?"var(--weilin-prompt-ui-primary-text)":P(O.color),opacity:R(s.value)?"0.5":"1",cursor:R(s.value)?"not-allowed":"pointer"}),onClick:W=>R(s.value)?null:E(O)},[createBaseVNode("span",_hoisted_26$5,toDisplayString$1(O.name),1),R(s.value)?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:0,class:"select-tab-btn",onClick:withModifiers(W=>H(s.value,O),["stop"]),disabled:R(s.value),title:unref(n)("importDialog.selectSubcategory")},Q[4]||(Q[4]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"28",height:"28"},[createBaseVNode("path",{fill:"currentColor",d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]),8,_hoisted_27$5))],14,_hoisted_25$5)}),128))])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]))}},TagGroupSelect=_export_sfc(_sfc_main$d,[["__scopeId","data-v-eb6b9225"]]),randomTagApi={getTemplateList:async()=>await request({url:"/random_template/get_template_list",method:"post"}),getTemplateData:async e=>await request({url:"/random_template/get_template_data",method:"post",data:{name:e}}),saveTemplateData:async e=>await request({url:"/random_template/save_template",method:"post",data:{data:e}}),updateTemplateData:async(e,t)=>await request({url:"/random_template/update_template",method:"post",data:{name:e,data:t}}),deleteTemplateData:async e=>await request({url:"/random_template/delete_template",method:"post",data:{name:e}}),getRandomTemplateApple:async()=>await request({url:"/get/setting/get_random_template_setting",method:"post"}),updateRandomTemplateApple:async e=>await request({url:"/update/setting/update_random_template_setting",method:"post",data:{path:e}}),goRandomTemplate:async()=>await request({url:"/random_template/go_random_template",method:"post"}),goRandomTemplatePath:async e=>await request({url:"/random_template/go_random_template_path",method:"post",data:{name:e}})},_hoisted_1$c={class:"random-rule-container"},_hoisted_2$b={class:"settings-section template-section"},_hoisted_3$b={class:"section-header"},_hoisted_4$a={class:"template-controls"},_hoisted_5$9={class:"template-select-group"},_hoisted_6$9={class:"template-select-with-apply"},_hoisted_7$9={value:""},_hoisted_8$9=["value"],_hoisted_9$9=["disabled"],_hoisted_10$8={class:"template-bottom-buttons"},_hoisted_11$8=["disabled"],_hoisted_12$8=["disabled"],_hoisted_13$7={key:0,class:"template-name-input"},_hoisted_14$6=["placeholder"],_hoisted_15$6={class:"template-actions"},_hoisted_16$6={key:0},_hoisted_17$6={class:"settings-section"},_hoisted_18$4={class:"section-header"},_hoisted_19$4={class:"rules-reminder"},_hoisted_20$4={class:"rules-list"},_hoisted_21$4={class:"rule-header"},_hoisted_22$4=["onClick"],_hoisted_23$4={class:"rule-content"},_hoisted_24$4={class:"form-group"},_hoisted_25$4={class:"range-inputs"},_hoisted_26$4=["onUpdate:modelValue"],_hoisted_27$4=["onUpdate:modelValue"],_hoisted_28$4={class:"form-group"},_hoisted_29$4=["onUpdate:modelValue"],_hoisted_30$4={value:"category"},_hoisted_31$4={value:"specific"},_hoisted_32$4={key:0,class:"form-group"},_hoisted_33$4={class:"selected-categories-container"},_hoisted_34$4={class:"selected-categories-header"},_hoisted_35$4={class:"selected-categories-content"},_hoisted_36$4={key:0,class:"selected-category-section"},_hoisted_37$3={class:"section-title"},_hoisted_38$3={class:"selected-items"},_hoisted_39$3={class:"category-name"},_hoisted_40$3={key:1,class:"selected-category-section"},_hoisted_41$3={class:"section-title"},_hoisted_42$3={class:"selected-items"},_hoisted_43$3={class:"category-name"},_hoisted_44$2={class:"subcategory-name"},_hoisted_45$2={key:2,class:"no-selected"},_hoisted_46$2=["onClick"],_hoisted_47$1={key:1,class:"form-group"},_hoisted_48$1={class:"tags-input-container"},_hoisted_49$1=["onClick"],_hoisted_50$1=["onUpdate:modelValue","onKeydown","placeholder"],_hoisted_51$1=["onClick"],_hoisted_52$1={class:"actions-section"},_hoisted_53$1=["disabled"],STORAGE_PREFIX$2="weilin_tools_",_sfc_main$c={__name:"random_setting",emits:["close","update","generateRandomTags"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref(null),s=ref(!1),l=ref(""),c=ref(""),f={randomRuleSetting:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},u={file_name:"new_random_template",rules:[{range:{min:1,max:3},type:"category",categoryId:1,specificTags:[],tagGroupList:[],tagInput:""},{range:{min:4,max:6},type:"category",categoryId:2,specificTags:[],tagGroupList:[],tagInput:""}]},d=ref({});async function m(){try{l.value=="prompt_global"?await randomTagApi.getRandomTemplateApple().then(async Z=>{Z.data==""?d.value=u:await randomTagApi.getTemplateData(Z.data).then(async L=>{O.value=Z.data,d.value=L.data,s.value=!0}).catch(L=>{console.error("加载模板失败:",L),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}).catch(Z=>{console.error(Z),message$1({type:"warn",str:"message.networkError"})}):c.value==""?d.value=u:await randomTagApi.getTemplateData(c.value).then(async Z=>{O.value=c.value,d.value=Z.data,s.value=!0}).catch(Z=>{console.error("加载模板失败:",Z),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}catch(Z){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",Z)}}function g(){try{const Z=JSON.parse(JSON.stringify(d.value));Z.rules&&Z.rules.forEach(L=>{delete L.tagInput}),randomTagApi.updateTemplateData(O.value,Z).then(async L=>{await randomTagApi.getTemplateData(L.path_name).then(async K=>{d.value=K.data,message$1({type:"success",str:"randomUtils.templateSaved"})}).catch(K=>{console.error("加载模板失败:",K),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}).catch(L=>{console.error("更新模板失败:",L),message$1({type:"warn",str:"randomUtils.errorSavingTemplate"})})}catch(Z){console.error("Error saving random tag settings:",Z),message$1({type:"warn",str:"randomUtils.errorSavingSettings"})}}function v(){d.value.rules.push({range:{min:d.value.rules.length>0?d.value.rules[d.value.rules.length-1].range.max+1:1,max:d.value.rules.length>0?d.value.rules[d.value.rules.length-1].range.max+3:3},type:"category",categoryId:1,specificTags:[],tagGroupList:[],tagInput:""})}function b(Z){d.value.rules.splice(Z,1)}function $(Z){Z.tagInput&&Z.tagInput.trim()&&(Z.specificTags.push(Z.tagInput.trim()),Z.tagInput="")}function w(Z,L){Z.specificTags.splice(L,1)}function N(){}const y=ref((()=>{try{const Z=localStorage.getItem(`${STORAGE_PREFIX$2}randomRuleSettingState`);if(Z){const L=JSON.parse(Z),K={...f};return L.randomRuleSetting&&(K.randomRuleSetting={...f.randomRuleSetting,...L.randomRuleSetting}),K}}catch(Z){console.error("Error loading window states:",Z)}return{...f}})());watch(y,Z=>{try{localStorage.setItem(`${STORAGE_PREFIX$2}randomRuleSettingState`,JSON.stringify(Z))}catch(L){console.error("Error saving window states:",L)}},{deep:!0});const E=Z=>{o.value=!1},R=(Z,L)=>{y.value[Z]&&(y.value[Z].position={...L})},F=(Z,L)=>{y.value[Z]&&(y.value[Z].size={...L})},H=Z=>{o.value=!0,l.value=Z,windowManager.registerWindow("randomRuleSetting"),nextTick(()=>{windowManager.setActiveWindow("randomRuleSetting"),Z=="prompt_global"?D(1):B()})},j=(Z,L)=>{r.value.open(Z,L)},fe=()=>void 0,oe=Z=>!Z||!Array.isArray(Z)||Z.length<=0?[]:Z.filter(L=>!L.sub),V=Z=>!Z||!Array.isArray(Z)||Z.length<=0?[]:Z.filter(L=>L.sub),q=Z=>{Z&&Z.data&&Array.isArray(Z.data)?d.value.rules[Z.index].tagGroupList=Z.data:d.value.rules[Z.index].tagGroupList=[]},Q=ref([]),O=ref(""),G=ref(""),ee=ref(!1),A=ref(!1);async function D(Z=0){try{await randomTagApi.getTemplateList().then(L=>{Q.value=L.data,Z==1&&m()}).catch(L=>{console.error(L),message$1({type:"warn",str:"message.networkError"})})}catch(L){message$1({type:"warn",str:"message.networkError"}),console.error("RandomTemplate获取列表失败:",L)}}function W(){ee.value=!0,G.value=""}function ae(){ee.value=!1,G.value=""}function Y(){if(!O.value){message$1.warm(n("randomUtils.pleaseChooseTemplate"));return}l.value=="prompt_global"?randomTagApi.updateRandomTemplateApple(O.value).then(Z=>{message$1({type:"success",str:"randomUtils.templateApplied"})}).catch(Z=>{console.error("获取模板失败:",Z),message$1({type:"warn",str:"randomUtils.errorApplyingTemplate"})}):(window.postMessage({type:"weilin_prompt_ui_prompt_inner_update_node_tag_template_id",data:O.value},"*"),message$1({type:"success",str:"randomUtils.templateApplied"}))}function ne(){O.value&&randomTagApi.deleteTemplateData(O.value).then(()=>{message$1({type:"success",str:"randomUtils.templateDeleted"}),D(),O.value=""}).catch(Z=>{console.error("删除模板失败:",Z),message$1({type:"warn",str:"randomUtils.errorDeletingTemplate"})})}function te(){if(!O.value)return;const Z=Q.value.find(L=>L.path_name===O.value);Z&&(ee.value=!0,G.value=Z.file_name,A.value=!0)}function ge(){if(!G.value.trim()){message$1({type:"warn",str:"randomUtils.templateNameRequired"});return}if(d.value.file_name=G.value.trim(),A.value){const Z=Q.value.find(L=>L.path_name===O.value);if(Z){Z.file_name=G.value.trim();const L=JSON.parse(JSON.stringify(d.value));L.rules&&L.rules.forEach(K=>{delete K.tagInput}),randomTagApi.updateTemplateData(Z.path_name,L).then(async K=>{message$1({type:"success",str:"randomUtils.templateSaved"}),await D().then(async()=>{await randomTagApi.getTemplateData(K.path_name).then(async x=>{O.value=K.path_name,d.value=x.data,message$1({type:"success",str:"randomUtils.templateSaved"})}).catch(x=>{console.error("加载模板失败:",x),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})})}).catch(K=>{console.error("保存模板失败:",K),message$1({type:"warn",str:"randomUtils.errorSavingTemplate"})})}}else{d.value=u,d.value.file_name=G.value.trim();const Z=JSON.parse(JSON.stringify(d.value));Z.rules&&Z.rules.forEach(L=>{delete L.tagInput}),randomTagApi.saveTemplateData(Z).then(async L=>{await D().then(async()=>{await randomTagApi.getTemplateData(L.path_name).then(async K=>{O.value=L.path_name,d.value=K.data,message$1({type:"success",str:"randomUtils.templateSaved"})}).catch(K=>{console.error("加载模板失败:",K),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})})}).catch(L=>{console.error("保存模板失败:",L),message$1({type:"warn",str:"randomUtils.errorSavingTemplate"})})}ee.value=!1,G.value="",A.value=!1}const re=async Z=>{if(Z.target.value!="")try{await randomTagApi.getTemplateData(Z.target.value).then(async L=>{O.value=L.path_name,d.value=L.data,s.value=!0}).catch(L=>{console.error("加载模板失败:",L),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}catch(L){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",L)}},B=()=>{window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id"},"*")},z=Z=>{Z.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id_response"&&(c.value=Z.data.data,D(1))};return onMounted(()=>{window.addEventListener("message",z)}),onUnmounted(()=>{windowManager.unregisterWindow("randomRuleSetting"),window.removeEventListener("message",z)}),t({open:H,getRandomTags:fe}),(Z,L)=>(openBlock(),createElementBlock(Fragment,null,[o.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("randomUtils.title"),position:y.value.randomRuleSetting.position,size:y.value.randomRuleSetting.size,"z-index":unref(windowManager).getZIndex("randomRuleSetting"),"onUpdate:position":L[2]||(L[2]=K=>R("randomRuleSetting",K)),"onUpdate:size":L[3]||(L[3]=K=>F("randomRuleSetting",K)),onActive:L[4]||(L[4]=K=>unref(windowManager).setActiveWindow("randomRuleSetting")),onClose:L[5]||(L[5]=K=>E())},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1$c,[createBaseVNode("div",_hoisted_2$b,[createBaseVNode("div",_hoisted_3$b,[createBaseVNode("h3",null,toDisplayString$1(unref(n)("randomUtils.ruleTemplates")),1)]),createBaseVNode("div",_hoisted_4$a,[createBaseVNode("div",_hoisted_5$9,[createBaseVNode("div",_hoisted_6$9,[withDirectives(createBaseVNode("select",{"onUpdate:modelValue":L[0]||(L[0]=K=>O.value=K),onChange:re,class:"form-select template-select"},[createBaseVNode("option",_hoisted_7$9,toDisplayString$1(unref(n)("randomUtils.selectTemplate")),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(Q.value,(K,x)=>(openBlock(),createElementBlock("option",{key:x,value:K.path_name},toDisplayString$1(K.file_name),9,_hoisted_8$9))),128))],544),[[vModelSelect,O.value]]),createBaseVNode("button",{class:"apply-template-btn",onClick:Y,disabled:!O.value},toDisplayString$1(unref(n)("randomUtils.applyTemplate")),9,_hoisted_9$9)]),createBaseVNode("div",_hoisted_10$8,[createBaseVNode("button",{class:"new-template-btn",onClick:W},toDisplayString$1(unref(n)("randomUtils.newTemplate")),1),createBaseVNode("button",{class:"edit-template-btn",onClick:te,disabled:!O.value},toDisplayString$1(unref(n)("randomUtils.editTemplate")),9,_hoisted_11$8),createBaseVNode("button",{class:"delete-template-btn",onClick:ne,disabled:!O.value},toDisplayString$1(unref(n)("randomUtils.deleteTemplate")),9,_hoisted_12$8)])]),ee.value?(openBlock(),createElementBlock("div",_hoisted_13$7,[withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":L[1]||(L[1]=K=>G.value=K),class:"form-input",placeholder:unref(n)("randomUtils.templateNamePlaceholder")},null,8,_hoisted_14$6),[[vModelText,G.value]]),createBaseVNode("div",_hoisted_15$6,[createBaseVNode("button",{class:"save-template-btn",onClick:ge},toDisplayString$1(unref(n)("randomUtils.save")),1),createBaseVNode("button",{class:"cancel-template-btn",onClick:ae},toDisplayString$1(unref(n)("randomUtils.cancel")),1)])])):createCommentVNode("",!0)])]),O.value&&s.value?(openBlock(),createElementBlock("div",_hoisted_16$6,[createBaseVNode("div",_hoisted_17$6,[createBaseVNode("div",_hoisted_18$4,[createBaseVNode("h3",null,toDisplayString$1(unref(n)("randomUtils.rules")),1),createBaseVNode("button",{class:"add-rule-btn",onClick:v},[L[6]||(L[6]=createBaseVNode("span",null,"+",-1)),createTextVNode(" "+toDisplayString$1(unref(n)("randomUtils.addRule")),1)])]),createBaseVNode("div",_hoisted_19$4,[createBaseVNode("p",null,toDisplayString$1(unref(n)("randomUtils.rulesReminder")),1)]),createBaseVNode("div",_hoisted_20$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(d.value.rules,(K,x)=>(openBlock(),createElementBlock("div",{key:x,class:"rule-item"},[createBaseVNode("div",_hoisted_21$4,[createBaseVNode("h4",null,toDisplayString$1(unref(n)("randomUtils.rule"))+" #"+toDisplayString$1(x+1),1),createBaseVNode("button",{class:"delete-rule-btn",onClick:S=>b(x)},"×",8,_hoisted_22$4)]),createBaseVNode("div",_hoisted_23$4,[createBaseVNode("div",_hoisted_24$4,[createBaseVNode("label",null,toDisplayString$1(unref(n)("randomUtils.range")),1),createBaseVNode("div",_hoisted_25$4,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":S=>K.range.min=S,min:"1",class:"form-input range-input"},null,8,_hoisted_26$4),[[vModelText,K.range.min,void 0,{number:!0}]]),L[7]||(L[7]=createBaseVNode("span",null,"-",-1)),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":S=>K.range.max=S,min:"1",class:"form-input range-input"},null,8,_hoisted_27$4),[[vModelText,K.range.max,void 0,{number:!0}]])])]),createBaseVNode("div",_hoisted_28$4,[createBaseVNode("label",null,toDisplayString$1(unref(n)("randomUtils.tagType")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":S=>K.type=S,class:"form-select"},[createBaseVNode("option",_hoisted_30$4,toDisplayString$1(unref(n)("randomUtils.category")),1),createBaseVNode("option",_hoisted_31$4,toDisplayString$1(unref(n)("randomUtils.specificTags")),1)],8,_hoisted_29$4),[[vModelSelect,K.type]])]),K.type==="category"?(openBlock(),createElementBlock("div",_hoisted_32$4,[createBaseVNode("div",_hoisted_33$4,[createBaseVNode("div",_hoisted_34$4,[createBaseVNode("span",null,toDisplayString$1(unref(n)("importDialog.selectedCategories")),1)]),createBaseVNode("div",_hoisted_35$4,[oe(K.tagGroupList).length>0?(openBlock(),createElementBlock("div",_hoisted_36$4,[createBaseVNode("div",_hoisted_37$3,toDisplayString$1(unref(n)("importDialog.primaryCategories")),1),createBaseVNode("div",_hoisted_38$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(oe(K.tagGroupList),(S,I)=>(openBlock(),createElementBlock("div",{key:"primary-"+I,class:"selected-item"},[createBaseVNode("span",_hoisted_39$3,toDisplayString$1(S.group.name),1)]))),128))])])):createCommentVNode("",!0),V(K.tagGroupList).length>0?(openBlock(),createElementBlock("div",_hoisted_40$3,[createBaseVNode("div",_hoisted_41$3,toDisplayString$1(unref(n)("importDialog.subCategories")),1),createBaseVNode("div",_hoisted_42$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(V(K.tagGroupList),(S,I)=>(openBlock(),createElementBlock("div",{key:"sub-"+I,class:"selected-item"},[createBaseVNode("span",_hoisted_43$3,toDisplayString$1(S.group.name),1),L[8]||(L[8]=createBaseVNode("span",{class:"separator"},">",-1)),createBaseVNode("span",_hoisted_44$2,toDisplayString$1(S.sub.name),1)]))),128))])])):createCommentVNode("",!0),!K.tagGroupList||K.tagGroupList.length===0?(openBlock(),createElementBlock("div",_hoisted_45$2,toDisplayString$1(unref(n)("importDialog.noSelectedCategories")),1)):createCommentVNode("",!0)])]),createBaseVNode("button",{class:"add-tag-btn",onClick:S=>j(x,K.tagGroupList)},toDisplayString$1(unref(n)("randomUtils.selectTagGroup")),9,_hoisted_46$2)])):createCommentVNode("",!0),K.type==="specific"?(openBlock(),createElementBlock("div",_hoisted_47$1,[createBaseVNode("label",null,toDisplayString$1(unref(n)("randomUtils.specificTags")),1),createBaseVNode("div",_hoisted_48$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(K.specificTags,(S,I)=>(openBlock(),createElementBlock("div",{key:I,class:"tag-chip"},[createTextVNode(toDisplayString$1(S)+" ",1),createBaseVNode("button",{class:"remove-tag-btn",onClick:X=>w(K,I)},"×",8,_hoisted_49$1)]))),128)),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":S=>K.tagInput=S,onKeydown:withKeys(withModifiers(S=>$(K),["prevent"]),["enter"]),class:"tag-input",placeholder:unref(n)("randomUtils.addTagPlaceholder")},null,40,_hoisted_50$1),[[vModelText,K.tagInput]])]),createBaseVNode("button",{class:"add-tag-btn",onClick:S=>$(K)},toDisplayString$1(unref(n)("randomUtils.addTag")),9,_hoisted_51$1)])):createCommentVNode("",!0)])]))),128))])])])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_52$1,[createBaseVNode("button",{class:"save-btn",onClick:g,disabled:!O.value},toDisplayString$1(unref(n)("common.save")),9,_hoisted_53$1)])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),createVNode(TagGroupSelect,{ref_key:"tagGroupSelectItem",ref:r,onSureSelect:q},null,512)],64))}},RandomSetting=_export_sfc(_sfc_main$c,[["__scopeId","data-v-71de91e1"]]);function zero$1(e){let t=e.length;for(;--t>=0;)e[t]=0}const MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){}const _utf8len=new Uint8Array(256);for(let e=0;e<256;e++)_utf8len[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;_utf8len[254]=_utf8len[254]=1;const _hoisted_1$b={class:"tag-manager"},_hoisted_2$a={class:"form-group"},_hoisted_3$a={class:"select-group-item"},_hoisted_4$9=["value","placeholder"],_hoisted_5$8={class:"form-group"},_hoisted_6$8=["placeholder"],_hoisted_7$8={class:"form-group"},_hoisted_8$8=["placeholder"],_hoisted_9$8={class:"form-group"},_hoisted_10$7={class:"color-picker"},_hoisted_11$7={class:"color-controls"},_hoisted_12$7={class:"alpha-control"},_hoisted_13$6={class:"alpha-value"},_sfc_main$b={__name:"favour",emits:["sureSelect"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(null),r=ref(!1),s=ref({text:"",desc:"",id_index:"",color:"rgba(255, 123, 2, .4)"}),l=ref({group:{id_index:0,name:"",color:"",create_time:0,p_uuid:""},sub:{id_index:0,name:"",color:"",create_time:0,g_uuid:"",p_uuid:""}}),c=ref({hex:"#ff7b02",alpha:40}),f=computed(()=>d(c.value.hex,c.value.alpha)),u=()=>{const $=d(c.value.hex,c.value.alpha);s.value.color=$},d=($,w)=>{const N=parseInt($.slice(1,3),16),P=parseInt($.slice(3,5),16),y=parseInt($.slice(5,7),16);return`rgba(${N}, ${P}, ${y}, ${w/100})`},m=()=>{o.value.open()},g=()=>{if(!s.value.text||!s.value.desc||!l.value.sub.id_index||!l.value.sub.g_uuid){message$1({type:"warn",str:"tagManager.textRequired"});return}tagsApi.addNewTags({id_index:l.value.sub.id_index,g_uuid:l.value.sub.g_uuid,text:s.value.text,desc:s.value.desc,color:s.value.color?s.value.color:"rgba(255, 123, 2, .4)"}).then($=>{window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.addSuccess"}),v()}).catch($=>{message$1({type:"warn",str:"message.networkError"})})},v=()=>{s.value={id_index:"",text:"",desc:"",color:"rgba(255, 123, 2, .4)"},r.value=!1},b=$=>{l.value=$,s.value.id_index=$.sub.id_index};return t({open:($,w)=>{s.value={id_index:"",text:"",desc:"",color:"rgba(255, 123, 2, .4)"},s.value.text=$,s.value.desc=w,r.value=!0}}),($,w)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Dialog,{modelValue:r.value,"onUpdate:modelValue":w[5]||(w[5]=N=>r.value=N),title:unref(n)("tagManager.addTag")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:w[4]||(w[4]=N=>r.value=!1)},toDisplayString$1(unref(n)("common.cancel")),1),createBaseVNode("button",{onClick:g},toDisplayString$1(unref(n)("common.confirm")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$a,[createBaseVNode("label",null,toDisplayString$1(unref(n)("importDialog.selectGroup")),1),createBaseVNode("div",_hoisted_3$a,[createBaseVNode("input",{type:"text",value:s.value.id_index!=""?l.value.group.name+" -> "+l.value.sub.name:"请选择分组",readonly:"",placeholder:unref(n)("importDialog.selectGroup")},null,8,_hoisted_4$9),createBaseVNode("button",{class:"add-tag-btn",style:{"margin-left":"10px","min-width":"fit-content"},onClick:m},toDisplayString$1(unref(n)("importDialog.selectGroup")),1)])]),createBaseVNode("div",_hoisted_5$8,[createBaseVNode("label",null,toDisplayString$1(unref(n)("tagManager.text")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":w[0]||(w[0]=N=>s.value.desc=N),placeholder:unref(n)("tagManager.textPlaceholder")},null,8,_hoisted_6$8),[[vModelText,s.value.desc]])]),createBaseVNode("div",_hoisted_7$8,[createBaseVNode("label",null,toDisplayString$1(unref(n)("tagManager.description")),1),withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":w[1]||(w[1]=N=>s.value.text=N),placeholder:unref(n)("tagManager.descriptionPlaceholder"),rows:"4"}," ",8,_hoisted_8$8),[[vModelText,s.value.text]])]),createBaseVNode("div",_hoisted_9$8,[createBaseVNode("label",null,toDisplayString$1(unref(n)("tagManager.backgroundColor")),1),createBaseVNode("div",_hoisted_10$7,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:f.value})},null,4),createBaseVNode("div",_hoisted_11$7,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":w[2]||(w[2]=N=>c.value.hex=N),onInput:u,class:"color-input"},null,544),[[vModelText,c.value.hex]]),createBaseVNode("div",_hoisted_12$7,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":w[3]||(w[3]=N=>c.value.alpha=N),min:"0",max:"100",onInput:u,class:"alpha-slider"},null,544),[[vModelText,c.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_13$6,toDisplayString$1(c.value.alpha)+"%",1)])])])])])]),_:1},8,["modelValue","title"]),createVNode(TagGroupSelect$1,{ref_key:"tagGroupSelectItem",ref:o,onSureSelect:b},null,512)],64))}},favourItem=_export_sfc(_sfc_main$b,[["__scopeId","data-v-08abaad1"]]),_hoisted_1$a={class:"weilin_prompt_ui_prompt-box"},_hoisted_2$9={key:0,class:"weilin-toast",role:"status","aria-live":"polite"},_hoisted_3$9={class:"center-container"},_hoisted_4$8={class:"action-item"},_hoisted_5$7=["title"],_hoisted_6$7={class:"action-text"},_hoisted_7$7={class:"action-item"},_hoisted_8$7=["title"],_hoisted_9$7={class:"action-text"},_hoisted_10$6={class:"action-item"},_hoisted_11$6={class:"action-text"},_hoisted_12$6={class:"action-item"},_hoisted_13$5=["title"],_hoisted_14$5={class:"action-text"},_hoisted_15$5={class:"action-item"},_hoisted_16$5=["title"],_hoisted_17$5={class:"action-text"},_hoisted_18$3={class:"action-item"},_hoisted_19$3=["title"],_hoisted_20$3={class:"action-text"},_hoisted_21$3={key:0,class:"action-item"},_hoisted_22$3=["title"],_hoisted_23$3={class:"action-text"},_hoisted_24$3={class:"action-item"},_hoisted_25$3=["title"],_hoisted_26$3={class:"action-text"},_hoisted_27$3={class:"action-item"},_hoisted_28$3=["title"],_hoisted_29$3={class:"action-text"},_hoisted_30$3={class:"action-item"},_hoisted_31$3=["title"],_hoisted_32$3={class:"action-text"},_hoisted_33$3={class:"action-item"},_hoisted_34$3=["title"],_hoisted_35$3={class:"action-text"},_hoisted_36$3={class:"action-item"},_hoisted_37$2=["title"],_hoisted_38$2={class:"action-text"},_hoisted_39$2={class:"action-item"},_hoisted_40$2=["title"],_hoisted_41$2={class:"action-text"},_hoisted_42$2={class:"action-item"},_hoisted_43$2=["title"],_hoisted_44$1={class:"action-text"},_hoisted_45$1={class:"action-item weilin-comfyui-toolbar-right"},_hoisted_46$1=["disabled"],_hoisted_47=["placeholder"],_hoisted_48={class:"token-counter"},_hoisted_49=["onClick"],_hoisted_50={class:"tag"},_hoisted_51={class:"desc"},_hoisted_52={class:"prompt-input-translate-area"},_hoisted_53={style:{display:"flex","align-items":"center"}},_hoisted_54=["placeholder"],_hoisted_55=["title"],_hoisted_56={style:{"margin-left":"5px"},class:"action-text"},_hoisted_57=["title"],_hoisted_58={class:"action-text"},_hoisted_59=["title"],_hoisted_60={class:"action-text"},_hoisted_61={key:0,class:"tokens-container"},_hoisted_62=["draggable","onDragstart","onDragover","onDrop","onDblclick"],_hoisted_63={key:0,class:"newline-token"},_hoisted_64=["title"],_hoisted_65=["onMouseenter","onMouseleave"],_hoisted_66=["title"],_hoisted_67=["title","onMouseenter","onMouseleave"],_hoisted_68={style:{"margin-left":"5px"}},_hoisted_69=["onMouseenter","onMouseleave"],_hoisted_70=["onClick"],_hoisted_71=["value","onInput","onBlur","onKeyup"],_hoisted_72={key:4,class:"translation-result"},_hoisted_73=["onClick","title"],_hoisted_74={class:"translated-text"},_hoisted_75={key:0,class:"line-break"},_hoisted_76={class:"tag-tips-content"},_hoisted_77=["innerHTML"],_hoisted_78={key:0,class:"weight-control"},_hoisted_79={class:"weight-label"},_hoisted_80={key:1,class:"lora-weight-controls"},_hoisted_81={class:"weight-control"},_hoisted_82={class:"weight-label"},_hoisted_83={class:"weight-control"},_hoisted_84={class:"weight-label"},_hoisted_85=["title"],_hoisted_86=["title"],_hoisted_87={key:2,class:"bracket-btn-group"},_hoisted_88={class:"bracket-btn-container"},_hoisted_89={class:"vertical-btn-group"},_hoisted_90=["title"],_hoisted_91=["title"],_hoisted_92={class:"bracket-btn-container"},_hoisted_93={class:"vertical-btn-group"},_hoisted_94=["title"],_hoisted_95=["title"],_hoisted_96={class:"bracket-btn-container"},_hoisted_97={class:"vertical-btn-group"},_hoisted_98=["title"],_hoisted_99=["title"],_hoisted_100=["title"],_hoisted_101={class:"tag-manager-section"},_hoisted_102={class:"weilin-comfyui-selection-actions-content"},_hoisted_103={class:"weilin-comfyui-selection-actions-count"},_hoisted_104={class:"header-left"},_hoisted_105={class:"section-title"},_hoisted_106={class:"header-right"},_hoisted_107={class:"lora-manager-container"},_hoisted_108={class:"tag-manager-section"},_hoisted_109={class:"header-left"},_hoisted_110={class:"section-title"},_hoisted_111={class:"header-right"},_hoisted_112={class:"tag-manager-container"},prefix$2="weilin_prompt_ui_",selectionBoxId="weilin-selection-box",throttleInterval=16,STORAGE_KEY_SIDEBAR_VISIBLE="weilin_prompt_ui_sidebar_visible",MAIN_LABELS_STORAGE_KEY="weilin_prompt_ui_main_labels_v1",dragUpdateDelay=50,_sfc_main$a={__name:"prompt_index",props:{promptManager:{type:String,default:"prompt_global"},hasPromptLoraStack:{type:Boolean,default:!1}},setup(e,{expose:t}){const a=ref(null),{t:n}=useI18n(),o=ref(),r=ref(),s=ref({top:0,left:0}),l=ref(0),c=e,f=ref(null),u=ref(""),d=ref([]),m={},g=ref(null),v=ref(!1),b=ref({top:"0px",left:"0px"}),$=ref(!1),w=ref(null),N=ref(null),P=ref(null),y=ref([]),E=ref(!1),R=ref(!1),F=ref([]),H=ref(0),j=ref(null),fe=ref(localStorage.getItem("weilin_prompt_ui_auto_box_width")||450),oe=ref(localStorage.getItem("weilin_prompt_ui_auto_box_height")||350),V=ref(""),q=ref(!1),Q=ref({x:0,y:0}),O=ref({x:0,y:0}),G=ref([]),ee=ref(null),A=ref(!1),D=ref(!1),W=ref(!1),ae=ref({top:"0px",left:"0px"}),Y=ref(!1),ne=ref(!1),te=ref(0),ge=ref(!1),re=ref({top:"0px",left:"0px"}),B=ref(null),z=ref(null),Z=ref(""),L=ref(0),K=ref(!0),x=()=>{K.value=!K.value};watch(K,C=>{localStorage.setItem(STORAGE_KEY_SIDEBAR_VISIBLE,String(C))}),onMounted(()=>{const C=localStorage.getItem(STORAGE_KEY_SIDEBAR_VISIBLE);K.value=C!=="false"});const S=()=>(L.value++,`token_${L.value}_${Date.now()}`),I=()=>{E.value=!E.value},X=()=>{E.value=!1},ie=ref(null),pe=ref(null),k=ref(!1),_=`weilin_prompt_ui_last_main_label_id_${c.promptManager||"default"}`,M=computed(()=>{const C=K.value?280:0;return`calc(100% - ${(E.value?300:0)+C}px)`});let U=!1;const _e=C=>{if(!C){pe.value=null,u.value="",nextTick(()=>{r.value&&(r.value.value="",ct({target:r.value}))}),k.value=!1;return}pe.value=C.id,U=!0,u.value=C.content||"",nextTick(()=>{r.value&&(r.value.value=u.value,ct({target:r.value}))}),k.value=!1};watch(u,C=>{if(U){U=!1;return}k.value=!0}),watch(d,()=>{U||(k.value=!0)},{deep:!0}),watch(pe,C=>{try{localStorage.setItem(_,C||"")}catch{}});function me(){try{const C=localStorage.getItem(_);if(!C)return;const T=localStorage.getItem(MAIN_LABELS_STORAGE_KEY),se=T?JSON.parse(T):[],de=Array.isArray(se)?se.find(Se=>Se&&Se.id===C):null;if(!de)return;pe.value=C,U=!0,u.value=de.content||"",nextTick(()=>{r.value&&(r.value.value=u.value,ct({target:r.value})),U=!1}),k.value=!1}catch{}}onMounted(()=>{me();const C=()=>{try{localStorage.setItem(_,pe.value||"")}catch{}};window.addEventListener("beforeunload",C),onBeforeUnmount(()=>window.removeEventListener("beforeunload",C))});function J(){var C;pe.value&&(C=ie.value)!=null&&C.updateSelectedContent&&(ie.value.updateSelectedContent(u.value),k.value=!1,xe())}const ue=ref(!1);let $e=null;function xe(){ue.value=!0,$e&&clearTimeout($e),$e=setTimeout(()=>{ue.value=!1},1600)}onBeforeUnmount(()=>{$e&&clearTimeout($e)});const Ne=()=>{w.value.open()},Be=ref(1),Me=()=>{if(g.value===null)return;let T=d.value[g.value].text;if(!Ae(T)){message$1({type:"warn",str:"message.noFinishKuo"});return}const se=we=>we.startsWith("(")&&we.endsWith(")")&&!we.slice(1,-1).includes("(")&&!we.slice(1,-1).includes(")")&&!we.slice(1,-1).includes("[")&&!we.slice(1,-1).includes("]")&&!we.slice(1,-1).includes("{")&&!we.slice(1,-1).includes("}")&&!we.slice(1,-1).includes("<")&&!we.slice(1,-1).includes(">");let de=T;const Se=/:\d+(\.\d+)?$/.test(T),ve=T.match(/^\((.*?):(\d+(\.\d+)?)\)$/);if(Se||ve)Be.value===1?T.startsWith("(")&&T.endsWith(")")?de=T.slice(1,-1).replace(/:(\d+(\.\d+)?)$/,""):de=T.replace(/:(\d+(\.\d+)?)$/,""):ve?de=`(${ve[1]}:${Be.value})`:de=T.replace(/:(\d+(\.\d+)?)$/,`:${Be.value}`);else{const we=T.match(/^([^_]+)_(\([^)]+\))$/);if(we&&!T.includes("\\(")&&!T.includes("\\)")){const[,ke,Re]=we;Be.value===1?de=T:de=`(${ke} ${Re}:${Be.value})`}else T.includes("\\(")&&T.includes("\\)")&&!/[\(\)\[\]\{\}<>]/.test(T.replace(/\\[\(\)\[\]\{\}<>]/g,""))?Be.value===1?de=T:T.startsWith("(")&&T.endsWith(")")?de=T.replace(/\)$/,`:${Be.value})`):de=`(${T}:${Be.value})`:/[\(\[\{\<\)\]\}\>]/.test(T)?Be.value===1&&se(T)?de=T.slice(1,-1):Be.value===1?de=T:T.startsWith("(")&&T.endsWith(")")?de=T.replace(/\)$/,`:${Be.value})`):de=`(${T}:${Be.value})`:Be.value===1?de=T:de=`(${T}:${Be.value})`}d.value[g.value].text=de,ot()},Ie=ref(.5),We=ref(.5);watch(g,C=>{var T;if(C!==null&&((T=d.value[C])!=null&&T.isLoraTag)){const de=d.value[C].text.match(/]+)>/);de&&(Ie.value=parseFloat(de[2]),We.value=parseFloat(de[3]))}});const Te=()=>{var C;if(g.value!==null&&((C=d.value[g.value])!=null&&C.isLoraTag)){const T=d.value[g.value],se=T.text.match(/]+)>/);if(se){const Se=``;T.text=Se,ot()}}},be=C=>{if(g.value===null)return;let se=d.value[g.value].text;const de={"(":")","[":"]","{":"}","<":">"}[C];se=`${C}${se}${de}`,d.value[g.value].text=se,Qe()},ye=C=>{if(g.value===null)return;let se=d.value[g.value].text;const de={"(":")","[":"]","{":"}","<":">"};se.startsWith(C)&&se.endsWith(de[C])&&(se=se.slice(1,-1),d.value[g.value].text=se,Qe())},Ae=C=>{const T=[],se={"(":")","[":"]","{":"}","<":">"};for(let de of C)if(se[de])T.push(de);else if(Object.values(se).includes(de)&&(T.length===0||se[T.pop()]!==de))return!1;return T.length===0};onBeforeUpdate(()=>{for(const C in m)delete m[C]}),ref(!0),ref(!1);const Ke=C=>/[\p{L}]/u.test(C),Tt=C=>{const T=C.match(/([^:]+):[\d.]+/);return T?T[1]:C};let ft=null;const xt=async()=>{ft&&clearTimeout(ft),ft=setTimeout(async()=>{if(!r.value)return;const C=r.value,T=C.selectionStart;await nextTick();const se=C.value.substring(0,T),de=document.createElement("div");de.style.position="absolute",de.style.top="0",de.style.left="0",de.style.visibility="hidden",de.style.whiteSpace="pre-wrap",de.style.wordWrap="break-word",de.style.width=window.getComputedStyle(C).width,de.style.font=window.getComputedStyle(C).font,de.style.padding=window.getComputedStyle(C).padding;const Se=document.createTextNode(se),ve=document.createElement("span");ve.textContent="|",de.appendChild(Se),de.appendChild(ve),C.parentNode.appendChild(de);const we=ve.getBoundingClientRect(),ke=C.parentNode.getBoundingClientRect();let Re=we.top-ke.top+we.height,Pe=we.left-ke.left;if(await nextTick(),o.value){const He=o.value.offsetWidth,rt=C.offsetWidth,Ge=C.getBoundingClientRect().left-ke.left;Pe+He>Ge+rt&&(Pe=Ge+rt-He),Pe{if(!(C!=null&&C.target)||!r.value)return;const T=C.target.value,se=C.target.selectionStart,de=C.target.selectionEnd,Se={comma:{enabled:localStorage.getItem("weilin_prompt_ui_comma_conversion")!=="false",pattern:/,/g,replace:","},period:{enabled:localStorage.getItem("weilin_prompt_ui_period_conversion")!=="false",pattern:/。/g,replace:"."},bracket:{enabled:localStorage.getItem("weilin_prompt_ui_bracket_conversion")!=="false",patterns:[{pattern:/【/g,replace:"["},{pattern:/】/g,replace:"]"},{pattern:/(/g,replace:"("},{pattern:/)/g,replace:")"}]},angleBracket:{enabled:localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")!=="false",patterns:[{pattern:/《/g,replace:"<"},{pattern:/》/g,replace:">"}]}};let ve=T.substring(0,se),we=T;Object.values(Se).forEach(Ee=>{Ee.enabled&&(Ee.pattern?(ve=ve.replace(Ee.pattern,Ee.replace),we=we.replace(Ee.pattern,Ee.replace)):Ee.patterns&&Ee.patterns.forEach(({pattern:Ue,replace:Fe})=>{ve=ve.replace(Ue,Fe),we=we.replace(Ue,Fe)}))}),u.value=we;const ke=ve.length,Re=de-se,Pe=ke+Re;nextTick(()=>{r.value&&(r.value.setSelectionRange(ke,Pe),r.value.focus())});const He=we.substring(0,ke),rt=localStorage.getItem("weilin_prompt_ui_comma_close_autocomplete")==="true",Ge=ke>0?He[ke-1]:"";if((Ge===","||Ge===" ")&&rt){R.value=!1,B.value&&clearTimeout(B.value),B.value=setTimeout(()=>{var kt;const Ee=((kt=r.value)==null?void 0:kt.selectionStart)||0,Fe=(u.value||"").substring(0,Ee);let Ye=Ee;for(;Ye>0&&!/[,\s]/.test(Fe[Ye-1]);)Ye--;const St=Fe.substring(Ye,Ee).trim();St&&Zt(St),ut()},300),l.value=mt(u.value);return}let Oe=ke;for(;Oe>0&&!/[,\s]/.test(He[Oe-1]);)Oe--;const Ve=He.substring(Oe,ke).trim();B.value&&clearTimeout(B.value),B.value=setTimeout(()=>{Ve&&Zt(Ve),ut()},300),l.value=mt(u.value)},mt=C=>C?C.trim().split(/\s+/).length:0,Xe=async()=>{let C=localStorage.getItem("weilin_prompt_ui_comma_conversion")==="true",T=localStorage.getItem("weilin_prompt_ui_period_conversion")==="true",se=localStorage.getItem("weilin_prompt_ui_bracket_conversion")==="true",de=localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")==="true";localStorage.getItem("weilin_prompt_ui_underscore_to_bracket"),localStorage.getItem("weilin_prompt_ui_comma_conversion")||(localStorage.setItem("weilin_prompt_ui_comma_conversion","true"),C=!0),localStorage.getItem("weilin_prompt_ui_period_conversion")||(localStorage.setItem("weilin_prompt_ui_period_conversion","true"),T=!0),localStorage.getItem("weilin_prompt_ui_bracket_conversion")||(localStorage.setItem("weilin_prompt_ui_bracket_conversion","true"),se=!0),localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")||(localStorage.setItem("weilin_prompt_ui_angle_bracket_conversion","true"),de=!0),localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")||localStorage.setItem("weilin_prompt_ui_underscore_to_bracket","false"),C&&(u.value=u.value.replace(/,/g,",")),T&&(u.value=u.value.replace(/。/g,".")),se&&(u.value=u.value.replace(/【/g,"[").replace(/】/g,"]").replace(/(/g,"(").replace(/)/g,")")),de&&(u.value=u.value.replace(/《/g,"<").replace(/》/g,">"));const Se=u.value;let ve=[];const we=d.value.map((Le,Oe)=>({token:Le,originalIndex:Oe,currentIndex:Oe})).filter(({token:Le})=>Le.isHidden);ve=((Le,Oe=0)=>{let Ve=[],Ee=Oe,Ue="",Fe=[];for(;EeYe.trim())):Ve.push(Ue.trim())),Ve})(Se);const Re=new Map;d.value.forEach((Le,Oe)=>{Le.id||(Le.id=S()),Re.set(Oe,Le)});const Pe=[];ve.forEach(Le=>{if(Le===` +两行js实现html全自动翻译。 无需改动页面、无语言配置文件、无API Key、对SEO友好!完全开源,代码仓库:https://gitee.com/mail_osc/translate`),function(e,t){module.exports?module.exports=t():e.translate=t()}(i18nJsautotranslate,function(){return translate})}(i18nJsautotranslate$1)),i18nJsautotranslate$1.exports}var i18nJsautotranslateExports=requireI18nJsautotranslate();const translate=getDefaultExportFromCjs(i18nJsautotranslateExports),historyApi={getHistory:async()=>await request({url:"/prompt/history/get_history",method:"get"}),saveHistory:async e=>await request({url:"/prompt/history/add_history",method:"post",data:e}),deleteHistory:async e=>await request({url:"/prompt/history/delete_history",method:"post",data:{id_index:e}}),batchDeleteHistory:async e=>await request({url:"/prompt/history/batch_delete_history",method:"post",data:{id_index:e}}),getFavorite:async()=>await request({url:"/prompt/collect_history/get_collect_history",method:"get"}),addFavorite:async e=>await request({url:"/prompt/collect_history/add_collect_history",method:"post",data:e}),editFavorite:async e=>await request({url:"/prompt/collect_history/edit_collect_history",method:"post",data:e}),deleteFavorite:async e=>await request({url:"/prompt/collect_history/delete_collect_history",method:"post",data:{id_index:e}}),batchDeleteFavorite:async e=>await request({url:"/prompt/collect_history/batch_delete_collect_history",method:"post",data:{id_indices:e}})},_hoisted_1$e={class:"lora-manager-top-bar"},_hoisted_2$d=["placeholder"],_hoisted_3$d=["title"],_hoisted_4$c=["title"],_hoisted_5$b={class:"checkbox-container"},_hoisted_6$b=["onClick"],_hoisted_7$b=["onClick"],_hoisted_8$b={key:0,class:"loading-indicator"},_hoisted_9$b={key:1,class:"empty-list"},_hoisted_10$a=["onClick","onMouseover"],_hoisted_11$a=["src","alt","title"],_hoisted_12$a={key:0,class:"loading-more"},_hoisted_13$9={key:1,class:"no-more-data"},prefix$3="weilin_prompt_ui_",_sfc_main$e={__name:"lora_index",props:{loraManager:{type:String,default:"look"}},setup(e,{expose:t}){const{t:a}=useI18n(),n=ref(!1),o=ref(!1),r=ref(!1),s=ref(!1),l=ref("all"),c=ref(""),f=ref(null),u=ref(""),d=ref(null),m=ref(!1),g=ref(""),v=ref(100),b=ref(0),$=ref(),w=ref(!1),C=ref(!1),P=ref(),y=ref(localStorage.getItem("weilin_prompt_ui_showHoverInfo")),E=ref(localStorage.getItem("weilin_prompt_ui_clickAddTag"));(y.value===null||y.value===void 0||y.value==="")&&(localStorage.setItem("weilin_prompt_ui_showHoverInfo",!0),y.value=!0),(E.value===null||E.value===void 0||E.value==="")&&(localStorage.setItem("weilin_prompt_ui_clickAddTag",!1),E.value=!1);const R=e;watch(y,_=>{localStorage.setItem("weilin_prompt_ui_showHoverInfo",_)}),watch(E,_=>{localStorage.setItem("weilin_prompt_ui_clickAddTag",_)});const F=ref(1),H=ref(50),j=computed(()=>{if(l.value==="all"){const _=O.value;if(_){const M=Object.values(_);return Math.ceil(M.length/H.value)}}else{const _=O.value[c.value];if(_){const M=Object.values(_);return Math.ceil(M.length/H.value)}return 1}}),fe=()=>{w.value=!0,C.value=!0},oe=(_,M)=>{if(!y.value||y.value=="false"||(C.value=!0,g.value===_&&m.value))return;const _e=M.currentTarget.getBoundingClientRect(),me=window.innerHeight,J=450;let ce={left:_e.left+(_e.width-J)/2,top:_e.top+_e.height+10};ce.top+310>me&&(ce.top=_e.top-310),ce.left=Math.max(10,Math.min(ce.left,window.innerWidth-J-10)),ce.top=Math.max(10,Math.min(ce.top,me-310)),v.value=ce.left,b.value=ce.top,m.value=!0,g.value=_,nextTick(()=>{P.value.refresh()})},V=()=>{C.value=!1,setTimeout(()=>{!w.value&&!C.value&&(m.value=!1,g.value="",w.value=!1)},200)},q=()=>{m.value=!1,g.value="",w.value=!1},Q=ref([]),O=ref([]),G=ref(""),ee=ref(0),A=(_,M)=>{ee.value=_,G.value=M},L=async()=>{try{const _=await loraApi.getLoraFolderList();Q.value=_.data}catch(_){console.error("Failed to get folder list:",_),message$1({type:"error",str:"message.loadFailed"})}},W=()=>{if(!d.value||r.value||s.value)return;const _=d.value;_.scrollHeight-_.scrollTop-_.clientHeight<100&&X()},ae=ref(!1);let Y=null;const ne=()=>{Y&&clearTimeout(Y),Y=setTimeout(()=>{u.value.length>0?(ae.value=!0,B()):(ae.value=!1,I())},300)},te=_=>{var M;return(M=_.local_info)!=null&&M.name&&_.local_info.name!==""&&_.local_info.name.length>0?_.local_info.name:_.name},ge=ref(),re=_=>{R.loraManager==="addLora"?pe(_):R.loraManager==="prompt_inner"&&E.value?T(_):ge.value.open(_)},B=async()=>{try{const _=await loraApi.searchLoraGetFolderList(u.value);if(O.value=_.data,O.value.length>0){F.value=1;const M=Object.values(O.value),U=(F.value-1)*50,_e=U+50,me=M.slice(U,_e);K(me)}}catch(_){console.error("Failed to get folder list:",_),message$1({type:"error",str:"message.loadFailed"})}},z=ref([]),Z=_=>{if(_==="all"){z.value=[],l.value=_,c.value="/",O.value=Q.value[_];const M=O.value;if(M){s.value=!1,F.value=1;const U=Object.values(M),_e=(F.value-1)*50,me=_e+50,J=U.slice(_e,me);K(J)}}else{z.value=[],l.value=_,c.value="/",O.value=Q.value[_];const M=O.value["/"];if(M){s.value=!1,F.value=1;const U=Object.values(M),_e=(F.value-1)*50,me=_e+50,J=U.slice(_e,me);K(J)}}},D=_=>{if(_!=c.value){c.value=_,z.value=[];const M=O.value[c.value];if(M){s.value=!1,F.value=1;const U=Object.values(M),_e=(F.value-1)*50,me=_e+50,J=U.slice(_e,me);K(J)}}},K=async _=>{const M=await loraApi.getLoraRangeList(_);F.value===1?z.value=M.data.loras:z.value=z.value.concat(M.data.loras)},x=async()=>{if(f.value!=null){message$1({type:"warn",str:"message.isLoading"});return}try{message$1({type:"success",str:"message.isLoadingPleaseWait"}),await loraApi.getAllLoraList(),f.value=setInterval(async()=>{await S()},1e3)}catch(_){console.error("Failed to get all lora list:",_),message$1({type:"error",str:"message.loadFailed"})}},S=async()=>{try{const _=await loraApi.getAllLoraStatus();_.data.isLoading===!1?(clearInterval(f.value),f.value=null,message$1({type:"success",str:"message.loaddingSuccess"}),await I()):message$1({type:"warn",str:"message.loaddingPrc",name:_.data.progress})}catch(_){console.error("Failed to get lora status:",_),clearInterval(f.value),f.value=null,message$1({type:"error",str:"message.loadFailed"})}},I=async()=>{if(!n.value){n.value=!0,F.value=1,s.value=!1,r.value=!1;try{await L(),nextTick(()=>{Z("all")})}catch(_){console.error("Failed to refresh lora list:",_)}finally{n.value=!1}}},X=async()=>{if(F.value>=j.value){s.value=!0;return}r.value=!0;try{if(F.value++,ae.value){if(O.value=res.data,O.value.length>0){const _=Object.values(O.value),M=(F.value-1)*50,U=M+50,_e=_.slice(M,U);K(_e)}}else if(l.value==="all"){O.value=Q.value[l.value];const _=O.value;if(_){const M=Object.values(_),U=(F.value-1)*50,_e=U+50,me=M.slice(U,_e);K(me)}}else{const _=O.value[c.value];if(_){const M=Object.values(_),U=(F.value-1)*50,_e=U+50,me=M.slice(U,_e);K(me)}}}finally{r.value=!1}},ie=()=>{F.value=1,s.value=!1,r.value=!1};watch([l,c,u],()=>{ie()}),onMounted(()=>{I()});const pe=_=>{var M,U,_e,me,J,ce,Se,xe,Ne;ee.value===0?window.postMessage({type:"weilin_prompt_ui_selectLora",lora:{name:_.model_name,display_name:te(_),lora:_.name,weight:(M=_.local_info)!=null&&M.strengthMin?_.local_info.strengthMin:1,text_encoder_weight:(U=_.local_info)!=null&&U.strWeight?_.local_info.strWeight:1,loraWorks:(_e=_.local_info)!=null&&_e.loraWorks?_.local_info.loraWorks:""}},"*"):ee.value===1?window.postMessage({type:"weilin_prompt_ui_selectLora_stack_"+G.value,lora:{name:_.model_name,display_name:te(_),lora:_.name,weight:(me=_.local_info)!=null&&me.strengthMin?_.local_info.strengthMin:1,text_encoder_weight:(J=_.local_info)!=null&&J.strWeight?_.local_info.strWeight:1,loraWorks:(ce=_.local_info)!=null&&ce.loraWorks?_.local_info.loraWorks:""}},"*"):ee.value===2&&window.postMessage({type:"weilin_prompt_ui_selectLora_stack_node_"+G.value,lora:{name:_.model_name,display_name:te(_),lora:_.name,weight:(Se=_.local_info)!=null&&Se.strengthMin?_.local_info.strengthMin:1,text_encoder_weight:(xe=_.local_info)!=null&&xe.strWeight?_.local_info.strWeight:1,loraWorks:(Ne=_.local_info)!=null&&Ne.loraWorks?_.local_info.loraWorks:""}},"*")},T=_=>{var M,U,_e;window.postMessage({type:"weilin_prompt_ui_addLoraTag_inner",lora:{tag:``,loraWorks:(_e=_.local_info)!=null&&_e.loraWorks?_.local_info.loraWorks:""}},"*")};return t({openSetSeed:A}),(_,M)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix$3}lora-manager`)},[createBaseVNode("div",_hoisted_1$e,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":M[0]||(M[0]=U=>u.value=U),class:normalizeClass(`${prefix$3}search-input`),placeholder:unref(a)("loraManager.searchPlaceholder"),onInput:ne},null,42,_hoisted_2$d),[[vModelText,u.value]]),createBaseVNode("button",{class:normalizeClass(`${prefix$3}refresh-btn`),onClick:I,title:unref(a)("loraManager.refresh")},[(openBlock(),createElementBlock("svg",{class:normalizeClass([`${prefix$3}refresh-icon`,{"is-rotating":n.value}]),viewBox:"0 0 24 24",width:"20",height:"20"},M[3]||(M[3]=[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},null,-1)]),2))],10,_hoisted_3$d),createBaseVNode("button",{style:{"margin-left":"10px"},class:normalizeClass(`${prefix$3}refresh-btn`),onClick:x,title:unref(a)("loraManager.cacheAll")},[(openBlock(),createElementBlock("svg",{class:normalizeClass([`${prefix$3}refresh-icon`,{"is-rotating":n.value}]),viewBox:"0 0 24 24",width:"20",height:"20"},M[4]||(M[4]=[createBaseVNode("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"},null,-1)]),2))],10,_hoisted_4$c),createBaseVNode("div",_hoisted_5$b,[createBaseVNode("label",{class:normalizeClass(`${prefix$3}checkbox-label`)},[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":M[1]||(M[1]=U=>y.value=U),class:normalizeClass(`${prefix$3}checkbox`)},null,2),[[vModelCheckbox,y.value]]),M[5]||(M[5]=createBaseVNode("span",null,"悬浮信息",-1))],2),e.loraManager=="prompt_inner"?(openBlock(),createElementBlock("label",{key:0,class:normalizeClass(`${prefix$3}checkbox-label`)},[withDirectives(createBaseVNode("input",{type:"checkbox","onUpdate:modelValue":M[2]||(M[2]=U=>E.value=U),class:normalizeClass(`${prefix$3}checkbox`)},null,2),[[vModelCheckbox,E.value]]),M[6]||(M[6]=createBaseVNode("span",null,"点击添加Tag",-1))],2)):createCommentVNode("",!0)])]),ae.value?createCommentVNode("",!0):(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(`${prefix$3}category-nav`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(Object.keys(Q.value),U=>(openBlock(),createElementBlock("button",{key:U,class:normalizeClass([`${prefix$3}category-btn`,{active:l.value===U}]),onClick:_e=>Z(U)},toDisplayString$1(U==="/"?unref(a)("loraManager.root"):U=="all"?unref(a)("loraManager.all"):U),11,_hoisted_6$b))),128))],2)),l.value!="all"&&!ae.value?(openBlock(),createElementBlock("div",{key:1,class:normalizeClass(`${prefix$3}subcategory-nav`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(Object.keys(O.value),U=>(openBlock(),createElementBlock("button",{key:U,class:normalizeClass([`${prefix$3}category-btn`,{active:c.value===U}]),onClick:_e=>D(U)},toDisplayString$1(U==="/"?unref(a)("loraManager.root"):U=="all"?unref(a)("loraManager.all"):U),11,_hoisted_7$b))),128))],2)):createCommentVNode("",!0),createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-list-container`),ref_key:"scrollContainer",ref:d,onScroll:W},[o.value&&!r.value?(openBlock(),createElementBlock("div",_hoisted_8$b,toDisplayString$1(unref(a)("loraManager.loading")),1)):z.value.length===0?(openBlock(),createElementBlock("div",_hoisted_9$b,toDisplayString$1(unref(a)("loraManager.noResults")),1)):createCommentVNode("",!0),createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-list`),style:{display:"grid","grid-template-columns":"repeat(auto-fill, minmax(150px, 1fr))",gap:"12px"}},[(openBlock(!0),createElementBlock(Fragment,null,renderList(z.value,U=>(openBlock(),createElementBlock("div",{key:U.file_path,class:normalizeClass(`${prefix$3}lora-card`),ref_for:!0,ref_key:"loraCardRef",ref:$,onClick:_e=>re(U),onMouseover:_e=>oe(U.name,_e),onMouseleave:V,style:{display:"flex","flex-direction":"column","min-height":"200px",cursor:"pointer"}},[createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-preview`),style:{flex:"1",display:"flex","align-items":"center","justify-content":"center",overflow:"hidden",width:"100%"}},[U.preview?(openBlock(),createElementBlock("img",{key:0,src:U.preview,alt:U.model_name,title:U.model_name,loading:"lazy",style:{width:"100%",height:"100%","object-fit":"contain","min-height":"150px"}},null,8,_hoisted_11$a)):(openBlock(),createElementBlock("div",{key:1,class:normalizeClass(`${prefix$3}no-preview`),style:{width:"100%",height:"100%",display:"flex","align-items":"center","justify-content":"center","min-height":"150px"}},M[7]||(M[7]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24"},[createBaseVNode("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"})],-1)]),2))],2),createBaseVNode("div",{class:normalizeClass(`${prefix$3}lora-name`),style:{padding:"8px","text-align":"center","word-break":"break-word","white-space":"normal",display:"-webkit-box","-webkit-line-clamp":"2","-webkit-box-orient":"vertical",overflow:"hidden","min-height":"40px","max-height":"40px","line-height":"1.2","text-overflow":"ellipsis"}},toDisplayString$1(te(U)),3)],42,_hoisted_10$a))),128))],2),createBaseVNode("div",null,[r.value?(openBlock(),createElementBlock("div",_hoisted_12$a,toDisplayString$1(unref(a)("loraManager.loadingMore")),1)):createCommentVNode("",!0),!r.value&&s.value?(openBlock(),createElementBlock("div",_hoisted_13$9,toDisplayString$1(unref(a)("loraManager.noMoreData")),1)):createCommentVNode("",!0)])],34),createVNode(loraDetail,{ref_key:"loraDetailRef",ref:ge},null,512),m.value?(openBlock(),createBlock(LoraCard,{key:2,ref_key:"loraCardItem",ref:P,fileNmae:g.value,paddingLeft:v.value,paddingTop:b.value,onCardLeave:q,onCardenter:fe},null,8,["fileNmae","paddingLeft","paddingTop"])):createCommentVNode("",!0)],2))}},LoraManager=_export_sfc(_sfc_main$e,[["__scopeId","data-v-e5643d0b"]]),_hoisted_1$d={class:"tag-manager"},_hoisted_2$c={class:"selected-categories-container"},_hoisted_3$c={class:"selected-categories-header"},_hoisted_4$b={class:"selected-categories-content"},_hoisted_5$a={key:0,class:"selected-category-section"},_hoisted_6$a={class:"section-title"},_hoisted_7$a={class:"selected-items"},_hoisted_8$a={class:"category-name"},_hoisted_9$a=["onClick"],_hoisted_10$9={key:1,class:"selected-category-section"},_hoisted_11$9={class:"section-title"},_hoisted_12$9={class:"selected-items"},_hoisted_13$8={class:"category-name"},_hoisted_14$7={class:"subcategory-name"},_hoisted_15$7=["onClick"],_hoisted_16$7={key:2,class:"no-selected"},_hoisted_17$7={class:"category-tabs"},_hoisted_18$5={class:"tabs-wrapper primary-tabs"},_hoisted_19$5={class:"tabs-scroll"},_hoisted_20$5=["onClick"],_hoisted_21$5={class:"tab-text"},_hoisted_22$5=["onClick","title"],_hoisted_23$5={key:0,class:"tabs-wrapper group-tabs"},_hoisted_24$5={class:"tabs-scroll"},_hoisted_25$5=["onClick"],_hoisted_26$5={class:"tab-text"},_hoisted_27$5=["onClick","disabled","title"],_sfc_main$d={__name:"tag_group_select",emits:["sureSelect"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=a,r=ref([]),s=ref(null),l=ref(null),c=ref([]),f=ref(!1),u=ref([]),d=ref(!1),m=ref(0),g=computed(()=>u.value.filter(q=>!q.sub)),v=computed(()=>u.value.filter(q=>q.sub)),b=q=>u.value.findIndex(Q=>Q.group.p_uuid===q.group.p_uuid&&!Q.sub),$=q=>u.value.findIndex(Q=>Q.group.p_uuid===q.group.p_uuid&&Q.sub&&Q.sub.g_uuid===q.sub.g_uuid),w=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh_select"},"*")},C=async()=>{try{const q=await tagsApi.getTagsGroupList();if(r.value=q.info,l.value){const Q=r.value.flatMap(O=>O.groups).find(O=>O.p_uuid===l.value.p_uuid);Q?l.value=Q:l.value=null}if(s.value){const Q=r.value.find(O=>O.p_uuid===s.value.p_uuid);Q?s.value=Q:s.value=null}}catch(q){console.error("获取标签列表失败:",q)}},P=q=>{if(!q||q==="transparent")return"var(--primary-text)";let Q,O,G,ee=1;if(q.startsWith("rgba")){const L=q.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);L&&([,Q,O,G,ee]=L.map(Number))}else if(q.startsWith("rgb")){const L=q.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);L&&([,Q,O,G]=L.map(Number))}return ee<.5?"var(--primary-text)":(Q*299+O*587+G*114)/1e3>128?"#000000":"#ffffff"};onMounted(()=>{window.addEventListener("message",oe)}),onBeforeUnmount(()=>{window.removeEventListener("message",oe)});const y=q=>{s.value=q,l.value=null,f.value=!1,c.value=[]},E=q=>{R(s.value)||(l.value=q,f.value=!1,c.value=[])},R=q=>q?u.value.some(Q=>Q.group.p_uuid===q.p_uuid&&!Q.sub):!1,F=q=>{const Q=u.value.findIndex(O=>O.group.p_uuid===q.p_uuid&&!O.sub);Q!==-1?u.value.splice(Q,1):(u.value=u.value.filter(O=>O.group.p_uuid!==q.p_uuid),u.value.push({group:{p_uuid:q.p_uuid,name:q.name},sub:null}))},H=(q,Q)=>{if(R(q))return;const O=u.value.findIndex(G=>G.group.p_uuid===q.p_uuid&&G.sub&&G.sub.g_uuid===Q.g_uuid);if(O!==-1)u.value.splice(O,1);else{const G=u.value.findIndex(ee=>ee.group.p_uuid===q.p_uuid&&!ee.sub);G!==-1&&u.value.splice(G,1),u.value.push({group:{p_uuid:q.p_uuid,name:q.name},sub:Q?{g_uuid:Q.g_uuid,name:Q.name}:null})}},j=q=>{u.value.splice(q,1)},fe=()=>{u.value=[]},oe=q=>{q.data.type==="weilin_prompt_ui_tag_manager_refresh_select"&&C()},V=()=>{if(u.value.length===0){message$1({type:"warn",str:"message.pleaseSelectGroup"});return}o("sureSelect",{data:u.value,index:m.value}),d.value=!1};return t({open:(q,Q)=>{w(),m.value=q,u.value=Q,d.value=!0}}),(q,Q)=>(openBlock(),createBlock(Dialog,{modelValue:d.value,"onUpdate:modelValue":Q[1]||(Q[1]=O=>d.value=O),title:unref(n)("importDialog.selectTitle")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:Q[0]||(Q[0]=O=>d.value=!1)},toDisplayString$1(unref(n)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:V},toDisplayString$1(unref(n)("importDialog.sureSelect")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$d,[createBaseVNode("div",_hoisted_2$c,[createBaseVNode("div",_hoisted_3$c,[createBaseVNode("span",null,toDisplayString$1(unref(n)("importDialog.selectedCategories")),1),u.value.length>0?(openBlock(),createElementBlock("button",{key:0,class:"clear-all-btn",onClick:fe},toDisplayString$1(unref(n)("importDialog.clearAll")),1)):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_4$b,[g.value.length>0?(openBlock(),createElementBlock("div",_hoisted_5$a,[createBaseVNode("div",_hoisted_6$a,toDisplayString$1(unref(n)("importDialog.primaryCategories")),1),createBaseVNode("div",_hoisted_7$a,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(O,G)=>(openBlock(),createElementBlock("div",{key:"primary-"+G,class:"selected-item"},[createBaseVNode("span",_hoisted_8$a,toDisplayString$1(O.group.name),1),createBaseVNode("button",{class:"remove-selected-btn",onClick:ee=>j(b(O))},"×",8,_hoisted_9$a)]))),128))])])):createCommentVNode("",!0),v.value.length>0?(openBlock(),createElementBlock("div",_hoisted_10$9,[createBaseVNode("div",_hoisted_11$9,toDisplayString$1(unref(n)("importDialog.subCategories")),1),createBaseVNode("div",_hoisted_12$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(v.value,(O,G)=>(openBlock(),createElementBlock("div",{key:"sub-"+G,class:"selected-item"},[createBaseVNode("span",_hoisted_13$8,toDisplayString$1(O.group.name),1),Q[2]||(Q[2]=createBaseVNode("span",{class:"separator"},">",-1)),createBaseVNode("span",_hoisted_14$7,toDisplayString$1(O.sub.name),1),createBaseVNode("button",{class:"remove-selected-btn",onClick:ee=>j($(O))},"×",8,_hoisted_15$7)]))),128))])])):createCommentVNode("",!0),u.value.length===0?(openBlock(),createElementBlock("div",_hoisted_16$7,toDisplayString$1(unref(n)("importDialog.noSelectedCategories")),1)):createCommentVNode("",!0)])]),createBaseVNode("div",_hoisted_17$7,[createBaseVNode("div",_hoisted_18$5,[createBaseVNode("div",_hoisted_19$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.value,(O,G)=>{var ee,A,L;return openBlock(),createElementBlock("div",{key:"Tabss-"+G,class:normalizeClass(["tab-item",{active:((ee=s.value)==null?void 0:ee.p_uuid)===O.p_uuid}]),style:normalizeStyle({backgroundColor:((A=s.value)==null?void 0:A.p_uuid)===O.p_uuid?"var(--weilin-prompt-ui-primary-bg)":O.color,color:((L=s.value)==null?void 0:L.p_uuid)===O.p_uuid?"var(--weilin-prompt-ui-primary-text)":P(O.color)}),onClick:W=>y(O)},[createBaseVNode("span",_hoisted_21$5,toDisplayString$1(O.name),1),createBaseVNode("button",{class:"select-tab-btn",onClick:withModifiers(W=>F(O),["stop"]),title:unref(n)("importDialog.selectCategory")},Q[3]||(Q[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"28",height:"28"},[createBaseVNode("path",{fill:"currentColor",d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]),8,_hoisted_22$5)],14,_hoisted_20$5)}),128))])]),s.value?(openBlock(),createElementBlock("div",_hoisted_23$5,[createBaseVNode("div",_hoisted_24$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(s.value.groups,(O,G)=>{var ee,A,L;return openBlock(),createElementBlock("div",{key:"TabsSw-"+G,class:normalizeClass(["tab-item",{active:((ee=l.value)==null?void 0:ee.g_uuid)===O.g_uuid,disabled:R(s.value)}]),style:normalizeStyle({backgroundColor:((A=l.value)==null?void 0:A.g_uuid)===O.g_uuid?"var(--weilin-prompt-ui-primary-bg)":O.color,color:((L=l.value)==null?void 0:L.g_uuid)===O.g_uuid?"var(--weilin-prompt-ui-primary-text)":P(O.color),opacity:R(s.value)?"0.5":"1",cursor:R(s.value)?"not-allowed":"pointer"}),onClick:W=>R(s.value)?null:E(O)},[createBaseVNode("span",_hoisted_26$5,toDisplayString$1(O.name),1),R(s.value)?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:0,class:"select-tab-btn",onClick:withModifiers(W=>H(s.value,O),["stop"]),disabled:R(s.value),title:unref(n)("importDialog.selectSubcategory")},Q[4]||(Q[4]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"28",height:"28"},[createBaseVNode("path",{fill:"currentColor",d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]),8,_hoisted_27$5))],14,_hoisted_25$5)}),128))])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"]))}},TagGroupSelect=_export_sfc(_sfc_main$d,[["__scopeId","data-v-eb6b9225"]]),randomTagApi={getTemplateList:async()=>await request({url:"/random_template/get_template_list",method:"post"}),getTemplateData:async e=>await request({url:"/random_template/get_template_data",method:"post",data:{name:e}}),saveTemplateData:async e=>await request({url:"/random_template/save_template",method:"post",data:{data:e}}),updateTemplateData:async(e,t)=>await request({url:"/random_template/update_template",method:"post",data:{name:e,data:t}}),deleteTemplateData:async e=>await request({url:"/random_template/delete_template",method:"post",data:{name:e}}),getRandomTemplateApple:async()=>await request({url:"/get/setting/get_random_template_setting",method:"post"}),updateRandomTemplateApple:async e=>await request({url:"/update/setting/update_random_template_setting",method:"post",data:{path:e}}),goRandomTemplate:async()=>await request({url:"/random_template/go_random_template",method:"post"}),goRandomTemplatePath:async e=>await request({url:"/random_template/go_random_template_path",method:"post",data:{name:e}})},_hoisted_1$c={class:"random-rule-container"},_hoisted_2$b={class:"settings-section template-section"},_hoisted_3$b={class:"section-header"},_hoisted_4$a={class:"template-controls"},_hoisted_5$9={class:"template-select-group"},_hoisted_6$9={class:"template-select-with-apply"},_hoisted_7$9={value:""},_hoisted_8$9=["value"],_hoisted_9$9=["disabled"],_hoisted_10$8={class:"template-bottom-buttons"},_hoisted_11$8=["disabled"],_hoisted_12$8=["disabled"],_hoisted_13$7={key:0,class:"template-name-input"},_hoisted_14$6=["placeholder"],_hoisted_15$6={class:"template-actions"},_hoisted_16$6={key:0},_hoisted_17$6={class:"settings-section"},_hoisted_18$4={class:"section-header"},_hoisted_19$4={class:"rules-reminder"},_hoisted_20$4={class:"rules-list"},_hoisted_21$4={class:"rule-header"},_hoisted_22$4=["onClick"],_hoisted_23$4={class:"rule-content"},_hoisted_24$4={class:"form-group"},_hoisted_25$4={class:"range-inputs"},_hoisted_26$4=["onUpdate:modelValue"],_hoisted_27$4=["onUpdate:modelValue"],_hoisted_28$4={class:"form-group"},_hoisted_29$4=["onUpdate:modelValue"],_hoisted_30$4={value:"category"},_hoisted_31$4={value:"specific"},_hoisted_32$4={key:0,class:"form-group"},_hoisted_33$4={class:"selected-categories-container"},_hoisted_34$4={class:"selected-categories-header"},_hoisted_35$4={class:"selected-categories-content"},_hoisted_36$4={key:0,class:"selected-category-section"},_hoisted_37$3={class:"section-title"},_hoisted_38$3={class:"selected-items"},_hoisted_39$3={class:"category-name"},_hoisted_40$3={key:1,class:"selected-category-section"},_hoisted_41$3={class:"section-title"},_hoisted_42$3={class:"selected-items"},_hoisted_43$3={class:"category-name"},_hoisted_44$2={class:"subcategory-name"},_hoisted_45$2={key:2,class:"no-selected"},_hoisted_46$2=["onClick"],_hoisted_47$1={key:1,class:"form-group"},_hoisted_48$1={class:"tags-input-container"},_hoisted_49$1=["onClick"],_hoisted_50$1=["onUpdate:modelValue","onKeydown","placeholder"],_hoisted_51$1=["onClick"],_hoisted_52$1={class:"actions-section"},_hoisted_53$1=["disabled"],STORAGE_PREFIX$2="weilin_tools_",_sfc_main$c={__name:"random_setting",emits:["close","update","generateRandomTags"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref(null),s=ref(!1),l=ref(""),c=ref(""),f={randomRuleSetting:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},u={file_name:"new_random_template",rules:[{range:{min:1,max:3},type:"category",categoryId:1,specificTags:[],tagGroupList:[],tagInput:""},{range:{min:4,max:6},type:"category",categoryId:2,specificTags:[],tagGroupList:[],tagInput:""}]},d=ref({});async function m(){try{l.value=="prompt_global"?await randomTagApi.getRandomTemplateApple().then(async Z=>{Z.data==""?d.value=u:await randomTagApi.getTemplateData(Z.data).then(async D=>{O.value=Z.data,d.value=D.data,s.value=!0}).catch(D=>{console.error("加载模板失败:",D),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}).catch(Z=>{console.error(Z),message$1({type:"warn",str:"message.networkError"})}):c.value==""?d.value=u:await randomTagApi.getTemplateData(c.value).then(async Z=>{O.value=c.value,d.value=Z.data,s.value=!0}).catch(Z=>{console.error("加载模板失败:",Z),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}catch(Z){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",Z)}}function g(){try{const Z=JSON.parse(JSON.stringify(d.value));Z.rules&&Z.rules.forEach(D=>{delete D.tagInput}),randomTagApi.updateTemplateData(O.value,Z).then(async D=>{await randomTagApi.getTemplateData(D.path_name).then(async K=>{d.value=K.data,message$1({type:"success",str:"randomUtils.templateSaved"})}).catch(K=>{console.error("加载模板失败:",K),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}).catch(D=>{console.error("更新模板失败:",D),message$1({type:"warn",str:"randomUtils.errorSavingTemplate"})})}catch(Z){console.error("Error saving random tag settings:",Z),message$1({type:"warn",str:"randomUtils.errorSavingSettings"})}}function v(){d.value.rules.push({range:{min:d.value.rules.length>0?d.value.rules[d.value.rules.length-1].range.max+1:1,max:d.value.rules.length>0?d.value.rules[d.value.rules.length-1].range.max+3:3},type:"category",categoryId:1,specificTags:[],tagGroupList:[],tagInput:""})}function b(Z){d.value.rules.splice(Z,1)}function $(Z){Z.tagInput&&Z.tagInput.trim()&&(Z.specificTags.push(Z.tagInput.trim()),Z.tagInput="")}function w(Z,D){Z.specificTags.splice(D,1)}function C(){}const y=ref((()=>{try{const Z=localStorage.getItem(`${STORAGE_PREFIX$2}randomRuleSettingState`);if(Z){const D=JSON.parse(Z),K={...f};return D.randomRuleSetting&&(K.randomRuleSetting={...f.randomRuleSetting,...D.randomRuleSetting}),K}}catch(Z){console.error("Error loading window states:",Z)}return{...f}})());watch(y,Z=>{try{localStorage.setItem(`${STORAGE_PREFIX$2}randomRuleSettingState`,JSON.stringify(Z))}catch(D){console.error("Error saving window states:",D)}},{deep:!0});const E=Z=>{o.value=!1},R=(Z,D)=>{y.value[Z]&&(y.value[Z].position={...D})},F=(Z,D)=>{y.value[Z]&&(y.value[Z].size={...D})},H=Z=>{o.value=!0,l.value=Z,windowManager.registerWindow("randomRuleSetting"),nextTick(()=>{windowManager.setActiveWindow("randomRuleSetting"),Z=="prompt_global"?L(1):B()})},j=(Z,D)=>{r.value.open(Z,D)},fe=()=>void 0,oe=Z=>!Z||!Array.isArray(Z)||Z.length<=0?[]:Z.filter(D=>!D.sub),V=Z=>!Z||!Array.isArray(Z)||Z.length<=0?[]:Z.filter(D=>D.sub),q=Z=>{Z&&Z.data&&Array.isArray(Z.data)?d.value.rules[Z.index].tagGroupList=Z.data:d.value.rules[Z.index].tagGroupList=[]},Q=ref([]),O=ref(""),G=ref(""),ee=ref(!1),A=ref(!1);async function L(Z=0){try{await randomTagApi.getTemplateList().then(D=>{Q.value=D.data,Z==1&&m()}).catch(D=>{console.error(D),message$1({type:"warn",str:"message.networkError"})})}catch(D){message$1({type:"warn",str:"message.networkError"}),console.error("RandomTemplate获取列表失败:",D)}}function W(){ee.value=!0,G.value=""}function ae(){ee.value=!1,G.value=""}function Y(){if(!O.value){message$1.warm(n("randomUtils.pleaseChooseTemplate"));return}l.value=="prompt_global"?randomTagApi.updateRandomTemplateApple(O.value).then(Z=>{message$1({type:"success",str:"randomUtils.templateApplied"})}).catch(Z=>{console.error("获取模板失败:",Z),message$1({type:"warn",str:"randomUtils.errorApplyingTemplate"})}):(window.postMessage({type:"weilin_prompt_ui_prompt_inner_update_node_tag_template_id",data:O.value},"*"),message$1({type:"success",str:"randomUtils.templateApplied"}))}function ne(){O.value&&randomTagApi.deleteTemplateData(O.value).then(()=>{message$1({type:"success",str:"randomUtils.templateDeleted"}),L(),O.value=""}).catch(Z=>{console.error("删除模板失败:",Z),message$1({type:"warn",str:"randomUtils.errorDeletingTemplate"})})}function te(){if(!O.value)return;const Z=Q.value.find(D=>D.path_name===O.value);Z&&(ee.value=!0,G.value=Z.file_name,A.value=!0)}function ge(){if(!G.value.trim()){message$1({type:"warn",str:"randomUtils.templateNameRequired"});return}if(d.value.file_name=G.value.trim(),A.value){const Z=Q.value.find(D=>D.path_name===O.value);if(Z){Z.file_name=G.value.trim();const D=JSON.parse(JSON.stringify(d.value));D.rules&&D.rules.forEach(K=>{delete K.tagInput}),randomTagApi.updateTemplateData(Z.path_name,D).then(async K=>{message$1({type:"success",str:"randomUtils.templateSaved"}),await L().then(async()=>{await randomTagApi.getTemplateData(K.path_name).then(async x=>{O.value=K.path_name,d.value=x.data,message$1({type:"success",str:"randomUtils.templateSaved"})}).catch(x=>{console.error("加载模板失败:",x),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})})}).catch(K=>{console.error("保存模板失败:",K),message$1({type:"warn",str:"randomUtils.errorSavingTemplate"})})}}else{d.value=u,d.value.file_name=G.value.trim();const Z=JSON.parse(JSON.stringify(d.value));Z.rules&&Z.rules.forEach(D=>{delete D.tagInput}),randomTagApi.saveTemplateData(Z).then(async D=>{await L().then(async()=>{await randomTagApi.getTemplateData(D.path_name).then(async K=>{O.value=D.path_name,d.value=K.data,message$1({type:"success",str:"randomUtils.templateSaved"})}).catch(K=>{console.error("加载模板失败:",K),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})})}).catch(D=>{console.error("保存模板失败:",D),message$1({type:"warn",str:"randomUtils.errorSavingTemplate"})})}ee.value=!1,G.value="",A.value=!1}const re=async Z=>{if(Z.target.value!="")try{await randomTagApi.getTemplateData(Z.target.value).then(async D=>{O.value=D.path_name,d.value=D.data,s.value=!0}).catch(D=>{console.error("加载模板失败:",D),message$1({type:"warn",str:"randomUtils.errorLoadingTemplate"})})}catch(D){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",D)}},B=()=>{window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id"},"*")},z=Z=>{Z.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id_response"&&(c.value=Z.data.data,L(1))};return onMounted(()=>{window.addEventListener("message",z)}),onUnmounted(()=>{windowManager.unregisterWindow("randomRuleSetting"),window.removeEventListener("message",z)}),t({open:H,getRandomTags:fe}),(Z,D)=>(openBlock(),createElementBlock(Fragment,null,[o.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("randomUtils.title"),position:y.value.randomRuleSetting.position,size:y.value.randomRuleSetting.size,"z-index":unref(windowManager).getZIndex("randomRuleSetting"),"onUpdate:position":D[2]||(D[2]=K=>R("randomRuleSetting",K)),"onUpdate:size":D[3]||(D[3]=K=>F("randomRuleSetting",K)),onActive:D[4]||(D[4]=K=>unref(windowManager).setActiveWindow("randomRuleSetting")),onClose:D[5]||(D[5]=K=>E())},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1$c,[createBaseVNode("div",_hoisted_2$b,[createBaseVNode("div",_hoisted_3$b,[createBaseVNode("h3",null,toDisplayString$1(unref(n)("randomUtils.ruleTemplates")),1)]),createBaseVNode("div",_hoisted_4$a,[createBaseVNode("div",_hoisted_5$9,[createBaseVNode("div",_hoisted_6$9,[withDirectives(createBaseVNode("select",{"onUpdate:modelValue":D[0]||(D[0]=K=>O.value=K),onChange:re,class:"form-select template-select"},[createBaseVNode("option",_hoisted_7$9,toDisplayString$1(unref(n)("randomUtils.selectTemplate")),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(Q.value,(K,x)=>(openBlock(),createElementBlock("option",{key:x,value:K.path_name},toDisplayString$1(K.file_name),9,_hoisted_8$9))),128))],544),[[vModelSelect,O.value]]),createBaseVNode("button",{class:"apply-template-btn",onClick:Y,disabled:!O.value},toDisplayString$1(unref(n)("randomUtils.applyTemplate")),9,_hoisted_9$9)]),createBaseVNode("div",_hoisted_10$8,[createBaseVNode("button",{class:"new-template-btn",onClick:W},toDisplayString$1(unref(n)("randomUtils.newTemplate")),1),createBaseVNode("button",{class:"edit-template-btn",onClick:te,disabled:!O.value},toDisplayString$1(unref(n)("randomUtils.editTemplate")),9,_hoisted_11$8),createBaseVNode("button",{class:"delete-template-btn",onClick:ne,disabled:!O.value},toDisplayString$1(unref(n)("randomUtils.deleteTemplate")),9,_hoisted_12$8)])]),ee.value?(openBlock(),createElementBlock("div",_hoisted_13$7,[withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":D[1]||(D[1]=K=>G.value=K),class:"form-input",placeholder:unref(n)("randomUtils.templateNamePlaceholder")},null,8,_hoisted_14$6),[[vModelText,G.value]]),createBaseVNode("div",_hoisted_15$6,[createBaseVNode("button",{class:"save-template-btn",onClick:ge},toDisplayString$1(unref(n)("randomUtils.save")),1),createBaseVNode("button",{class:"cancel-template-btn",onClick:ae},toDisplayString$1(unref(n)("randomUtils.cancel")),1)])])):createCommentVNode("",!0)])]),O.value&&s.value?(openBlock(),createElementBlock("div",_hoisted_16$6,[createBaseVNode("div",_hoisted_17$6,[createBaseVNode("div",_hoisted_18$4,[createBaseVNode("h3",null,toDisplayString$1(unref(n)("randomUtils.rules")),1),createBaseVNode("button",{class:"add-rule-btn",onClick:v},[D[6]||(D[6]=createBaseVNode("span",null,"+",-1)),createTextVNode(" "+toDisplayString$1(unref(n)("randomUtils.addRule")),1)])]),createBaseVNode("div",_hoisted_19$4,[createBaseVNode("p",null,toDisplayString$1(unref(n)("randomUtils.rulesReminder")),1)]),createBaseVNode("div",_hoisted_20$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(d.value.rules,(K,x)=>(openBlock(),createElementBlock("div",{key:x,class:"rule-item"},[createBaseVNode("div",_hoisted_21$4,[createBaseVNode("h4",null,toDisplayString$1(unref(n)("randomUtils.rule"))+" #"+toDisplayString$1(x+1),1),createBaseVNode("button",{class:"delete-rule-btn",onClick:S=>b(x)},"×",8,_hoisted_22$4)]),createBaseVNode("div",_hoisted_23$4,[createBaseVNode("div",_hoisted_24$4,[createBaseVNode("label",null,toDisplayString$1(unref(n)("randomUtils.range")),1),createBaseVNode("div",_hoisted_25$4,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":S=>K.range.min=S,min:"1",class:"form-input range-input"},null,8,_hoisted_26$4),[[vModelText,K.range.min,void 0,{number:!0}]]),D[7]||(D[7]=createBaseVNode("span",null,"-",-1)),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":S=>K.range.max=S,min:"1",class:"form-input range-input"},null,8,_hoisted_27$4),[[vModelText,K.range.max,void 0,{number:!0}]])])]),createBaseVNode("div",_hoisted_28$4,[createBaseVNode("label",null,toDisplayString$1(unref(n)("randomUtils.tagType")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":S=>K.type=S,class:"form-select"},[createBaseVNode("option",_hoisted_30$4,toDisplayString$1(unref(n)("randomUtils.category")),1),createBaseVNode("option",_hoisted_31$4,toDisplayString$1(unref(n)("randomUtils.specificTags")),1)],8,_hoisted_29$4),[[vModelSelect,K.type]])]),K.type==="category"?(openBlock(),createElementBlock("div",_hoisted_32$4,[createBaseVNode("div",_hoisted_33$4,[createBaseVNode("div",_hoisted_34$4,[createBaseVNode("span",null,toDisplayString$1(unref(n)("importDialog.selectedCategories")),1)]),createBaseVNode("div",_hoisted_35$4,[oe(K.tagGroupList).length>0?(openBlock(),createElementBlock("div",_hoisted_36$4,[createBaseVNode("div",_hoisted_37$3,toDisplayString$1(unref(n)("importDialog.primaryCategories")),1),createBaseVNode("div",_hoisted_38$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(oe(K.tagGroupList),(S,I)=>(openBlock(),createElementBlock("div",{key:"primary-"+I,class:"selected-item"},[createBaseVNode("span",_hoisted_39$3,toDisplayString$1(S.group.name),1)]))),128))])])):createCommentVNode("",!0),V(K.tagGroupList).length>0?(openBlock(),createElementBlock("div",_hoisted_40$3,[createBaseVNode("div",_hoisted_41$3,toDisplayString$1(unref(n)("importDialog.subCategories")),1),createBaseVNode("div",_hoisted_42$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(V(K.tagGroupList),(S,I)=>(openBlock(),createElementBlock("div",{key:"sub-"+I,class:"selected-item"},[createBaseVNode("span",_hoisted_43$3,toDisplayString$1(S.group.name),1),D[8]||(D[8]=createBaseVNode("span",{class:"separator"},">",-1)),createBaseVNode("span",_hoisted_44$2,toDisplayString$1(S.sub.name),1)]))),128))])])):createCommentVNode("",!0),!K.tagGroupList||K.tagGroupList.length===0?(openBlock(),createElementBlock("div",_hoisted_45$2,toDisplayString$1(unref(n)("importDialog.noSelectedCategories")),1)):createCommentVNode("",!0)])]),createBaseVNode("button",{class:"add-tag-btn",onClick:S=>j(x,K.tagGroupList)},toDisplayString$1(unref(n)("randomUtils.selectTagGroup")),9,_hoisted_46$2)])):createCommentVNode("",!0),K.type==="specific"?(openBlock(),createElementBlock("div",_hoisted_47$1,[createBaseVNode("label",null,toDisplayString$1(unref(n)("randomUtils.specificTags")),1),createBaseVNode("div",_hoisted_48$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(K.specificTags,(S,I)=>(openBlock(),createElementBlock("div",{key:I,class:"tag-chip"},[createTextVNode(toDisplayString$1(S)+" ",1),createBaseVNode("button",{class:"remove-tag-btn",onClick:X=>w(K,I)},"×",8,_hoisted_49$1)]))),128)),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":S=>K.tagInput=S,onKeydown:withKeys(withModifiers(S=>$(K),["prevent"]),["enter"]),class:"tag-input",placeholder:unref(n)("randomUtils.addTagPlaceholder")},null,40,_hoisted_50$1),[[vModelText,K.tagInput]])]),createBaseVNode("button",{class:"add-tag-btn",onClick:S=>$(K)},toDisplayString$1(unref(n)("randomUtils.addTag")),9,_hoisted_51$1)])):createCommentVNode("",!0)])]))),128))])])])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_52$1,[createBaseVNode("button",{class:"save-btn",onClick:g,disabled:!O.value},toDisplayString$1(unref(n)("common.save")),9,_hoisted_53$1)])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),createVNode(TagGroupSelect,{ref_key:"tagGroupSelectItem",ref:r,onSureSelect:q},null,512)],64))}},RandomSetting=_export_sfc(_sfc_main$c,[["__scopeId","data-v-71de91e1"]]);function zero$1(e){let t=e.length;for(;--t>=0;)e[t]=0}const MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){}const _utf8len=new Uint8Array(256);for(let e=0;e<256;e++)_utf8len[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;_utf8len[254]=_utf8len[254]=1;const _hoisted_1$b={class:"tag-manager"},_hoisted_2$a={class:"form-group"},_hoisted_3$a={class:"select-group-item"},_hoisted_4$9=["value","placeholder"],_hoisted_5$8={class:"form-group"},_hoisted_6$8=["placeholder"],_hoisted_7$8={class:"form-group"},_hoisted_8$8=["placeholder"],_hoisted_9$8={class:"form-group"},_hoisted_10$7={class:"color-picker"},_hoisted_11$7={class:"color-controls"},_hoisted_12$7={class:"alpha-control"},_hoisted_13$6={class:"alpha-value"},_sfc_main$b={__name:"favour",emits:["sureSelect"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(null),r=ref(!1),s=ref({text:"",desc:"",id_index:"",color:"rgba(255, 123, 2, .4)"}),l=ref({group:{id_index:0,name:"",color:"",create_time:0,p_uuid:""},sub:{id_index:0,name:"",color:"",create_time:0,g_uuid:"",p_uuid:""}}),c=ref({hex:"#ff7b02",alpha:40}),f=computed(()=>d(c.value.hex,c.value.alpha)),u=()=>{const $=d(c.value.hex,c.value.alpha);s.value.color=$},d=($,w)=>{const C=parseInt($.slice(1,3),16),P=parseInt($.slice(3,5),16),y=parseInt($.slice(5,7),16);return`rgba(${C}, ${P}, ${y}, ${w/100})`},m=()=>{o.value.open()},g=()=>{if(!s.value.text||!s.value.desc||!l.value.sub.id_index||!l.value.sub.g_uuid){message$1({type:"warn",str:"tagManager.textRequired"});return}tagsApi.addNewTags({id_index:l.value.sub.id_index,g_uuid:l.value.sub.g_uuid,text:s.value.text,desc:s.value.desc,color:s.value.color?s.value.color:"rgba(255, 123, 2, .4)"}).then($=>{window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.addSuccess"}),v()}).catch($=>{message$1({type:"warn",str:"message.networkError"})})},v=()=>{s.value={id_index:"",text:"",desc:"",color:"rgba(255, 123, 2, .4)"},r.value=!1},b=$=>{l.value=$,s.value.id_index=$.sub.id_index};return t({open:($,w)=>{s.value={id_index:"",text:"",desc:"",color:"rgba(255, 123, 2, .4)"},s.value.text=$,s.value.desc=w,r.value=!0}}),($,w)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Dialog,{modelValue:r.value,"onUpdate:modelValue":w[5]||(w[5]=C=>r.value=C),title:unref(n)("tagManager.addTag")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:w[4]||(w[4]=C=>r.value=!1)},toDisplayString$1(unref(n)("common.cancel")),1),createBaseVNode("button",{onClick:g},toDisplayString$1(unref(n)("common.confirm")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$a,[createBaseVNode("label",null,toDisplayString$1(unref(n)("importDialog.selectGroup")),1),createBaseVNode("div",_hoisted_3$a,[createBaseVNode("input",{type:"text",value:s.value.id_index!=""?l.value.group.name+" -> "+l.value.sub.name:"请选择分组",readonly:"",placeholder:unref(n)("importDialog.selectGroup")},null,8,_hoisted_4$9),createBaseVNode("button",{class:"add-tag-btn",style:{"margin-left":"10px","min-width":"fit-content"},onClick:m},toDisplayString$1(unref(n)("importDialog.selectGroup")),1)])]),createBaseVNode("div",_hoisted_5$8,[createBaseVNode("label",null,toDisplayString$1(unref(n)("tagManager.text")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":w[0]||(w[0]=C=>s.value.desc=C),placeholder:unref(n)("tagManager.textPlaceholder")},null,8,_hoisted_6$8),[[vModelText,s.value.desc]])]),createBaseVNode("div",_hoisted_7$8,[createBaseVNode("label",null,toDisplayString$1(unref(n)("tagManager.description")),1),withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":w[1]||(w[1]=C=>s.value.text=C),placeholder:unref(n)("tagManager.descriptionPlaceholder"),rows:"4"}," ",8,_hoisted_8$8),[[vModelText,s.value.text]])]),createBaseVNode("div",_hoisted_9$8,[createBaseVNode("label",null,toDisplayString$1(unref(n)("tagManager.backgroundColor")),1),createBaseVNode("div",_hoisted_10$7,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:f.value})},null,4),createBaseVNode("div",_hoisted_11$7,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":w[2]||(w[2]=C=>c.value.hex=C),onInput:u,class:"color-input"},null,544),[[vModelText,c.value.hex]]),createBaseVNode("div",_hoisted_12$7,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":w[3]||(w[3]=C=>c.value.alpha=C),min:"0",max:"100",onInput:u,class:"alpha-slider"},null,544),[[vModelText,c.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_13$6,toDisplayString$1(c.value.alpha)+"%",1)])])])])])]),_:1},8,["modelValue","title"]),createVNode(TagGroupSelect$1,{ref_key:"tagGroupSelectItem",ref:o,onSureSelect:b},null,512)],64))}},favourItem=_export_sfc(_sfc_main$b,[["__scopeId","data-v-08abaad1"]]),_hoisted_1$a={class:"weilin_prompt_ui_prompt-box"},_hoisted_2$9={key:0,class:"weilin-toast",role:"status","aria-live":"polite"},_hoisted_3$9={class:"center-container"},_hoisted_4$8={class:"action-item"},_hoisted_5$7=["title"],_hoisted_6$7={class:"action-text"},_hoisted_7$7={class:"action-item"},_hoisted_8$7=["title"],_hoisted_9$7={class:"action-text"},_hoisted_10$6={class:"action-item"},_hoisted_11$6={class:"action-text"},_hoisted_12$6={class:"action-item"},_hoisted_13$5=["title"],_hoisted_14$5={class:"action-text"},_hoisted_15$5={class:"action-item"},_hoisted_16$5=["title"],_hoisted_17$5={class:"action-text"},_hoisted_18$3={class:"action-item"},_hoisted_19$3=["title"],_hoisted_20$3={class:"action-text"},_hoisted_21$3={key:0,class:"action-item"},_hoisted_22$3=["title"],_hoisted_23$3={class:"action-text"},_hoisted_24$3={class:"action-item"},_hoisted_25$3=["title"],_hoisted_26$3={class:"action-text"},_hoisted_27$3={class:"action-item"},_hoisted_28$3=["title"],_hoisted_29$3={class:"action-text"},_hoisted_30$3={class:"action-item"},_hoisted_31$3=["title"],_hoisted_32$3={class:"action-text"},_hoisted_33$3={class:"action-item"},_hoisted_34$3=["title"],_hoisted_35$3={class:"action-text"},_hoisted_36$3={class:"action-item"},_hoisted_37$2=["title"],_hoisted_38$2={class:"action-text"},_hoisted_39$2={class:"action-item"},_hoisted_40$2=["title"],_hoisted_41$2={class:"action-text"},_hoisted_42$2={class:"action-item"},_hoisted_43$2=["title"],_hoisted_44$1={class:"action-text"},_hoisted_45$1={class:"action-item weilin-comfyui-toolbar-right"},_hoisted_46$1=["disabled"],_hoisted_47=["placeholder"],_hoisted_48={class:"token-counter"},_hoisted_49=["onClick"],_hoisted_50={class:"tag"},_hoisted_51={class:"desc"},_hoisted_52={class:"prompt-input-translate-area"},_hoisted_53={style:{display:"flex","align-items":"center"}},_hoisted_54=["placeholder"],_hoisted_55=["title"],_hoisted_56={style:{"margin-left":"5px"},class:"action-text"},_hoisted_57=["title"],_hoisted_58={class:"action-text"},_hoisted_59=["title"],_hoisted_60={class:"action-text"},_hoisted_61={key:0,class:"tokens-container"},_hoisted_62=["draggable","onDragstart","onDragover","onDrop","onDblclick"],_hoisted_63={key:0,class:"newline-token"},_hoisted_64=["title"],_hoisted_65=["onMouseenter","onMouseleave"],_hoisted_66=["title"],_hoisted_67=["title","onMouseenter","onMouseleave"],_hoisted_68={style:{"margin-left":"5px"}},_hoisted_69=["onMouseenter","onMouseleave"],_hoisted_70=["onClick"],_hoisted_71=["value","onInput","onBlur","onKeyup"],_hoisted_72=["onClick","title"],_hoisted_73={key:4,class:"translation-result"},_hoisted_74=["onClick","title"],_hoisted_75={class:"translated-text"},_hoisted_76={key:0,class:"line-break"},_hoisted_77={class:"tag-tips-content"},_hoisted_78=["innerHTML"],_hoisted_79={key:0,class:"weight-control"},_hoisted_80={class:"weight-label"},_hoisted_81={key:1,class:"lora-weight-controls"},_hoisted_82={class:"weight-control"},_hoisted_83={class:"weight-label"},_hoisted_84={class:"weight-control"},_hoisted_85={class:"weight-label"},_hoisted_86=["title"],_hoisted_87=["title"],_hoisted_88={key:2,class:"bracket-btn-group"},_hoisted_89={class:"bracket-btn-container"},_hoisted_90={class:"vertical-btn-group"},_hoisted_91=["title"],_hoisted_92=["title"],_hoisted_93={class:"bracket-btn-container"},_hoisted_94={class:"vertical-btn-group"},_hoisted_95=["title"],_hoisted_96=["title"],_hoisted_97={class:"bracket-btn-container"},_hoisted_98={class:"vertical-btn-group"},_hoisted_99=["title"],_hoisted_100=["title"],_hoisted_101=["title"],_hoisted_102={class:"tag-manager-section"},_hoisted_103={class:"weilin-comfyui-selection-actions-content"},_hoisted_104={class:"weilin-comfyui-selection-actions-count"},_hoisted_105={class:"header-left"},_hoisted_106={class:"section-title"},_hoisted_107={class:"header-right"},_hoisted_108={class:"lora-manager-container"},_hoisted_109={class:"tag-manager-section"},_hoisted_110={class:"header-left"},_hoisted_111={class:"section-title"},_hoisted_112={class:"header-right"},_hoisted_113={class:"tag-manager-container"},prefix$2="weilin_prompt_ui_",selectionBoxId="weilin-selection-box",throttleInterval=16,STORAGE_KEY_SIDEBAR_VISIBLE="weilin_prompt_ui_sidebar_visible",MAIN_LABELS_STORAGE_KEY="weilin_prompt_ui_main_labels_v1",dragUpdateDelay=50,_sfc_main$a={__name:"prompt_index",props:{promptManager:{type:String,default:"prompt_global"},hasPromptLoraStack:{type:Boolean,default:!1}},setup(e,{expose:t}){const a=ref(null),{t:n}=useI18n(),o=ref(),r=ref(),s=ref({top:0,left:0}),l=ref(0),c=e,f=ref(null),u=ref(""),d=ref([]),m={},g=ref(null),v=ref(!1),b=ref({top:"0px",left:"0px"}),$=ref(!1),w=ref(null),C=ref(null),P=ref(null),y=ref([]),E=ref(!1),R=ref(!1),F=ref([]),H=ref(0),j=ref(null),fe=ref(localStorage.getItem("weilin_prompt_ui_auto_box_width")||450),oe=ref(localStorage.getItem("weilin_prompt_ui_auto_box_height")||350),V=ref(""),q=ref(!1),Q=ref({x:0,y:0}),O=ref({x:0,y:0}),G=ref([]),ee=ref(null),A=ref(!1),L=ref(!1),W=ref(!1),ae=ref({top:"0px",left:"0px"}),Y=ref(!1),ne=ref(!1),te=ref(0),ge=ref(!1),re=ref({top:"0px",left:"0px"}),B=ref(null),z=ref(null),Z=ref(""),D=ref(0),K=ref(!0),x=()=>{K.value=!K.value};watch(K,N=>{localStorage.setItem(STORAGE_KEY_SIDEBAR_VISIBLE,String(N))}),onMounted(()=>{const N=localStorage.getItem(STORAGE_KEY_SIDEBAR_VISIBLE);K.value=N!=="false"});const S=()=>(D.value++,`token_${D.value}_${Date.now()}`),I=()=>{E.value=!E.value},X=()=>{E.value=!1},ie=ref(null),pe=ref(null),T=ref(!1),_=`weilin_prompt_ui_last_main_label_id_${c.promptManager||"default"}`,M=computed(()=>{const N=K.value?280:0;return`calc(100% - ${(E.value?300:0)+N}px)`});let U=!1;const _e=N=>{if(!N){pe.value=null,u.value="",nextTick(()=>{r.value&&(r.value.value="",ut({target:r.value}))}),T.value=!1;return}pe.value=N.id,U=!0,u.value=N.content||"",nextTick(()=>{r.value&&(r.value.value=u.value,ut({target:r.value}))}),T.value=!1};watch(u,N=>{if(U){U=!1;return}T.value=!0}),watch(d,()=>{U||(T.value=!0)},{deep:!0}),watch(pe,N=>{try{localStorage.setItem(_,N||"")}catch{}});function me(){try{const N=localStorage.getItem(_);if(!N)return;const k=localStorage.getItem(MAIN_LABELS_STORAGE_KEY),se=k?JSON.parse(k):[],de=Array.isArray(se)?se.find(ke=>ke&&ke.id===N):null;if(!de)return;pe.value=N,U=!0,u.value=de.content||"",nextTick(()=>{r.value&&(r.value.value=u.value,ut({target:r.value})),U=!1}),T.value=!1}catch{}}onMounted(()=>{me();const N=()=>{try{localStorage.setItem(_,pe.value||"")}catch{}};window.addEventListener("beforeunload",N),onBeforeUnmount(()=>window.removeEventListener("beforeunload",N))});function J(){var N;pe.value&&(N=ie.value)!=null&&N.updateSelectedContent&&(ie.value.updateSelectedContent(u.value),T.value=!1,xe())}const ce=ref(!1);let Se=null;function xe(){ce.value=!0,Se&&clearTimeout(Se),Se=setTimeout(()=>{ce.value=!1},1600)}onBeforeUnmount(()=>{Se&&clearTimeout(Se)});const Ne=()=>{w.value.open()},Ce=ref(1),Me=()=>{if(g.value===null)return;let k=d.value[g.value].text;if(!Le(k)){message$1({type:"warn",str:"message.noFinishKuo"});return}const se=we=>we.startsWith("(")&&we.endsWith(")")&&!we.slice(1,-1).includes("(")&&!we.slice(1,-1).includes(")")&&!we.slice(1,-1).includes("[")&&!we.slice(1,-1).includes("]")&&!we.slice(1,-1).includes("{")&&!we.slice(1,-1).includes("}")&&!we.slice(1,-1).includes("<")&&!we.slice(1,-1).includes(">");let de=k;const ke=/:\d+(\.\d+)?$/.test(k),he=k.match(/^\((.*?):(\d+(\.\d+)?)\)$/);if(ke||he)Ce.value===1?k.startsWith("(")&&k.endsWith(")")?de=k.slice(1,-1).replace(/:(\d+(\.\d+)?)$/,""):de=k.replace(/:(\d+(\.\d+)?)$/,""):he?de=`(${he[1]}:${Ce.value})`:de=k.replace(/:(\d+(\.\d+)?)$/,`:${Ce.value}`);else{const we=k.match(/^([^_]+)_(\([^)]+\))$/);if(we&&!k.includes("\\(")&&!k.includes("\\)")){const[,$e,Ee]=we;Ce.value===1?de=k:de=`(${$e} ${Ee}:${Ce.value})`}else k.includes("\\(")&&k.includes("\\)")&&!/[\(\)\[\]\{\}<>]/.test(k.replace(/\\[\(\)\[\]\{\}<>]/g,""))?Ce.value===1?de=k:k.startsWith("(")&&k.endsWith(")")?de=k.replace(/\)$/,`:${Ce.value})`):de=`(${k}:${Ce.value})`:/[\(\[\{\<\)\]\}\>]/.test(k)?Ce.value===1&&se(k)?de=k.slice(1,-1):Ce.value===1?de=k:k.startsWith("(")&&k.endsWith(")")?de=k.replace(/\)$/,`:${Ce.value})`):de=`(${k}:${Ce.value})`:Ce.value===1?de=k:de=`(${k}:${Ce.value})`}d.value[g.value].text=de,at()},Ie=ref(.5),We=ref(.5);watch(g,N=>{var k;if(N!==null&&((k=d.value[N])!=null&&k.isLoraTag)){const de=d.value[N].text.match(/]+)>/);de&&(Ie.value=parseFloat(de[2]),We.value=parseFloat(de[3]))}});const Te=()=>{var N;if(g.value!==null&&((N=d.value[g.value])!=null&&N.isLoraTag)){const k=d.value[g.value],se=k.text.match(/]+)>/);if(se){const ke=``;k.text=ke,at()}}},be=N=>{if(g.value===null)return;let se=d.value[g.value].text;const de={"(":")","[":"]","{":"}","<":">"}[N];se=`${N}${se}${de}`,d.value[g.value].text=se,Je()},ye=N=>{if(g.value===null)return;let se=d.value[g.value].text;const de={"(":")","[":"]","{":"}","<":">"};se.startsWith(N)&&se.endsWith(de[N])&&(se=se.slice(1,-1),d.value[g.value].text=se,Je())},Le=N=>{const k=[],se={"(":")","[":"]","{":"}","<":">"};for(let de of N)if(se[de])k.push(de);else if(Object.values(se).includes(de)&&(k.length===0||se[k.pop()]!==de))return!1;return k.length===0};onBeforeUpdate(()=>{for(const N in m)delete m[N]}),ref(!0),ref(!1);const Qe=N=>/[\p{L}]/u.test(N),Nt=N=>{const k=N.match(/([^:]+):[\d.]+/);return k?k[1]:N};let pt=null;const Ct=async()=>{pt&&clearTimeout(pt),pt=setTimeout(async()=>{if(!r.value)return;const N=r.value,k=N.selectionStart;await nextTick();const se=N.value.substring(0,k),de=document.createElement("div");de.style.position="absolute",de.style.top="0",de.style.left="0",de.style.visibility="hidden",de.style.whiteSpace="pre-wrap",de.style.wordWrap="break-word",de.style.width=window.getComputedStyle(N).width,de.style.font=window.getComputedStyle(N).font,de.style.padding=window.getComputedStyle(N).padding;const ke=document.createTextNode(se),he=document.createElement("span");he.textContent="|",de.appendChild(ke),de.appendChild(he),N.parentNode.appendChild(de);const we=he.getBoundingClientRect(),$e=N.parentNode.getBoundingClientRect();let Ee=we.top-$e.top+we.height,Pe=we.left-$e.left;if(await nextTick(),o.value){const Fe=o.value.offsetWidth,nt=N.offsetWidth,Ye=N.getBoundingClientRect().left-$e.left;Pe+Fe>Ye+nt&&(Pe=Ye+nt-Fe),Pe{if(!(N!=null&&N.target)||!r.value)return;const k=N.target.value,se=N.target.selectionStart,de=N.target.selectionEnd,ke={comma:{enabled:localStorage.getItem("weilin_prompt_ui_comma_conversion")!=="false",pattern:/,/g,replace:","},period:{enabled:localStorage.getItem("weilin_prompt_ui_period_conversion")!=="false",pattern:/。/g,replace:"."},bracket:{enabled:localStorage.getItem("weilin_prompt_ui_bracket_conversion")!=="false",patterns:[{pattern:/【/g,replace:"["},{pattern:/】/g,replace:"]"},{pattern:/(/g,replace:"("},{pattern:/)/g,replace:")"}]},angleBracket:{enabled:localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")!=="false",patterns:[{pattern:/《/g,replace:"<"},{pattern:/》/g,replace:">"}]}};let he=k.substring(0,se),we=k;Object.values(ke).forEach(Ve=>{Ve.enabled&&(Ve.pattern?(he=he.replace(Ve.pattern,Ve.replace),we=we.replace(Ve.pattern,Ve.replace)):Ve.patterns&&Ve.patterns.forEach(({pattern:He,replace:Ue})=>{he=he.replace(He,Ue),we=we.replace(He,Ue)}))}),u.value=we;const $e=he.length,Ee=de-se,Pe=$e+Ee;nextTick(()=>{r.value&&(r.value.setSelectionRange($e,Pe),r.value.focus())});const Fe=we.substring(0,$e),nt=localStorage.getItem("weilin_prompt_ui_comma_close_autocomplete")==="true",Ye=$e>0?Fe[$e-1]:"";if((Ye===","||Ye===" ")&&nt){R.value=!1,B.value&&clearTimeout(B.value),B.value=setTimeout(()=>{var xt;const Ve=((xt=r.value)==null?void 0:xt.selectionStart)||0,Ue=(u.value||"").substring(0,Ve);let Ke=Ve;for(;Ke>0&&!/[,\s]/.test(Ue[Ke-1]);)Ke--;const Tt=Ue.substring(Ke,Ve).trim();Tt&&ea(Tt),lt()},300),l.value=gt(u.value);return}let Oe=$e;for(;Oe>0&&!/[,\s]/.test(Fe[Oe-1]);)Oe--;const Ae=Fe.substring(Oe,$e).trim();B.value&&clearTimeout(B.value),B.value=setTimeout(()=>{Ae&&ea(Ae),lt()},300),l.value=gt(u.value)},gt=N=>N?N.trim().split(/\s+/).length:0,Xe=async()=>{let N=localStorage.getItem("weilin_prompt_ui_comma_conversion")==="true",k=localStorage.getItem("weilin_prompt_ui_period_conversion")==="true",se=localStorage.getItem("weilin_prompt_ui_bracket_conversion")==="true",de=localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")==="true";localStorage.getItem("weilin_prompt_ui_underscore_to_bracket"),localStorage.getItem("weilin_prompt_ui_comma_conversion")||(localStorage.setItem("weilin_prompt_ui_comma_conversion","true"),N=!0),localStorage.getItem("weilin_prompt_ui_period_conversion")||(localStorage.setItem("weilin_prompt_ui_period_conversion","true"),k=!0),localStorage.getItem("weilin_prompt_ui_bracket_conversion")||(localStorage.setItem("weilin_prompt_ui_bracket_conversion","true"),se=!0),localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")||(localStorage.setItem("weilin_prompt_ui_angle_bracket_conversion","true"),de=!0),localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")||localStorage.setItem("weilin_prompt_ui_underscore_to_bracket","false"),N&&(u.value=u.value.replace(/,/g,",")),k&&(u.value=u.value.replace(/。/g,".")),se&&(u.value=u.value.replace(/【/g,"[").replace(/】/g,"]").replace(/(/g,"(").replace(/)/g,")")),de&&(u.value=u.value.replace(/《/g,"<").replace(/》/g,">"));const ke=u.value;let he=[];const we=d.value.map((De,Oe)=>({token:De,originalIndex:Oe,currentIndex:Oe})).filter(({token:De})=>De.isHidden);he=((De,Oe=0)=>{let Ae=[],Ve=Oe,He="",Ue=[];for(;VeKe.trim())):Ae.push(He.trim())),Ae})(ke);const Ee=new Map;d.value.forEach((De,Oe)=>{De.id||(De.id=S()),Ee.set(Oe,De)});const Pe=[];he.forEach(De=>{if(De===` `)Pe.push({id:S(),text:` -`,translate:"",isPunctuation:!1,isEditing:!1,isHidden:!1,color:""});else if(Le.trim()){const Oe=Le.trim(),Ve=/^$/.test(Oe);let Ee=!1;for(const[Ue,Fe]of Re)if(Fe.text===Oe&&!Fe.isHidden&&!Pe.includes(Fe)){Ve&&!Fe.isLoraTag&&(Fe.isLoraTag=!0),Pe.push(Fe),Re.delete(Ue),Ee=!0;break}if(!Ee){for(const[Ue,Fe]of Re)if(Fe.text===Oe&&!Pe.includes(Fe)){Ve&&!Fe.isLoraTag&&(Fe.isLoraTag=!0),Pe.push(Fe),Re.delete(Ue),Ee=!0;break}}Ee||Pe.push({id:S(),text:Oe,translate:"",isPunctuation:!1,isEditing:!1,isHidden:!1,color:"",isLoraTag:Ve})}});const He=new Set;we.forEach(({token:Le,originalIndex:Oe})=>{if(He.has(Le.id)||(He.add(Le.id),Pe.some(Ue=>Ue.id===Le.id)))return;let Ee=Oe;for(;Ee>Pe.length;)Ee--;Ee<0?Pe.push(Le):Pe.splice(Ee,0,Le)}),d.value=Pe,u.value=d.value.length>0?d.value.reduce((Le,Oe,Ve)=>{var kt,ra;if(Oe.isHidden)return Le;if(Oe.text===` -`){const st=yt(Ve);return st!==-1&&d.value[st],Le+Oe.text}if(Le===""){let st=Ve+1;for(;st=d.value.length,sa=st=d.value.length,Fe=Ee{Qe()},1e3),ut();const rt=20;let Ge=0;for(;Ge0&&!d.value[Ve].translate){let Ee=d.value[Ve].text;const Ue=Tt(Ee.trim());Oe.push(translatorApi.getTranslateLocal(Ue).then(Fe=>{const Ye=Fe;d.value[Ve].translate=Ye.translated.translate,d.value[Ve].color=Ye.translated.color}))}await Promise.all(Oe),Ge=Le}l.value=mt(u.value)},Ft=async()=>{let C=[];for(let se=0;se{if(se&&se.data){const de=JSON.parse(se.data);for(let Se=0;Seke.id===ve.index);we!==-1&&(d.value[we].translate=ve.translate)}}})},it=ref(""),Qe=()=>{const C=u.value.replace(/[\s\t\n]+/g,"");if(y.value.length>0){if(C.length>0){const T=y.value.filter(Se=>!Se.hidden);let se={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:y.value};T.length>0&&(se.lora=T);const de=JSON.stringify(se);it.value!=de&&(it.value=de,historyApi.saveHistory({tag:de}))}}else if(it.value!=u.value){const T={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:""},se=JSON.stringify(T);C.length>0&&historyApi.saveHistory({tag:se})}ut(),U||(k.value=!0)},ut=()=>{if(y.value.length>0){it.value=u.value;const C=y.value.filter(de=>!de.hidden);let T={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:y.value};C.length>0&&(T.lora=C);const se=JSON.stringify(T);window.postMessage({type:"weilin_prompt_ui_prompt_finish_prompt",data:se},"*")}else{it.value=u.value;const C={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:""},T=JSON.stringify(C);window.postMessage({type:"weilin_prompt_ui_prompt_finish_prompt",data:T},"*")}},ht=(C,T)=>{if(A.value)return;Ze.value&&(clearTimeout(Ze.value),Ze.value=null);const se=T.target.getBoundingClientRect();b.value={top:`${se.top-50}px`,left:`${se.left+se.width/2}px`},g.value=C;const de=d.value[C].text;Be.value=Ct(de),re.value={top:`${se.bottom+window.scrollY+se.height+10}px`,left:`${se.left+se.width/2}px`},d.value[C].isLoraTag||(ge.value=!0)},Ct=C=>{const T=[{open:"(",close:")"},{open:"[",close:"]"},{open:"{",close:"}"},{open:"<",close:">"}];for(const de of T)if(C.startsWith(de.open)&&C.endsWith(de.close))return Ct(C.slice(1,-1));const se=C.match(/:(\d+(\.\d+)?)$/);return se?parseFloat(se[1]):1},Ze=ref(null),vt=C=>{Ze.value&&clearTimeout(Ze.value),Ze.value=setTimeout(()=>{v.value||Nt(),Ze.value=null},100),ge.value=!1},dt=()=>{v.value=!1,vt(g.value),setTimeout(()=>{v.value||(A.value=!1)},100)},Nt=()=>{v.value||(g.value=null)},et=()=>{if(g.value!==null){const C=g.value;Et(C),g.value=null,v.value=!1}},Bt=()=>{if(g.value!==null){const C=g.value;d.value.splice(C+1,0,{id:S(),text:` -`,translate:"",isPunctuation:!1,isEditing:!1,isHidden:!1,color:""}),ot()}},Et=C=>{const T=u.value;let se=d.value[C],de=0,Se=-1;for(let ve=0;ve0?d.value.reduce((ve,we,ke)=>{var Le,Oe;if(we.isHidden)return ve;if(we.text===` -`){const Ve=yt(ke);return Ve!==-1&&d.value[Ve],ve+we.text}if(ve===""){let Ve=ke+1;for(;Ve=d.value.length,Ue=Ve=d.value.length,He=Re{const se=u.value;let de=0,Se=-1;for(let we=0;we{d.value[C].isPunctuation||(d.value[C].isEditing=!0,setTimeout(()=>{const T=m[C];if(T){T.focus();const se=T.value.length;T.setSelectionRange(se,se),At(T),T.addEventListener("input",()=>At(T)),Qe(),k.value=!0}}))},At=C=>{const T=document.createElement("span");T.style.visibility="hidden",T.style.position="absolute",T.style.whiteSpace="pre";const se=window.getComputedStyle(C);T.style.font=se.font,T.style.fontSize=se.fontSize,T.style.fontFamily=se.fontFamily,T.style.padding=se.padding,T.style.border=se.border,T.textContent=C.value||C.placeholder||"",document.body.appendChild(T);const de=T.offsetWidth;C.style.width=`${Math.max(de+4,20)}px`,document.body.removeChild(T)},Dt=C=>{d.value[C].isEditing=!1};watch(d,C=>{ot()},{deep:!0}),watch(y,C=>{Qe(),k.value=!0},{deep:!0});const Ht=()=>{$.value=!$.value,$.value&&nextTick(()=>{var T;const C=N.value.getBoundingClientRect();(T=P.value)==null||T.setPosition(C)})},bt=()=>{$.value=!1},Lt=C=>{var T,se;N.value&&!N.value.contains(C.target)&&P.value&&!P.value.$el.contains(C.target)&&bt(),(T=o.value)!=null&&T.contains&&((se=r.value)!=null&&se.contains)&&!o.value.contains(C.target)&&!r.value.contains(C.target)&&(R.value=!1)},Mt=()=>{window.parent.postMessage({type:"weilin_prompt_ui_openTagManager_prompt"},"*")},zt=()=>{window.parent.postMessage({type:"weilin_prompt_ui_openLoraManager"},"*")},jt=()=>{window.parent.postMessage({type:"weilin_prompt_ui_openHistoryManager"},"*")},pt=ref(!0),Wt=()=>{pt.value=!pt.value},ce=ref(!1),le=()=>{ce.value=!ce.value};ref(null);const he=()=>{const C=r.value;C&&(C.addEventListener("keyup",Ce),C.addEventListener("click",Ce),C.addEventListener("input",Ce))},Ce=()=>{R.value&&xt()},je=()=>{if(r.value){const C=r.value.style.height||`${r.value.offsetHeight}px`;localStorage.setItem("weilinPromptTextAreaHeight",C)}},qe=()=>{const C=localStorage.getItem("weilinPromptTextAreaHeight");C&&r.value&&(r.value.style.height=C)};onMounted(()=>{document.addEventListener("click",Lt),window.addEventListener("message",Qt),Jt(),he(),nextTick(()=>{qe()}),setTimeout(()=>{ee.value||(ee.value=document.querySelector(".tokens-container")),ee.value?(ee.value.removeEventListener("mousedown",De),ee.value.removeEventListener("mousemove",ze),ee.value.removeEventListener("mouseup",at),ee.value.removeEventListener("mouseleave",at),ee.value.addEventListener("mousedown",De),ee.value.addEventListener("mousemove",ze),ee.value.addEventListener("mouseup",at),ee.value.addEventListener("mouseleave",at),ee.value.style.userSelect="none",ee.value.style.cursor="default",console.log("框选功能事件监听器绑定成功")):console.warn("未能找到tokens-container元素,框选功能可能无法正常工作")},100)}),onBeforeUnmount(()=>{ee.value&&(ee.value.removeEventListener("mousedown",De),ee.value.removeEventListener("mousemove",ze),ee.value.removeEventListener("mouseup",at),ee.value.removeEventListener("mouseleave",at)),Rt()});const De=C=>{if(C.button===0&&!C.ctrlKey&&!C.metaKey){const T=C.target.closest(".token-item-box, .token-item, .lora-tag-icon, .newline-token, .tab-token, .delete-btn, .weight-control, .bracket-btn, .translate-button, .tag-tips-box, .token-controls"),se=ee.value;if(se&&!T){D.value=!1,q.value=!1,Y.value=!1,ne.value=!1,wt(),Rt();const de=se.getBoundingClientRect();Q.value={x:Math.max(C.clientX,de.left),y:Math.max(C.clientY,de.top)},O.value={x:Math.max(C.clientX,de.left),y:Math.max(C.clientY,de.top)},D.value=!0,console.log("记录框选起始位置")}}},ze=C=>{if(D.value&&ee.value&&!q.value&&Math.sqrt(Math.pow(C.clientX-Q.value.x,2)+Math.pow(C.clientY-Q.value.y,2))>3&&(C.preventDefault(),C.stopPropagation(),q.value=!0,A.value=!0,G.value=[],Je(),console.log("开始实际框选")),q.value&&ee.value){C.preventDefault(),C.stopPropagation();const T=ee.value.getBoundingClientRect();O.value={x:Math.min(Math.max(C.clientX,T.left),T.right),y:Math.min(Math.max(C.clientY,T.top),T.bottom)};const se=5;Math.abs(O.value.x-Q.value.x)100)&&(Y.value=!0,requestAnimationFrame(()=>{It(),Y.value=!1}));const de=Date.now();!ne.value&&de-te.value>throttleInterval&&(te.value=de,ne.value=!0,requestAnimationFrame(()=>{la(),ne.value=!1}))}},at=()=>{if(D.value=!1,q.value){const C=G.value.length;q.value=!1,A.value=!1,Y.value=!1,ne.value=!1,Rt(),C>0&&ca()}},Je=()=>{try{let C=document.getElementById(selectionBoxId);C&&document.body.removeChild(C),C=document.createElement("div"),C.id=selectionBoxId,C.style.cssText=` +`,translate:"",isPunctuation:!1,isEditing:!1,isHidden:!1,color:""});else if(De.trim()){const Oe=De.trim(),Ae=/^$/.test(Oe);let Ve=!1;for(const[He,Ue]of Ee)if(Ue.text===Oe&&!Ue.isHidden&&!Pe.includes(Ue)){Ae&&!Ue.isLoraTag&&(Ue.isLoraTag=!0),Pe.push(Ue),Ee.delete(He),Ve=!0;break}if(!Ve){for(const[He,Ue]of Ee)if(Ue.text===Oe&&!Pe.includes(Ue)){Ae&&!Ue.isLoraTag&&(Ue.isLoraTag=!0),Pe.push(Ue),Ee.delete(He),Ve=!0;break}}Ve||Pe.push({id:S(),text:Oe,translate:"",isPunctuation:!1,isEditing:!1,isHidden:!1,color:"",isLoraTag:Ae})}});const Fe=new Set;we.forEach(({token:De,originalIndex:Oe})=>{if(Fe.has(De.id)||(Fe.add(De.id),Pe.some(He=>He.id===De.id)))return;let Ve=Oe;for(;Ve>Pe.length;)Ve--;Ve<0?Pe.push(De):Pe.splice(Ve,0,De)}),d.value=Pe,u.value=d.value.length>0?d.value.reduce((De,Oe,Ae)=>{var xt,sa;if(Oe.isHidden)return De;if(Oe.text===` +`){const st=_t(Ae);return st!==-1&&d.value[st],De+Oe.text}if(De===""){let st=Ae+1;for(;st=d.value.length,ia=st=d.value.length,Ue=Ve{Je()},1e3),lt();const nt=20;let Ye=0;for(;Ye0&&!d.value[Ae].translate){let Ve=d.value[Ae].text;const He=Nt(Ve.trim());Oe.push(translatorApi.getTranslateLocal(He).then(Ue=>{const Ke=Ue;d.value[Ae].translate=Ke.translated.translate,d.value[Ae].color=Ke.translated.color}))}await Promise.all(Oe),Ye=De}l.value=gt(u.value)},Ut=async()=>{let k=0;const se=20;for(;kse){const Fe=JSON.stringify([{index:$e.id,text:Ee,translate:""}]);await Bt(Fe,[$e.id]),k=we+1;break}else de.push({index:$e.id,text:Ee,translate:""}),ke.push($e.id),he++}if(he===2)break}if(de.length>0){const we=JSON.stringify(de);await Bt(we)}k+=he>0?he:1}},Bt=async(N,k)=>{let se=0;for(;se<2;)try{const de=await translatorApi.translaterText(N,"");if(de&&de.data){const ke=JSON.parse(de.data);for(let he=0;heEe.id===we.index);$e!==-1&&(d.value[$e].translate=we.translate)}return!0}return!1}catch{if(se++,se>=2)return!1}return!1},it=ref(""),Je=()=>{const N=u.value.replace(/[\s\t\n]+/g,"");if(y.value.length>0){if(N.length>0){const k=y.value.filter(ke=>!ke.hidden);let se={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:y.value};k.length>0&&(se.lora=k);const de=JSON.stringify(se);it.value!=de&&(it.value=de,historyApi.saveHistory({tag:de}))}}else if(it.value!=u.value){const k={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:""},se=JSON.stringify(k);N.length>0&&historyApi.saveHistory({tag:se})}lt(),U||(T.value=!0)},lt=()=>{if(y.value.length>0){it.value=u.value;const N=y.value.filter(de=>!de.hidden);let k={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:y.value};N.length>0&&(k.lora=N);const se=JSON.stringify(k);window.postMessage({type:"weilin_prompt_ui_prompt_finish_prompt",data:se},"*")}else{it.value=u.value;const N={prompt:u.value,lora:"",temp_prompt:d.value,temp_lora:""},k=JSON.stringify(N);window.postMessage({type:"weilin_prompt_ui_prompt_finish_prompt",data:k},"*")}},yt=(N,k)=>{if(A.value)return;ot.value&&(clearTimeout(ot.value),ot.value=null);const se=k.target.getBoundingClientRect();b.value={top:`${se.top-50}px`,left:`${se.left+se.width/2}px`},g.value=N;const de=d.value[N].text;Ce.value=mt(de),re.value={top:`${se.bottom+window.scrollY+se.height+10}px`,left:`${se.left+se.width/2}px`},d.value[N].isLoraTag||(ge.value=!0)},mt=N=>{const k=[{open:"(",close:")"},{open:"[",close:"]"},{open:"{",close:"}"},{open:"<",close:">"}];for(const de of k)if(N.startsWith(de.open)&&N.endsWith(de.close))return mt(N.slice(1,-1));const se=N.match(/:(\d+(\.\d+)?)$/);return se?parseFloat(se[1]):1},ot=ref(null),rt=N=>{ot.value&&clearTimeout(ot.value),ot.value=setTimeout(()=>{v.value||Ze(),ot.value=null},100),ge.value=!1},bt=()=>{v.value=!1,rt(g.value),setTimeout(()=>{v.value||(A.value=!1)},100)},Ze=()=>{v.value||(g.value=null)},Et=()=>{if(g.value!==null){const N=g.value;wt(N),g.value=null,v.value=!1}},Vt=()=>{if(g.value!==null){const N=g.value;d.value.splice(N+1,0,{id:S(),text:` +`,translate:"",isPunctuation:!1,isEditing:!1,isHidden:!1,color:""}),at()}},wt=N=>{const k=u.value;let se=d.value[N],de=0,ke=-1;for(let he=0;he0?d.value.reduce((he,we,$e)=>{var De,Oe;if(we.isHidden)return he;if(we.text===` +`){const Ae=_t($e);return Ae!==-1&&d.value[Ae],he+we.text}if(he===""){let Ae=$e+1;for(;Ae=d.value.length,He=Ae=d.value.length,Fe=Ee{const se=u.value;let de=0,ke=-1;for(let we=0;we{d.value[N].isPunctuation||(d.value[N].isEditing=!0,setTimeout(()=>{const k=m[N];if(k){k.focus();const se=k.value.length;k.setSelectionRange(se,se),At(k),k.addEventListener("input",()=>At(k)),Je(),T.value=!0}}))},At=N=>{const k=document.createElement("span");k.style.visibility="hidden",k.style.position="absolute",k.style.whiteSpace="pre";const se=window.getComputedStyle(N);k.style.font=se.font,k.style.fontSize=se.fontSize,k.style.fontFamily=se.fontFamily,k.style.padding=se.padding,k.style.border=se.border,k.textContent=N.value||N.placeholder||"",document.body.appendChild(k);const de=k.offsetWidth;N.style.width=`${Math.max(de+4,20)}px`,document.body.removeChild(k)},Lt=N=>{d.value[N].isEditing=!1};watch(d,N=>{at()},{deep:!0}),watch(y,N=>{Je(),T.value=!0},{deep:!0});const Dt=()=>{$.value=!$.value,$.value&&nextTick(()=>{var k;const N=C.value.getBoundingClientRect();(k=P.value)==null||k.setPosition(N)})},Mt=()=>{$.value=!1},$t=N=>{var k,se;C.value&&!C.value.contains(N.target)&&P.value&&!P.value.$el.contains(N.target)&&Mt(),(k=o.value)!=null&&k.contains&&((se=r.value)!=null&&se.contains)&&!o.value.contains(N.target)&&!r.value.contains(N.target)&&(R.value=!1)},jt=()=>{window.parent.postMessage({type:"weilin_prompt_ui_openTagManager_prompt"},"*")},Wt=()=>{window.parent.postMessage({type:"weilin_prompt_ui_openLoraManager"},"*")},It=()=>{window.parent.postMessage({type:"weilin_prompt_ui_openHistoryManager"},"*")},ht=ref(!0),ue=()=>{ht.value=!ht.value},le=ref(!1),ve=()=>{le.value=!le.value};ref(null);const Be=()=>{const N=r.value;N&&(N.addEventListener("keyup",ze),N.addEventListener("click",ze),N.addEventListener("input",ze))},ze=()=>{R.value&&Ct()},qe=()=>{if(r.value){const N=r.value.style.height||`${r.value.offsetHeight}px`;localStorage.setItem("weilinPromptTextAreaHeight",N)}},Re=()=>{const N=localStorage.getItem("weilinPromptTextAreaHeight");N&&r.value&&(r.value.style.height=N)};onMounted(()=>{document.addEventListener("click",$t),window.addEventListener("message",Jt),Xt(),Be(),nextTick(()=>{Re()}),setTimeout(()=>{ee.value||(ee.value=document.querySelector(".tokens-container")),ee.value?(ee.value.removeEventListener("mousedown",je),ee.value.removeEventListener("mousemove",dt),ee.value.removeEventListener("mouseup",Ge),ee.value.removeEventListener("mouseleave",Ge),ee.value.addEventListener("mousedown",je),ee.value.addEventListener("mousemove",dt),ee.value.addEventListener("mouseup",Ge),ee.value.addEventListener("mouseleave",Ge),ee.value.style.userSelect="none",ee.value.style.cursor="default",console.log("框选功能事件监听器绑定成功")):console.warn("未能找到tokens-container元素,框选功能可能无法正常工作")},100)}),onBeforeUnmount(()=>{ee.value&&(ee.value.removeEventListener("mousedown",je),ee.value.removeEventListener("mousemove",dt),ee.value.removeEventListener("mouseup",Ge),ee.value.removeEventListener("mouseleave",Ge)),Ot()});const je=N=>{if(N.button===0&&!N.ctrlKey&&!N.metaKey){const k=N.target.closest(".token-item-box, .token-item, .lora-tag-icon, .newline-token, .tab-token, .delete-btn, .weight-control, .bracket-btn, .translate-button, .tag-tips-box, .token-controls"),se=ee.value;if(se&&!k){L.value=!1,q.value=!1,Y.value=!1,ne.value=!1,St(),Ot();const de=se.getBoundingClientRect();Q.value={x:Math.max(N.clientX,de.left),y:Math.max(N.clientY,de.top)},O.value={x:Math.max(N.clientX,de.left),y:Math.max(N.clientY,de.top)},L.value=!0,console.log("记录框选起始位置")}}},dt=N=>{if(L.value&&ee.value&&!q.value&&Math.sqrt(Math.pow(N.clientX-Q.value.x,2)+Math.pow(N.clientY-Q.value.y,2))>3&&(N.preventDefault(),N.stopPropagation(),q.value=!0,A.value=!0,G.value=[],Rt(),console.log("开始实际框选")),q.value&&ee.value){N.preventDefault(),N.stopPropagation();const k=ee.value.getBoundingClientRect();O.value={x:Math.min(Math.max(N.clientX,k.left),k.right),y:Math.min(Math.max(N.clientY,k.top),k.bottom)};const se=5;Math.abs(O.value.x-Q.value.x)100)&&(Y.value=!0,requestAnimationFrame(()=>{Yt(),Y.value=!1}));const de=Date.now();!ne.value&&de-te.value>throttleInterval&&(te.value=de,ne.value=!0,requestAnimationFrame(()=>{ca(),ne.value=!1}))}},Ge=()=>{if(L.value=!1,q.value){const N=G.value.length;q.value=!1,A.value=!1,Y.value=!1,ne.value=!1,Ot(),N>0&&ua()}},Rt=()=>{try{let N=document.getElementById(selectionBoxId);N&&document.body.removeChild(N),N=document.createElement("div"),N.id=selectionBoxId,N.style.cssText=` position: fixed; background-color: rgba(66, 133, 244, 0.4); border: 2px dashed #4285f4; @@ -181,7 +181,7 @@ Two lines of js html automatic translation, page without change, no language con transition: none; opacity: 1; display: block; - `,document.body.appendChild(C),console.log("选择框已创建"),It()}catch(C){console.error("创建选择框失败:",C),Y.value=!1}},It=()=>{try{let C=document.getElementById(selectionBoxId);if(!C&&q.value&&(Je(),C=document.getElementById(selectionBoxId),!C))return;const T=Math.min(Q.value.x,O.value.x),se=Math.min(Q.value.y,O.value.y),de=Math.abs(O.value.x-Q.value.x),Se=Math.abs(O.value.y-Q.value.y),ve=5,we=Math.max(de,ve),ke=Math.max(Se,ve);C&&(C.style.left=`${T}px`,C.style.top=`${se}px`,C.style.width=`${we}px`,C.style.height=`${ke}px`)}catch(C){console.error("更新选择框失败:",C),Y.value=!1}},Rt=()=>{try{const C=document.getElementById(selectionBoxId);C&&document.body.removeChild(C)}catch(C){console.error("移除选择框失败:",C)}},la=()=>{G.value=[];const C=Math.min(Q.value.x,O.value.x),T=Math.min(Q.value.y,O.value.y),se=Math.max(Q.value.x,O.value.x),de=Math.max(Q.value.y,O.value.y);document.querySelectorAll(".token-item-box").forEach((ve,we)=>{if(!ve.querySelector(".token-item, .lora-tag-icon, .newline-token, .tab-token"))return;const Re=ve.getBoundingClientRect();Re.right>=C&&Re.left<=se&&Re.bottom>=T&&Re.top<=de&&G.value.push(we)}),Yt()},Yt=()=>{const C=document.querySelectorAll(".token-item-box"),T=[],se=[];C.forEach((de,Se)=>{G.value.includes(Se)?T.push(de):se.push(de)}),T.forEach(de=>{de.classList.add("token-item-box-selected")}),se.forEach(de=>{de.classList.remove("token-item-box-selected"),de.style.border="",de.style.boxShadow="",de.style.backgroundColor=de.dataset.originalBgColor||""})},ca=()=>{if(G.value.length>0){const C=Math.min(Q.value.x,O.value.x),T=Math.min(Q.value.y,O.value.y),se=Math.max(Q.value.x,O.value.x);Math.max(Q.value.y,O.value.y),ae.value={top:`${T-50}px`,left:`${(C+se)/2}px`},W.value=!0,setTimeout(()=>{document.addEventListener("click",qt)},0)}},ua=()=>{if(G.value.length===0)return;const se=[...G.value].sort((de,Se)=>de-Se).map(de=>d.value[de].text).join(", ");navigator.clipboard.writeText(se).then(()=>{const de=document.createElement("div");de.style.cssText=` + `,document.body.appendChild(N),console.log("选择框已创建"),Yt()}catch(N){console.error("创建选择框失败:",N),Y.value=!1}},Yt=()=>{try{let N=document.getElementById(selectionBoxId);if(!N&&q.value&&(Rt(),N=document.getElementById(selectionBoxId),!N))return;const k=Math.min(Q.value.x,O.value.x),se=Math.min(Q.value.y,O.value.y),de=Math.abs(O.value.x-Q.value.x),ke=Math.abs(O.value.y-Q.value.y),he=5,we=Math.max(de,he),$e=Math.max(ke,he);N&&(N.style.left=`${k}px`,N.style.top=`${se}px`,N.style.width=`${we}px`,N.style.height=`${$e}px`)}catch(N){console.error("更新选择框失败:",N),Y.value=!1}},Ot=()=>{try{const N=document.getElementById(selectionBoxId);N&&document.body.removeChild(N)}catch(N){console.error("移除选择框失败:",N)}},ca=()=>{G.value=[];const N=Math.min(Q.value.x,O.value.x),k=Math.min(Q.value.y,O.value.y),se=Math.max(Q.value.x,O.value.x),de=Math.max(Q.value.y,O.value.y);document.querySelectorAll(".token-item-box").forEach((he,we)=>{if(!he.querySelector(".token-item, .lora-tag-icon, .newline-token, .tab-token"))return;const Ee=he.getBoundingClientRect();Ee.right>=N&&Ee.left<=se&&Ee.bottom>=k&&Ee.top<=de&&G.value.push(we)}),Kt()},Kt=()=>{const N=document.querySelectorAll(".token-item-box"),k=[],se=[];N.forEach((de,ke)=>{G.value.includes(ke)?k.push(de):se.push(de)}),k.forEach(de=>{de.classList.add("token-item-box-selected")}),se.forEach(de=>{de.classList.remove("token-item-box-selected"),de.style.border="",de.style.boxShadow="",de.style.backgroundColor=de.dataset.originalBgColor||""})},ua=()=>{if(G.value.length>0){const N=Math.min(Q.value.x,O.value.x),k=Math.min(Q.value.y,O.value.y),se=Math.max(Q.value.x,O.value.x);Math.max(Q.value.y,O.value.y),ae.value={top:`${k-50}px`,left:`${(N+se)/2}px`},W.value=!0,setTimeout(()=>{document.addEventListener("click",qt)},0)}},da=()=>{if(G.value.length===0)return;const se=[...G.value].sort((de,ke)=>de-ke).map(de=>d.value[de].text).join(", ");navigator.clipboard.writeText(se).then(()=>{const de=document.createElement("div");de.style.cssText=` position: fixed; top: 20px; right: 20px; @@ -190,15 +190,15 @@ Two lines of js html automatic translation, page without change, no language con padding: 10px 15px; border-radius: 4px; z-index: 999999; - `,de.textContent="已复制到剪贴板",document.body.appendChild(de),setTimeout(()=>{document.body.removeChild(de)},2e3)}),wt()},da=()=>{G.value.length!==0&&(G.value.forEach(C=>{d.value[C]&&!d.value[C].isHidden&&(d.value[C].isHidden=!0,d.value[C].hiddenHint=n("promptBox.hiddenHint"))}),ot(),Qe(),wt())},pa=()=>{G.value.length!==0&&(G.value.forEach(C=>{d.value[C]&&d.value[C].isHidden&&(d.value[C].isHidden=!1,d.value[C].hiddenHint="")}),ot(),Qe(),wt())},fa=()=>{G.value.length>0&&(confirm(`确定要删除选中的 ${G.value.length} 个标签吗?`)?ga():Ot())},wt=()=>{W.value=!1,document.removeEventListener("click",qt),Ot()},qt=C=>{const T=document.querySelector(".token-controls");T&&!T.contains(C.target)&&wt()},ga=()=>{if(G.value.length===0)return;[...G.value].sort((T,se)=>se-T).forEach(T=>{d.value.splice(T,1)}),ot(),Qe(),Ot()},Ot=()=>{document.querySelectorAll(".token-item-box-selected").forEach(T=>{T.classList.remove("token-item-box-selected"),T.style.border="",T.style.boxShadow="",T.style.backgroundColor=T.dataset.originalBgColor||""}),G.value=[],W.value&&(W.value=!1,document.removeEventListener("click",qt))},Kt=C=>{if(G.value.length===0)return;const T=C.target.closest(".token-item-box, .token-item, .token-controls, .delete-btn, .weight-control, .bracket-btn, .translate-button, .tag-tips-box"),se=ee.value;(C.target===r.value||!T&&(!se||!se.contains(C.target)))&&Ot()};onMounted(()=>{document.addEventListener("click",Kt)}),onUnmounted(()=>{document.removeEventListener("click",Lt),document.removeEventListener("click",Kt),gt.value&&clearTimeout(gt.value),window.removeEventListener("message",Qt);const C=r.value;C&&(C.removeEventListener("keyup",Ce),C.removeEventListener("click",Ce),C.removeEventListener("input",Ce)),ee.value&&(ee.value.removeEventListener("mousedown",De),ee.value.removeEventListener("mousemove",ze),ee.value.removeEventListener("mouseup",at),ee.value.removeEventListener("mouseleave",at)),Rt()});const Qt=C=>{if(C.data.type==="weilin_prompt_ui_insertTag"){const T=u.value,se=C.data.tagText;T===""?u.value=se:(T.endsWith(" "),u.value=T+", "+se+","),Z.value=u.value,Xe()}else if(C.data.type==="weilin_prompt_ui_user_history_tag"){const T=C.data.tagText;it.value=T,na(T)}else if(C.data.type!=="weilin_prompt_ui_refresh_all_data"){if(C.data.type==="weilin_prompt_ui_translate_setting")Jt();else if(C.data.type==="weilin_prompt_ui_selectLora"){if(C.data.lora.loraWorks!=null&&C.data.lora.loraWorks.length>0){const T=u.value,se=C.data.lora.loraWorks;T===""?u.value=se:(T.endsWith(" "),u.value=T+", "+se+","),Z.value=u.value,Xe()}}else if(C.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id_go_random_response")Aa(C.data.data);else if(C.data.type==="weilin_prompt_ui_addLoraTag_inner")if(C.data.lora.loraWorks!=null&&C.data.lora.loraWorks.length>0){const T=u.value,se=C.data.lora.tag+(C.data.lora.loraWorks===""?"":", "+C.data.lora.loraWorks);T===""?u.value=se:(T.endsWith(" "),u.value=T+", "+se+","),Z.value=u.value,Xe()}else{const T=u.value,se=C.data.lora.tag;T===""?u.value=se:(T.endsWith(" "),u.value=T+", "+se+","),Z.value=u.value,Xe()}}},Jt=async()=>{const C=localStorage.getItem("weilin_prompt_ui_sourceLanguage")||"english",T=localStorage.getItem("weilin_prompt_ui_targetLanguage")||"chinese_simplified";localStorage.getItem("weilin_prompt_ui_sourceLanguage")||localStorage.setItem("weilin_prompt_ui_sourceLanguage",C),localStorage.getItem("weilin_prompt_ui_targetLanguage")||localStorage.setItem("weilin_prompt_ui_targetLanguage",T),C!=="auto"&&translate.language.setLocal(C),translate.language.setDefaultTo(T),await nextTick()},ma=(C,T)=>{if(localStorage.getItem("weilin_prompt_ui_translater_setting")=="network")translate.request.translateText(C,function(se){if(se.result>0){const de=se.text.map(Se=>Se.replace(/[\[\]“”]/g,"")).join(", ");T.translate=de}});else{let se={index:T.id,text:T.text,translate:""};const de=JSON.stringify(se);translatorApi.translaterText(de,"").then(Se=>{if(Se&&Se.data){const ve=JSON.parse(Se.data);T.translate=ve.translate}})}},Xt=()=>{if(localStorage.getItem("weilin_prompt_ui_translater_setting")=="network"){var C={from:translate.language.recognition(V.value).languageName,to:"english",texts:[V.value]};translate.request.translateText(C,function(se){if(se.result>0){const de=se.text.map(Se=>Se.replace(/[\[\]“”]/g,"")).join(", ");d.value.push({text:de,translate:V.value,isPunctuation:!1,isEditing:!1,isHidden:!1,color:""}),V.value="",ot()}})}else{let T={text:V.value,translate:""};const se=JSON.stringify(T);translatorApi.translaterInputText(se,"").then(de=>{if(de&&de.data){const Se=JSON.parse(de.data);d.value.push({text:Se.translate,translate:V.value,isPunctuation:!1,isEditing:!1,isHidden:!1,color:""}),V.value="",ot()}})}},ha=()=>{setTimeout(()=>{R.value||(Z.value=u.value,Xe())},100)},Zt=C=>{let T=C.replace(/[\[\]{}]/g,"").trim();const de=Tt(T).trim();if(!de){R.value=!1;return}if(de.length>20){R.value=!1;return}try{const Se=de.toLowerCase();autocompleteApi.getAutocomplete(String(Se)).then(async ve=>{F.value=ve.data,await xt(),setTimeout(()=>{fe.value=localStorage.getItem("weilin_prompt_ui_auto_box_width")||450,oe.value=localStorage.getItem("weilin_prompt_ui_auto_box_height")||350,R.value=F.value.length>0,H.value=0},50)})}catch(Se){console.error("Autocomplete error:",Se),R.value=!1}},va=C=>{R.value&&(C.key==="ArrowDown"?(C.preventDefault(),H.value=Math.min(H.value+1,F.value.length-1),ea()):C.key==="ArrowUp"?(C.preventDefault(),H.value=Math.max(H.value-1,0),ea()):C.key==="Tab"||C.key==="Enter"?(C.preventDefault(),ta(H.value,null)):C.key==="Escape"&&(C.preventDefault(),aa()))},ea=()=>{nextTick(()=>{if(j.value&&o.value){const C=o.value,T=j.value,se=C.getBoundingClientRect(),de=T.getBoundingClientRect(),Se=de.topse.bottom;Se?C.scrollTop=C.scrollTop+(de.top-se.top):ve&&(C.scrollTop=C.scrollTop+(de.bottom-se.bottom))}})},_a=computed(()=>{if(!f.value)return{left:s.value.left};const C=f.value.offsetWidth;fe.value=localStorage.getItem("weilin_prompt_ui_auto_box_width")||450;const T=fe.value;let se=s.value.left;return se+T>C&&(se=C-T),se<0&&(se=0),{left:se}}),ta=(C,T)=>{if(T&&(T.preventDefault(),T.stopPropagation()),!F.value[C])return;R.value=!1;const se=r.value.selectionStart,de=r.value.selectionEnd,Se=u.value;let ve=F.value[C].text;localStorage.getItem("weilin_prompt_ui_comma_conversion")!=="false"&&(ve=ve.replace(/,/g,",")),localStorage.getItem("weilin_prompt_ui_period_conversion")!=="false"&&(ve=ve.replace(/。/g,".")),localStorage.getItem("weilin_prompt_ui_bracket_conversion")!=="false"&&(ve=ve.replace(/【/g,"[").replace(/】/g,"]").replace(/(/g,"(").replace(/)/g,")")),localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")!=="false"&&(ve=ve.replace(/《/g,"<").replace(/》/g,">")),localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")==="true"&&(ve=ve.replace(/_/g," ")),localStorage.getItem("weilin_prompt_ui_bracket_escape")==="true"&&(ve=ve.replace(/\(([^)]+)\)/g,"\\($1\\)"));let we=se,ke=de;for(;we>0&&!/[,\s]/.test(Se[we-1]);)we--;for(;!1;)ke++;let Re=Se.substring(0,we)+ve+Se.substring(ke);Se[ke]&&!/[\,\s]/.test(Se[ke])&&(Re=Se.substring(0,we)+ve+", "+Se.substring(ke));const Pe=Se[ke]&&!/[\,\s]/.test(Se[ke]),He=we+ve.length+(Pe?2:0);u.value=Re,Z.value=Re,Xe(),nextTick(()=>{r.value&&(r.value.selectionStart=He,r.value.selectionEnd=He)})},aa=()=>{R.value=!1},na=C=>{if(C.length>0)try{const T=JSON.parse(C);if(u.value=T.prompt,Z.value=u.value,T.lora&&T.lora!=""&&(y.value=T.lora),T.temp_prompt&&T.temp_prompt!=""){const se=T.temp_prompt;let de=!1;se.tokens&&se.tokens.length>0&&se.tokens!=""&&(d.value=se.tokens,de=!0),se.lora&&se.lora.length>0&&se.lora!=""&&(y.value=se.lora,de=!0),!de&&se.length>0&&se!=""&&(d.value=se)}if(T.temp_lora&&T.temp_lora.length>0&&T.temp_lora!=""){const se=T.temp_lora;y.value=se}Xe()}catch{message$1({type:"warn",str:"promptBox.settings.errorPrompt"})}},Pt=ref(!1),$t=ref(null),nt=ref([]);let _t=null,lt=null;const ya=(C,T=!1)=>{Pt.value=!0,$t.value=null,nt.value=[],T&&G.value.length>1&&G.value.includes(C)?nt.value=[...G.value].sort((se,de)=>se-de):(G.value=[],$t.value=C),lt={originalTokens:[...d.value],draggedItems:nt.value.length>0?nt.value.map(se=>d.value[se]):[d.value[C]]}},ba=(C,T)=>{if(A.value){T.preventDefault();return}ya(C,!0),T.dataTransfer.effectAllowed="move"},wa=(C,T,se)=>{const de=T.filter(we=>we{if(!lt)return;const T=[...lt.originalTokens],se=nt.value.length>0?nt.value:[$t.value],de=se.map(ve=>lt.originalTokens[ve]);for(let ve=se.length-1;ve>=0;ve--){const we=se[ve];we{T.splice(Se+we,0,ve)}),d.value=T,ot(),nt.value.length>0&&G.value.length>0){const ve=[];for(let we=0;weRe.text===ke.text)&&ve.push(we)}G.value=ve,setTimeout(()=>{Yt()},0)}},$a=(C,T)=>{if(A.value){T.preventDefault();return}T.preventDefault(),Pt.value&&(C<0||C>=d.value.length||nt.value.length>0&&nt.value.includes(C)||nt.value.length===0&&$t.value===C||(_t&&clearTimeout(_t),_t=setTimeout(()=>{oa(C)},dragUpdateDelay)))},Sa=(C,T)=>{T.preventDefault(),_t&&(clearTimeout(_t),_t=null),Pt.value&<&&oa(C),Pt.value=!1,$t.value=null,nt.value=[],lt=null},ot=()=>{u.value=d.value.length>0?d.value.reduce((C,T,se)=>{var Re,Pe;if(T.isHidden)return C;if(T.text===` -`){const He=yt(se);return He!==-1&&d.value[He],C+T.text}if(C===""){let He=se+1;for(;He=d.value.length,Ge=He=d.value.length,ve=de{window.parent.postMessage({type:"weilin_prompt_ui_openAiWindow"},"*")},Ta=()=>{window.open("https://github.com/weilin9999/WeiLin-Comfyui-Tools","_blank")},xa=()=>{window.parent.postMessage({type:"weilin_prompt_ui_open_cloud_window"},"*")},Ca=()=>{window.parent.postMessage({type:"weilin_prompt_ui_open_danbooru_manager_window"},"*")},Na=()=>{window.open("https://afdian.com/a/weilin9999","_blank")},yt=C=>{for(let T=C-1;T>=0;T--)if(!d.value[T].isHidden)return T;return-1},Ba=C=>{if(C>=0&&C{window.open("https://www.bilibili.com/list/288025756/?sid=4690314&spm_id_from=333.1387.0.0&oid=114342431298474&bvid=BV1txdfYxE7X","_blank")},Va=async()=>{if(c.promptManager=="prompt_global")try{await randomTagApi.goRandomTemplate().then(C=>{C.code===200?(u.value=C.random_tags,nextTick(()=>{Xe()})):message$1({type:"warn",str:C.info})}).catch(C=>{console.error(C),message$1({type:"warn",str:"message.networkError"})})}catch(C){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",C)}else window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id_gorandom"},"*")},Aa=async C=>{try{await randomTagApi.goRandomTemplatePath(C).then(T=>{T.code===200?(u.value=T.random_tags,nextTick(()=>{Xe()})):message$1({type:"warn",str:T.info})}).catch(T=>{console.error(T),message$1({type:"warn",str:"message.networkError"})})}catch(T){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",T)}},Gt=ref(null),Da=C=>{Gt.value&&Gt.value.open(C.text,C.translate)},La=()=>{a.value.open(c.promptManager)};return t({setPromptText:na}),(C,T)=>{var se,de,Se;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$a,[createVNode(Transition,{name:"weilin-fade"},{default:withCtx(()=>[ue.value?(openBlock(),createElementBlock("div",_hoisted_2$9,"已更新标签")):createCommentVNode("",!0)]),_:1}),c.promptManager==="prompt"?(openBlock(),createBlock(LoraStack,{key:0,"is-open":E.value,"selected-loras":y.value,onClose:X},null,8,["is-open","selected-loras"])):createCommentVNode("",!0),K.value?(openBlock(),createBlock(MainLabelManager,{key:1,ref_key:"mainLabelManagerRef",ref:ie,"selected-id":pe.value,onSelect:_e},null,8,["selected-id"])):createCommentVNode("",!0),createBaseVNode("div",{class:normalizeClass(`${prefix$2}main-content`),style:normalizeStyle({width:M.value})},[createBaseVNode("div",_hoisted_3$9,[createBaseVNode("div",_hoisted_4$8,[createBaseVNode("button",{class:"tag-manager-btn",onClick:x,title:K.value?"收起标签栏":"展开标签栏"},[(openBlock(),createElementBlock("svg",{class:normalizeClass(["weilin-comfyui-sidebar-toggle-icon",{"is-closed":!K.value}]),xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},T[16]||(T[16]=[createBaseVNode("path",{fill:"currentColor",d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"},null,-1)]),2)),createBaseVNode("span",_hoisted_6$7,toDisplayString$1(K.value?"收起标签栏":"展开标签栏"),1)],8,_hoisted_5$7)]),createBaseVNode("div",_hoisted_7$7,[createBaseVNode("button",{class:"language-switch-btn",onClick:withModifiers(Ht,["stop"]),ref_key:"langBtnRef",ref:N,title:unref(n)("controls.language")},[T[17]||(T[17]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"translate-icon"},[createBaseVNode("path",{d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})],-1)),createBaseVNode("span",_hoisted_9$7,toDisplayString$1(unref(n)("controls.language")),1)],8,_hoisted_8$7),createVNode(Transition,{name:"fade"},{default:withCtx(()=>[$.value?(openBlock(),createBlock(LanguageSwitcher,{key:0,ref_key:"languageSwitcherRef",ref:P,onClose:bt},null,512)):createCommentVNode("",!0)]),_:1})]),createBaseVNode("div",_hoisted_10$6,[createVNode(ThemeSwitch,{title:unref(n)("controls.switchTheme")},{default:withCtx(({isDark:ve})=>[createBaseVNode("span",_hoisted_11$6,toDisplayString$1(unref(n)(ve?"controls.darkMode":"controls.lightMode")),1)]),_:1},8,["title"])]),createBaseVNode("div",_hoisted_12$6,[createBaseVNode("button",{class:"settings-btn",onClick:Ne,title:unref(n)("controls.settings")},[T[18]||(T[18]=createBaseVNode("svg",{class:"settings-icon",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.07.62-.07.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"})],-1)),createBaseVNode("span",_hoisted_14$5,toDisplayString$1(unref(n)("controls.settings")),1)],8,_hoisted_13$5)]),createBaseVNode("div",_hoisted_15$5,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Mt,title:unref(n)("controls.tagManager")},[T[19]||(T[19]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",_hoisted_17$5,toDisplayString$1(unref(n)("controls.tagManager")),1)],8,_hoisted_16$5)]),createBaseVNode("div",_hoisted_18$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Ca,title:unref(n)("controls.danbooruManager")},[T[20]||(T[20]=createBaseVNode("svg",{class:"tag-icon",viewBox:"0 0 24 24",width:"24",height:"24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",_hoisted_20$3,toDisplayString$1(unref(n)("controls.danbooruManager")),1)],8,_hoisted_19$3)]),c.hasPromptLoraStack?(openBlock(),createElementBlock("div",_hoisted_21$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:I,title:unref(n)("controls.loraStack")},[T[21]||(T[21]=createBaseVNode("svg",{sxmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M902.5 485.1c-59-17.5-113.8-3.4-155 27.7V365.1c0-45.2-36.9-82.1-82.1-82.1H511.2c31.1-41.2 45.2-96 27.7-155C522.2 71.6 475 26.1 418 12 303.4-16.5 200.9 69.4 200.9 179.3c0 39.1 13.5 74.7 35.3 103.7H82.1C36.9 283 0 319.9 0 365.1v113.1c0 25.5 27.9 38.8 49.5 25.3 38.8-24.3 87.8-33.6 139.4-19.5 57 15.6 103.4 62.5 118.4 119.7 30.1 115.5-56.2 219.4-166.8 219.4-33.5 0-64.7-9.6-91.1-26.2C27.8 783.4 0 796.8 0 822.2v113.2c0 45.2 36.9 82.1 82.1 82.1h583.3c45.2 0 82.1-36.9 82.1-82.1V787.7c29 21.9 64.6 35.3 103.7 35.3 109.9 0 195.8-102.5 167.3-217.1-14.1-56.9-59.7-104.1-116-120.8z"})],-1)),createBaseVNode("span",_hoisted_23$3,toDisplayString$1(unref(n)("controls.loraStack")),1)],8,_hoisted_22$3)])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_24$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:zt,title:unref(n)("controls.loraManager")},[T[22]||(T[22]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M129 128h350v80H209v224h270v80H129V128zM129 895V576h768v319H129z m80-239v159h608V656H209zM730 356c19.882 0 36-16.118 36-36s-16.118-36-36-36-36 16.118-36 36 16.118 36 36 36z"}),createBaseVNode("path",{d:"M578.517 214.386a32.002 32.002 0 0 0-16.01 27.731l0.058 155.918a31.998 31.998 0 0 0 16 27.701l135.156 78.033a32.002 32.002 0 0 0 31.99 0.006l135.058-77.909a32.002 32.002 0 0 0 16.01-27.731l-0.058-155.918a32 32 0 0 0-16-27.701l-135.157-78.033a31.998 31.998 0 0 0-31.989-0.005l-135.058 77.908z m67.002 58.058l84.033-48.591 84.181 48.715 0.034 95.24-84.034 48.591-84.18-48.714-0.034-95.241z"})],-1)),createBaseVNode("span",_hoisted_26$3,toDisplayString$1(unref(n)("controls.loraManager")),1)],8,_hoisted_25$3)]),createBaseVNode("div",_hoisted_27$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:jt,title:unref(n)("controls.history")},[T[23]||(T[23]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M653.7 85.83c-235.05 0-426.29 191.25-426.29 426.3s191.24 426.3 426.29 426.3c235.06 0 426.3-191.25 426.3-426.3S888.76 85.83 653.7 85.83z m0 779.98c-195.01 0-353.67-158.65-353.67-353.68S458.69 158.45 653.7 158.45c195.02 0 353.68 158.65 353.68 353.68S848.72 865.81 653.7 865.81z"}),createBaseVNode("path",{d:"M866.78 634.19L695.93 533.61V302.59c0-20.06-16.26-36.31-36.31-36.31s-36.31 16.26-36.31 36.31v253.66c0 17.06 11.8 31.26 27.66 35.16l178.98 105.36c17.28 10.17 39.54 4.41 49.71-12.87 10.17-17.28 4.4-39.54-12.88-49.71zM44.76 324.51h186.42c20.05 0 36.31-16.26 36.31-36.31s-16.26-36.31-36.31-36.31H44.76c-20.05 0-36.31 16.26-36.31 36.31s16.26 36.31 36.31 36.31zM231.18 703.25H44.76c-20.05 0-36.31 16.26-36.31 36.31s16.26 36.31 36.31 36.31h186.42c20.05 0 36.31-16.26 36.31-36.31s-16.25-36.31-36.31-36.31zM36.31 550.19h118.8c20.05 0 36.31-16.26 36.31-36.31s-16.26-36.31-36.31-36.31H36.31c-20.05 0-36.31 16.26-36.31 36.31 0 20.06 16.26 36.31 36.31 36.31z"})],-1)),createBaseVNode("span",_hoisted_29$3,toDisplayString$1(unref(n)("controls.history")),1)],8,_hoisted_28$3)]),createBaseVNode("div",_hoisted_30$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:ka,title:unref(n)("controls.aiChat")},[T[24]||(T[24]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"}),createBaseVNode("path",{d:"M6 14h12v2H6zm0-3h12v2H6zm0-3h12v2H6z"})],-1)),createBaseVNode("span",_hoisted_32$3,toDisplayString$1(unref(n)("controls.aiChat")),1)],8,_hoisted_31$3)]),createBaseVNode("div",_hoisted_33$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Ta,title:unref(n)("controls.github")},[T[25]||(T[25]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})],-1)),createBaseVNode("span",_hoisted_35$3,toDisplayString$1(unref(n)("controls.github")),1)],8,_hoisted_34$3)]),createBaseVNode("div",_hoisted_36$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:xa,title:unref(n)("controls.shareCloudData")},[T[26]||(T[26]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"})],-1)),createBaseVNode("span",_hoisted_38$2,toDisplayString$1(unref(n)("controls.shareCloudData")),1)],8,_hoisted_37$2)]),createBaseVNode("div",_hoisted_39$2,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Ea,title:unref(n)("controls.tutorialVideo")},[T[27]||(T[27]=createBaseVNode("svg",{t:"1745234292993",class:"tag-icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1496",width:"128",height:"128"},[createBaseVNode("path",{d:"M204.288 63.488c-8.704 8.192-16.896 20.48-18.944 26.624-3.584 11.776 12.8 62.464 20.48 62.464S235.52 176.128 235.52 184.32c0 16.384-17.92 26.112-47.104 26.112-34.816 0-104.448 27.648-128.512 51.2-9.216 8.704-26.112 33.792-37.888 56.32L0 358.4v469.504l21.504 40.448c24.576 47.616 35.84 59.392 82.944 84.992l40.96 22.528h722.944l40.96-19.968c51.712-24.576 72.704-45.056 95.744-94.72l17.92-38.4v-231.424l0.512-231.424-17.92-36.352c-9.216-20.48-28.16-47.104-42.496-59.904-31.232-30.208-86.528-54.272-122.368-54.272-54.272 0-65.024-22.528-26.624-57.856 20.48-18.432 23.04-25.088 23.04-45.568 0-19.968-3.584-28.16-16.896-41.984-9.216-9.216-22.528-16.896-29.696-16.896-11.776 0-34.304 9.216-40.448 16.896-1.536 1.536-35.84 35.328-75.776 74.24l-73.216 71.168-83.456-0.512c-45.568 0-88.064-2.56-93.696-4.608-5.632-2.56-38.4-31.232-72.704-65.024C249.856 40.448 235.008 32.256 204.288 63.488z m652.8 262.656c5.12 0.512 19.968 9.216 31.744 20.48l21.504 19.968 1.536 217.088c1.024 197.12 0.512 218.112-8.704 236.032-14.336 27.136-34.816 40.448-65.536 41.984-14.336 0.512-173.568 0.512-353.28 0l-326.144-1.536-45.056-45.056V373.248l20.992-22.528c15.872-17.92 25.6-23.552 41.984-25.088 16.384-1.024 634.88-0.512 680.96 0.512z","p-id":"1497"}),createBaseVNode("path",{d:"M279.04 502.272c-20.48 22.016-20.992 25.088-20.992 66.56 0 39.936 1.024 44.544 17.92 64 29.184 33.28 55.808 32.256 84.48-2.56 11.264-12.8 12.8-22.016 13.312-64 0-47.104-0.512-48.64-19.968-68.096-27.136-27.648-47.616-26.112-74.752 4.096z m393.216-3.584c-18.944 18.944-19.968 20.992-19.968 69.12 0 47.616 0.512 49.664 18.432 67.072 24.576 23.552 35.84 26.624 58.368 13.824 29.184-16.896 39.936-43.52 36.864-90.624-2.56-35.328-4.608-41.984-22.016-59.904-25.088-25.6-45.568-25.6-71.68 0.512z","p-id":"1498"})],-1)),createBaseVNode("span",_hoisted_41$2,toDisplayString$1(unref(n)("controls.tutorialVideo")),1)],8,_hoisted_40$2)]),createBaseVNode("div",_hoisted_42$2,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Na,title:unref(n)("controls.sponsor")},[T[28]||(T[28]=createBaseVNode("svg",{t:"1745823985128",class:"tag-icon",viewBox:"0 0 1322 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24"},[createBaseVNode("path",{d:"M495.899049 634.906371c-17.304811 0-31.251971 13.947161-31.251971 31.251971S478.594238 697.410314 495.899049 697.410314c17.304811 0 31.251971-13.947161 31.251971-31.251972 0-17.304811-13.947161-31.251971-31.251971-31.251971zM790.855671 728.662285c-17.304811 0-31.251971 13.947161-31.251972 31.251971s13.947161 31.251971 31.251972 31.251972 31.251971-13.947161 31.251971-31.251972c0-17.04653-13.947161-30.993691-31.251971-31.251971z"}),createBaseVNode("path",{d:"M1262.99289 719.622459c-13.430599-8.264984-28.927445-13.430599-44.68257-14.980284 34.867902-84.974368 57.080047-196.293374-18.596215-306.837537-115.193217-168.657333-280.75118-256.73107-491.766556-260.863562-60.179416-1.291404-130.948343 1.549685-205.849762 4.649054-87.040614 3.35765-203.008673 8.006703-281.526023 1.549684 15.755126-8.523265 32.543375-16.788249 47.007098-23.761829 55.530362-27.119479 98.921529-48.04022 84.457807-85.232649-7.748423-21.695583-30.218848-33.059937-67.411277-34.09306C206.624604-1.755689 37.967271 43.443443 7.748423 119.636265c-17.04653 42.874605-19.887618 125.524447 152.902206 198.876182 71.027208 30.218848 271.969635 66.894715 349.453861 74.643138 17.563091 1.549685 34.867902 5.165615 51.397871 11.364353-17.821372 11.622634-35.901025 24.02011-54.238959 36.417586-31.768533-18.079653-83.941245-39.516955-122.683358-13.172318-14.463722 9.298107-23.503549 25.053233-24.02011 42.358044-0.516562 21.179022 12.397476 42.099763 26.861198 58.629731-57.080047 45.715694-103.312302 89.881703-119.84227 123.974762-18.337934 41.841482-25.828075 110.544163 8.523265 177.438879 43.391167 84.974368 138.955046 144.120661 284.625391 176.147474 190.352916 41.583202 354.619476 4.132492 463.355674-53.205835 60.437697-32.026814 103.570583-69.994085 124.233043-103.828864 6.457019 2.066246 12.914038 4.132492 19.629338 6.198738 9.298107 2.841088 18.596214 5.682177 27.37776 8.781546 28.669164 10.072949 60.695977 8.523265 85.232649-3.61593l1.291403-0.774843c17.821372-9.039826 31.510252-25.053233 37.708991-44.166009 15.238565-51.139589-29.444006-79.033911-56.563486-96.08044z m-811.776412-239.684541l-17.30481 12.655757c-5.165615-5.165615-9.814669-11.106072-13.430599-17.563091 6.7153-2.066246 18.337934 0.258281 30.735409 4.907334zM1262.99289 798.139808c-1.291404 3.874211-4.132492 6.97358-9.298107 9.814669-10.33123 5.165615-25.569795 5.423896-39.258675 0.774842-9.298107-3.35765-19.371057-6.457019-29.444006-9.556388-18.596214-5.682177-49.848186-15.238565-55.788643-22.470426-9.814669-12.914038-28.152602-15.755126-41.32492-5.940457s-15.755126 28.152602-5.940458 41.324921c3.615931 4.390773 7.490142 8.264984 12.139196 11.622634-44.940851 62.245662-242.267348 186.220424-521.468844 125.007885-125.782728-27.636041-210.498815-77.742507-244.850155-145.412065-24.794952-48.815063-19.112776-98.921529-7.231861-126.299289 34.09306-71.027208 280.75118-234.518925 438.30244-327.241716 13.947161-8.264984 18.596214-26.344637 10.33123-40.291798s-27.119479-19.629337-40.291797-10.33123c-12.655757 7.490142-55.788643 33.059937-111.060725 68.186119-18.596214-12.655757-50.881309-27.894322-102.537459-33.059936-81.874999-8.264984-270.936512-44.42429-332.149051-70.252366C139.471608 245.418993 40.033517 196.34565 61.987381 141.073568c5.165615-12.914038 29.185725-33.576498 81.100157-53.464116 35.384463-13.430599 72.318611-22.470426 109.769321-27.119479l-11.622634 5.682176c-35.384463 17.304811-73.868296 36.417586-99.954652 59.146293-1.807965-1.033123-3.615931-2.324527-5.165615-3.874211-10.847792-11.622634-29.185725-12.397476-41.06664-1.291404l-0.516562 0.516561c-11.880915 11.106072-12.139195 29.702287-1.033123 41.583202 10.589511 11.106072 26.086356 19.371057 45.715694 25.569795 0.774842 0.258281 1.291404 0.516562 2.066246 0.774842 68.702681 21.179022 190.611197 18.596214 362.367899 11.622634 74.126577-2.841088 144.120661-5.682177 202.492111-4.649054 193.710566 3.874211 339.122631 80.841876 444.75946 235.552049 64.828469 95.047318 41.583202 188.544951 4.390773 269.903388-4.649054-3.615931-9.039826-7.748423-12.655757-12.139195-10.33123-12.397476-28.669164-14.463722-41.324921-4.649054-12.655757 10.072949-14.722003 28.669164-4.649054 41.324921 5.940457 7.490142 36.675867 42.874605 74.643138 39.775236h2.066246c1.291404-0.258281 2.324527 0 3.615931-0.258281 25.828075-4.649054 42.358044-3.615931 57.596608 6.198738 20.40418 12.914038 30.218848 20.40418 28.410883 26.861199z"})],-1)),createBaseVNode("span",_hoisted_44$1,toDisplayString$1(unref(n)("controls.sponsor")),1)],8,_hoisted_43$2)]),createVNode(SettingDialog,{ref_key:"settingDialog",ref:w},null,512),createBaseVNode("div",_hoisted_45$1,[createBaseVNode("button",{class:normalizeClass(["update-label-btn",{"is-dirty":k.value}]),disabled:!pe.value||!k.value,onClick:J}," 更新标签 ",10,_hoisted_46$1)])]),createBaseVNode("div",{style:{position:"relative"},ref_key:"parentCneterBox",ref:f},[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":T[0]||(T[0]=ve=>u.value=ve),class:"input-area",onInput:ct,placeholder:unref(n)("promptBox.placeholder"),onKeydown:va,onBlur:ha,rows:"6",ref_key:"inputAreaRef",ref:r,onMouseup:je,onResize:je},null,40,_hoisted_47),[[vModelText,u.value]]),createBaseVNode("div",_hoisted_48,toDisplayString$1(l.value)+" tokens ",1),createBaseVNode("div",{class:"autocomplete-container",ref_key:"autocompleteContainerRef",ref:o,style:normalizeStyle({top:`${s.value.top}px`,left:`${_a.value.left}px`,display:R.value?"block":"none",width:`${fe.value}px`,maxHeight:`${oe.value}px`})},[createBaseVNode("button",{class:"close-autocomplete-btn",onClick:withModifiers(aa,["stop"])},"×"),(openBlock(!0),createElementBlock(Fragment,null,renderList(F.value,(ve,we)=>(openBlock(),createElementBlock("div",{key:we,class:normalizeClass(["autocomplete-item",{selected:we===H.value}]),onClick:withModifiers(ke=>ta(we,ke),["stop"]),ref_for:!0,ref:ke=>{ke&&we===H.value&&(j.value=ke)}},[createBaseVNode("span",_hoisted_50,toDisplayString$1(ve.text),1),createBaseVNode("span",_hoisted_51,toDisplayString$1(ve.desc),1)],10,_hoisted_49))),128))],4)],512),createBaseVNode("div",_hoisted_52,[createBaseVNode("div",_hoisted_53,[withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":T[1]||(T[1]=ve=>V.value=ve),class:"prompt-input-translate-area-textarea",onKeyup:T[2]||(T[2]=withKeys(ve=>Xt(),["enter"])),placeholder:unref(n)("promptBox.translatePlaceholder")},null,40,_hoisted_54),[[vModelText,V.value]]),createBaseVNode("button",{class:"translate-btn",style:{"margin-left":"8px"},onClick:T[3]||(T[3]=ve=>Xt())}," 翻译 ")]),createBaseVNode("button",{class:"translate-btn",onClick:Ft,title:unref(n)("promptBox.oneClickTranslate")},[T[29]||(T[29]=createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"token-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M677.676657 294.6142c19.165116 57.5433 44.715939 102.2992 89.431879 147.0551 38.322239-38.3622 63.873063-89.5118 83.038178-147.0551h-172.470057z m-421.56861 319.685h166.076358l-83.038179-223.7795-83.038179 223.7795z","p-id":"2419"}),createBaseVNode("path",{d:"M894.854661 0.504H128.353929C58.095158 0.504 0.607803 58.0473 0.607803 128.378v767.244c0 70.3307 57.487355 127.874 127.746126 127.874h766.500733c70.258771 0 127.746126-57.5433 127.746126-127.874V128.378c0-70.3307-51.101647-127.874-127.746126-127.874zM581.867062 825.2913c-12.771416 12.7874-25.550824 12.7874-38.322239 12.7874-6.3937 0-19.165116 0-25.550824-6.3937-6.3937-6.3937-12.779408 0-12.779408-6.3937s-6.385708-12.7874-12.771415-25.5748c-6.3937-12.7874-6.3937-19.1811-12.779408-31.9685l-25.542832-70.3307H230.557224L205.0064 767.748c-12.771416 25.5748-19.165116 44.7559-25.550824 57.5433-6.3937 12.7874-19.165116 12.7874-38.322239 12.7874-12.779408 0-25.550824-6.3937-38.330231-12.7874-12.771416-12.7874-19.157124-19.1811-19.157124-31.9685 0-6.3937 0-12.7874 6.385708-25.5748 6.3937-12.7874 6.3937-19.1811 12.771416-31.9685l140.525533-358.0472c6.3937-12.7874 6.3937-25.5748 12.779408-38.3622 6.385708-12.7874 12.771416-25.5748 19.157124-31.9685 6.3937-6.3937 12.779408-19.1811 25.550823-25.5748 12.779408-6.3937 25.550824-6.3937 38.330232-6.3937 12.771416 0 25.542832 0 38.322239 6.3937 12.771416 6.3937 19.165116 12.7874 25.550824 25.5748 6.385708 6.3937 12.771416 19.1811 19.157124 31.9685 6.3937 12.7874 12.779408 25.5748 19.165115 44.7559l140.525534 351.6535c12.771416 25.5748 19.165116 44.7559 19.165116 57.5433-6.3937 6.3937-12.779408 19.1811-19.165116 31.9685zM933.176901 575.937c-70.258771-25.5748-121.360418-57.5433-166.076358-95.9055-44.707947 44.7559-102.195302 76.7244-172.462065 95.9055l-19.157124-31.9685c70.258771-19.1811 127.746126-44.7559 172.462066-89.5118C703.22748 409.7008 664.905241 352.1575 652.125833 288.2205h-63.873063v-25.5748h172.470058c-12.7874-19.1811-25.558816-44.7559-38.330232-63.937l19.157124-6.3937c12.779408 19.1811 31.944524 44.7559 44.715939 70.3307h159.682658v31.9685h-63.873063c-19.157124 63.937-51.093655 121.4803-89.423887 159.8425 44.715939 38.3622 95.809594 70.3307 166.076358 89.5118l-25.550824 31.9685z","p-id":"2420"})],-1)),createBaseVNode("span",_hoisted_56,toDisplayString$1(unref(n)("promptBox.oneClickTranslate")),1)],8,_hoisted_55),createBaseVNode("button",{class:"translate-btn random-tag-settings-btn",onClick:La,title:unref(n)("promptBox.randomTagSettings")},[T[30]||(T[30]=createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"utils-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M512 409.6c-56.32 0-102.4 46.08-102.4 102.4s46.08 102.4 102.4 102.4 102.4-46.08 102.4-102.4-46.08-102.4-102.4-102.4z m0 153.6c-28.16 0-51.2-23.04-51.2-51.2s23.04-51.2 51.2-51.2 51.2 23.04 51.2 51.2-23.04 51.2-51.2 51.2z"}),createBaseVNode("path",{d:"M512 204.8c-25.6 0-51.2 2.56-76.8 7.68l-15.36-61.44c-2.56-10.24-10.24-17.92-20.48-20.48-10.24-2.56-20.48 0-28.16 7.68l-76.8 76.8c-5.12 5.12-7.68 12.8-7.68 20.48s2.56 15.36 7.68 20.48l76.8 76.8c5.12 5.12 12.8 7.68 20.48 7.68 2.56 0 5.12 0 7.68-2.56 10.24-2.56 17.92-10.24 20.48-20.48l15.36-61.44c25.6-5.12 51.2-7.68 76.8-7.68 140.8 0 256 115.2 256 256s-115.2 256-256 256-256-115.2-256-256c0-25.6 2.56-51.2 7.68-76.8l61.44-15.36c10.24-2.56 17.92-10.24 20.48-20.48 2.56-10.24 0-20.48-7.68-28.16l-76.8-76.8c-5.12-5.12-12.8-7.68-20.48-7.68s-15.36 2.56-20.48 7.68l-76.8 76.8c-7.68 7.68-10.24 17.92-7.68 28.16 2.56 10.24 10.24 17.92 20.48 20.48l61.44 15.36c-5.12 25.6-7.68 51.2-7.68 76.8 0 168.96 138.24 307.2 307.2 307.2s307.2-138.24 307.2-307.2-138.24-307.2-307.2-307.2z"})],-1)),createBaseVNode("span",_hoisted_58,toDisplayString$1(unref(n)("promptBox.randomTagSettings")),1)],8,_hoisted_57),createBaseVNode("button",{class:"translate-btn random-tag-btn",onClick:Va,title:unref(n)("promptBox.oneClickRandomTag")},[T[31]||(T[31]=createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"utils-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M832 512c0-176-144-320-320-320S192 336 192 512s144 320 320 320 320-144 320-320z m-384 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m128-128c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m-256 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m128-128c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m256 256c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m-256 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m-128 128c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m256 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z"})],-1)),createBaseVNode("span",_hoisted_60,toDisplayString$1(unref(n)("promptBox.oneClickRandomTag")),1)],8,_hoisted_59)]),d.value.length>0?(openBlock(),createElementBlock("div",_hoisted_61,[(openBlock(!0),createElementBlock(Fragment,null,renderList(d.value,(ve,we)=>(openBlock(),createElementBlock(Fragment,{key:"tag-item-"+we},[createBaseVNode("div",{class:normalizeClass(["token-item-box",{"token-item-box-disabled":ve.isHidden}]),draggable:!ve.isEditing,onDragstart:ke=>ba(we,ke),onDragover:withModifiers(ke=>$a(we,ke),["prevent"]),onDrop:ke=>Sa(we,ke),onDblclick:ke=>Ba(we),style:normalizeStyle({backgroundColor:ve.color})},[ve.text===` -`?(openBlock(),createElementBlock("div",_hoisted_63,[createBaseVNode("span",{class:"token-symbol",title:unref(n)("promptBox.newline")},"↵",8,_hoisted_64)])):ve.text===" "?(openBlock(),createElementBlock("div",{key:1,class:"token-item tab-token",onMouseenter:ke=>ht(we,ke),onMouseleave:ke=>vt()},[createBaseVNode("span",{class:"token-symbol",title:unref(n)("promptBox.tab")},"→",8,_hoisted_66)],40,_hoisted_65)):ve.isLoraTag?(openBlock(),createElementBlock("div",{key:2,class:"lora-tag-icon",title:unref(n)("promptBox.loraTag"),onMouseenter:ke=>ht(we,ke),onMouseleave:ke=>vt()},[T[32]||(T[32]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"15",height:"15"},[createBaseVNode("path",{d:"M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"})],-1)),createBaseVNode("span",_hoisted_68,toDisplayString$1(ve.text),1)],40,_hoisted_67)):ve.text&&!ve.isLoraTag?(openBlock(),createElementBlock("div",{key:3,class:normalizeClass(["token-item",{punctuation:ve.isPunctuation}]),onMouseenter:ke=>ht(we,ke),onMouseleave:ke=>vt()},[!ve.isEditing||ve.isPunctuation?(openBlock(),createElementBlock("span",{key:0,onClick:ke=>!ve.isPunctuation&&Ut(we)},toDisplayString$1(ve.text),9,_hoisted_70)):ve.isPunctuation?createCommentVNode("",!0):(openBlock(),createElementBlock("input",{key:1,value:ve.text,onInput:ke=>Vt(we,ke),onBlur:ke=>Dt(we),onKeyup:withKeys(ke=>Dt(we),["enter"]),ref_for:!0,ref:ke=>{ke&&(m[we]=ke)}},null,40,_hoisted_71))],42,_hoisted_69)):createCommentVNode("",!0),ve.text!==` -`&&ve.text!==" "&&!ve.isLoraTag?(openBlock(),createElementBlock("div",_hoisted_72,[Ke(ve.text)?(openBlock(),createElementBlock("div",{key:0,onClick:ke=>ma(ve.text,ve),class:"translate-button",title:unref(n)("promptBox.translate")},T[33]||(T[33]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"token-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M677.676657 294.6142c19.165116 57.5433 44.715939 102.2992 89.431879 147.0551 38.322239-38.3622 63.873063-89.5118 83.038178-147.0551h-172.470057z m-421.56861 319.685h166.076358l-83.038179-223.7795-83.038179 223.7795z","p-id":"2419"}),createBaseVNode("path",{d:"M894.854661 0.504H128.353929C58.095158 0.504 0.607803 58.0473 0.607803 128.378v767.244c0 70.3307 57.487355 127.874 127.746126 127.874h766.500733c70.258771 0 127.746126-57.5433 127.746126-127.874V128.378c0-70.3307-51.101647-127.874-127.746126-127.874zM581.867062 825.2913c-12.771416 12.7874-25.550824 12.7874-38.322239 12.7874-6.3937 0-19.165116 0-25.550824-6.3937-6.3937-6.3937-12.779408 0-12.779408-6.3937s-6.385708-12.7874-12.771415-25.5748c-6.3937-12.7874-6.3937-19.1811-12.779408-31.9685l-25.542832-70.3307H230.557224L205.0064 767.748c-12.771416 25.5748-19.165116 44.7559-25.550824 57.5433-6.3937 12.7874-19.165116 12.7874-38.322239 12.7874-12.779408 0-25.550824-6.3937-38.330231-12.7874-12.771416-12.7874-19.157124-19.1811-19.157124-31.9685 0-6.3937 0-12.7874 6.385708-25.5748 6.3937-12.7874 6.3937-19.1811 12.771416-31.9685l140.525533-358.0472c6.3937-12.7874 6.3937-25.5748 12.779408-38.3622 6.385708-12.7874 12.771416-25.5748 19.157124-31.9685 6.3937-6.3937 12.779408-19.1811 25.550823-25.5748 12.779408-6.3937 25.550824-6.3937 38.330232-6.3937 12.771416 0 25.542832 0 38.322239 6.3937 12.771416 6.3937 19.165116 12.7874 25.550824 25.5748 6.385708 6.3937 12.771416 19.1811 19.157124 31.9685 6.3937 12.7874 12.779408 25.5748 19.165115 44.7559l140.525534 351.6535c12.771416 25.5748 19.165116 44.7559 19.165116 57.5433-6.3937 6.3937-12.779408 19.1811-19.165116 31.9685zM933.176901 575.937c-70.258771-25.5748-121.360418-57.5433-166.076358-95.9055-44.707947 44.7559-102.195302 76.7244-172.462065 95.9055l-19.157124-31.9685c70.258771-19.1811 127.746126-44.7559 172.462066-89.5118C703.22748 409.7008 664.905241 352.1575 652.125833 288.2205h-63.873063v-25.5748h172.470058c-12.7874-19.1811-25.558816-44.7559-38.330232-63.937l19.157124-6.3937c12.779408 19.1811 31.944524 44.7559 44.715939 70.3307h159.682658v31.9685h-63.873063c-19.157124 63.937-51.093655 121.4803-89.423887 159.8425 44.715939 38.3622 95.809594 70.3307 166.076358 89.5118l-25.550824 31.9685z","p-id":"2420"})],-1)]),8,_hoisted_73)):createCommentVNode("",!0),createBaseVNode("span",_hoisted_74,toDisplayString$1(ve.translate?ve.translate:""),1)])):createCommentVNode("",!0)],46,_hoisted_62),ve.text===` -`?(openBlock(),createElementBlock("div",_hoisted_75)):createCommentVNode("",!0)],64))),128))])):createCommentVNode("",!0),ge.value?(openBlock(),createElementBlock("div",{key:1,class:"tag-tips-box",style:normalizeStyle(re.value)},[createBaseVNode("div",_hoisted_76,[createBaseVNode("p",{innerHTML:unref(n)("promptBox.tagTips")},null,8,_hoisted_77)])],4)):createCommentVNode("",!0),withDirectives(createBaseVNode("div",{class:"token-controls",style:normalizeStyle(b.value),onMouseenter:T[14]||(T[14]=ve=>v.value=!0),onMouseleave:dt},[(se=d.value[g.value])!=null&&se.isLoraTag?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_78,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":T[4]||(T[4]=ve=>Be.value=ve),step:"0.1",class:"weight-input",onChange:Me},null,544),[[vModelText,Be.value]]),createBaseVNode("span",_hoisted_79,toDisplayString$1(unref(n)("promptBox.weight")),1)])),(de=d.value[g.value])!=null&&de.isLoraTag?(openBlock(),createElementBlock("div",_hoisted_80,[createBaseVNode("div",_hoisted_81,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":T[5]||(T[5]=ve=>Ie.value=ve),step:"0.1",class:"weight-input",onChange:Te},null,544),[[vModelText,Ie.value]]),createBaseVNode("span",_hoisted_82,toDisplayString$1(unref(n)("promptBox.modelWeight")),1)]),createBaseVNode("div",_hoisted_83,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":T[6]||(T[6]=ve=>We.value=ve),step:"0.1",class:"weight-input",onChange:Te},null,544),[[vModelText,We.value]]),createBaseVNode("span",_hoisted_84,toDisplayString$1(unref(n)("promptBox.textWeight")),1)])])):createCommentVNode("",!0),createBaseVNode("button",{class:"favour-btn",onClick:T[7]||(T[7]=ve=>Da(d.value[g.value])),title:unref(n)("promptBox.favour")},T[34]||(T[34]=[createBaseVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none"},[createBaseVNode("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z",fill:"#FFD700"})],-1)]),8,_hoisted_85),createBaseVNode("button",{onClick:et,class:"delete-btn",title:unref(n)("promptBox.delete")},T[35]||(T[35]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,_hoisted_86),(Se=d.value[g.value])!=null&&Se.isLoraTag?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_87,[createBaseVNode("div",_hoisted_88,[T[36]||(T[36]=createBaseVNode("div",{class:"bracket-btn"}," () ",-1)),createBaseVNode("div",_hoisted_89,[createBaseVNode("button",{class:"vertical-btn",onClick:T[8]||(T[8]=ve=>be("(")),title:unref(n)("promptBox.addBracket")}," + ",8,_hoisted_90),createBaseVNode("button",{class:"vertical-btn",onClick:T[9]||(T[9]=ve=>ye("(")),title:unref(n)("promptBox.removeLayer")}," - ",8,_hoisted_91)])]),createBaseVNode("div",_hoisted_92,[T[37]||(T[37]=createBaseVNode("div",{class:"bracket-btn"}," [] ",-1)),createBaseVNode("div",_hoisted_93,[createBaseVNode("button",{class:"vertical-btn",onClick:T[10]||(T[10]=ve=>be("[")),title:unref(n)("promptBox.addBracket")}," + ",8,_hoisted_94),createBaseVNode("button",{class:"vertical-btn",onClick:T[11]||(T[11]=ve=>ye("[")),title:unref(n)("promptBox.removeLayer")}," - ",8,_hoisted_95)])]),createBaseVNode("div",_hoisted_96,[T[38]||(T[38]=createBaseVNode("div",{class:"bracket-btn"}," {} ",-1)),createBaseVNode("div",_hoisted_97,[createBaseVNode("button",{class:"vertical-btn",onClick:T[12]||(T[12]=ve=>be("{")),title:unref(n)("promptBox.addBracket")}," + ",8,_hoisted_98),createBaseVNode("button",{class:"vertical-btn",onClick:T[13]||(T[13]=ve=>ye("{")),title:unref(n)("promptBox.removeLayer")}," - ",8,_hoisted_99)])])])),createBaseVNode("button",{class:"line-token-btn",onClick:Bt,title:unref(n)("promptBox.addLineToken"),style:{"margin-left":"8px"}},T[39]||(T[39]=[createBaseVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none"},[createBaseVNode("path",{d:"M5 19h14v-2H5v2zm0-7h14v-2H5v2zm0-7v2h14V5H5z",fill:"#888"}),createBaseVNode("path",{d:"M7 17v-2h2v2H7zm0-7V8h2v2H7zm0-7V3h2v2H7z",fill:"#4285f4"})],-1)]),8,_hoisted_100)],36),[[vShow,g.value!==null&&d.value[g.value]]]),createBaseVNode("div",_hoisted_101,[withDirectives(createBaseVNode("div",{class:"token-controls",style:normalizeStyle(ae.value),onMouseenter:T[15]||(T[15]=ve=>v.value=!0),onMouseleave:dt},[createBaseVNode("div",_hoisted_102,[createBaseVNode("div",_hoisted_103,"选中 "+toDisplayString$1(G.value.length)+" 个标签",1),createBaseVNode("div",{class:"weilin-comfyui-selection-actions-buttons"},[createBaseVNode("button",{class:"delete-btn copy-btn",onClick:ua,title:"复制"},T[40]||(T[40]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"})],-1)])),createBaseVNode("button",{class:"delete-btn",onClick:da,title:"禁用"},T[41]||(T[41]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("circle",{cx:"12",cy:"12",r:"10",fill:"none",stroke:"#ff4d4f","stroke-width":"2"}),createBaseVNode("path",{d:"M8.5 8.5l7 7",stroke:"#ff4d4f","stroke-width":"2","stroke-linecap":"round"})],-1)])),createBaseVNode("button",{class:"delete-btn enable-btn",onClick:pa,title:"启用"},T[42]||(T[42]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})],-1)])),createBaseVNode("button",{class:"delete-btn",onClick:fa,title:"删除"},T[43]||(T[43]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]))])])],36),[[vShow,W.value]]),createBaseVNode("div",{class:"tag-manager-header",onClick:le},[createBaseVNode("div",_hoisted_104,[T[44]||(T[44]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M129 128h350v80H209v224h270v80H129V128zM129 895V576h768v319H129z m80-239v159h608V656H209zM730 356c19.882 0 36-16.118 36-36s-16.118-36-36-36-36 16.118-36 36 16.118 36 36 36z"}),createBaseVNode("path",{d:"M578.517 214.386a32.002 32.002 0 0 0-16.01 27.731l0.058 155.918a31.998 31.998 0 0 0 16 27.701l135.156 78.033a32.002 32.002 0 0 0 31.99 0.006l135.058-77.909a32.002 32.002 0 0 0 16.01-27.731l-0.058-155.918a32 32 0 0 0-16-27.701l-135.157-78.033a31.998 31.998 0 0 0-31.989-0.005l-135.058 77.908z m67.002 58.058l84.033-48.591 84.181 48.715 0.034 95.24-84.034 48.591-84.18-48.714-0.034-95.241z"})],-1)),createBaseVNode("span",_hoisted_105,toDisplayString$1(unref(n)("controls.loraManager")),1)]),createBaseVNode("div",_hoisted_106,[(openBlock(),createElementBlock("svg",{class:normalizeClass(["collapse-icon",{"is-collapsed":!ce.value}]),viewBox:"0 0 24 24"},T[45]||(T[45]=[createBaseVNode("path",{d:"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"},null,-1)]),2))])]),withDirectives(createBaseVNode("div",_hoisted_107,[createVNode(LoraManager,{loraManager:"prompt_inner"})],512),[[vShow,ce.value]])]),createBaseVNode("div",_hoisted_108,[createBaseVNode("div",{class:"tag-manager-header",onClick:Wt},[createBaseVNode("div",_hoisted_109,[T[46]||(T[46]=createBaseVNode("svg",{class:"tag-icon",viewBox:"0 0 24 24"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",_hoisted_110,toDisplayString$1(unref(n)("controls.tagManager")),1)]),createBaseVNode("div",_hoisted_111,[(openBlock(),createElementBlock("svg",{class:normalizeClass(["collapse-icon",{"is-collapsed":!pt.value}]),viewBox:"0 0 24 24"},T[47]||(T[47]=[createBaseVNode("path",{d:"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"},null,-1)]),2))])]),withDirectives(createBaseVNode("div",_hoisted_112,[createVNode(TagManager)],512),[[vShow,pt.value]])])],6)]),createVNode(RandomSetting,{ref_key:"randomSettingItem",ref:a},null,512),createVNode(favourItem,{ref_key:"favourItemRef",ref:Gt},null,512)],64)}}},PromptBox=_export_sfc(_sfc_main$a,[["__scopeId","data-v-e6351b4c"]]),_hoisted_1$9={class:"container"},_hoisted_2$8={class:"tab-container"},_hoisted_3$8={key:0},_hoisted_4$7={class:"search-container"},_hoisted_5$6=["placeholder"],_hoisted_6$6=["title"],_hoisted_7$6=["title","disabled"],_hoisted_8$6=["title"],_hoisted_9$6={class:"history-list"},_hoisted_10$5={class:"action-buttons"},_hoisted_11$5=["onClick","title"],_hoisted_12$5=["onClick","title"],_hoisted_13$4=["onClick","title"],_hoisted_14$4=["value"],_hoisted_15$4={key:1},_hoisted_16$4={class:"search-container"},_hoisted_17$4=["placeholder"],_hoisted_18$2=["title"],_hoisted_19$2=["title"],_hoisted_20$2=["title","disabled"],_hoisted_21$2=["title"],_hoisted_22$2={class:"history-list"},_hoisted_23$2={key:0,class:"favor-name"},_hoisted_24$2={class:"action-buttons"},_hoisted_25$2=["onClick","title"],_hoisted_26$2=["onClick","title"],_hoisted_27$2=["onClick","title"],_hoisted_28$2=["value"],_hoisted_29$2={key:2,class:"weilin-tools-dialog-overlay"},_hoisted_30$2={class:"weilin-tools-dialog-header"},_hoisted_31$2={class:"weilin-tools-dialog-body"},_hoisted_32$2={class:"form-group"},_hoisted_33$2=["placeholder"],_hoisted_34$2={class:"form-group"},_hoisted_35$2=["placeholder"],_hoisted_36$2={class:"form-group"},_hoisted_37$1={class:"color-picker"},_hoisted_38$1={class:"color-controls"},_hoisted_39$1={class:"alpha-control"},_hoisted_40$1={class:"alpha-value"},_hoisted_41$1={class:"weilin-tools-dialog-footer"},_hoisted_42$1={key:3,class:"weilin-tools-dialog-overlay"},_hoisted_43$1={class:"weilin-tools-dialog-header"},_hoisted_44={class:"weilin-tools-dialog-body"},_hoisted_45={class:"confirm-message"},_hoisted_46={class:"weilin-tools-dialog-footer"},_sfc_main$9={__name:"history_index",setup(e){const{t}=useI18n(),a=ref(""),n=ref([]),o=ref([]),r=ref([]),s=ref([]),l=ref("history"),c=ref([]),f=ref(!1),u=ref(!1),d=ref(!1),m=ref({hex:"rgba(255, 123, 2, .4)",alpha:100}),g=ref({name:"",tag:"",color:"rgba(255, 123, 2, .4)"}),v=ref(!1),b=ref(0),$=L=>JSON.parse(L).prompt,w=L=>({hex:"#FFFFFF",alpha:0}),N=L=>{const{hex:K,alpha:x}=w();m.value={hex:K,alpha:x}},P=()=>{d.value=!1,g.value={id:"",name:"",tag:"",backgroundColor:"transparent"},N(),f.value=!0},y=L=>{const K=L.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([0-9.]+))?\)/);if(K){const[,x,S,I,X]=K,ie=`#${((1<<24)+(parseInt(x)<<16)+(parseInt(S)<<8)+parseInt(I)).toString(16).slice(1)}`,pe=X?Math.round(parseFloat(X)*100):100;return{hex:ie,alpha:pe}}return{hex:"#FF7B02",alpha:50}},E=L=>{d.value=!0,g.value={...L},m.value=y(L.color),f.value=!0},R=()=>{const L=ee(m.value.hex,m.value.alpha);g.value.color=L},F=()=>{f.value=!1,g.value={name:"",tag:"",color:"rgba(255, 123, 2, .4)"},d.value=!1},H=ref(""),j=ref(null),fe=computed(()=>{if(!j.value)return"";switch(H.value){case"history":return t("history.deleteHistoryConfirm",{name:j.value.tag});case"favorite":return t("history.deleteFavoriteConfirm",{name:j.value.tag});case"deleteSelected":return t("history.confirmDeleteSelected");case"deleteSelectedFavorite":return t("history.confirmDeleteSelected");default:return""}}),oe=L=>{H.value="history",j.value=L,u.value=!0},V=L=>{H.value="favorite",j.value=L,u.value=!0},q=()=>{v.value=!1,b.value=0,H.value="deleteSelected",j.value=c.value,u.value=!0},Q=()=>{v.value=!1,b.value=0,H.value="deleteSelectedFavorite",j.value=c.value,u.value=!0},O=async()=>{try{switch(H.value){case"history":historyApi.deleteHistory(j.value.id_index).then(L=>{W(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"})});break;case"favorite":historyApi.deleteFavorite(j.value.id_index).then(L=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"})});break;case"deleteSelected":historyApi.batchDeleteHistory(c.value).then(L=>{W(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"})});break;case"deleteSelectedFavorite":historyApi.batchDeleteFavorite(j.value).then(L=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"})});break}A()}catch{message$1({type:"warn",str:"message.networkError"})}},G=L=>{L.target.checked?l.value==="history"?c.value=n.value.map(K=>K.id_index):c.value=r.value.map(K=>K.id_index):c.value=[]},ee=(L,K)=>{const x=parseInt(L.slice(1,3),16),S=parseInt(L.slice(3,5),16),I=parseInt(L.slice(5,7),16);return`rgba(${x}, ${S}, ${I}, ${K/100})`},A=()=>{u.value=!1,H.value="",j.value=null},D=()=>{if(!g.value.tag){message$1({type:"warn",str:"history.dialog.tag_placeholder"});return}d.value?historyApi.editFavorite({id_index:g.value.id_index,name:g.value.name,tag:g.value.tag,color:g.value.color}).then(L=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.editSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"})}):historyApi.addFavorite({name:g.value.name,tag:g.value.tag,color:g.value.color}).then(L=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.addSuccess"})}).catch(L=>{message$1({type:"warn",str:"message.networkError"})}),F()},W=()=>{historyApi.getHistory({}).then(L=>{n.value=L.data,o.value=n.value}).catch(L=>{message$1({type:"warn",str:"message.networkError"})})},ae=()=>{historyApi.getFavorite().then(L=>{r.value=L.data,s.value=r.value}).catch(L=>{message$1({type:"warn",str:"message.networkError"})})},Y=()=>{o.value=n.value.filter(L=>L.tag.includes(a.value))},ne=()=>{s.value=r.value.filter(L=>L.tag.includes(a.value))},te=()=>{W()},ge=()=>{ae()},re=L=>{historyApi.addFavorite({tag:L.tag}).then(K=>{K.code===200?(window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),ae(),message$1({type:"success",str:"message.addFavoriteSuccess"})):message$1({type:"success",str:"message.addFavoriteIsExist"})}).catch(K=>{message$1({type:"warn",str:"message.networkError"})})},B=L=>{window.postMessage({type:"weilin_prompt_ui_user_history_tag",tagText:L.tag},"*")},z=()=>{c.value=[],v.value=!0},Z=()=>{c.value=[],v.value=!1,b.value=0};return onMounted(()=>{W(),ae()}),(L,K)=>(openBlock(),createElementBlock("div",_hoisted_1$9,[createBaseVNode("h1",null,toDisplayString$1(l.value==="history"?unref(t)("history.title"):unref(t)("history.favorites")),1),createBaseVNode("div",_hoisted_2$8,[createBaseVNode("button",{class:normalizeClass([{active:l.value==="history"},"tab-button"]),onClick:K[0]||(K[0]=x=>l.value="history")},toDisplayString$1(unref(t)("history.history")),3),createBaseVNode("button",{class:normalizeClass([{active:l.value==="favorites"},"tab-button"]),onClick:K[1]||(K[1]=x=>l.value="favorites")},toDisplayString$1(unref(t)("history.favorites")),3)]),l.value==="history"?(openBlock(),createElementBlock("div",_hoisted_3$8,[createBaseVNode("div",_hoisted_4$7,[createBaseVNode("button",{class:"refresh-btn",onClick:te},K[14]||(K[14]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"refresh-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":K[2]||(K[2]=x=>a.value=x),placeholder:unref(t)("history.search_placeholder"),onInput:Y,class:"search-input"},null,40,_hoisted_5$6),[[vModelText,a.value]]),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[3]||(K[3]=x=>b.value=x),value:1,class:"tag-checkbox",onChange:G},null,544)),[[vModelCheckbox,b.value]]):createCommentVNode("",!0),v.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:1,class:"bulk-delete-btn",onClick:z,title:unref(t)("history.bulk_delete")},K[15]||(K[15]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_6$6)),v.value?(openBlock(),createElementBlock("button",{key:2,class:"bulk-delete-btn",onClick:q,title:unref(t)("history.sure_delete"),disabled:c.value.length===0},K[16]||(K[16]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M392.533333 806.4L85.333333 503.466667l59.733334-59.733334 247.466666 247.466667L866.133333 213.333333l59.733334 59.733334L392.533333 806.4z"})],-1)]),8,_hoisted_7$6)):createCommentVNode("",!0),v.value?(openBlock(),createElementBlock("button",{key:3,class:"bulk-delete-btn",onClick:Z,title:unref(t)("history.cancel_delete")},K[17]||(K[17]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M794.8 794.8c-14 14-36.9 14-50.9 0L229.2 280.1c-14-14-14-36.9 0-50.9s36.9-14 50.9 0L794.9 744c13.9 13.9 13.9 36.8-0.1 50.8z"}),createBaseVNode("path",{d:"M794.8 229.2c14 14 14 36.9 0 50.9L280.1 794.8c-14 14-36.9 14-50.9 0s-14-36.9 0-50.9L744 229.1c13.9-13.9 36.8-13.9 50.8 0.1z"})],-1)]),8,_hoisted_8$6)):createCommentVNode("",!0)]),createBaseVNode("ul",_hoisted_9$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.value,x=>(openBlock(),createElementBlock("li",{key:x.id_index,class:"history-item"},[createBaseVNode("span",null,toDisplayString$1($(x.tag)),1),createBaseVNode("div",_hoisted_10$5,[createBaseVNode("button",{onClick:S=>re(x),class:"favorite-btn",title:unref(t)("history.add_to_favorites")},K[18]||(K[18]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24",class:"favorite-icon"},[createBaseVNode("path",{d:"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"})],-1)]),8,_hoisted_11$5),createBaseVNode("button",{onClick:S=>oe(x),class:"delete-favorite-btn",title:unref(t)("history.delete_history")},K[19]||(K[19]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_12$5),createBaseVNode("button",{onClick:S=>B(x),class:"use-btn",title:unref(t)("history.use_item")},K[20]||(K[20]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"use-icon"},[createBaseVNode("path",{d:"M915.515273 142.819385 98.213046 458.199122c-46.058539 17.772838-44.90475 43.601756 2.348455 57.622994l197.477685 58.594874 80.292024 238.91085c10.51184 31.277988 37.972822 37.873693 61.462483 14.603752l103.584447-102.611545 204.475018 149.840224c26.565749 19.467242 53.878547 9.222132 61.049613-23.090076l149.210699-672.34491C965.264096 147.505054 946.218922 130.971848 915.515273 142.819385zM791.141174 294.834331l-348.61988 310.610267c-6.268679 5.58499-11.941557 16.652774-12.812263 24.846818l-15.390659 144.697741c-1.728128 16.24808-7.330491 16.918483-12.497501 1.344894l-67.457277-203.338603c-2.638691-7.954906 0.975968-17.705389 8.022355-21.931178l442.114555-265.181253C812.67481 268.984974 815.674251 272.975713 791.141174 294.834331z","p-id":"18085"})],-1)]),8,_hoisted_13$4),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[4]||(K[4]=S=>c.value=S),value:x.id_index,class:"tag-checkbox"},null,8,_hoisted_14$4)),[[vModelCheckbox,c.value]]):createCommentVNode("",!0)])]))),128))])])):(openBlock(),createElementBlock("div",_hoisted_15$4,[createBaseVNode("div",_hoisted_16$4,[createBaseVNode("button",{class:"refresh-btn",onClick:ge},K[21]||(K[21]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"refresh-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":K[5]||(K[5]=x=>a.value=x),placeholder:unref(t)("history.search_placeholder"),onInput:ne,class:"search-input"},null,40,_hoisted_17$4),[[vModelText,a.value]]),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[6]||(K[6]=x=>b.value=x),value:1,class:"tag-checkbox",onChange:G},null,544)),[[vModelCheckbox,b.value]]):createCommentVNode("",!0),createBaseVNode("button",{class:"add-his-btn",onClick:P,title:unref(t)("history.add_new")},K[22]||(K[22]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"add-icon"},[createBaseVNode("path",{d:"M19 11h-6V5c0-.55-.45-1-1-1s-1 .45-1 1v6H5c-.55 0-1 .45-1 1s.45 1 1 1h6v6c0 .55.45 1 1 1s1-.45 1-1v-6h6c.55 0 1-.45 1-1s-.45-1-1-1z"})],-1)]),8,_hoisted_18$2),v.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:1,class:"bulk-delete-btn",onClick:z,title:unref(t)("history.bulk_delete")},K[23]||(K[23]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_19$2)),v.value?(openBlock(),createElementBlock("button",{key:2,class:"bulk-delete-btn",onClick:Q,title:unref(t)("history.sure_delete"),disabled:c.value.length===0},K[24]||(K[24]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M392.533333 806.4L85.333333 503.466667l59.733334-59.733334 247.466666 247.466667L866.133333 213.333333l59.733334 59.733334L392.533333 806.4z"})],-1)]),8,_hoisted_20$2)):createCommentVNode("",!0),v.value?(openBlock(),createElementBlock("button",{key:3,class:"bulk-delete-btn",onClick:Z,title:unref(t)("history.cancel_delete")},K[25]||(K[25]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M794.8 794.8c-14 14-36.9 14-50.9 0L229.2 280.1c-14-14-14-36.9 0-50.9s36.9-14 50.9 0L794.9 744c13.9 13.9 13.9 36.8-0.1 50.8z"}),createBaseVNode("path",{d:"M794.8 229.2c14 14 14 36.9 0 50.9L280.1 794.8c-14 14-36.9 14-50.9 0s-14-36.9 0-50.9L744 229.1c13.9-13.9 36.8-13.9 50.8 0.1z"})],-1)]),8,_hoisted_21$2)):createCommentVNode("",!0)]),createBaseVNode("ul",_hoisted_22$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(s.value,x=>(openBlock(),createElementBlock("li",{key:x.id_index,class:"history-item"},[createBaseVNode("div",{class:"favor-name-box",style:normalizeStyle({backgroundColor:x.color||"transparent"})},[x.name.length>0?(openBlock(),createElementBlock("span",_hoisted_23$2,toDisplayString$1(x.name),1)):createCommentVNode("",!0)],4),createBaseVNode("span",null,toDisplayString$1($(x.tag)),1),createBaseVNode("div",_hoisted_24$2,[createBaseVNode("button",{onClick:S=>E(x),class:"delete-favorite-btn",title:unref(t)("history.edit_favorite")},K[26]||(K[26]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M200.59 626.48v129.5h129.5l381.93-381.93-129.5-129.5-381.93 381.93z m611.56-352.57c13.45-13.41 13.48-35.18 0.07-48.62l-0.07-0.07-80.81-80.81c-13.41-13.45-35.18-13.48-48.62-0.07l-0.07 0.07-63.19 63.19 129.5 129.5 63.19-63.19zM131.52 824.96h759.71c23.02 0 34.53 11.51 34.53 34.53 0 23.02-11.51 34.53-34.53 34.53H131.52c-23.02 0-34.53-11.51-34.53-34.53 0-23.02 11.51-34.53 34.53-34.53z","p-id":"2346"})],-1)]),8,_hoisted_25$2),createBaseVNode("button",{onClick:S=>V(x),class:"delete-favorite-btn",title:unref(t)("history.delete_favorite")},K[27]||(K[27]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_26$2),createBaseVNode("button",{onClick:S=>B(x),class:"use-btn",title:unref(t)("history.use_favorite")},K[28]||(K[28]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"use-icon"},[createBaseVNode("path",{d:"M915.515273 142.819385 98.213046 458.199122c-46.058539 17.772838-44.90475 43.601756 2.348455 57.622994l197.477685 58.594874 80.292024 238.91085c10.51184 31.277988 37.972822 37.873693 61.462483 14.603752l103.584447-102.611545 204.475018 149.840224c26.565749 19.467242 53.878547 9.222132 61.049613-23.090076l149.210699-672.34491C965.264096 147.505054 946.218922 130.971848 915.515273 142.819385zM791.141174 294.834331l-348.61988 310.610267c-6.268679 5.58499-11.941557 16.652774-12.812263 24.846818l-15.390659 144.697741c-1.728128 16.24808-7.330491 16.918483-12.497501 1.344894l-67.457277-203.338603c-2.638691-7.954906 0.975968-17.705389 8.022355-21.931178l442.114555-265.181253C812.67481 268.984974 815.674251 272.975713 791.141174 294.834331z","p-id":"18085"})],-1)]),8,_hoisted_27$2),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[7]||(K[7]=S=>c.value=S),value:x.id_index,class:"tag-checkbox"},null,8,_hoisted_28$2)),[[vModelCheckbox,c.value]]):createCommentVNode("",!0)])]))),128))])])),f.value?(openBlock(),createElementBlock("div",_hoisted_29$2,[createBaseVNode("div",{class:"weilin-tools-dialog-content",onMousedown:K[12]||(K[12]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_30$2,[createBaseVNode("h2",null,toDisplayString$1(d.value?unref(t)("history.dialog.edit_tag"):unref(t)("history.dialog.add_tag")),1),createBaseVNode("button",{class:"close-btn",onClick:F},"×")]),createBaseVNode("div",_hoisted_31$2,[createBaseVNode("div",_hoisted_32$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("history.dialog.name")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":K[8]||(K[8]=x=>g.value.name=x),placeholder:unref(t)("history.dialog.name_placeholder")},null,8,_hoisted_33$2),[[vModelText,g.value.name]])]),createBaseVNode("div",_hoisted_34$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("history.dialog.tag")),1),withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":K[9]||(K[9]=x=>g.value.tag=x),placeholder:unref(t)("history.dialog.tag_placeholder"),rows:"4"}," ",8,_hoisted_35$2),[[vModelText,g.value.tag]])]),createBaseVNode("div",_hoisted_36$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("history.dialog.background_color")),1),createBaseVNode("div",_hoisted_37$1,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:L.previewColor})},null,4),createBaseVNode("div",_hoisted_38$1,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":K[10]||(K[10]=x=>m.value.hex=x),onInput:R,class:"color-input"},null,544),[[vModelText,m.value.hex]]),createBaseVNode("div",_hoisted_39$1,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":K[11]||(K[11]=x=>m.value.alpha=x),min:"0",max:"100",onInput:R,class:"alpha-slider"},null,544),[[vModelText,m.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_40$1,toDisplayString$1(m.value.alpha)+"%",1)])])])])]),createBaseVNode("div",_hoisted_41$1,[createBaseVNode("button",{class:"cancel-btn",onClick:F},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:D},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),u.value?(openBlock(),createElementBlock("div",_hoisted_42$1,[createBaseVNode("div",{class:"weilin-tools-dialog-content confirm-weilin-tools-dialog",onMousedown:K[13]||(K[13]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_43$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("common.confirmDelete")),1),createBaseVNode("button",{class:"close-btn",onClick:A},"×")]),createBaseVNode("div",_hoisted_44,[createBaseVNode("p",_hoisted_45,toDisplayString$1(fe.value),1)]),createBaseVNode("div",_hoisted_46,[createBaseVNode("button",{class:"cancel-btn",onClick:A},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:O},toDisplayString$1(unref(t)("common.delete")),1)])],32)])):createCommentVNode("",!0)]))}},HistoryManager=_export_sfc(_sfc_main$9,[["__scopeId","data-v-31204146"]]),_hoisted_1$8={key:0,class:"drop-zone"},_hoisted_2$7={key:1,class:"preview-container"},_hoisted_3$7=["srcdoc"],_hoisted_4$6={class:"action-buttons"},STORAGE_PREFIX$1="weilin_tools_",_sfc_main$8={__name:"tranToWeb",emits:["close","update"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref(""),s=ref(null),l={tranToWeb:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},f=ref((()=>{try{const H=localStorage.getItem(`${STORAGE_PREFIX$1}tranToWebState`);if(H){const j=JSON.parse(H),fe={...l};return j.tranToWeb&&(fe.tranToWeb={...l.tranToWeb,...j.tranToWeb}),fe}}catch(H){console.error("Error loading window states:",H)}return{...l}})());watch(f,H=>{try{localStorage.setItem(`${STORAGE_PREFIX$1}tranToWebState`,JSON.stringify(H))}catch(j){console.error("Error saving window states:",j)}},{deep:!0}),onMounted(()=>{windowManager.registerWindow("tranToWeb")}),onUnmounted(()=>{windowManager.unregisterWindow("tranToWeb")});const u=H=>{o.value=!1},d=(H,j)=>{f.value[H]&&(f.value[H].position={...j})},m=(H,j)=>{f.value[H]&&(f.value[H].size={...j})},g=()=>{o.value=!0,windowManager.setActiveWindow("tranToWeb")},v=H=>{H.dataTransfer.dropEffect="copy"},b=H=>{const j=H.dataTransfer.files[0];j&&j.type.startsWith("image/")&&w(j)},$=H=>{const j=H.clipboardData.items;for(let fe=0;fe{const j=new FileReader;j.onload=fe=>{const oe=fe.target.result,V=btoa(oe);s.value=V,N()},j.readAsDataURL(H)},N=()=>{r.value=` + `,de.textContent="已复制到剪贴板",document.body.appendChild(de),setTimeout(()=>{document.body.removeChild(de)},2e3)}),St()},pa=()=>{G.value.length!==0&&(G.value.forEach(N=>{d.value[N]&&!d.value[N].isHidden&&(d.value[N].isHidden=!0,d.value[N].hiddenHint=n("promptBox.hiddenHint"))}),at(),Je(),St())},fa=()=>{G.value.length!==0&&(G.value.forEach(N=>{d.value[N]&&d.value[N].isHidden&&(d.value[N].isHidden=!1,d.value[N].hiddenHint="")}),at(),Je(),St())},ga=()=>{G.value.length>0&&(confirm(`确定要删除选中的 ${G.value.length} 个标签吗?`)?ma():Pt())},St=()=>{W.value=!1,document.removeEventListener("click",qt),Pt()},qt=N=>{const k=document.querySelector(".token-controls");k&&!k.contains(N.target)&&St()},ma=()=>{if(G.value.length===0)return;[...G.value].sort((k,se)=>se-k).forEach(k=>{d.value.splice(k,1)}),at(),Je(),Pt()},Pt=()=>{document.querySelectorAll(".token-item-box-selected").forEach(k=>{k.classList.remove("token-item-box-selected"),k.style.border="",k.style.boxShadow="",k.style.backgroundColor=k.dataset.originalBgColor||""}),G.value=[],W.value&&(W.value=!1,document.removeEventListener("click",qt))},Qt=N=>{if(G.value.length===0)return;const k=N.target.closest(".token-item-box, .token-item, .token-controls, .delete-btn, .weight-control, .bracket-btn, .translate-button, .tag-tips-box"),se=ee.value;(N.target===r.value||!k&&(!se||!se.contains(N.target)))&&Pt()};onMounted(()=>{document.addEventListener("click",Qt)}),onUnmounted(()=>{document.removeEventListener("click",$t),document.removeEventListener("click",Qt),ft.value&&clearTimeout(ft.value),window.removeEventListener("message",Jt);const N=r.value;N&&(N.removeEventListener("keyup",ze),N.removeEventListener("click",ze),N.removeEventListener("input",ze)),ee.value&&(ee.value.removeEventListener("mousedown",je),ee.value.removeEventListener("mousemove",dt),ee.value.removeEventListener("mouseup",Ge),ee.value.removeEventListener("mouseleave",Ge)),Ot()});const Jt=N=>{if(N.data.type==="weilin_prompt_ui_insertTag"){const k=u.value,se=N.data.tagText;k===""?u.value=se:(k.endsWith(" "),u.value=k+", "+se+","),Z.value=u.value,Xe()}else if(N.data.type==="weilin_prompt_ui_user_history_tag"){const k=N.data.tagText;it.value=k,oa(k)}else if(N.data.type!=="weilin_prompt_ui_refresh_all_data"){if(N.data.type==="weilin_prompt_ui_translate_setting")Xt();else if(N.data.type==="weilin_prompt_ui_selectLora"){if(N.data.lora.loraWorks!=null&&N.data.lora.loraWorks.length>0){const k=u.value,se=N.data.lora.loraWorks;k===""?u.value=se:(k.endsWith(" "),u.value=k+", "+se+","),Z.value=u.value,Xe()}}else if(N.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id_go_random_response")La(N.data.data);else if(N.data.type==="weilin_prompt_ui_addLoraTag_inner")if(N.data.lora.loraWorks!=null&&N.data.lora.loraWorks.length>0){const k=u.value,se=N.data.lora.tag+(N.data.lora.loraWorks===""?"":", "+N.data.lora.loraWorks);k===""?u.value=se:(k.endsWith(" "),u.value=k+", "+se+","),Z.value=u.value,Xe()}else{const k=u.value,se=N.data.lora.tag;k===""?u.value=se:(k.endsWith(" "),u.value=k+", "+se+","),Z.value=u.value,Xe()}}},Xt=async()=>{const N=localStorage.getItem("weilin_prompt_ui_sourceLanguage")||"english",k=localStorage.getItem("weilin_prompt_ui_targetLanguage")||"chinese_simplified";localStorage.getItem("weilin_prompt_ui_sourceLanguage")||localStorage.setItem("weilin_prompt_ui_sourceLanguage",N),localStorage.getItem("weilin_prompt_ui_targetLanguage")||localStorage.setItem("weilin_prompt_ui_targetLanguage",k),N!=="auto"&&translate.language.setLocal(N),translate.language.setDefaultTo(k),await nextTick()},ha=(N,k)=>{if(localStorage.getItem("weilin_prompt_ui_translater_setting")=="network")translate.request.translateText(N,function(se){if(se.result>0){const de=se.text.map(ke=>ke.replace(/[\[\]“”]/g,"")).join(", ");k.translate=de}});else{let se={index:k.id,text:k.text,translate:""};const de=JSON.stringify(se);translatorApi.translaterText(de,"").then(ke=>{if(ke&&ke.data){const he=JSON.parse(ke.data);k.translate=he.translate}})}},Zt=()=>{if(localStorage.getItem("weilin_prompt_ui_translater_setting")=="network"){var N={from:translate.language.recognition(V.value).languageName,to:"english",texts:[V.value]};translate.request.translateText(N,function(se){if(se.result>0){const de=se.text.map(ke=>ke.replace(/[\[\]“”]/g,"")).join(", ");d.value.push({text:de,translate:V.value,isPunctuation:!1,isEditing:!1,isHidden:!1,color:""}),V.value="",at()}})}else{let k={text:V.value,translate:""};const se=JSON.stringify(k);translatorApi.translaterInputText(se,"").then(de=>{if(de&&de.data){const ke=JSON.parse(de.data);d.value.push({text:ke.translate,translate:V.value,isPunctuation:!1,isEditing:!1,isHidden:!1,color:""}),V.value="",at()}})}},va=()=>{setTimeout(()=>{R.value||(Z.value=u.value,Xe())},100)},ea=N=>{let k=N.replace(/[\[\]{}]/g,"").trim();const de=Nt(k).trim();if(!de){R.value=!1;return}if(de.length>20){R.value=!1;return}try{const ke=de.toLowerCase();autocompleteApi.getAutocomplete(String(ke)).then(async he=>{F.value=he.data,await Ct(),setTimeout(()=>{fe.value=localStorage.getItem("weilin_prompt_ui_auto_box_width")||450,oe.value=localStorage.getItem("weilin_prompt_ui_auto_box_height")||350,R.value=F.value.length>0,H.value=0},50)})}catch(ke){console.error("Autocomplete error:",ke),R.value=!1}},_a=N=>{R.value&&(N.key==="ArrowDown"?(N.preventDefault(),H.value=Math.min(H.value+1,F.value.length-1),ta()):N.key==="ArrowUp"?(N.preventDefault(),H.value=Math.max(H.value-1,0),ta()):N.key==="Tab"||N.key==="Enter"?(N.preventDefault(),aa(H.value,null)):N.key==="Escape"&&(N.preventDefault(),na()))},ta=()=>{nextTick(()=>{if(j.value&&o.value){const N=o.value,k=j.value,se=N.getBoundingClientRect(),de=k.getBoundingClientRect(),ke=de.topse.bottom;ke?N.scrollTop=N.scrollTop+(de.top-se.top):he&&(N.scrollTop=N.scrollTop+(de.bottom-se.bottom))}})},ya=computed(()=>{if(!f.value)return{left:s.value.left};const N=f.value.offsetWidth;fe.value=localStorage.getItem("weilin_prompt_ui_auto_box_width")||450;const k=fe.value;let se=s.value.left;return se+k>N&&(se=N-k),se<0&&(se=0),{left:se}}),aa=(N,k)=>{if(k&&(k.preventDefault(),k.stopPropagation()),!F.value[N])return;R.value=!1;const se=r.value.selectionStart,de=r.value.selectionEnd,ke=u.value;let he=F.value[N].text;localStorage.getItem("weilin_prompt_ui_comma_conversion")!=="false"&&(he=he.replace(/,/g,",")),localStorage.getItem("weilin_prompt_ui_period_conversion")!=="false"&&(he=he.replace(/。/g,".")),localStorage.getItem("weilin_prompt_ui_bracket_conversion")!=="false"&&(he=he.replace(/【/g,"[").replace(/】/g,"]").replace(/(/g,"(").replace(/)/g,")")),localStorage.getItem("weilin_prompt_ui_angle_bracket_conversion")!=="false"&&(he=he.replace(/《/g,"<").replace(/》/g,">")),localStorage.getItem("weilin_prompt_ui_underscore_to_bracket")==="true"&&(he=he.replace(/_/g," ")),localStorage.getItem("weilin_prompt_ui_bracket_escape")==="true"&&(he=he.replace(/\(([^)]+)\)/g,"\\($1\\)"));let we=se,$e=de;for(;we>0&&!/[,\s]/.test(ke[we-1]);)we--;for(;!1;)$e++;let Ee=ke.substring(0,we)+he+ke.substring($e);ke[$e]&&!/[\,\s]/.test(ke[$e])&&(Ee=ke.substring(0,we)+he+", "+ke.substring($e));const Pe=ke[$e]&&!/[\,\s]/.test(ke[$e]),Fe=we+he.length+(Pe?2:0);u.value=Ee,Z.value=Ee,Xe(),nextTick(()=>{r.value&&(r.value.selectionStart=Fe,r.value.selectionEnd=Fe)})},na=()=>{R.value=!1},oa=N=>{if(N.length>0)try{const k=JSON.parse(N);if(u.value=k.prompt,Z.value=u.value,k.lora&&k.lora!=""&&(y.value=k.lora),k.temp_prompt&&k.temp_prompt!=""){const se=k.temp_prompt;let de=!1;se.tokens&&se.tokens.length>0&&se.tokens!=""&&(d.value=se.tokens,de=!0),se.lora&&se.lora.length>0&&se.lora!=""&&(y.value=se.lora,de=!0),!de&&se.length>0&&se!=""&&(d.value=se)}if(k.temp_lora&&k.temp_lora.length>0&&k.temp_lora!=""){const se=k.temp_lora;y.value=se}Xe()}catch{message$1({type:"warn",str:"promptBox.settings.errorPrompt"})}},Ft=ref(!1),kt=ref(null),et=ref([]);let vt=null,ct=null;const ba=(N,k=!1)=>{Ft.value=!0,kt.value=null,et.value=[],k&&G.value.length>1&&G.value.includes(N)?et.value=[...G.value].sort((se,de)=>se-de):(G.value=[],kt.value=N),ct={originalTokens:[...d.value],draggedItems:et.value.length>0?et.value.map(se=>d.value[se]):[d.value[N]]}},wa=(N,k)=>{if(A.value){k.preventDefault();return}ba(N,!0),k.dataTransfer.effectAllowed="move"},$a=(N,k,se)=>{const de=k.filter(we=>we{if(!ct)return;const k=[...ct.originalTokens],se=et.value.length>0?et.value:[kt.value],de=se.map(he=>ct.originalTokens[he]);for(let he=se.length-1;he>=0;he--){const we=se[he];we{k.splice(ke+we,0,he)}),d.value=k,at(),et.value.length>0&&G.value.length>0){const he=[];for(let we=0;weEe.text===$e.text)&&he.push(we)}G.value=he,setTimeout(()=>{Kt()},0)}},Sa=(N,k)=>{if(A.value){k.preventDefault();return}k.preventDefault(),Ft.value&&(N<0||N>=d.value.length||et.value.length>0&&et.value.includes(N)||et.value.length===0&&kt.value===N||(vt&&clearTimeout(vt),vt=setTimeout(()=>{ra(N)},dragUpdateDelay)))},ka=(N,k)=>{k.preventDefault(),vt&&(clearTimeout(vt),vt=null),Ft.value&&ct&&ra(N),Ft.value=!1,kt.value=null,et.value=[],ct=null},at=()=>{u.value=d.value.length>0?d.value.reduce((N,k,se)=>{var Ee,Pe;if(k.isHidden)return N;if(k.text===` +`){const Fe=_t(se);return Fe!==-1&&d.value[Fe],N+k.text}if(N===""){let Fe=se+1;for(;Fe=d.value.length,Ye=Fe=d.value.length,he=de{window.parent.postMessage({type:"weilin_prompt_ui_openAiWindow"},"*")},xa=()=>{window.open("https://github.com/weilin9999/WeiLin-Comfyui-Tools","_blank")},Na=()=>{window.parent.postMessage({type:"weilin_prompt_ui_open_cloud_window"},"*")},Ca=()=>{window.parent.postMessage({type:"weilin_prompt_ui_open_danbooru_manager_window"},"*")},Ba=()=>{window.open("https://afdian.com/a/weilin9999","_blank")},_t=N=>{for(let k=N-1;k>=0;k--)if(!d.value[k].isHidden)return k;return-1},Ea=N=>{if(N>=0&&N{window.open("https://www.bilibili.com/list/288025756/?sid=4690314&spm_id_from=333.1387.0.0&oid=114342431298474&bvid=BV1txdfYxE7X","_blank")},Aa=async()=>{if(c.promptManager=="prompt_global")try{await randomTagApi.goRandomTemplate().then(N=>{N.code===200?(u.value=N.random_tags,nextTick(()=>{Xe()})):message$1({type:"warn",str:N.info})}).catch(N=>{console.error(N),message$1({type:"warn",str:"message.networkError"})})}catch(N){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",N)}else window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id_gorandom"},"*")},La=async N=>{try{await randomTagApi.goRandomTemplatePath(N).then(k=>{k.code===200?(u.value=k.random_tags,nextTick(()=>{Xe()})):message$1({type:"warn",str:k.info})}).catch(k=>{console.error(k),message$1({type:"warn",str:"message.networkError"})})}catch(k){message$1({type:"warn",str:"message.networkError"}),console.error("Error loading random tag settings:",k)}},Gt=ref(null),Da=N=>{Gt.value&&Gt.value.open(N.text,N.translate)},Ma=()=>{a.value.open(c.promptManager)};return t({setPromptText:oa}),(N,k)=>{var se,de,ke;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$a,[createVNode(Transition,{name:"weilin-fade"},{default:withCtx(()=>[ce.value?(openBlock(),createElementBlock("div",_hoisted_2$9,"已更新标签")):createCommentVNode("",!0)]),_:1}),c.promptManager==="prompt"?(openBlock(),createBlock(LoraStack,{key:0,"is-open":E.value,"selected-loras":y.value,onClose:X},null,8,["is-open","selected-loras"])):createCommentVNode("",!0),K.value?(openBlock(),createBlock(MainLabelManager,{key:1,ref_key:"mainLabelManagerRef",ref:ie,"selected-id":pe.value,onSelect:_e},null,8,["selected-id"])):createCommentVNode("",!0),createBaseVNode("div",{class:normalizeClass(`${prefix$2}main-content`),style:normalizeStyle({width:M.value})},[createBaseVNode("div",_hoisted_3$9,[createBaseVNode("div",_hoisted_4$8,[createBaseVNode("button",{class:"tag-manager-btn",onClick:x,title:K.value?"收起标签栏":"展开标签栏"},[(openBlock(),createElementBlock("svg",{class:normalizeClass(["weilin-comfyui-sidebar-toggle-icon",{"is-closed":!K.value}]),xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},k[16]||(k[16]=[createBaseVNode("path",{fill:"currentColor",d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"},null,-1)]),2)),createBaseVNode("span",_hoisted_6$7,toDisplayString$1(K.value?"收起标签栏":"展开标签栏"),1)],8,_hoisted_5$7)]),createBaseVNode("div",_hoisted_7$7,[createBaseVNode("button",{class:"language-switch-btn",onClick:withModifiers(Dt,["stop"]),ref_key:"langBtnRef",ref:C,title:unref(n)("controls.language")},[k[17]||(k[17]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"translate-icon"},[createBaseVNode("path",{d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})],-1)),createBaseVNode("span",_hoisted_9$7,toDisplayString$1(unref(n)("controls.language")),1)],8,_hoisted_8$7),createVNode(Transition,{name:"fade"},{default:withCtx(()=>[$.value?(openBlock(),createBlock(LanguageSwitcher,{key:0,ref_key:"languageSwitcherRef",ref:P,onClose:Mt},null,512)):createCommentVNode("",!0)]),_:1})]),createBaseVNode("div",_hoisted_10$6,[createVNode(ThemeSwitch,{title:unref(n)("controls.switchTheme")},{default:withCtx(({isDark:he})=>[createBaseVNode("span",_hoisted_11$6,toDisplayString$1(unref(n)(he?"controls.darkMode":"controls.lightMode")),1)]),_:1},8,["title"])]),createBaseVNode("div",_hoisted_12$6,[createBaseVNode("button",{class:"settings-btn",onClick:Ne,title:unref(n)("controls.settings")},[k[18]||(k[18]=createBaseVNode("svg",{class:"settings-icon",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.07.62-.07.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"})],-1)),createBaseVNode("span",_hoisted_14$5,toDisplayString$1(unref(n)("controls.settings")),1)],8,_hoisted_13$5)]),createBaseVNode("div",_hoisted_15$5,[createBaseVNode("button",{class:"tag-manager-btn",onClick:jt,title:unref(n)("controls.tagManager")},[k[19]||(k[19]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",_hoisted_17$5,toDisplayString$1(unref(n)("controls.tagManager")),1)],8,_hoisted_16$5)]),createBaseVNode("div",_hoisted_18$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Ca,title:unref(n)("controls.danbooruManager")},[k[20]||(k[20]=createBaseVNode("svg",{class:"tag-icon",viewBox:"0 0 24 24",width:"24",height:"24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",_hoisted_20$3,toDisplayString$1(unref(n)("controls.danbooruManager")),1)],8,_hoisted_19$3)]),c.hasPromptLoraStack?(openBlock(),createElementBlock("div",_hoisted_21$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:I,title:unref(n)("controls.loraStack")},[k[21]||(k[21]=createBaseVNode("svg",{sxmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M902.5 485.1c-59-17.5-113.8-3.4-155 27.7V365.1c0-45.2-36.9-82.1-82.1-82.1H511.2c31.1-41.2 45.2-96 27.7-155C522.2 71.6 475 26.1 418 12 303.4-16.5 200.9 69.4 200.9 179.3c0 39.1 13.5 74.7 35.3 103.7H82.1C36.9 283 0 319.9 0 365.1v113.1c0 25.5 27.9 38.8 49.5 25.3 38.8-24.3 87.8-33.6 139.4-19.5 57 15.6 103.4 62.5 118.4 119.7 30.1 115.5-56.2 219.4-166.8 219.4-33.5 0-64.7-9.6-91.1-26.2C27.8 783.4 0 796.8 0 822.2v113.2c0 45.2 36.9 82.1 82.1 82.1h583.3c45.2 0 82.1-36.9 82.1-82.1V787.7c29 21.9 64.6 35.3 103.7 35.3 109.9 0 195.8-102.5 167.3-217.1-14.1-56.9-59.7-104.1-116-120.8z"})],-1)),createBaseVNode("span",_hoisted_23$3,toDisplayString$1(unref(n)("controls.loraStack")),1)],8,_hoisted_22$3)])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_24$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Wt,title:unref(n)("controls.loraManager")},[k[22]||(k[22]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M129 128h350v80H209v224h270v80H129V128zM129 895V576h768v319H129z m80-239v159h608V656H209zM730 356c19.882 0 36-16.118 36-36s-16.118-36-36-36-36 16.118-36 36 16.118 36 36 36z"}),createBaseVNode("path",{d:"M578.517 214.386a32.002 32.002 0 0 0-16.01 27.731l0.058 155.918a31.998 31.998 0 0 0 16 27.701l135.156 78.033a32.002 32.002 0 0 0 31.99 0.006l135.058-77.909a32.002 32.002 0 0 0 16.01-27.731l-0.058-155.918a32 32 0 0 0-16-27.701l-135.157-78.033a31.998 31.998 0 0 0-31.989-0.005l-135.058 77.908z m67.002 58.058l84.033-48.591 84.181 48.715 0.034 95.24-84.034 48.591-84.18-48.714-0.034-95.241z"})],-1)),createBaseVNode("span",_hoisted_26$3,toDisplayString$1(unref(n)("controls.loraManager")),1)],8,_hoisted_25$3)]),createBaseVNode("div",_hoisted_27$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:It,title:unref(n)("controls.history")},[k[23]||(k[23]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M653.7 85.83c-235.05 0-426.29 191.25-426.29 426.3s191.24 426.3 426.29 426.3c235.06 0 426.3-191.25 426.3-426.3S888.76 85.83 653.7 85.83z m0 779.98c-195.01 0-353.67-158.65-353.67-353.68S458.69 158.45 653.7 158.45c195.02 0 353.68 158.65 353.68 353.68S848.72 865.81 653.7 865.81z"}),createBaseVNode("path",{d:"M866.78 634.19L695.93 533.61V302.59c0-20.06-16.26-36.31-36.31-36.31s-36.31 16.26-36.31 36.31v253.66c0 17.06 11.8 31.26 27.66 35.16l178.98 105.36c17.28 10.17 39.54 4.41 49.71-12.87 10.17-17.28 4.4-39.54-12.88-49.71zM44.76 324.51h186.42c20.05 0 36.31-16.26 36.31-36.31s-16.26-36.31-36.31-36.31H44.76c-20.05 0-36.31 16.26-36.31 36.31s16.26 36.31 36.31 36.31zM231.18 703.25H44.76c-20.05 0-36.31 16.26-36.31 36.31s16.26 36.31 36.31 36.31h186.42c20.05 0 36.31-16.26 36.31-36.31s-16.25-36.31-36.31-36.31zM36.31 550.19h118.8c20.05 0 36.31-16.26 36.31-36.31s-16.26-36.31-36.31-36.31H36.31c-20.05 0-36.31 16.26-36.31 36.31 0 20.06 16.26 36.31 36.31 36.31z"})],-1)),createBaseVNode("span",_hoisted_29$3,toDisplayString$1(unref(n)("controls.history")),1)],8,_hoisted_28$3)]),createBaseVNode("div",_hoisted_30$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Ta,title:unref(n)("controls.aiChat")},[k[24]||(k[24]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"}),createBaseVNode("path",{d:"M6 14h12v2H6zm0-3h12v2H6zm0-3h12v2H6z"})],-1)),createBaseVNode("span",_hoisted_32$3,toDisplayString$1(unref(n)("controls.aiChat")),1)],8,_hoisted_31$3)]),createBaseVNode("div",_hoisted_33$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:xa,title:unref(n)("controls.github")},[k[25]||(k[25]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})],-1)),createBaseVNode("span",_hoisted_35$3,toDisplayString$1(unref(n)("controls.github")),1)],8,_hoisted_34$3)]),createBaseVNode("div",_hoisted_36$3,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Na,title:unref(n)("controls.shareCloudData")},[k[26]||(k[26]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"})],-1)),createBaseVNode("span",_hoisted_38$2,toDisplayString$1(unref(n)("controls.shareCloudData")),1)],8,_hoisted_37$2)]),createBaseVNode("div",_hoisted_39$2,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Va,title:unref(n)("controls.tutorialVideo")},[k[27]||(k[27]=createBaseVNode("svg",{t:"1745234292993",class:"tag-icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1496",width:"128",height:"128"},[createBaseVNode("path",{d:"M204.288 63.488c-8.704 8.192-16.896 20.48-18.944 26.624-3.584 11.776 12.8 62.464 20.48 62.464S235.52 176.128 235.52 184.32c0 16.384-17.92 26.112-47.104 26.112-34.816 0-104.448 27.648-128.512 51.2-9.216 8.704-26.112 33.792-37.888 56.32L0 358.4v469.504l21.504 40.448c24.576 47.616 35.84 59.392 82.944 84.992l40.96 22.528h722.944l40.96-19.968c51.712-24.576 72.704-45.056 95.744-94.72l17.92-38.4v-231.424l0.512-231.424-17.92-36.352c-9.216-20.48-28.16-47.104-42.496-59.904-31.232-30.208-86.528-54.272-122.368-54.272-54.272 0-65.024-22.528-26.624-57.856 20.48-18.432 23.04-25.088 23.04-45.568 0-19.968-3.584-28.16-16.896-41.984-9.216-9.216-22.528-16.896-29.696-16.896-11.776 0-34.304 9.216-40.448 16.896-1.536 1.536-35.84 35.328-75.776 74.24l-73.216 71.168-83.456-0.512c-45.568 0-88.064-2.56-93.696-4.608-5.632-2.56-38.4-31.232-72.704-65.024C249.856 40.448 235.008 32.256 204.288 63.488z m652.8 262.656c5.12 0.512 19.968 9.216 31.744 20.48l21.504 19.968 1.536 217.088c1.024 197.12 0.512 218.112-8.704 236.032-14.336 27.136-34.816 40.448-65.536 41.984-14.336 0.512-173.568 0.512-353.28 0l-326.144-1.536-45.056-45.056V373.248l20.992-22.528c15.872-17.92 25.6-23.552 41.984-25.088 16.384-1.024 634.88-0.512 680.96 0.512z","p-id":"1497"}),createBaseVNode("path",{d:"M279.04 502.272c-20.48 22.016-20.992 25.088-20.992 66.56 0 39.936 1.024 44.544 17.92 64 29.184 33.28 55.808 32.256 84.48-2.56 11.264-12.8 12.8-22.016 13.312-64 0-47.104-0.512-48.64-19.968-68.096-27.136-27.648-47.616-26.112-74.752 4.096z m393.216-3.584c-18.944 18.944-19.968 20.992-19.968 69.12 0 47.616 0.512 49.664 18.432 67.072 24.576 23.552 35.84 26.624 58.368 13.824 29.184-16.896 39.936-43.52 36.864-90.624-2.56-35.328-4.608-41.984-22.016-59.904-25.088-25.6-45.568-25.6-71.68 0.512z","p-id":"1498"})],-1)),createBaseVNode("span",_hoisted_41$2,toDisplayString$1(unref(n)("controls.tutorialVideo")),1)],8,_hoisted_40$2)]),createBaseVNode("div",_hoisted_42$2,[createBaseVNode("button",{class:"tag-manager-btn",onClick:Ba,title:unref(n)("controls.sponsor")},[k[28]||(k[28]=createBaseVNode("svg",{t:"1745823985128",class:"tag-icon",viewBox:"0 0 1322 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24"},[createBaseVNode("path",{d:"M495.899049 634.906371c-17.304811 0-31.251971 13.947161-31.251971 31.251971S478.594238 697.410314 495.899049 697.410314c17.304811 0 31.251971-13.947161 31.251971-31.251972 0-17.304811-13.947161-31.251971-31.251971-31.251971zM790.855671 728.662285c-17.304811 0-31.251971 13.947161-31.251972 31.251971s13.947161 31.251971 31.251972 31.251972 31.251971-13.947161 31.251971-31.251972c0-17.04653-13.947161-30.993691-31.251971-31.251971z"}),createBaseVNode("path",{d:"M1262.99289 719.622459c-13.430599-8.264984-28.927445-13.430599-44.68257-14.980284 34.867902-84.974368 57.080047-196.293374-18.596215-306.837537-115.193217-168.657333-280.75118-256.73107-491.766556-260.863562-60.179416-1.291404-130.948343 1.549685-205.849762 4.649054-87.040614 3.35765-203.008673 8.006703-281.526023 1.549684 15.755126-8.523265 32.543375-16.788249 47.007098-23.761829 55.530362-27.119479 98.921529-48.04022 84.457807-85.232649-7.748423-21.695583-30.218848-33.059937-67.411277-34.09306C206.624604-1.755689 37.967271 43.443443 7.748423 119.636265c-17.04653 42.874605-19.887618 125.524447 152.902206 198.876182 71.027208 30.218848 271.969635 66.894715 349.453861 74.643138 17.563091 1.549685 34.867902 5.165615 51.397871 11.364353-17.821372 11.622634-35.901025 24.02011-54.238959 36.417586-31.768533-18.079653-83.941245-39.516955-122.683358-13.172318-14.463722 9.298107-23.503549 25.053233-24.02011 42.358044-0.516562 21.179022 12.397476 42.099763 26.861198 58.629731-57.080047 45.715694-103.312302 89.881703-119.84227 123.974762-18.337934 41.841482-25.828075 110.544163 8.523265 177.438879 43.391167 84.974368 138.955046 144.120661 284.625391 176.147474 190.352916 41.583202 354.619476 4.132492 463.355674-53.205835 60.437697-32.026814 103.570583-69.994085 124.233043-103.828864 6.457019 2.066246 12.914038 4.132492 19.629338 6.198738 9.298107 2.841088 18.596214 5.682177 27.37776 8.781546 28.669164 10.072949 60.695977 8.523265 85.232649-3.61593l1.291403-0.774843c17.821372-9.039826 31.510252-25.053233 37.708991-44.166009 15.238565-51.139589-29.444006-79.033911-56.563486-96.08044z m-811.776412-239.684541l-17.30481 12.655757c-5.165615-5.165615-9.814669-11.106072-13.430599-17.563091 6.7153-2.066246 18.337934 0.258281 30.735409 4.907334zM1262.99289 798.139808c-1.291404 3.874211-4.132492 6.97358-9.298107 9.814669-10.33123 5.165615-25.569795 5.423896-39.258675 0.774842-9.298107-3.35765-19.371057-6.457019-29.444006-9.556388-18.596214-5.682177-49.848186-15.238565-55.788643-22.470426-9.814669-12.914038-28.152602-15.755126-41.32492-5.940457s-15.755126 28.152602-5.940458 41.324921c3.615931 4.390773 7.490142 8.264984 12.139196 11.622634-44.940851 62.245662-242.267348 186.220424-521.468844 125.007885-125.782728-27.636041-210.498815-77.742507-244.850155-145.412065-24.794952-48.815063-19.112776-98.921529-7.231861-126.299289 34.09306-71.027208 280.75118-234.518925 438.30244-327.241716 13.947161-8.264984 18.596214-26.344637 10.33123-40.291798s-27.119479-19.629337-40.291797-10.33123c-12.655757 7.490142-55.788643 33.059937-111.060725 68.186119-18.596214-12.655757-50.881309-27.894322-102.537459-33.059936-81.874999-8.264984-270.936512-44.42429-332.149051-70.252366C139.471608 245.418993 40.033517 196.34565 61.987381 141.073568c5.165615-12.914038 29.185725-33.576498 81.100157-53.464116 35.384463-13.430599 72.318611-22.470426 109.769321-27.119479l-11.622634 5.682176c-35.384463 17.304811-73.868296 36.417586-99.954652 59.146293-1.807965-1.033123-3.615931-2.324527-5.165615-3.874211-10.847792-11.622634-29.185725-12.397476-41.06664-1.291404l-0.516562 0.516561c-11.880915 11.106072-12.139195 29.702287-1.033123 41.583202 10.589511 11.106072 26.086356 19.371057 45.715694 25.569795 0.774842 0.258281 1.291404 0.516562 2.066246 0.774842 68.702681 21.179022 190.611197 18.596214 362.367899 11.622634 74.126577-2.841088 144.120661-5.682177 202.492111-4.649054 193.710566 3.874211 339.122631 80.841876 444.75946 235.552049 64.828469 95.047318 41.583202 188.544951 4.390773 269.903388-4.649054-3.615931-9.039826-7.748423-12.655757-12.139195-10.33123-12.397476-28.669164-14.463722-41.324921-4.649054-12.655757 10.072949-14.722003 28.669164-4.649054 41.324921 5.940457 7.490142 36.675867 42.874605 74.643138 39.775236h2.066246c1.291404-0.258281 2.324527 0 3.615931-0.258281 25.828075-4.649054 42.358044-3.615931 57.596608 6.198738 20.40418 12.914038 30.218848 20.40418 28.410883 26.861199z"})],-1)),createBaseVNode("span",_hoisted_44$1,toDisplayString$1(unref(n)("controls.sponsor")),1)],8,_hoisted_43$2)]),createVNode(SettingDialog,{ref_key:"settingDialog",ref:w},null,512),createBaseVNode("div",_hoisted_45$1,[createBaseVNode("button",{class:normalizeClass(["update-label-btn",{"is-dirty":T.value}]),disabled:!pe.value||!T.value,onClick:J}," 更新标签 ",10,_hoisted_46$1)])]),createBaseVNode("div",{style:{position:"relative"},ref_key:"parentCneterBox",ref:f},[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":k[0]||(k[0]=he=>u.value=he),class:"input-area",onInput:ut,placeholder:unref(n)("promptBox.placeholder"),onKeydown:_a,onBlur:va,rows:"6",ref_key:"inputAreaRef",ref:r,onMouseup:qe,onResize:qe},null,40,_hoisted_47),[[vModelText,u.value]]),createBaseVNode("div",_hoisted_48,toDisplayString$1(l.value)+" tokens ",1),createBaseVNode("div",{class:"autocomplete-container",ref_key:"autocompleteContainerRef",ref:o,style:normalizeStyle({top:`${s.value.top}px`,left:`${ya.value.left}px`,display:R.value?"block":"none",width:`${fe.value}px`,maxHeight:`${oe.value}px`})},[createBaseVNode("button",{class:"close-autocomplete-btn",onClick:withModifiers(na,["stop"])},"×"),(openBlock(!0),createElementBlock(Fragment,null,renderList(F.value,(he,we)=>(openBlock(),createElementBlock("div",{key:we,class:normalizeClass(["autocomplete-item",{selected:we===H.value}]),onClick:withModifiers($e=>aa(we,$e),["stop"]),ref_for:!0,ref:$e=>{$e&&we===H.value&&(j.value=$e)}},[createBaseVNode("span",_hoisted_50,toDisplayString$1(he.text),1),createBaseVNode("span",_hoisted_51,toDisplayString$1(he.desc),1)],10,_hoisted_49))),128))],4)],512),createBaseVNode("div",_hoisted_52,[createBaseVNode("div",_hoisted_53,[withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":k[1]||(k[1]=he=>V.value=he),class:"prompt-input-translate-area-textarea",onKeyup:k[2]||(k[2]=withKeys(he=>Zt(),["enter"])),placeholder:unref(n)("promptBox.translatePlaceholder")},null,40,_hoisted_54),[[vModelText,V.value]]),createBaseVNode("button",{class:"translate-btn",style:{"margin-left":"8px"},onClick:k[3]||(k[3]=he=>Zt())}," 翻译 ")]),createBaseVNode("button",{class:"translate-btn",onClick:Ut,title:unref(n)("promptBox.oneClickTranslate")},[k[29]||(k[29]=createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"token-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M677.676657 294.6142c19.165116 57.5433 44.715939 102.2992 89.431879 147.0551 38.322239-38.3622 63.873063-89.5118 83.038178-147.0551h-172.470057z m-421.56861 319.685h166.076358l-83.038179-223.7795-83.038179 223.7795z","p-id":"2419"}),createBaseVNode("path",{d:"M894.854661 0.504H128.353929C58.095158 0.504 0.607803 58.0473 0.607803 128.378v767.244c0 70.3307 57.487355 127.874 127.746126 127.874h766.500733c70.258771 0 127.746126-57.5433 127.746126-127.874V128.378c0-70.3307-51.101647-127.874-127.746126-127.874zM581.867062 825.2913c-12.771416 12.7874-25.550824 12.7874-38.322239 12.7874-6.3937 0-19.165116 0-25.550824-6.3937-6.3937-6.3937-12.779408 0-12.779408-6.3937s-6.385708-12.7874-12.771415-25.5748c-6.3937-12.7874-6.3937-19.1811-12.779408-31.9685l-25.542832-70.3307H230.557224L205.0064 767.748c-12.771416 25.5748-19.165116 44.7559-25.550824 57.5433-6.3937 12.7874-19.165116 12.7874-38.322239 12.7874-12.779408 0-25.550824-6.3937-38.330231-12.7874-12.771416-12.7874-19.157124-19.1811-19.157124-31.9685 0-6.3937 0-12.7874 6.385708-25.5748 6.3937-12.7874 6.3937-19.1811 12.771416-31.9685l140.525533-358.0472c6.3937-12.7874 6.3937-25.5748 12.779408-38.3622 6.385708-12.7874 12.771416-25.5748 19.157124-31.9685 6.3937-6.3937 12.779408-19.1811 25.550823-25.5748 12.779408-6.3937 25.550824-6.3937 38.330232-6.3937 12.771416 0 25.542832 0 38.322239 6.3937 12.771416 6.3937 19.165116 12.7874 25.550824 25.5748 6.385708 6.3937 12.771416 19.1811 19.157124 31.9685 6.3937 12.7874 12.779408 25.5748 19.165115 44.7559l140.525534 351.6535c12.771416 25.5748 19.165116 44.7559 19.165116 57.5433-6.3937 6.3937-12.779408 19.1811-19.165116 31.9685zM933.176901 575.937c-70.258771-25.5748-121.360418-57.5433-166.076358-95.9055-44.707947 44.7559-102.195302 76.7244-172.462065 95.9055l-19.157124-31.9685c70.258771-19.1811 127.746126-44.7559 172.462066-89.5118C703.22748 409.7008 664.905241 352.1575 652.125833 288.2205h-63.873063v-25.5748h172.470058c-12.7874-19.1811-25.558816-44.7559-38.330232-63.937l19.157124-6.3937c12.779408 19.1811 31.944524 44.7559 44.715939 70.3307h159.682658v31.9685h-63.873063c-19.157124 63.937-51.093655 121.4803-89.423887 159.8425 44.715939 38.3622 95.809594 70.3307 166.076358 89.5118l-25.550824 31.9685z","p-id":"2420"})],-1)),createBaseVNode("span",_hoisted_56,toDisplayString$1(unref(n)("promptBox.oneClickTranslate")),1)],8,_hoisted_55),createBaseVNode("button",{class:"translate-btn random-tag-settings-btn",onClick:Ma,title:unref(n)("promptBox.randomTagSettings")},[k[30]||(k[30]=createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"utils-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M512 409.6c-56.32 0-102.4 46.08-102.4 102.4s46.08 102.4 102.4 102.4 102.4-46.08 102.4-102.4-46.08-102.4-102.4-102.4z m0 153.6c-28.16 0-51.2-23.04-51.2-51.2s23.04-51.2 51.2-51.2 51.2 23.04 51.2 51.2-23.04 51.2-51.2 51.2z"}),createBaseVNode("path",{d:"M512 204.8c-25.6 0-51.2 2.56-76.8 7.68l-15.36-61.44c-2.56-10.24-10.24-17.92-20.48-20.48-10.24-2.56-20.48 0-28.16 7.68l-76.8 76.8c-5.12 5.12-7.68 12.8-7.68 20.48s2.56 15.36 7.68 20.48l76.8 76.8c5.12 5.12 12.8 7.68 20.48 7.68 2.56 0 5.12 0 7.68-2.56 10.24-2.56 17.92-10.24 20.48-20.48l15.36-61.44c25.6-5.12 51.2-7.68 76.8-7.68 140.8 0 256 115.2 256 256s-115.2 256-256 256-256-115.2-256-256c0-25.6 2.56-51.2 7.68-76.8l61.44-15.36c10.24-2.56 17.92-10.24 20.48-20.48 2.56-10.24 0-20.48-7.68-28.16l-76.8-76.8c-5.12-5.12-12.8-7.68-20.48-7.68s-15.36 2.56-20.48 7.68l-76.8 76.8c-7.68 7.68-10.24 17.92-7.68 28.16 2.56 10.24 10.24 17.92 20.48 20.48l61.44 15.36c-5.12 25.6-7.68 51.2-7.68 76.8 0 168.96 138.24 307.2 307.2 307.2s307.2-138.24 307.2-307.2-138.24-307.2-307.2-307.2z"})],-1)),createBaseVNode("span",_hoisted_58,toDisplayString$1(unref(n)("promptBox.randomTagSettings")),1)],8,_hoisted_57),createBaseVNode("button",{class:"translate-btn random-tag-btn",onClick:Aa,title:unref(n)("promptBox.oneClickRandomTag")},[k[31]||(k[31]=createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"utils-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M832 512c0-176-144-320-320-320S192 336 192 512s144 320 320 320 320-144 320-320z m-384 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m128-128c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m-256 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m128-128c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m256 256c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m-256 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m-128 128c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z m256 0c0-35.2 28.8-64 64-64s64 28.8 64 64-28.8 64-64 64-64-28.8-64-64z"})],-1)),createBaseVNode("span",_hoisted_60,toDisplayString$1(unref(n)("promptBox.oneClickRandomTag")),1)],8,_hoisted_59)]),d.value.length>0?(openBlock(),createElementBlock("div",_hoisted_61,[(openBlock(!0),createElementBlock(Fragment,null,renderList(d.value,(he,we)=>(openBlock(),createElementBlock(Fragment,{key:"tag-item-"+we},[createBaseVNode("div",{class:normalizeClass(["token-item-box",{"token-item-box-disabled":he.isHidden}]),draggable:!he.isEditing,onDragstart:$e=>wa(we,$e),onDragover:withModifiers($e=>Sa(we,$e),["prevent"]),onDrop:$e=>ka(we,$e),onDblclick:$e=>Ea(we),style:normalizeStyle({backgroundColor:he.color})},[he.text===` +`?(openBlock(),createElementBlock("div",_hoisted_63,[createBaseVNode("span",{class:"token-symbol",title:unref(n)("promptBox.newline")},"↵",8,_hoisted_64)])):he.text===" "?(openBlock(),createElementBlock("div",{key:1,class:"token-item tab-token",onMouseenter:$e=>yt(we,$e),onMouseleave:$e=>rt()},[createBaseVNode("span",{class:"token-symbol",title:unref(n)("promptBox.tab")},"→",8,_hoisted_66)],40,_hoisted_65)):he.isLoraTag?(openBlock(),createElementBlock("div",{key:2,class:"lora-tag-icon",title:unref(n)("promptBox.loraTag"),onMouseenter:$e=>yt(we,$e),onMouseleave:$e=>rt()},[k[32]||(k[32]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"15",height:"15"},[createBaseVNode("path",{d:"M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"})],-1)),createBaseVNode("span",_hoisted_68,toDisplayString$1(he.text),1)],40,_hoisted_67)):he.text&&!he.isLoraTag?(openBlock(),createElementBlock("div",{key:3,class:normalizeClass(["token-item",{punctuation:he.isPunctuation}]),onMouseenter:$e=>yt(we,$e),onMouseleave:$e=>rt()},[!he.isEditing||he.isPunctuation?(openBlock(),createElementBlock("span",{key:0,onClick:$e=>!he.isPunctuation&&zt(we)},toDisplayString$1(he.text),9,_hoisted_70)):he.isPunctuation?createCommentVNode("",!0):(openBlock(),createElementBlock("input",{key:1,value:he.text,onInput:$e=>Ht(we,$e),onBlur:$e=>Lt(we),onKeyup:withKeys($e=>Lt(we),["enter"]),ref_for:!0,ref:$e=>{$e&&(m[we]=$e)}},null,40,_hoisted_71)),createBaseVNode("button",{class:"quick-delete-btn",onClick:withModifiers($e=>wt(we),["stop"]),title:unref(n)("promptBox.delete"),style:{"margin-left":"4px"}},k[33]||(k[33]=[createBaseVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z",fill:"#ff4d4f70"})],-1)]),8,_hoisted_72)],42,_hoisted_69)):createCommentVNode("",!0),he.text!==` +`&&he.text!==" "&&!he.isLoraTag?(openBlock(),createElementBlock("div",_hoisted_73,[Qe(he.text)?(openBlock(),createElementBlock("div",{key:0,onClick:$e=>ha(he.text,he),class:"translate-button",title:unref(n)("promptBox.translate")},k[34]||(k[34]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",class:"token-item-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M677.676657 294.6142c19.165116 57.5433 44.715939 102.2992 89.431879 147.0551 38.322239-38.3622 63.873063-89.5118 83.038178-147.0551h-172.470057z m-421.56861 319.685h166.076358l-83.038179-223.7795-83.038179 223.7795z","p-id":"2419"}),createBaseVNode("path",{d:"M894.854661 0.504H128.353929C58.095158 0.504 0.607803 58.0473 0.607803 128.378v767.244c0 70.3307 57.487355 127.874 127.746126 127.874h766.500733c70.258771 0 127.746126-57.5433 127.746126-127.874V128.378c0-70.3307-51.101647-127.874-127.746126-127.874zM581.867062 825.2913c-12.771416 12.7874-25.550824 12.7874-38.322239 12.7874-6.3937 0-19.165116 0-25.550824-6.3937-6.3937-6.3937-12.779408 0-12.779408-6.3937s-6.385708-12.7874-12.771415-25.5748c-6.3937-12.7874-6.3937-19.1811-12.779408-31.9685l-25.542832-70.3307H230.557224L205.0064 767.748c-12.771416 25.5748-19.165116 44.7559-25.550824 57.5433-6.3937 12.7874-19.165116 12.7874-38.322239 12.7874-12.779408 0-25.550824-6.3937-38.330231-12.7874-12.771416-12.7874-19.157124-19.1811-19.157124-31.9685 0-6.3937 0-12.7874 6.385708-25.5748 6.3937-12.7874 6.3937-19.1811 12.771416-31.9685l140.525533-358.0472c6.3937-12.7874 6.3937-25.5748 12.779408-38.3622 6.385708-12.7874 12.771416-25.5748 19.157124-31.9685 6.3937-6.3937 12.779408-19.1811 25.550823-25.5748 12.779408-6.3937 25.550824-6.3937 38.330232-6.3937 12.771416 0 25.542832 0 38.322239 6.3937 12.771416 6.3937 19.165116 12.7874 25.550824 25.5748 6.385708 6.3937 12.771416 19.1811 19.157124 31.9685 6.3937 12.7874 12.779408 25.5748 19.165115 44.7559l140.525534 351.6535c12.771416 25.5748 19.165116 44.7559 19.165116 57.5433-6.3937 6.3937-12.779408 19.1811-19.165116 31.9685zM933.176901 575.937c-70.258771-25.5748-121.360418-57.5433-166.076358-95.9055-44.707947 44.7559-102.195302 76.7244-172.462065 95.9055l-19.157124-31.9685c70.258771-19.1811 127.746126-44.7559 172.462066-89.5118C703.22748 409.7008 664.905241 352.1575 652.125833 288.2205h-63.873063v-25.5748h172.470058c-12.7874-19.1811-25.558816-44.7559-38.330232-63.937l19.157124-6.3937c12.779408 19.1811 31.944524 44.7559 44.715939 70.3307h159.682658v31.9685h-63.873063c-19.157124 63.937-51.093655 121.4803-89.423887 159.8425 44.715939 38.3622 95.809594 70.3307 166.076358 89.5118l-25.550824 31.9685z","p-id":"2420"})],-1)]),8,_hoisted_74)):createCommentVNode("",!0),createBaseVNode("span",_hoisted_75,toDisplayString$1(he.translate?he.translate:""),1)])):createCommentVNode("",!0)],46,_hoisted_62),he.text===` +`?(openBlock(),createElementBlock("div",_hoisted_76)):createCommentVNode("",!0)],64))),128))])):createCommentVNode("",!0),ge.value?(openBlock(),createElementBlock("div",{key:1,class:"tag-tips-box",style:normalizeStyle(re.value)},[createBaseVNode("div",_hoisted_77,[createBaseVNode("p",{innerHTML:unref(n)("promptBox.tagTips")},null,8,_hoisted_78)])],4)):createCommentVNode("",!0),withDirectives(createBaseVNode("div",{class:"token-controls",style:normalizeStyle(b.value),onMouseenter:k[14]||(k[14]=he=>v.value=!0),onMouseleave:bt},[(se=d.value[g.value])!=null&&se.isLoraTag?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_79,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":k[4]||(k[4]=he=>Ce.value=he),step:"0.1",class:"weight-input",onChange:Me},null,544),[[vModelText,Ce.value]]),createBaseVNode("span",_hoisted_80,toDisplayString$1(unref(n)("promptBox.weight")),1)])),(de=d.value[g.value])!=null&&de.isLoraTag?(openBlock(),createElementBlock("div",_hoisted_81,[createBaseVNode("div",_hoisted_82,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":k[5]||(k[5]=he=>Ie.value=he),step:"0.1",class:"weight-input",onChange:Te},null,544),[[vModelText,Ie.value]]),createBaseVNode("span",_hoisted_83,toDisplayString$1(unref(n)("promptBox.modelWeight")),1)]),createBaseVNode("div",_hoisted_84,[withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":k[6]||(k[6]=he=>We.value=he),step:"0.1",class:"weight-input",onChange:Te},null,544),[[vModelText,We.value]]),createBaseVNode("span",_hoisted_85,toDisplayString$1(unref(n)("promptBox.textWeight")),1)])])):createCommentVNode("",!0),createBaseVNode("button",{class:"favour-btn",onClick:k[7]||(k[7]=he=>Da(d.value[g.value])),title:unref(n)("promptBox.favour")},k[35]||(k[35]=[createBaseVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none"},[createBaseVNode("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z",fill:"#FFD700"})],-1)]),8,_hoisted_86),createBaseVNode("button",{onClick:Et,class:"delete-btn",title:unref(n)("promptBox.delete")},k[36]||(k[36]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,_hoisted_87),(ke=d.value[g.value])!=null&&ke.isLoraTag?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_88,[createBaseVNode("div",_hoisted_89,[k[37]||(k[37]=createBaseVNode("div",{class:"bracket-btn"}," () ",-1)),createBaseVNode("div",_hoisted_90,[createBaseVNode("button",{class:"vertical-btn",onClick:k[8]||(k[8]=he=>be("(")),title:unref(n)("promptBox.addBracket")}," + ",8,_hoisted_91),createBaseVNode("button",{class:"vertical-btn",onClick:k[9]||(k[9]=he=>ye("(")),title:unref(n)("promptBox.removeLayer")}," - ",8,_hoisted_92)])]),createBaseVNode("div",_hoisted_93,[k[38]||(k[38]=createBaseVNode("div",{class:"bracket-btn"}," [] ",-1)),createBaseVNode("div",_hoisted_94,[createBaseVNode("button",{class:"vertical-btn",onClick:k[10]||(k[10]=he=>be("[")),title:unref(n)("promptBox.addBracket")}," + ",8,_hoisted_95),createBaseVNode("button",{class:"vertical-btn",onClick:k[11]||(k[11]=he=>ye("[")),title:unref(n)("promptBox.removeLayer")}," - ",8,_hoisted_96)])]),createBaseVNode("div",_hoisted_97,[k[39]||(k[39]=createBaseVNode("div",{class:"bracket-btn"}," {} ",-1)),createBaseVNode("div",_hoisted_98,[createBaseVNode("button",{class:"vertical-btn",onClick:k[12]||(k[12]=he=>be("{")),title:unref(n)("promptBox.addBracket")}," + ",8,_hoisted_99),createBaseVNode("button",{class:"vertical-btn",onClick:k[13]||(k[13]=he=>ye("{")),title:unref(n)("promptBox.removeLayer")}," - ",8,_hoisted_100)])])])),createBaseVNode("button",{class:"line-token-btn",onClick:Vt,title:unref(n)("promptBox.addLineToken"),style:{"margin-left":"8px"}},k[40]||(k[40]=[createBaseVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none"},[createBaseVNode("path",{d:"M5 19h14v-2H5v2zm0-7h14v-2H5v2zm0-7v2h14V5H5z",fill:"#888"}),createBaseVNode("path",{d:"M7 17v-2h2v2H7zm0-7V8h2v2H7zm0-7V3h2v2H7z",fill:"#4285f4"})],-1)]),8,_hoisted_101)],36),[[vShow,g.value!==null&&d.value[g.value]]]),createBaseVNode("div",_hoisted_102,[withDirectives(createBaseVNode("div",{class:"token-controls",style:normalizeStyle(ae.value),onMouseenter:k[15]||(k[15]=he=>v.value=!0),onMouseleave:bt},[createBaseVNode("div",_hoisted_103,[createBaseVNode("div",_hoisted_104,"选中 "+toDisplayString$1(G.value.length)+" 个标签",1),createBaseVNode("div",{class:"weilin-comfyui-selection-actions-buttons"},[createBaseVNode("button",{class:"delete-btn copy-btn",onClick:da,title:"复制"},k[41]||(k[41]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"})],-1)])),createBaseVNode("button",{class:"delete-btn",onClick:pa,title:"禁用"},k[42]||(k[42]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("circle",{cx:"12",cy:"12",r:"10",fill:"none",stroke:"#ff4d4f","stroke-width":"2"}),createBaseVNode("path",{d:"M8.5 8.5l7 7",stroke:"#ff4d4f","stroke-width":"2","stroke-linecap":"round"})],-1)])),createBaseVNode("button",{class:"delete-btn enable-btn",onClick:fa,title:"启用"},k[43]||(k[43]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})],-1)])),createBaseVNode("button",{class:"delete-btn",onClick:ga,title:"删除"},k[44]||(k[44]=[createBaseVNode("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]))])])],36),[[vShow,W.value]]),createBaseVNode("div",{class:"tag-manager-header",onClick:ve},[createBaseVNode("div",_hoisted_105,[k[45]||(k[45]=createBaseVNode("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",class:"tag-icon",width:"24",height:"24"},[createBaseVNode("path",{d:"M129 128h350v80H209v224h270v80H129V128zM129 895V576h768v319H129z m80-239v159h608V656H209zM730 356c19.882 0 36-16.118 36-36s-16.118-36-36-36-36 16.118-36 36 16.118 36 36 36z"}),createBaseVNode("path",{d:"M578.517 214.386a32.002 32.002 0 0 0-16.01 27.731l0.058 155.918a31.998 31.998 0 0 0 16 27.701l135.156 78.033a32.002 32.002 0 0 0 31.99 0.006l135.058-77.909a32.002 32.002 0 0 0 16.01-27.731l-0.058-155.918a32 32 0 0 0-16-27.701l-135.157-78.033a31.998 31.998 0 0 0-31.989-0.005l-135.058 77.908z m67.002 58.058l84.033-48.591 84.181 48.715 0.034 95.24-84.034 48.591-84.18-48.714-0.034-95.241z"})],-1)),createBaseVNode("span",_hoisted_106,toDisplayString$1(unref(n)("controls.loraManager")),1)]),createBaseVNode("div",_hoisted_107,[(openBlock(),createElementBlock("svg",{class:normalizeClass(["collapse-icon",{"is-collapsed":!le.value}]),viewBox:"0 0 24 24"},k[46]||(k[46]=[createBaseVNode("path",{d:"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"},null,-1)]),2))])]),withDirectives(createBaseVNode("div",_hoisted_108,[createVNode(LoraManager,{loraManager:"prompt_inner"})],512),[[vShow,le.value]])]),createBaseVNode("div",_hoisted_109,[createBaseVNode("div",{class:"tag-manager-header",onClick:ue},[createBaseVNode("div",_hoisted_110,[k[47]||(k[47]=createBaseVNode("svg",{class:"tag-icon",viewBox:"0 0 24 24"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",_hoisted_111,toDisplayString$1(unref(n)("controls.tagManager")),1)]),createBaseVNode("div",_hoisted_112,[(openBlock(),createElementBlock("svg",{class:normalizeClass(["collapse-icon",{"is-collapsed":!ht.value}]),viewBox:"0 0 24 24"},k[48]||(k[48]=[createBaseVNode("path",{d:"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"},null,-1)]),2))])]),withDirectives(createBaseVNode("div",_hoisted_113,[createVNode(TagManager)],512),[[vShow,ht.value]])])],6)]),createVNode(RandomSetting,{ref_key:"randomSettingItem",ref:a},null,512),createVNode(favourItem,{ref_key:"favourItemRef",ref:Gt},null,512)],64)}}},PromptBox=_export_sfc(_sfc_main$a,[["__scopeId","data-v-ebaf611f"]]),_hoisted_1$9={class:"container"},_hoisted_2$8={class:"tab-container"},_hoisted_3$8={key:0},_hoisted_4$7={class:"search-container"},_hoisted_5$6=["placeholder"],_hoisted_6$6=["title"],_hoisted_7$6=["title","disabled"],_hoisted_8$6=["title"],_hoisted_9$6={class:"history-list"},_hoisted_10$5={class:"action-buttons"},_hoisted_11$5=["onClick","title"],_hoisted_12$5=["onClick","title"],_hoisted_13$4=["onClick","title"],_hoisted_14$4=["value"],_hoisted_15$4={key:1},_hoisted_16$4={class:"search-container"},_hoisted_17$4=["placeholder"],_hoisted_18$2=["title"],_hoisted_19$2=["title"],_hoisted_20$2=["title","disabled"],_hoisted_21$2=["title"],_hoisted_22$2={class:"history-list"},_hoisted_23$2={key:0,class:"favor-name"},_hoisted_24$2={class:"action-buttons"},_hoisted_25$2=["onClick","title"],_hoisted_26$2=["onClick","title"],_hoisted_27$2=["onClick","title"],_hoisted_28$2=["value"],_hoisted_29$2={key:2,class:"weilin-tools-dialog-overlay"},_hoisted_30$2={class:"weilin-tools-dialog-header"},_hoisted_31$2={class:"weilin-tools-dialog-body"},_hoisted_32$2={class:"form-group"},_hoisted_33$2=["placeholder"],_hoisted_34$2={class:"form-group"},_hoisted_35$2=["placeholder"],_hoisted_36$2={class:"form-group"},_hoisted_37$1={class:"color-picker"},_hoisted_38$1={class:"color-controls"},_hoisted_39$1={class:"alpha-control"},_hoisted_40$1={class:"alpha-value"},_hoisted_41$1={class:"weilin-tools-dialog-footer"},_hoisted_42$1={key:3,class:"weilin-tools-dialog-overlay"},_hoisted_43$1={class:"weilin-tools-dialog-header"},_hoisted_44={class:"weilin-tools-dialog-body"},_hoisted_45={class:"confirm-message"},_hoisted_46={class:"weilin-tools-dialog-footer"},_sfc_main$9={__name:"history_index",setup(e){const{t}=useI18n(),a=ref(""),n=ref([]),o=ref([]),r=ref([]),s=ref([]),l=ref("history"),c=ref([]),f=ref(!1),u=ref(!1),d=ref(!1),m=ref({hex:"rgba(255, 123, 2, .4)",alpha:100}),g=ref({name:"",tag:"",color:"rgba(255, 123, 2, .4)"}),v=ref(!1),b=ref(0),$=D=>JSON.parse(D).prompt,w=D=>({hex:"#FFFFFF",alpha:0}),C=D=>{const{hex:K,alpha:x}=w();m.value={hex:K,alpha:x}},P=()=>{d.value=!1,g.value={id:"",name:"",tag:"",backgroundColor:"transparent"},C(),f.value=!0},y=D=>{const K=D.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([0-9.]+))?\)/);if(K){const[,x,S,I,X]=K,ie=`#${((1<<24)+(parseInt(x)<<16)+(parseInt(S)<<8)+parseInt(I)).toString(16).slice(1)}`,pe=X?Math.round(parseFloat(X)*100):100;return{hex:ie,alpha:pe}}return{hex:"#FF7B02",alpha:50}},E=D=>{d.value=!0,g.value={...D},m.value=y(D.color),f.value=!0},R=()=>{const D=ee(m.value.hex,m.value.alpha);g.value.color=D},F=()=>{f.value=!1,g.value={name:"",tag:"",color:"rgba(255, 123, 2, .4)"},d.value=!1},H=ref(""),j=ref(null),fe=computed(()=>{if(!j.value)return"";switch(H.value){case"history":return t("history.deleteHistoryConfirm",{name:j.value.tag});case"favorite":return t("history.deleteFavoriteConfirm",{name:j.value.tag});case"deleteSelected":return t("history.confirmDeleteSelected");case"deleteSelectedFavorite":return t("history.confirmDeleteSelected");default:return""}}),oe=D=>{H.value="history",j.value=D,u.value=!0},V=D=>{H.value="favorite",j.value=D,u.value=!0},q=()=>{v.value=!1,b.value=0,H.value="deleteSelected",j.value=c.value,u.value=!0},Q=()=>{v.value=!1,b.value=0,H.value="deleteSelectedFavorite",j.value=c.value,u.value=!0},O=async()=>{try{switch(H.value){case"history":historyApi.deleteHistory(j.value.id_index).then(D=>{W(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"})});break;case"favorite":historyApi.deleteFavorite(j.value.id_index).then(D=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"})});break;case"deleteSelected":historyApi.batchDeleteHistory(c.value).then(D=>{W(),message$1({type:"success",str:"message.deleteSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"})});break;case"deleteSelectedFavorite":historyApi.batchDeleteFavorite(j.value).then(D=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.deleteSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"})});break}A()}catch{message$1({type:"warn",str:"message.networkError"})}},G=D=>{D.target.checked?l.value==="history"?c.value=n.value.map(K=>K.id_index):c.value=r.value.map(K=>K.id_index):c.value=[]},ee=(D,K)=>{const x=parseInt(D.slice(1,3),16),S=parseInt(D.slice(3,5),16),I=parseInt(D.slice(5,7),16);return`rgba(${x}, ${S}, ${I}, ${K/100})`},A=()=>{u.value=!1,H.value="",j.value=null},L=()=>{if(!g.value.tag){message$1({type:"warn",str:"history.dialog.tag_placeholder"});return}d.value?historyApi.editFavorite({id_index:g.value.id_index,name:g.value.name,tag:g.value.tag,color:g.value.color}).then(D=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.editSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"})}):historyApi.addFavorite({name:g.value.name,tag:g.value.tag,color:g.value.color}).then(D=>{ae(),window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),message$1({type:"success",str:"message.addSuccess"})}).catch(D=>{message$1({type:"warn",str:"message.networkError"})}),F()},W=()=>{historyApi.getHistory({}).then(D=>{n.value=D.data,o.value=n.value}).catch(D=>{message$1({type:"warn",str:"message.networkError"})})},ae=()=>{historyApi.getFavorite().then(D=>{r.value=D.data,s.value=r.value}).catch(D=>{message$1({type:"warn",str:"message.networkError"})})},Y=()=>{o.value=n.value.filter(D=>D.tag.includes(a.value))},ne=()=>{s.value=r.value.filter(D=>D.tag.includes(a.value))},te=()=>{W()},ge=()=>{ae()},re=D=>{historyApi.addFavorite({tag:D.tag}).then(K=>{K.code===200?(window.postMessage({type:"weilin_prompt_ui_refresh_all_data"},"*"),ae(),message$1({type:"success",str:"message.addFavoriteSuccess"})):message$1({type:"success",str:"message.addFavoriteIsExist"})}).catch(K=>{message$1({type:"warn",str:"message.networkError"})})},B=D=>{window.postMessage({type:"weilin_prompt_ui_user_history_tag",tagText:D.tag},"*")},z=()=>{c.value=[],v.value=!0},Z=()=>{c.value=[],v.value=!1,b.value=0};return onMounted(()=>{W(),ae()}),(D,K)=>(openBlock(),createElementBlock("div",_hoisted_1$9,[createBaseVNode("h1",null,toDisplayString$1(l.value==="history"?unref(t)("history.title"):unref(t)("history.favorites")),1),createBaseVNode("div",_hoisted_2$8,[createBaseVNode("button",{class:normalizeClass([{active:l.value==="history"},"tab-button"]),onClick:K[0]||(K[0]=x=>l.value="history")},toDisplayString$1(unref(t)("history.history")),3),createBaseVNode("button",{class:normalizeClass([{active:l.value==="favorites"},"tab-button"]),onClick:K[1]||(K[1]=x=>l.value="favorites")},toDisplayString$1(unref(t)("history.favorites")),3)]),l.value==="history"?(openBlock(),createElementBlock("div",_hoisted_3$8,[createBaseVNode("div",_hoisted_4$7,[createBaseVNode("button",{class:"refresh-btn",onClick:te},K[14]||(K[14]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"refresh-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":K[2]||(K[2]=x=>a.value=x),placeholder:unref(t)("history.search_placeholder"),onInput:Y,class:"search-input"},null,40,_hoisted_5$6),[[vModelText,a.value]]),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[3]||(K[3]=x=>b.value=x),value:1,class:"tag-checkbox",onChange:G},null,544)),[[vModelCheckbox,b.value]]):createCommentVNode("",!0),v.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:1,class:"bulk-delete-btn",onClick:z,title:unref(t)("history.bulk_delete")},K[15]||(K[15]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_6$6)),v.value?(openBlock(),createElementBlock("button",{key:2,class:"bulk-delete-btn",onClick:q,title:unref(t)("history.sure_delete"),disabled:c.value.length===0},K[16]||(K[16]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M392.533333 806.4L85.333333 503.466667l59.733334-59.733334 247.466666 247.466667L866.133333 213.333333l59.733334 59.733334L392.533333 806.4z"})],-1)]),8,_hoisted_7$6)):createCommentVNode("",!0),v.value?(openBlock(),createElementBlock("button",{key:3,class:"bulk-delete-btn",onClick:Z,title:unref(t)("history.cancel_delete")},K[17]||(K[17]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M794.8 794.8c-14 14-36.9 14-50.9 0L229.2 280.1c-14-14-14-36.9 0-50.9s36.9-14 50.9 0L794.9 744c13.9 13.9 13.9 36.8-0.1 50.8z"}),createBaseVNode("path",{d:"M794.8 229.2c14 14 14 36.9 0 50.9L280.1 794.8c-14 14-36.9 14-50.9 0s-14-36.9 0-50.9L744 229.1c13.9-13.9 36.8-13.9 50.8 0.1z"})],-1)]),8,_hoisted_8$6)):createCommentVNode("",!0)]),createBaseVNode("ul",_hoisted_9$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.value,x=>(openBlock(),createElementBlock("li",{key:x.id_index,class:"history-item"},[createBaseVNode("span",null,toDisplayString$1($(x.tag)),1),createBaseVNode("div",_hoisted_10$5,[createBaseVNode("button",{onClick:S=>re(x),class:"favorite-btn",title:unref(t)("history.add_to_favorites")},K[18]||(K[18]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"24",height:"24",class:"favorite-icon"},[createBaseVNode("path",{d:"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"})],-1)]),8,_hoisted_11$5),createBaseVNode("button",{onClick:S=>oe(x),class:"delete-favorite-btn",title:unref(t)("history.delete_history")},K[19]||(K[19]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_12$5),createBaseVNode("button",{onClick:S=>B(x),class:"use-btn",title:unref(t)("history.use_item")},K[20]||(K[20]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"use-icon"},[createBaseVNode("path",{d:"M915.515273 142.819385 98.213046 458.199122c-46.058539 17.772838-44.90475 43.601756 2.348455 57.622994l197.477685 58.594874 80.292024 238.91085c10.51184 31.277988 37.972822 37.873693 61.462483 14.603752l103.584447-102.611545 204.475018 149.840224c26.565749 19.467242 53.878547 9.222132 61.049613-23.090076l149.210699-672.34491C965.264096 147.505054 946.218922 130.971848 915.515273 142.819385zM791.141174 294.834331l-348.61988 310.610267c-6.268679 5.58499-11.941557 16.652774-12.812263 24.846818l-15.390659 144.697741c-1.728128 16.24808-7.330491 16.918483-12.497501 1.344894l-67.457277-203.338603c-2.638691-7.954906 0.975968-17.705389 8.022355-21.931178l442.114555-265.181253C812.67481 268.984974 815.674251 272.975713 791.141174 294.834331z","p-id":"18085"})],-1)]),8,_hoisted_13$4),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[4]||(K[4]=S=>c.value=S),value:x.id_index,class:"tag-checkbox"},null,8,_hoisted_14$4)),[[vModelCheckbox,c.value]]):createCommentVNode("",!0)])]))),128))])])):(openBlock(),createElementBlock("div",_hoisted_15$4,[createBaseVNode("div",_hoisted_16$4,[createBaseVNode("button",{class:"refresh-btn",onClick:ge},K[21]||(K[21]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"refresh-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":K[5]||(K[5]=x=>a.value=x),placeholder:unref(t)("history.search_placeholder"),onInput:ne,class:"search-input"},null,40,_hoisted_17$4),[[vModelText,a.value]]),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[6]||(K[6]=x=>b.value=x),value:1,class:"tag-checkbox",onChange:G},null,544)),[[vModelCheckbox,b.value]]):createCommentVNode("",!0),createBaseVNode("button",{class:"add-his-btn",onClick:P,title:unref(t)("history.add_new")},K[22]||(K[22]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"add-icon"},[createBaseVNode("path",{d:"M19 11h-6V5c0-.55-.45-1-1-1s-1 .45-1 1v6H5c-.55 0-1 .45-1 1s.45 1 1 1h6v6c0 .55.45 1 1 1s1-.45 1-1v-6h6c.55 0 1-.45 1-1s-.45-1-1-1z"})],-1)]),8,_hoisted_18$2),v.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:1,class:"bulk-delete-btn",onClick:z,title:unref(t)("history.bulk_delete")},K[23]||(K[23]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_19$2)),v.value?(openBlock(),createElementBlock("button",{key:2,class:"bulk-delete-btn",onClick:Q,title:unref(t)("history.sure_delete"),disabled:c.value.length===0},K[24]||(K[24]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M392.533333 806.4L85.333333 503.466667l59.733334-59.733334 247.466666 247.466667L866.133333 213.333333l59.733334 59.733334L392.533333 806.4z"})],-1)]),8,_hoisted_20$2)):createCommentVNode("",!0),v.value?(openBlock(),createElementBlock("button",{key:3,class:"bulk-delete-btn",onClick:Z,title:unref(t)("history.cancel_delete")},K[25]||(K[25]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"16",height:"16",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M794.8 794.8c-14 14-36.9 14-50.9 0L229.2 280.1c-14-14-14-36.9 0-50.9s36.9-14 50.9 0L794.9 744c13.9 13.9 13.9 36.8-0.1 50.8z"}),createBaseVNode("path",{d:"M794.8 229.2c14 14 14 36.9 0 50.9L280.1 794.8c-14 14-36.9 14-50.9 0s-14-36.9 0-50.9L744 229.1c13.9-13.9 36.8-13.9 50.8 0.1z"})],-1)]),8,_hoisted_21$2)):createCommentVNode("",!0)]),createBaseVNode("ul",_hoisted_22$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(s.value,x=>(openBlock(),createElementBlock("li",{key:x.id_index,class:"history-item"},[createBaseVNode("div",{class:"favor-name-box",style:normalizeStyle({backgroundColor:x.color||"transparent"})},[x.name.length>0?(openBlock(),createElementBlock("span",_hoisted_23$2,toDisplayString$1(x.name),1)):createCommentVNode("",!0)],4),createBaseVNode("span",null,toDisplayString$1($(x.tag)),1),createBaseVNode("div",_hoisted_24$2,[createBaseVNode("button",{onClick:S=>E(x),class:"delete-favorite-btn",title:unref(t)("history.edit_favorite")},K[26]||(K[26]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M200.59 626.48v129.5h129.5l381.93-381.93-129.5-129.5-381.93 381.93z m611.56-352.57c13.45-13.41 13.48-35.18 0.07-48.62l-0.07-0.07-80.81-80.81c-13.41-13.45-35.18-13.48-48.62-0.07l-0.07 0.07-63.19 63.19 129.5 129.5 63.19-63.19zM131.52 824.96h759.71c23.02 0 34.53 11.51 34.53 34.53 0 23.02-11.51 34.53-34.53 34.53H131.52c-23.02 0-34.53-11.51-34.53-34.53 0-23.02 11.51-34.53 34.53-34.53z","p-id":"2346"})],-1)]),8,_hoisted_25$2),createBaseVNode("button",{onClick:S=>V(x),class:"delete-favorite-btn",title:unref(t)("history.delete_favorite")},K[27]||(K[27]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"delete-favorite-icon"},[createBaseVNode("path",{d:"M907.618072 232.742353 744.713682 232.742353 744.713682 116.382952c0-12.852708-10.419786-23.272495-23.272495-23.272495L302.556765 93.110457c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 116.360425L116.380904 232.743377c-12.852708 0-23.272495 10.419786-23.272495 23.272495s10.418762 23.272495 23.272495 23.272495l791.237168 0c12.852708 0 23.272495-10.419786 23.272495-23.272495S920.469756 232.742353 907.618072 232.742353zM325.829259 139.654423l372.340458 0 0 93.08793L325.829259 232.742353 325.829259 139.654423zM791.257647 372.362985c-12.852708 0-23.272495 10.418762-23.272495 23.272495l0 488.712146L256.012799 884.347625 256.012799 395.635479c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 511.983617c0 12.852708 10.418762 23.272495 23.272495 23.272495l558.516318 0c12.852708 0 23.272495-10.419786 23.272495-23.272495L814.529118 395.635479C814.529118 382.782771 804.110355 372.362985 791.257647 372.362985zM442.189684 767.987201l0-372.351721c0-12.852708-10.418762-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.418762 23.272495 23.272495 23.272495S442.189684 780.839909 442.189684 767.987201zM628.353257 767.987201l0-372.351721c0-12.852708-10.419786-23.272495-23.272495-23.272495s-23.272495 10.418762-23.272495 23.272495l0 372.351721c0 12.852708 10.419786 23.272495 23.272495 23.272495S628.353257 780.839909 628.353257 767.987201z"})],-1)]),8,_hoisted_26$2),createBaseVNode("button",{onClick:S=>B(x),class:"use-btn",title:unref(t)("history.use_favorite")},K[28]||(K[28]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24",class:"use-icon"},[createBaseVNode("path",{d:"M915.515273 142.819385 98.213046 458.199122c-46.058539 17.772838-44.90475 43.601756 2.348455 57.622994l197.477685 58.594874 80.292024 238.91085c10.51184 31.277988 37.972822 37.873693 61.462483 14.603752l103.584447-102.611545 204.475018 149.840224c26.565749 19.467242 53.878547 9.222132 61.049613-23.090076l149.210699-672.34491C965.264096 147.505054 946.218922 130.971848 915.515273 142.819385zM791.141174 294.834331l-348.61988 310.610267c-6.268679 5.58499-11.941557 16.652774-12.812263 24.846818l-15.390659 144.697741c-1.728128 16.24808-7.330491 16.918483-12.497501 1.344894l-67.457277-203.338603c-2.638691-7.954906 0.975968-17.705389 8.022355-21.931178l442.114555-265.181253C812.67481 268.984974 815.674251 272.975713 791.141174 294.834331z","p-id":"18085"})],-1)]),8,_hoisted_27$2),v.value?withDirectives((openBlock(),createElementBlock("input",{key:0,type:"checkbox","onUpdate:modelValue":K[7]||(K[7]=S=>c.value=S),value:x.id_index,class:"tag-checkbox"},null,8,_hoisted_28$2)),[[vModelCheckbox,c.value]]):createCommentVNode("",!0)])]))),128))])])),f.value?(openBlock(),createElementBlock("div",_hoisted_29$2,[createBaseVNode("div",{class:"weilin-tools-dialog-content",onMousedown:K[12]||(K[12]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_30$2,[createBaseVNode("h2",null,toDisplayString$1(d.value?unref(t)("history.dialog.edit_tag"):unref(t)("history.dialog.add_tag")),1),createBaseVNode("button",{class:"close-btn",onClick:F},"×")]),createBaseVNode("div",_hoisted_31$2,[createBaseVNode("div",_hoisted_32$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("history.dialog.name")),1),withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":K[8]||(K[8]=x=>g.value.name=x),placeholder:unref(t)("history.dialog.name_placeholder")},null,8,_hoisted_33$2),[[vModelText,g.value.name]])]),createBaseVNode("div",_hoisted_34$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("history.dialog.tag")),1),withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":K[9]||(K[9]=x=>g.value.tag=x),placeholder:unref(t)("history.dialog.tag_placeholder"),rows:"4"}," ",8,_hoisted_35$2),[[vModelText,g.value.tag]])]),createBaseVNode("div",_hoisted_36$2,[createBaseVNode("label",null,toDisplayString$1(unref(t)("history.dialog.background_color")),1),createBaseVNode("div",_hoisted_37$1,[createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:D.previewColor})},null,4),createBaseVNode("div",_hoisted_38$1,[withDirectives(createBaseVNode("input",{type:"color","onUpdate:modelValue":K[10]||(K[10]=x=>m.value.hex=x),onInput:R,class:"color-input"},null,544),[[vModelText,m.value.hex]]),createBaseVNode("div",_hoisted_39$1,[withDirectives(createBaseVNode("input",{type:"range","onUpdate:modelValue":K[11]||(K[11]=x=>m.value.alpha=x),min:"0",max:"100",onInput:R,class:"alpha-slider"},null,544),[[vModelText,m.value.alpha,void 0,{number:!0}]]),createBaseVNode("span",_hoisted_40$1,toDisplayString$1(m.value.alpha)+"%",1)])])])])]),createBaseVNode("div",_hoisted_41$1,[createBaseVNode("button",{class:"cancel-btn",onClick:F},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"confirm-btn",onClick:L},toDisplayString$1(unref(t)("common.confirm")),1)])],32)])):createCommentVNode("",!0),u.value?(openBlock(),createElementBlock("div",_hoisted_42$1,[createBaseVNode("div",{class:"weilin-tools-dialog-content confirm-weilin-tools-dialog",onMousedown:K[13]||(K[13]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",_hoisted_43$1,[createBaseVNode("h2",null,toDisplayString$1(unref(t)("common.confirmDelete")),1),createBaseVNode("button",{class:"close-btn",onClick:A},"×")]),createBaseVNode("div",_hoisted_44,[createBaseVNode("p",_hoisted_45,toDisplayString$1(fe.value),1)]),createBaseVNode("div",_hoisted_46,[createBaseVNode("button",{class:"cancel-btn",onClick:A},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:O},toDisplayString$1(unref(t)("common.delete")),1)])],32)])):createCommentVNode("",!0)]))}},HistoryManager=_export_sfc(_sfc_main$9,[["__scopeId","data-v-31204146"]]),_hoisted_1$8={key:0,class:"drop-zone"},_hoisted_2$7={key:1,class:"preview-container"},_hoisted_3$7=["srcdoc"],_hoisted_4$6={class:"action-buttons"},STORAGE_PREFIX$1="weilin_tools_",_sfc_main$8={__name:"tranToWeb",emits:["close","update"],setup(e,{expose:t,emit:a}){const{t:n}=useI18n(),o=ref(!1),r=ref(""),s=ref(null),l={tranToWeb:{visible:!1,position:{x:150,y:150},size:{width:800,height:600}}},f=ref((()=>{try{const H=localStorage.getItem(`${STORAGE_PREFIX$1}tranToWebState`);if(H){const j=JSON.parse(H),fe={...l};return j.tranToWeb&&(fe.tranToWeb={...l.tranToWeb,...j.tranToWeb}),fe}}catch(H){console.error("Error loading window states:",H)}return{...l}})());watch(f,H=>{try{localStorage.setItem(`${STORAGE_PREFIX$1}tranToWebState`,JSON.stringify(H))}catch(j){console.error("Error saving window states:",j)}},{deep:!0}),onMounted(()=>{windowManager.registerWindow("tranToWeb")}),onUnmounted(()=>{windowManager.unregisterWindow("tranToWeb")});const u=H=>{o.value=!1},d=(H,j)=>{f.value[H]&&(f.value[H].position={...j})},m=(H,j)=>{f.value[H]&&(f.value[H].size={...j})},g=()=>{o.value=!0,windowManager.setActiveWindow("tranToWeb")},v=H=>{H.dataTransfer.dropEffect="copy"},b=H=>{const j=H.dataTransfer.files[0];j&&j.type.startsWith("image/")&&w(j)},$=H=>{const j=H.clipboardData.items;for(let fe=0;fe{const j=new FileReader;j.onload=fe=>{const oe=fe.target.result,V=btoa(oe);s.value=V,C()},j.readAsDataURL(H)},C=()=>{r.value=` @@ -226,14 +226,14 @@ Two lines of js html automatic translation, page without change, no language con - `},P=()=>{const H=new Blob([r.value],{type:"text/html"}),j=URL.createObjectURL(H),fe=document.createElement("a");fe.href=j,fe.download="image-to-html.html",document.body.appendChild(fe),fe.click(),document.body.removeChild(fe),URL.revokeObjectURL(j)},y=()=>{r.value="",s.value=null},E=ref(null),R=()=>{r.value||E.value.click()},F=H=>{const j=H.target.files[0];j&&j.type.startsWith("image/")&&w(j)};return t({open:g}),(H,j)=>o.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("utils.tranToWeb"),position:f.value.tranToWeb.position,size:f.value.tranToWeb.size,"z-index":unref(windowManager).getZIndex("tranToWeb"),"onUpdate:position":j[0]||(j[0]=fe=>d("tranToWeb",fe)),"onUpdate:size":j[1]||(j[1]=fe=>m("tranToWeb",fe)),onActive:j[2]||(j[2]=fe=>unref(windowManager).setActiveWindow("tranToWeb")),onClose:j[3]||(j[3]=fe=>u())},{default:withCtx(()=>[createBaseVNode("div",{class:"utils_tran_web__content",onDragover:withModifiers(v,["prevent"]),onDrop:withModifiers(b,["prevent"]),onPaste:$,onClick:R},[r.value?(openBlock(),createElementBlock("div",_hoisted_2$7,[createBaseVNode("iframe",{srcdoc:r.value,class:"html-preview"},null,8,_hoisted_3$7),createBaseVNode("div",_hoisted_4$6,[createBaseVNode("button",{onClick:P},toDisplayString$1(unref(n)("utils.downloadHtml")),1),createBaseVNode("button",{onClick:y},toDisplayString$1(unref(n)("utils.clear")),1)])])):(openBlock(),createElementBlock("div",_hoisted_1$8,toDisplayString$1(unref(n)("utils.dropOrPasteImage")),1)),createBaseVNode("input",{type:"file",ref_key:"fileInput",ref:E,style:{display:"none"},accept:"image/*",onChange:F},null,544)],32)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0)}},tranToWeb=_export_sfc(_sfc_main$8,[["__scopeId","data-v-3647b8ec"]]),_hoisted_1$7=["onMouseenter","onMouseleave","onMousedown","onMouseup"],_sfc_main$7={__name:"FloatingBall",setup(e){const{t}=useI18n(),a=ref(parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallCount"))||1),n=ref(parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallSize"))||66),o=ref(localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize")||n.value),r=ref(localStorage.getItem("weilin_prompt_ui_ballSkinType")||"default"),s=ref(localStorage.getItem("weilin_prompt_ui_customSkinUrl")||""),l=ref(localStorage.getItem("weilin_prompt_ui_bgType")||"gradient"),c=ref(localStorage.getItem("weilin_prompt_ui_gradientColor1")||"#6a11cb"),f=ref(localStorage.getItem("weilin_prompt_ui_gradientColor2")||"#2575fc"),u=ref(localStorage.getItem("weilin_prompt_ui_ballBorderRadius")||50);a.value<1&&(a.value=1,localStorage.setItem("weilin_prompt_ui_floatingBallCount",a.value)),n.value<5&&(n.value=66,localStorage.setItem("weilin_prompt_ui_floatingBallSize",n.value)),o.value<5&&(o.value=66,localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",o.value)),localStorage.getItem("weilin_prompt_ui_floatingBallCount")||localStorage.setItem("weilin_prompt_ui_floatingBallCount",a.value),localStorage.getItem("weilin_prompt_ui_floatingBallSize")||localStorage.setItem("weilin_prompt_ui_floatingBallSize",n.value),localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize")||localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",n.value);const d=ref([]),m=ref([]),g=ref([]),v=ref([]),b=ref(null),$=computed(()=>v.value.map(oe=>{const V={...oe};return r.value==="custom"&&s.value?(V.backgroundImage=`url(${s.value})`,V.backgroundSize="contain",V.backgroundRepeat="no-repeat",V.backgroundPosition="center",V.imageRendering="optimizeQuality"):l.value==="gradient"?V.background=`linear-gradient(135deg, ${c.value}, ${f.value})`:V.background="transparent",V.borderRadius=`${u.value}%`,V}));for(let oe=0;oe{oe.target.closest(".weilin_prompt_ui_floating-ball")&&(m.value[V]=!0,document.addEventListener("mousemove",Q=>N(Q,V)),document.addEventListener("mouseup",Q=>P(Q,V)))},N=(oe,V)=>{if(m.value[V]){const q=window.innerWidth,Q=window.innerHeight,O=n.value,G=o.value;let ee=oe.clientX-O/2,A=oe.clientY-G/2;ee=Math.max(0,ee),ee=Math.min(ee,q-O),A=Math.max(0,A),A=Math.min(A,Q-G),d.value[V]={x:ee,y:A,width:O+"px",height:G+"px"},v.value[V]={left:`${d.value[V].x}px`,top:`${d.value[V].y}px`,width:`${O}px`,height:`${G}px`}}},P=(oe,V)=>{m.value[V]=!1,document.removeEventListener("mousemove",q=>N(q,V)),document.removeEventListener("mouseup",q=>P(q,V))},y=()=>{},E=oe=>{switch(oe){case"item1":window.parent.postMessage({type:"weilin_prompt_ui_open_global_prompt_box"},"*");break;case"item2":window.parent.postMessage({type:"weilin_prompt_ui_open_global_tag_manager"},"*");break;case"item3":window.parent.postMessage({type:"weilin_prompt_ui_open_global_lora_manager"},"*");break;case"item4":window.parent.postMessage({type:"weilin_prompt_ui_openAiWindow"},"*");break;case"item5":window.parent.postMessage({type:"weilin_prompt_ui_restore_window"},"*");break;case"item6":window.parent.postMessage({type:"weilin_prompt_ui_open_node_list_window"},"*");break;case"item7":F();break;case"item8":b.value.open();break}},R=ref(),F=()=>{R.value.open()},H=oe=>{if(oe.data.type==="weilin_prompt_ui_floating_ball_setting"){a.value=parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallCount"))||1,n.value=parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallSize"))||66,o.value=parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize"))||n.value,r.value=localStorage.getItem("weilin_prompt_ui_ballSkinType")||"default",s.value=localStorage.getItem("weilin_prompt_ui_customSkinUrl")||"",l.value=localStorage.getItem("weilin_prompt_ui_bgType")||"gradient",c.value=localStorage.getItem("weilin_prompt_ui_gradientColor1")||"#6a11cb",f.value=localStorage.getItem("weilin_prompt_ui_gradientColor2")||"#2575fc",u.value=localStorage.getItem("weilin_prompt_ui_ballBorderRadius")||50,g.value=[],m.value=[],d.value=[],v.value=[];for(let V=0;V{g.value[oe]=!0},fe=oe=>{g.value[oe]=!1};return onMounted(()=>{window.addEventListener("message",H)}),onUnmounted(()=>{window.removeEventListener("message",H),document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",P)}),(oe,V)=>(openBlock(),createElementBlock(Fragment,null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,q=>(openBlock(),createElementBlock("div",{class:"weilin_prompt_ui_floating-ball",style:normalizeStyle($.value[q-1]),onMouseenter:Q=>j(q-1),onMouseleave:Q=>fe(q-1),onMousedown:Q=>w(Q,q-1),onMouseup:Q=>P(Q,q-1),key:"floating-ball-"+q},[createBaseVNode("div",{class:"weilin_prompt_ui_ball-content",onClick:y},toDisplayString$1(r.value==="default"?"WeiLin":""),1),g.value[q-1]?(openBlock(),createElementBlock("div",{key:0,class:"weilin_prompt_ui_menu-container",onMousedown:V[8]||(V[8]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[0]||(V[0]=Q=>E("item1"))},toDisplayString$1(unref(t)("floatingBall.promptBox")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[1]||(V[1]=Q=>E("item2"))},toDisplayString$1(unref(t)("floatingBall.tagManager")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[2]||(V[2]=Q=>E("item3"))},toDisplayString$1(unref(t)("floatingBall.loraManager")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[3]||(V[3]=Q=>E("item4"))},toDisplayString$1(unref(t)("floatingBall.aiWindow")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[4]||(V[4]=Q=>E("item6"))},toDisplayString$1(unref(t)("floatingBall.openNodeListWindow")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[5]||(V[5]=Q=>E("item7"))},toDisplayString$1(unref(t)("floatingBall.tranToWeb")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[6]||(V[6]=Q=>E("item8"))},toDisplayString$1(unref(t)("floatingBall.openSetting")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[7]||(V[7]=Q=>E("item5"))},toDisplayString$1(unref(t)("floatingBall.restoreWindow")),1)],32)):createCommentVNode("",!0)],44,_hoisted_1$7))),128)),createVNode(tranToWeb,{ref_key:"tranToWebRef",ref:R},null,512),createVNode(SettingDialog,{ref_key:"settingDialog",ref:b},null,512)],64))}},FloatingBall=_export_sfc(_sfc_main$7,[["__scopeId","data-v-728385cf"]]),_hoisted_1$6={class:"ai-chat-window"},_hoisted_2$6={class:"history-sidebar"},_hoisted_3$6={class:"history-list"},_hoisted_4$5=["onClick"],_hoisted_5$5={key:0},_hoisted_6$5=["onKeyup","onBlur"],_hoisted_7$5={class:"item-actions"},_hoisted_8$5=["onClick"],_hoisted_9$5=["onClick"],_hoisted_10$4={class:"chat-main"},_hoisted_11$4={class:"message-list"},_hoisted_12$4={class:"message-content"},_hoisted_13$3={key:0,class:"message assistant"},_hoisted_14$3={class:"message-content"},_hoisted_15$3={class:"input-area"},_hoisted_16$3=["placeholder","onKeydown"],_hoisted_17$3=["disabled"],_sfc_main$6={__name:"ai_window",setup(e){const{t}=useI18n(),a=ref([]),n=ref(-1),o=ref(""),r=ref(!1),s=ref({}),l=ref(!1),c=ref(""),f=E=>{var R;a.value[E]&&(l.value=!0,c.value=((R=a.value[E])==null?void 0:R.title)||`对话 ${E+1}`,n.value=E)},u=E=>{a.value[E]&&(c.value.trim()&&(a.value[E].title=c.value.trim(),w()),l.value=!1)},d=()=>{l.value=!1},m=()=>{openaiApi.getOpenAiSetting().then(E=>{s.value=E.data}).catch(E=>{message$1({type:"warn",str:"message.networkError"})})};onMounted(()=>{m()});const g=computed(()=>a.value[n.value]||{messages:[]}),v=E=>{n.value=E},b=()=>{r.value=!0;const E={title:`对话 ${a.value.length+1}`,messages:[],createdAt:new Date().toISOString()};return a.value.push(E),n.value=a.value.length-1,w(),r.value=!1,E},$=()=>{const E=localStorage.getItem("aiChatHistory");E&&(a.value=JSON.parse(E))},w=()=>{localStorage.setItem("aiChatHistory",JSON.stringify(a.value))};onMounted(()=>{m(),$()});const N=async()=>{if(!o.value.trim()||r.value)return;(a.value.length===0||n.value===-1)&&b();const E={role:"user",content:o.value,timestamp:new Date().toISOString()};g.value.messages.push(E),w(),o.value="";const R={role:"assistant",content:"",timestamp:new Date().toISOString()};g.value.messages.push(R),w(),r.value=!0;try{await y({messages:g.value.messages},F=>{const H=g.value.messages[g.value.messages.length-1];H.content+=F.content,w()},F=>{console.error("Error:",F);const H=g.value.messages[g.value.messages.length-1];H.content="抱歉,出错了,请稍后再试。",w()},()=>{r.value=!1,w()})}catch(F){console.error("Error:",F),r.value=!1;const H=g.value.messages[g.value.messages.length-1];H.content="请求失败,请检查网络连接。",w()}},P=E=>{a.value.splice(E,1),n.value===E&&(n.value=Math.max(0,E-1)),w()},y=async(E,R,F,H)=>{var j,fe;try{const oe=await fetch(s.value.base_url+"/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s.value.api_key}`},body:JSON.stringify({model:s.value.model,messages:E.messages,stream:!0})});if(!oe.ok)throw new Error(`HTTP error! status: ${oe.status}`);const V=oe.body.getReader(),q=new TextDecoder;let Q="";for(;;){const{done:O,value:G}=await V.read();if(O){H();break}Q+=q.decode(G,{stream:!0});const ee=Q.split(` -`);Q=ee.pop();for(const A of ee)if(A.trim()!==""){if(A==="data: [DONE]"){H();return}try{const D=A.replace(/^data: /,""),ae=((fe=(j=JSON.parse(D).choices[0])==null?void 0:j.delta)==null?void 0:fe.content)||"";ae&&R({content:ae})}catch{console.error("Failed to parse message:",A)}}}}catch(oe){F(oe)}};return(E,R)=>(openBlock(),createElementBlock("div",_hoisted_1$6,[createBaseVNode("div",_hoisted_2$6,[createBaseVNode("button",{class:"new-chat-btn",onClick:b},toDisplayString$1(unref(t)("aiWindow.newChat")),1),createBaseVNode("div",_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,(F,H)=>(openBlock(),createElementBlock("div",{key:H,class:normalizeClass(["history-item",{active:n.value===H}]),onClick:j=>v(H)},[!l.value||n.value!==H?(openBlock(),createElementBlock("span",_hoisted_5$5,toDisplayString$1((F==null?void 0:F.title)||unref(t)("aiWindow.chatName")+` ${H+1}`),1)):withDirectives((openBlock(),createElementBlock("input",{key:1,"onUpdate:modelValue":R[0]||(R[0]=j=>c.value=j),onKeyup:[withKeys(j=>u(H),["enter"]),withKeys(d,["esc"])],onBlur:j=>u(H),class:"rename-input"},null,40,_hoisted_6$5)),[[vModelText,c.value]]),createBaseVNode("div",_hoisted_7$5,[createBaseVNode("button",{class:"rename-btn",onClick:withModifiers(j=>f(H),["stop"])},"✎",8,_hoisted_8$5),l.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:0,class:"delete-btn",onClick:withModifiers(j=>P(H),["stop"])},"×",8,_hoisted_9$5))])],10,_hoisted_4$5))),128))])]),createBaseVNode("div",_hoisted_10$4,[createBaseVNode("div",_hoisted_11$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value.messages,(F,H)=>(openBlock(),createElementBlock("div",{key:H,class:normalizeClass(["message",F.role])},[createBaseVNode("div",_hoisted_12$4,[createBaseVNode("pre",null,toDisplayString$1(F.content),1)])],2))),128)),r.value?(openBlock(),createElementBlock("div",_hoisted_13$3,[createBaseVNode("div",_hoisted_14$3,[createBaseVNode("pre",null,toDisplayString$1(unref(t)("aiWindow.thinking")),1)])])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_15$3,[withDirectives(createBaseVNode("textarea",{class:"ai-chat-textarea","onUpdate:modelValue":R[1]||(R[1]=F=>o.value=F),placeholder:unref(t)("aiWindow.inputMessage"),onKeydown:withKeys(withModifiers(N,["exact","prevent"]),["enter"])},null,40,_hoisted_16$3),[[vModelText,o.value]]),createBaseVNode("button",{class:"ai-chat-btn",onClick:N,disabled:r.value},toDisplayString$1(unref(t)("aiWindow.send")),9,_hoisted_17$3)])])]))}},AiWindow=_export_sfc(_sfc_main$6,[["__scopeId","data-v-5271cf26"]]),_hoisted_1$5={class:"lora-info"},_hoisted_2$5={class:"lora-header"},_hoisted_3$5=["title"],_hoisted_4$4={class:"lora-weights"},_hoisted_5$4={class:"weight-item"},_hoisted_6$4=["title"],_hoisted_7$4={class:"weight-item"},_hoisted_8$4={class:"center-box"},_hoisted_9$4=["onClick"],prefix$1="weilin_prompt_ui_",_sfc_main$5={__name:"index",setup(e){const{t}=useI18n(),a=ref([]);window.addEventListener("message",o=>{o.data.type==="weilin_prompt_ui_update_node_list_info"&&(a.value=o.data.nodeList)});const n=o=>{window.postMessage({type:"weilin_prompt_ui_prompt_open_node_wit_seed",seed:o},"*")};return onMounted(()=>{window.postMessage({type:"weilin_prompt_ui_prompt_get_node_list_info"},"*")}),(o,r)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix$1}lora-stack`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$1}lora-content`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$1}lora-body`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$1}lora-list`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,s=>(openBlock(),createElementBlock("div",{key:s.id,class:"lora-item"},[createBaseVNode("div",_hoisted_1$5,[createBaseVNode("div",_hoisted_2$5,[createBaseVNode("span",{class:"lora-name",title:s.title},"#"+toDisplayString$1(s.id)+" - "+toDisplayString$1(s.title),9,_hoisted_3$5)]),createBaseVNode("div",_hoisted_4$4,[createBaseVNode("div",_hoisted_5$4,[createBaseVNode("div",{class:"text-label",title:s.text},toDisplayString$1(s.text),9,_hoisted_6$4)]),createBaseVNode("div",_hoisted_7$4,[createBaseVNode("div",_hoisted_8$4,[createBaseVNode("button",{onClick:l=>n(s.seed),class:"open-button"},toDisplayString$1(unref(t)("nodeListWindow.openPromptUI")),9,_hoisted_9$4)])])])])]))),128))],2)],2)],2)],2))}},NodeListWindow=_export_sfc(_sfc_main$5,[["__scopeId","data-v-43ee045e"]]),cloudApi={getTreeFromCloud:async e=>await request({url:"/cloud/get/tree",method:"post",data:{path:e}}),getLocalInstallPackage:async()=>await request({url:"/cloud/get/local/package",method:"post",data:{}}),installSelectPackage:async(e,t)=>await request({url:"/cloud/download/file",method:"post",timeout:0,data:{paths:t,path:e}})},_hoisted_1$4={class:"cloud-manager"},_hoisted_2$4={class:"toolbar"},_hoisted_3$4={class:"current-path"},_hoisted_4$3={class:"file-list"},_hoisted_5$3={class:"file-info"},_hoisted_6$3={class:"file-name"},_hoisted_7$3={class:"file-type"},_hoisted_8$3={class:"file-actions"},_hoisted_9$3=["onClick"],_hoisted_10$3={key:1,class:"install-container"},_hoisted_11$3={key:0,class:"installed-badge"},_hoisted_12$3=["onClick","disabled"],_sfc_main$4={__name:"index",setup(e){const{t}=useI18n(),a=ref([]),n=ref("tags"),o=ref("tags"),r=ref([]),s=async b=>{try{const $=await cloudApi.getTreeFromCloud(b);a.value=$.data}catch($){console.error("获取文件树失败:",$),message$1({type:"warn",str:"message.networkError"})}},l=async()=>{try{const b=await cloudApi.getLocalInstallPackage();r.value=b.data||[]}catch(b){console.error("获取已安装包列表失败:",b),message$1({type:"warn",str:"message.networkError"})}},c=b=>r.value.some($=>$===b),f=async b=>{try{const $=a.value.find(w=>w.path===b);$&&($.isInstalling=!0,await cloudApi.installSelectPackage(o.value,[b]).then(()=>{l(),message$1({type:"success",str:"message.installPackageSuccess"})}))}catch($){console.error("安装包失败:",$),message$1({type:"warn",str:"message.installPackageFail"})}finally{const $=a.value.find(w=>w.path===b);$&&($.isInstalling=!1)}},u=()=>{const b=n.value.split("/");b.length>1&&(n.value=b.slice(0,-1).join("/"),s(n.value))},d=()=>{s(n.value),l()},m=b=>{n.value=b,s(b)},g=()=>{o.value="tags",n.value="tags",s(n.value)},v=()=>{o.value="danbooru",n.value="danbooru",s(n.value)};return onMounted(()=>{s(n.value),l()}),(b,$)=>(openBlock(),createElementBlock("div",_hoisted_1$4,[createBaseVNode("div",_hoisted_2$4,[createBaseVNode("button",{class:"refresh-btn",onClick:d},$[0]||($[0]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),createBaseVNode("button",{class:"database-btn",onClick:g},[$[1]||($[1]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(t)("cloudWindow.tagDatabase")),1)]),createBaseVNode("button",{class:"database-btn",onClick:v},[$[2]||($[2]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-8-2h2v-4h4v-2h-4V7h-2v4H7v2h4v4z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(t)("cloudWindow.danbooruDatabase")),1)]),createBaseVNode("div",_hoisted_3$4,[createBaseVNode("span",null,toDisplayString$1(unref(t)("cloudWindow.currentPath"))+": "+toDisplayString$1(o.value=="tags"?unref(t)("cloudWindow.tagDatabase"):unref(t)("cloudWindow.danbooruDatabase")),1)])]),createBaseVNode("div",_hoisted_4$3,[n.value!=="tags"&&n.value!=="danbooru"?(openBlock(),createElementBlock("button",{key:0,class:"back-btn",onClick:u},[$[3]||($[3]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"})],-1)),createTextVNode(" "+toDisplayString$1(unref(t)("cloudWindow.back")),1)])):createCommentVNode("",!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,w=>(openBlock(),createElementBlock("div",{key:w.path,class:"file-item"},[createBaseVNode("div",_hoisted_5$3,[createBaseVNode("span",_hoisted_6$3,toDisplayString$1(w.name),1),createBaseVNode("span",_hoisted_7$3,toDisplayString$1(w.type=="dir"?"文件夹":w.type=="file"?"文件":"其它未知文件"),1)]),createBaseVNode("div",_hoisted_8$3,[w.type==="dir"?(openBlock(),createElementBlock("button",{key:0,onClick:N=>m(w.path),class:"open-btn"},toDisplayString$1(unref(t)("cloudWindow.open")),9,_hoisted_9$3)):w.type==="file"?(openBlock(),createElementBlock("div",_hoisted_10$3,[c(w.path)?(openBlock(),createElementBlock("span",_hoisted_11$3,toDisplayString$1(unref(t)("cloudWindow.installed")),1)):(openBlock(),createElementBlock("button",{key:1,onClick:N=>f(w.path),class:"install-btn",disabled:w.isInstalling},toDisplayString$1(w.isInstalling?unref(t)("cloudWindow.installing"):unref(t)("cloudWindow.install")),9,_hoisted_12$3))])):createCommentVNode("",!0)])]))),128))])]))}},CloudWindow=_export_sfc(_sfc_main$4,[["__scopeId","data-v-026f0961"]]),_hoisted_1$3={class:"header-actions"},_hoisted_2$3=["title"],_hoisted_3$3=["onMouseover","onDragstart","onDrop"],_hoisted_4$2={class:"lora-info"},_hoisted_5$2={class:"lora-header"},_hoisted_6$2=["title"],_hoisted_7$2={class:"lora-actions"},_hoisted_8$2=["onClick","title"],_hoisted_9$2=["onClick","title"],_hoisted_10$2={class:"lora-weights-row"},_hoisted_11$2={class:"weight-item-col"},_hoisted_12$2=["onUpdate:modelValue"],_hoisted_13$2={class:"weight-item-col"},_hoisted_14$2=["onUpdate:modelValue"],_hoisted_15$2={class:"switch-item-col"},_hoisted_16$2={class:"switch"},_hoisted_17$2=["checked","onChange"],prefix="weilin_prompt_ui_",_sfc_main$3={__name:"lora_stack",setup(e,{expose:t}){const{t:a}=useI18n(),n=ref([]),o=ref(""),r=ref(!1),s=ref(""),l=ref(100),c=ref(0),f=ref(),u=ref(!1),d=ref(!1),m=ref(),g=()=>{window.postMessage({type:"weilin_prompt_ui_openLoraManager_addLora_stack",seed:o.value},"*")},v=V=>{V.hidden=!V.hidden},b=(V,q)=>{if(d.value=!0,s.value===V&&r.value)return;const O=q.currentTarget.getBoundingClientRect();let ee={left:O.left-450-10,top:O.top};ee.left<10&&(ee.left=O.right+10),ee.top=Math.max(10,Math.min(ee.top,window.innerHeight-310)),l.value=ee.left,c.value=ee.top,r.value=!0,s.value=V,nextTick(()=>{m.value.refresh()})},$=()=>{d.value=!1,setTimeout(()=>{!u.value&&!d.value&&(r.value=!1,s.value="",u.value=!1)},200)},w=()=>{u.value=!0,d.value=!0},N=()=>{r.value=!1,s.value="",u.value=!1},P=V=>{n.value.find(q=>q.name===V.name)||n.value.push({name:V.name,weight:1,text_encoder_weight:1,...V})},y=V=>{const q=n.value.findIndex(Q=>Q.name===V.name);q>-1&&n.value.splice(q,1)},E=ref(),R=V=>{E.value.open({name:V.lora})};window.addEventListener("message",V=>{V.data.type==="weilin_prompt_ui_selectLora_stack_"+o.value&&P(V.data.lora)});const F=(V,q)=>{if(o.value=q,V.length>0)try{const Q=JSON.parse(V);if(Q.lora&&Q.lora!=""&&(n.value=Q.lora),Q.temp_lora&&Q.temp_lora.length>0&&Q.temp_lora!=""){const O=Q.temp_lora;n.value=O}}catch{message$1({type:"warn",str:"promptBox.settings.errorPrompt"})}};watch(n,V=>{H()},{deep:!0});const H=()=>{if(n.value.length>0){const V=n.value.filter(O=>!O.hidden);let q={lora:"",temp_lora:n.value};V.length>0&&(q.lora=V);const Q=JSON.stringify(q);window.postMessage({type:"weilin_prompt_ui_prompt_finish_lora_stack_"+o.value,data:Q},"*")}else{const q=JSON.stringify({lora:"",temp_lora:""});window.postMessage({type:"weilin_prompt_ui_prompt_finish_lora_stack_"+o.value,data:q},"*")}},j=ref(null),fe=V=>{j.value=V},oe=V=>{if(j.value===null||j.value===V)return;const q=n.value.splice(j.value,1)[0];n.value.splice(V,0,q),j.value=null,H()};return t({initLoraStack:F}),(V,q)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix}lora-stack`)},[createBaseVNode("div",{class:normalizeClass(`${prefix}lora-content`)},[createBaseVNode("div",{class:normalizeClass(`${prefix}lora-header`)},[createBaseVNode("div",_hoisted_1$3,[createBaseVNode("button",{class:normalizeClass(`${prefix}add-btn`),onClick:g,title:unref(a)("controls.addLora")},q[1]||(q[1]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})],-1)]),10,_hoisted_2$3)])],2),createBaseVNode("div",{class:normalizeClass(`${prefix}lora-body`)},[createBaseVNode("div",{class:normalizeClass(`${prefix}lora-list`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(n.value,(Q,O)=>(openBlock(),createElementBlock("div",{ref_for:!0,ref_key:"loraStackItemRef",ref:f,key:Q.name,class:normalizeClass(["lora-item",{"hidden-lora":Q.hidden}]),onMouseover:G=>b(Q.lora,G),onMouseleave:$,draggable:"true",onDragstart:G=>fe(O),onDragover:q[0]||(q[0]=withModifiers(()=>{},["prevent"])),onDrop:G=>oe(O)},[createBaseVNode("div",_hoisted_4$2,[createBaseVNode("div",_hoisted_5$2,[createBaseVNode("span",{class:"lora-name",title:Q.name},toDisplayString$1(Q.name),9,_hoisted_6$2),createBaseVNode("div",_hoisted_7$2,[createBaseVNode("button",{class:"look-on-btn",onClick:G=>R(Q),title:unref(a)("controls.lookOnLora")},q[2]||(q[2]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"14",height:"14"},[createBaseVNode("path",{d:"M576.5 930.2H163.1c-52.9 0-96-43.1-96-96v-672c0-52.9 43.1-96 96-96h672c52.9 0 96 43.1 96 96V577c0 17.7-14.3 32-32 32s-32-14.3-32-32V162.2c0-17.6-14.4-32-32-32h-672c-17.6 0-32 14.4-32 32v672c0 17.6 14.4 32 32 32h413.4c17.7 0 32 14.3 32 32s-14.3 32-32 32z","p-id":"3466"}),createBaseVNode("path",{d:"M692.4 322.3H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h446.7c17.7 0 32 14.3 32 32s-14.3 32-32 32zM388.5 530.2H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.6-14.3 32-31.9 32zM388.5 738H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.7-14.3 32-31.9 32z","p-id":"3467"}),createBaseVNode("path",{d:"M624.1 792.5c-94.8 0-172-77.2-172-172s77.2-172 172-172 172 77.2 172 172-77.1 172-172 172z m0-280c-59.6 0-108 48.4-108 108s48.4 108 108 108 108-48.4 108-108-48.4-108-108-108z","p-id":"3468"}),createBaseVNode("path",{d:"M820.8 864.2L710.5 753.9c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L866 818.9c12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.2 0z","p-id":"3469"})],-1)]),8,_hoisted_8$2),createBaseVNode("button",{class:"remove-btn",onClick:G=>y(Q),title:unref(a)("controls.removeLora")},q[3]||(q[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,_hoisted_9$2)])]),createBaseVNode("div",_hoisted_10$2,[createBaseVNode("div",_hoisted_11$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("loraManager.modelWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":G=>Q.weight=G,class:"lora-weight",step:"0.1"},null,8,_hoisted_12$2),[[vModelText,Q.weight]])]),createBaseVNode("div",_hoisted_13$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("loraManager.textEncoderWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":G=>Q.text_encoder_weight=G,class:"lora-weight",step:"0.1"},null,8,_hoisted_14$2),[[vModelText,Q.text_encoder_weight]])]),createBaseVNode("div",_hoisted_15$2,[createBaseVNode("label",null,toDisplayString$1(Q.hidden?unref(a)("lora.hideLora"):unref(a)("lora.showLora")),1),createBaseVNode("label",_hoisted_16$2,[createBaseVNode("input",{type:"checkbox",checked:!Q.hidden,onChange:G=>v(Q)},null,40,_hoisted_17$2),q[4]||(q[4]=createBaseVNode("span",{class:"slider"},null,-1))])])])])],42,_hoisted_3$3))),128))],2)],2)],2),createVNode(loraDetail,{ref_key:"loraDetailLoraStackRef",ref:E},null,512),r.value?(openBlock(),createBlock(LoraCard,{key:0,ref_key:"loraCardItem",ref:m,fileNmae:s.value,paddingLeft:l.value,paddingTop:c.value,onCardLeave:N,onCardenter:w},null,8,["fileNmae","paddingLeft","paddingTop"])):createCommentVNode("",!0)],2))}},LoraStackWindow=_export_sfc(_sfc_main$3,[["__scopeId","data-v-c2ab38ea"]]),danbooruApi={searchDanbooru:async(e="",t=1,a=100)=>await request({url:"/danbooru/get_tags",method:"post",data:{search:e,page:t,limit:a}}),addDanbooruTag:async e=>await request({url:"/danbooru/add_tag",method:"post",data:e}),updateDanbooruTag:async e=>await request({url:"/danbooru/update_tag",method:"post",timeout:0,data:e}),deleteDanbooruTag:async e=>await request({url:"/danbooru/delete_tag",method:"post",timeout:0,data:{id:e}}),batchDeleteDanbooruTags:async e=>await request({url:"/danbooru/batch_delete_tag",method:"post",timeout:0,data:{values:e}}),runSQLToServer:async e=>await request({url:"/danbooru/run_sql_text",method:"post",timeout:0,data:{sql:e}})},_hoisted_1$2={key:0,class:"loading-overlay"},_hoisted_2$2={class:"settings-content"},_hoisted_3$2={style:{"margin-bottom":"16px"}},_hoisted_4$1=["placeholder"],_hoisted_5$1={style:{"margin-bottom":"16px"}},_hoisted_6$1=["placeholder"],_hoisted_7$1=["placeholder"],_hoisted_8$1=["placeholder"],_hoisted_9$1={class:"data-container"},_hoisted_10$1={key:0},_hoisted_11$1={key:0},_hoisted_12$1={class:"tag-group-container"},_hoisted_13$1={key:0},_hoisted_14$1={key:1},_hoisted_15$1={style:{display:"flex","align-items":"center"}},_hoisted_16$1={key:0},_hoisted_17$1=["placeholder"],_hoisted_18$1=["placeholder"],_hoisted_19$1=["placeholder"],_hoisted_20$1=["placeholder"],_hoisted_21$1=["onClick"],_hoisted_22$1=["onClick"],_hoisted_23$1=["onClick"],_hoisted_24$1={key:1},_hoisted_25$1={class:"tag-group-container"},_hoisted_26$1={key:0},_hoisted_27$1={key:1},_hoisted_28$1={style:{display:"flex","align-items":"center"}},_hoisted_29$1={key:0},_hoisted_30$1=["placeholder"],_hoisted_31$1=["placeholder"],_hoisted_32$1=["placeholder"],_hoisted_33$1=["placeholder"],_hoisted_34$1=["onClick"],_hoisted_35$1=["onClick"],_hoisted_36$1=["onClick"],_sfc_main$2={__name:"import_danbooru",setup(e,{expose:t}){const{t:a}=useI18n(),n=ref(!1),o=ref(""),r=ref(""),s=ref(""),l=ref(""),c=ref(""),f=ref(""),u=ref(""),d=ref(""),m=ref(""),g=ref([]),v=ref(-1),b=ref(""),$=ref(""),w=ref(null);ref(null);const N=ref(null),P=ref(!1),y=ref(""),E=ref(0),R=ref(0);function F(){o.value="",r.value="",E.value=0,R.value=0,s.value="",l.value="",c.value="",f.value="",u.value="",d.value="",m.value="",g.value=[],v.value=-1,b.value="",$.value="",P.value=!1}function H(re){F();const B=re.target.files[0];if(B){const z=new FileReader;z.onload=Z=>{Z.target.result.split(";").filter(x=>x.trim()).forEach(x=>{if((x.includes("tag_groups")||x.includes("tag_subgroups"))&&x.includes("p_uuid"))if(x.includes("g_uuid")){c.value=x+";";const I=x.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);I&&(m.value=I[1]);const X=x.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);X&&(u.value=X[1].replace(/''/g,"'"))}else{l.value=x+";";const I=x.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);I&&(d.value=I[1]);const X=x.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);X&&(f.value=X[1].replace(/''/g,"'"))}else x.includes("tag_tags")&&g.value.push(x+";")})},z.readAsText(B)}re.target.value=""}function j(re){const B=re.target.files[0];if(B){const z=new FileReader;z.onload=Z=>{Z.target.result.split(` -`).filter(x=>x.trim()).forEach(x=>{const S=x.split(",");if(S.length>=2){let I,X,ie,pe;S.length===2?(I=S[0].trim(),pe=S[1].trim(),X=0,ie=0):S.length>=3&&(I=S[0].trim(),X=parseInt(S[1].trim())||0,ie=parseInt(S[2].trim())||0,pe=S.slice(3).join(",").trim(),pe=pe.replace(/^"(.*)"$/,"$1"));const k=I.replace(/'/g,"''"),_=pe.replace(/'/g,"''"),M=`INSERT INTO "danbooru_tag" ("tag", "color_id", "translate", "hot", "aliases") VALUES ('${k}', '', '${_}', ${ie}, ${X});`;g.value.push(M)}})},z.readAsText(B)}re.target.value=""}function fe(){N.value.click()}function oe(){let re;g.value.length>0&&q(g.value[0])?re=[...g.value].join(` + `},P=()=>{const H=new Blob([r.value],{type:"text/html"}),j=URL.createObjectURL(H),fe=document.createElement("a");fe.href=j,fe.download="image-to-html.html",document.body.appendChild(fe),fe.click(),document.body.removeChild(fe),URL.revokeObjectURL(j)},y=()=>{r.value="",s.value=null},E=ref(null),R=()=>{r.value||E.value.click()},F=H=>{const j=H.target.files[0];j&&j.type.startsWith("image/")&&w(j)};return t({open:g}),(H,j)=>o.value?(openBlock(),createBlock(DraggableWindow,{key:0,title:unref(n)("utils.tranToWeb"),position:f.value.tranToWeb.position,size:f.value.tranToWeb.size,"z-index":unref(windowManager).getZIndex("tranToWeb"),"onUpdate:position":j[0]||(j[0]=fe=>d("tranToWeb",fe)),"onUpdate:size":j[1]||(j[1]=fe=>m("tranToWeb",fe)),onActive:j[2]||(j[2]=fe=>unref(windowManager).setActiveWindow("tranToWeb")),onClose:j[3]||(j[3]=fe=>u())},{default:withCtx(()=>[createBaseVNode("div",{class:"utils_tran_web__content",onDragover:withModifiers(v,["prevent"]),onDrop:withModifiers(b,["prevent"]),onPaste:$,onClick:R},[r.value?(openBlock(),createElementBlock("div",_hoisted_2$7,[createBaseVNode("iframe",{srcdoc:r.value,class:"html-preview"},null,8,_hoisted_3$7),createBaseVNode("div",_hoisted_4$6,[createBaseVNode("button",{onClick:P},toDisplayString$1(unref(n)("utils.downloadHtml")),1),createBaseVNode("button",{onClick:y},toDisplayString$1(unref(n)("utils.clear")),1)])])):(openBlock(),createElementBlock("div",_hoisted_1$8,toDisplayString$1(unref(n)("utils.dropOrPasteImage")),1)),createBaseVNode("input",{type:"file",ref_key:"fileInput",ref:E,style:{display:"none"},accept:"image/*",onChange:F},null,544)],32)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0)}},tranToWeb=_export_sfc(_sfc_main$8,[["__scopeId","data-v-3647b8ec"]]),_hoisted_1$7=["onMouseenter","onMouseleave","onMousedown","onMouseup"],_sfc_main$7={__name:"FloatingBall",setup(e){const{t}=useI18n(),a=ref(parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallCount"))||1),n=ref(parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallSize"))||66),o=ref(localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize")||n.value),r=ref(localStorage.getItem("weilin_prompt_ui_ballSkinType")||"default"),s=ref(localStorage.getItem("weilin_prompt_ui_customSkinUrl")||""),l=ref(localStorage.getItem("weilin_prompt_ui_bgType")||"gradient"),c=ref(localStorage.getItem("weilin_prompt_ui_gradientColor1")||"#6a11cb"),f=ref(localStorage.getItem("weilin_prompt_ui_gradientColor2")||"#2575fc"),u=ref(localStorage.getItem("weilin_prompt_ui_ballBorderRadius")||50);a.value<1&&(a.value=1,localStorage.setItem("weilin_prompt_ui_floatingBallCount",a.value)),n.value<5&&(n.value=66,localStorage.setItem("weilin_prompt_ui_floatingBallSize",n.value)),o.value<5&&(o.value=66,localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",o.value)),localStorage.getItem("weilin_prompt_ui_floatingBallCount")||localStorage.setItem("weilin_prompt_ui_floatingBallCount",a.value),localStorage.getItem("weilin_prompt_ui_floatingBallSize")||localStorage.setItem("weilin_prompt_ui_floatingBallSize",n.value),localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize")||localStorage.setItem("weilin_prompt_ui_floatingBallHeightSize",n.value);const d=ref([]),m=ref([]),g=ref([]),v=ref([]),b=ref(null),$=computed(()=>v.value.map(oe=>{const V={...oe};return r.value==="custom"&&s.value?(V.backgroundImage=`url(${s.value})`,V.backgroundSize="contain",V.backgroundRepeat="no-repeat",V.backgroundPosition="center",V.imageRendering="optimizeQuality"):l.value==="gradient"?V.background=`linear-gradient(135deg, ${c.value}, ${f.value})`:V.background="transparent",V.borderRadius=`${u.value}%`,V}));for(let oe=0;oe{oe.target.closest(".weilin_prompt_ui_floating-ball")&&(m.value[V]=!0,document.addEventListener("mousemove",Q=>C(Q,V)),document.addEventListener("mouseup",Q=>P(Q,V)))},C=(oe,V)=>{if(m.value[V]){const q=window.innerWidth,Q=window.innerHeight,O=n.value,G=o.value;let ee=oe.clientX-O/2,A=oe.clientY-G/2;ee=Math.max(0,ee),ee=Math.min(ee,q-O),A=Math.max(0,A),A=Math.min(A,Q-G),d.value[V]={x:ee,y:A,width:O+"px",height:G+"px"},v.value[V]={left:`${d.value[V].x}px`,top:`${d.value[V].y}px`,width:`${O}px`,height:`${G}px`}}},P=(oe,V)=>{m.value[V]=!1,document.removeEventListener("mousemove",q=>C(q,V)),document.removeEventListener("mouseup",q=>P(q,V))},y=()=>{},E=oe=>{switch(oe){case"item1":window.parent.postMessage({type:"weilin_prompt_ui_open_global_prompt_box"},"*");break;case"item2":window.parent.postMessage({type:"weilin_prompt_ui_open_global_tag_manager"},"*");break;case"item3":window.parent.postMessage({type:"weilin_prompt_ui_open_global_lora_manager"},"*");break;case"item4":window.parent.postMessage({type:"weilin_prompt_ui_openAiWindow"},"*");break;case"item5":window.parent.postMessage({type:"weilin_prompt_ui_restore_window"},"*");break;case"item6":window.parent.postMessage({type:"weilin_prompt_ui_open_node_list_window"},"*");break;case"item7":F();break;case"item8":b.value.open();break}},R=ref(),F=()=>{R.value.open()},H=oe=>{if(oe.data.type==="weilin_prompt_ui_floating_ball_setting"){a.value=parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallCount"))||1,n.value=parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallSize"))||66,o.value=parseInt(localStorage.getItem("weilin_prompt_ui_floatingBallHeightSize"))||n.value,r.value=localStorage.getItem("weilin_prompt_ui_ballSkinType")||"default",s.value=localStorage.getItem("weilin_prompt_ui_customSkinUrl")||"",l.value=localStorage.getItem("weilin_prompt_ui_bgType")||"gradient",c.value=localStorage.getItem("weilin_prompt_ui_gradientColor1")||"#6a11cb",f.value=localStorage.getItem("weilin_prompt_ui_gradientColor2")||"#2575fc",u.value=localStorage.getItem("weilin_prompt_ui_ballBorderRadius")||50,g.value=[],m.value=[],d.value=[],v.value=[];for(let V=0;V{g.value[oe]=!0},fe=oe=>{g.value[oe]=!1};return onMounted(()=>{window.addEventListener("message",H)}),onUnmounted(()=>{window.removeEventListener("message",H),document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",P)}),(oe,V)=>(openBlock(),createElementBlock(Fragment,null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,q=>(openBlock(),createElementBlock("div",{class:"weilin_prompt_ui_floating-ball",style:normalizeStyle($.value[q-1]),onMouseenter:Q=>j(q-1),onMouseleave:Q=>fe(q-1),onMousedown:Q=>w(Q,q-1),onMouseup:Q=>P(Q,q-1),key:"floating-ball-"+q},[createBaseVNode("div",{class:"weilin_prompt_ui_ball-content",onClick:y},toDisplayString$1(r.value==="default"?"WeiLin":""),1),g.value[q-1]?(openBlock(),createElementBlock("div",{key:0,class:"weilin_prompt_ui_menu-container",onMousedown:V[8]||(V[8]=withModifiers(()=>{},["stop"]))},[createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[0]||(V[0]=Q=>E("item1"))},toDisplayString$1(unref(t)("floatingBall.promptBox")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[1]||(V[1]=Q=>E("item2"))},toDisplayString$1(unref(t)("floatingBall.tagManager")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[2]||(V[2]=Q=>E("item3"))},toDisplayString$1(unref(t)("floatingBall.loraManager")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[3]||(V[3]=Q=>E("item4"))},toDisplayString$1(unref(t)("floatingBall.aiWindow")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[4]||(V[4]=Q=>E("item6"))},toDisplayString$1(unref(t)("floatingBall.openNodeListWindow")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[5]||(V[5]=Q=>E("item7"))},toDisplayString$1(unref(t)("floatingBall.tranToWeb")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[6]||(V[6]=Q=>E("item8"))},toDisplayString$1(unref(t)("floatingBall.openSetting")),1),createBaseVNode("div",{class:"weilin_prompt_ui_menu-item",onClick:V[7]||(V[7]=Q=>E("item5"))},toDisplayString$1(unref(t)("floatingBall.restoreWindow")),1)],32)):createCommentVNode("",!0)],44,_hoisted_1$7))),128)),createVNode(tranToWeb,{ref_key:"tranToWebRef",ref:R},null,512),createVNode(SettingDialog,{ref_key:"settingDialog",ref:b},null,512)],64))}},FloatingBall=_export_sfc(_sfc_main$7,[["__scopeId","data-v-728385cf"]]),_hoisted_1$6={class:"ai-chat-window"},_hoisted_2$6={class:"history-sidebar"},_hoisted_3$6={class:"history-list"},_hoisted_4$5=["onClick"],_hoisted_5$5={key:0},_hoisted_6$5=["onKeyup","onBlur"],_hoisted_7$5={class:"item-actions"},_hoisted_8$5=["onClick"],_hoisted_9$5=["onClick"],_hoisted_10$4={class:"chat-main"},_hoisted_11$4={class:"message-list"},_hoisted_12$4={class:"message-content"},_hoisted_13$3={key:0,class:"message assistant"},_hoisted_14$3={class:"message-content"},_hoisted_15$3={class:"input-area"},_hoisted_16$3=["placeholder","onKeydown"],_hoisted_17$3=["disabled"],_sfc_main$6={__name:"ai_window",setup(e){const{t}=useI18n(),a=ref([]),n=ref(-1),o=ref(""),r=ref(!1),s=ref({}),l=ref(!1),c=ref(""),f=E=>{var R;a.value[E]&&(l.value=!0,c.value=((R=a.value[E])==null?void 0:R.title)||`对话 ${E+1}`,n.value=E)},u=E=>{a.value[E]&&(c.value.trim()&&(a.value[E].title=c.value.trim(),w()),l.value=!1)},d=()=>{l.value=!1},m=()=>{openaiApi.getOpenAiSetting().then(E=>{s.value=E.data}).catch(E=>{message$1({type:"warn",str:"message.networkError"})})};onMounted(()=>{m()});const g=computed(()=>a.value[n.value]||{messages:[]}),v=E=>{n.value=E},b=()=>{r.value=!0;const E={title:`对话 ${a.value.length+1}`,messages:[],createdAt:new Date().toISOString()};return a.value.push(E),n.value=a.value.length-1,w(),r.value=!1,E},$=()=>{const E=localStorage.getItem("aiChatHistory");E&&(a.value=JSON.parse(E))},w=()=>{localStorage.setItem("aiChatHistory",JSON.stringify(a.value))};onMounted(()=>{m(),$()});const C=async()=>{if(!o.value.trim()||r.value)return;(a.value.length===0||n.value===-1)&&b();const E={role:"user",content:o.value,timestamp:new Date().toISOString()};g.value.messages.push(E),w(),o.value="";const R={role:"assistant",content:"",timestamp:new Date().toISOString()};g.value.messages.push(R),w(),r.value=!0;try{await y({messages:g.value.messages},F=>{const H=g.value.messages[g.value.messages.length-1];H.content+=F.content,w()},F=>{console.error("Error:",F);const H=g.value.messages[g.value.messages.length-1];H.content="抱歉,出错了,请稍后再试。",w()},()=>{r.value=!1,w()})}catch(F){console.error("Error:",F),r.value=!1;const H=g.value.messages[g.value.messages.length-1];H.content="请求失败,请检查网络连接。",w()}},P=E=>{a.value.splice(E,1),n.value===E&&(n.value=Math.max(0,E-1)),w()},y=async(E,R,F,H)=>{var j,fe;try{const oe=await fetch(s.value.base_url+"/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s.value.api_key}`},body:JSON.stringify({model:s.value.model,messages:E.messages,stream:!0})});if(!oe.ok)throw new Error(`HTTP error! status: ${oe.status}`);const V=oe.body.getReader(),q=new TextDecoder;let Q="";for(;;){const{done:O,value:G}=await V.read();if(O){H();break}Q+=q.decode(G,{stream:!0});const ee=Q.split(` +`);Q=ee.pop();for(const A of ee)if(A.trim()!==""){if(A==="data: [DONE]"){H();return}try{const L=A.replace(/^data: /,""),ae=((fe=(j=JSON.parse(L).choices[0])==null?void 0:j.delta)==null?void 0:fe.content)||"";ae&&R({content:ae})}catch{console.error("Failed to parse message:",A)}}}}catch(oe){F(oe)}};return(E,R)=>(openBlock(),createElementBlock("div",_hoisted_1$6,[createBaseVNode("div",_hoisted_2$6,[createBaseVNode("button",{class:"new-chat-btn",onClick:b},toDisplayString$1(unref(t)("aiWindow.newChat")),1),createBaseVNode("div",_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,(F,H)=>(openBlock(),createElementBlock("div",{key:H,class:normalizeClass(["history-item",{active:n.value===H}]),onClick:j=>v(H)},[!l.value||n.value!==H?(openBlock(),createElementBlock("span",_hoisted_5$5,toDisplayString$1((F==null?void 0:F.title)||unref(t)("aiWindow.chatName")+` ${H+1}`),1)):withDirectives((openBlock(),createElementBlock("input",{key:1,"onUpdate:modelValue":R[0]||(R[0]=j=>c.value=j),onKeyup:[withKeys(j=>u(H),["enter"]),withKeys(d,["esc"])],onBlur:j=>u(H),class:"rename-input"},null,40,_hoisted_6$5)),[[vModelText,c.value]]),createBaseVNode("div",_hoisted_7$5,[createBaseVNode("button",{class:"rename-btn",onClick:withModifiers(j=>f(H),["stop"])},"✎",8,_hoisted_8$5),l.value?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:0,class:"delete-btn",onClick:withModifiers(j=>P(H),["stop"])},"×",8,_hoisted_9$5))])],10,_hoisted_4$5))),128))])]),createBaseVNode("div",_hoisted_10$4,[createBaseVNode("div",_hoisted_11$4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value.messages,(F,H)=>(openBlock(),createElementBlock("div",{key:H,class:normalizeClass(["message",F.role])},[createBaseVNode("div",_hoisted_12$4,[createBaseVNode("pre",null,toDisplayString$1(F.content),1)])],2))),128)),r.value?(openBlock(),createElementBlock("div",_hoisted_13$3,[createBaseVNode("div",_hoisted_14$3,[createBaseVNode("pre",null,toDisplayString$1(unref(t)("aiWindow.thinking")),1)])])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_15$3,[withDirectives(createBaseVNode("textarea",{class:"ai-chat-textarea","onUpdate:modelValue":R[1]||(R[1]=F=>o.value=F),placeholder:unref(t)("aiWindow.inputMessage"),onKeydown:withKeys(withModifiers(C,["exact","prevent"]),["enter"])},null,40,_hoisted_16$3),[[vModelText,o.value]]),createBaseVNode("button",{class:"ai-chat-btn",onClick:C,disabled:r.value},toDisplayString$1(unref(t)("aiWindow.send")),9,_hoisted_17$3)])])]))}},AiWindow=_export_sfc(_sfc_main$6,[["__scopeId","data-v-5271cf26"]]),_hoisted_1$5={class:"lora-info"},_hoisted_2$5={class:"lora-header"},_hoisted_3$5=["title"],_hoisted_4$4={class:"lora-weights"},_hoisted_5$4={class:"weight-item"},_hoisted_6$4=["title"],_hoisted_7$4={class:"weight-item"},_hoisted_8$4={class:"center-box"},_hoisted_9$4=["onClick"],prefix$1="weilin_prompt_ui_",_sfc_main$5={__name:"index",setup(e){const{t}=useI18n(),a=ref([]);window.addEventListener("message",o=>{o.data.type==="weilin_prompt_ui_update_node_list_info"&&(a.value=o.data.nodeList)});const n=o=>{window.postMessage({type:"weilin_prompt_ui_prompt_open_node_wit_seed",seed:o},"*")};return onMounted(()=>{window.postMessage({type:"weilin_prompt_ui_prompt_get_node_list_info"},"*")}),(o,r)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix$1}lora-stack`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$1}lora-content`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$1}lora-body`)},[createBaseVNode("div",{class:normalizeClass(`${prefix$1}lora-list`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,s=>(openBlock(),createElementBlock("div",{key:s.id,class:"lora-item"},[createBaseVNode("div",_hoisted_1$5,[createBaseVNode("div",_hoisted_2$5,[createBaseVNode("span",{class:"lora-name",title:s.title},"#"+toDisplayString$1(s.id)+" - "+toDisplayString$1(s.title),9,_hoisted_3$5)]),createBaseVNode("div",_hoisted_4$4,[createBaseVNode("div",_hoisted_5$4,[createBaseVNode("div",{class:"text-label",title:s.text},toDisplayString$1(s.text),9,_hoisted_6$4)]),createBaseVNode("div",_hoisted_7$4,[createBaseVNode("div",_hoisted_8$4,[createBaseVNode("button",{onClick:l=>n(s.seed),class:"open-button"},toDisplayString$1(unref(t)("nodeListWindow.openPromptUI")),9,_hoisted_9$4)])])])])]))),128))],2)],2)],2)],2))}},NodeListWindow=_export_sfc(_sfc_main$5,[["__scopeId","data-v-43ee045e"]]),cloudApi={getTreeFromCloud:async e=>await request({url:"/cloud/get/tree",method:"post",data:{path:e}}),getLocalInstallPackage:async()=>await request({url:"/cloud/get/local/package",method:"post",data:{}}),installSelectPackage:async(e,t)=>await request({url:"/cloud/download/file",method:"post",timeout:0,data:{paths:t,path:e}})},_hoisted_1$4={class:"cloud-manager"},_hoisted_2$4={class:"toolbar"},_hoisted_3$4={class:"current-path"},_hoisted_4$3={class:"file-list"},_hoisted_5$3={class:"file-info"},_hoisted_6$3={class:"file-name"},_hoisted_7$3={class:"file-type"},_hoisted_8$3={class:"file-actions"},_hoisted_9$3=["onClick"],_hoisted_10$3={key:1,class:"install-container"},_hoisted_11$3={key:0,class:"installed-badge"},_hoisted_12$3=["onClick","disabled"],_sfc_main$4={__name:"index",setup(e){const{t}=useI18n(),a=ref([]),n=ref("tags"),o=ref("tags"),r=ref([]),s=async b=>{try{const $=await cloudApi.getTreeFromCloud(b);a.value=$.data}catch($){console.error("获取文件树失败:",$),message$1({type:"warn",str:"message.networkError"})}},l=async()=>{try{const b=await cloudApi.getLocalInstallPackage();r.value=b.data||[]}catch(b){console.error("获取已安装包列表失败:",b),message$1({type:"warn",str:"message.networkError"})}},c=b=>r.value.some($=>$===b),f=async b=>{try{const $=a.value.find(w=>w.path===b);$&&($.isInstalling=!0,await cloudApi.installSelectPackage(o.value,[b]).then(()=>{l(),message$1({type:"success",str:"message.installPackageSuccess"})}))}catch($){console.error("安装包失败:",$),message$1({type:"warn",str:"message.installPackageFail"})}finally{const $=a.value.find(w=>w.path===b);$&&($.isInstalling=!1)}},u=()=>{const b=n.value.split("/");b.length>1&&(n.value=b.slice(0,-1).join("/"),s(n.value))},d=()=>{s(n.value),l()},m=b=>{n.value=b,s(b)},g=()=>{o.value="tags",n.value="tags",s(n.value)},v=()=>{o.value="danbooru",n.value="danbooru",s(n.value)};return onMounted(()=>{s(n.value),l()}),(b,$)=>(openBlock(),createElementBlock("div",_hoisted_1$4,[createBaseVNode("div",_hoisted_2$4,[createBaseVNode("button",{class:"refresh-btn",onClick:d},$[0]||($[0]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)])),createBaseVNode("button",{class:"database-btn",onClick:g},[$[1]||($[1]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(t)("cloudWindow.tagDatabase")),1)]),createBaseVNode("button",{class:"database-btn",onClick:v},[$[2]||($[2]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-8-2h2v-4h4v-2h-4V7h-2v4H7v2h4v4z"})],-1)),createBaseVNode("span",null,toDisplayString$1(unref(t)("cloudWindow.danbooruDatabase")),1)]),createBaseVNode("div",_hoisted_3$4,[createBaseVNode("span",null,toDisplayString$1(unref(t)("cloudWindow.currentPath"))+": "+toDisplayString$1(o.value=="tags"?unref(t)("cloudWindow.tagDatabase"):unref(t)("cloudWindow.danbooruDatabase")),1)])]),createBaseVNode("div",_hoisted_4$3,[n.value!=="tags"&&n.value!=="danbooru"?(openBlock(),createElementBlock("button",{key:0,class:"back-btn",onClick:u},[$[3]||($[3]=createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16",class:"tag-icon"},[createBaseVNode("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"})],-1)),createTextVNode(" "+toDisplayString$1(unref(t)("cloudWindow.back")),1)])):createCommentVNode("",!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,w=>(openBlock(),createElementBlock("div",{key:w.path,class:"file-item"},[createBaseVNode("div",_hoisted_5$3,[createBaseVNode("span",_hoisted_6$3,toDisplayString$1(w.name),1),createBaseVNode("span",_hoisted_7$3,toDisplayString$1(w.type=="dir"?"文件夹":w.type=="file"?"文件":"其它未知文件"),1)]),createBaseVNode("div",_hoisted_8$3,[w.type==="dir"?(openBlock(),createElementBlock("button",{key:0,onClick:C=>m(w.path),class:"open-btn"},toDisplayString$1(unref(t)("cloudWindow.open")),9,_hoisted_9$3)):w.type==="file"?(openBlock(),createElementBlock("div",_hoisted_10$3,[c(w.path)?(openBlock(),createElementBlock("span",_hoisted_11$3,toDisplayString$1(unref(t)("cloudWindow.installed")),1)):(openBlock(),createElementBlock("button",{key:1,onClick:C=>f(w.path),class:"install-btn",disabled:w.isInstalling},toDisplayString$1(w.isInstalling?unref(t)("cloudWindow.installing"):unref(t)("cloudWindow.install")),9,_hoisted_12$3))])):createCommentVNode("",!0)])]))),128))])]))}},CloudWindow=_export_sfc(_sfc_main$4,[["__scopeId","data-v-026f0961"]]),_hoisted_1$3={class:"header-actions"},_hoisted_2$3=["title"],_hoisted_3$3=["onMouseover","onDragstart","onDrop"],_hoisted_4$2={class:"lora-info"},_hoisted_5$2={class:"lora-header"},_hoisted_6$2=["title"],_hoisted_7$2={class:"lora-actions"},_hoisted_8$2=["onClick","title"],_hoisted_9$2=["onClick","title"],_hoisted_10$2={class:"lora-weights-row"},_hoisted_11$2={class:"weight-item-col"},_hoisted_12$2=["onUpdate:modelValue"],_hoisted_13$2={class:"weight-item-col"},_hoisted_14$2=["onUpdate:modelValue"],_hoisted_15$2={class:"switch-item-col"},_hoisted_16$2={class:"switch"},_hoisted_17$2=["checked","onChange"],prefix="weilin_prompt_ui_",_sfc_main$3={__name:"lora_stack",setup(e,{expose:t}){const{t:a}=useI18n(),n=ref([]),o=ref(""),r=ref(!1),s=ref(""),l=ref(100),c=ref(0),f=ref(),u=ref(!1),d=ref(!1),m=ref(),g=()=>{window.postMessage({type:"weilin_prompt_ui_openLoraManager_addLora_stack",seed:o.value},"*")},v=V=>{V.hidden=!V.hidden},b=(V,q)=>{if(d.value=!0,s.value===V&&r.value)return;const O=q.currentTarget.getBoundingClientRect();let ee={left:O.left-450-10,top:O.top};ee.left<10&&(ee.left=O.right+10),ee.top=Math.max(10,Math.min(ee.top,window.innerHeight-310)),l.value=ee.left,c.value=ee.top,r.value=!0,s.value=V,nextTick(()=>{m.value.refresh()})},$=()=>{d.value=!1,setTimeout(()=>{!u.value&&!d.value&&(r.value=!1,s.value="",u.value=!1)},200)},w=()=>{u.value=!0,d.value=!0},C=()=>{r.value=!1,s.value="",u.value=!1},P=V=>{n.value.find(q=>q.name===V.name)||n.value.push({name:V.name,weight:1,text_encoder_weight:1,...V})},y=V=>{const q=n.value.findIndex(Q=>Q.name===V.name);q>-1&&n.value.splice(q,1)},E=ref(),R=V=>{E.value.open({name:V.lora})};window.addEventListener("message",V=>{V.data.type==="weilin_prompt_ui_selectLora_stack_"+o.value&&P(V.data.lora)});const F=(V,q)=>{if(o.value=q,V.length>0)try{const Q=JSON.parse(V);if(Q.lora&&Q.lora!=""&&(n.value=Q.lora),Q.temp_lora&&Q.temp_lora.length>0&&Q.temp_lora!=""){const O=Q.temp_lora;n.value=O}}catch{message$1({type:"warn",str:"promptBox.settings.errorPrompt"})}};watch(n,V=>{H()},{deep:!0});const H=()=>{if(n.value.length>0){const V=n.value.filter(O=>!O.hidden);let q={lora:"",temp_lora:n.value};V.length>0&&(q.lora=V);const Q=JSON.stringify(q);window.postMessage({type:"weilin_prompt_ui_prompt_finish_lora_stack_"+o.value,data:Q},"*")}else{const q=JSON.stringify({lora:"",temp_lora:""});window.postMessage({type:"weilin_prompt_ui_prompt_finish_lora_stack_"+o.value,data:q},"*")}},j=ref(null),fe=V=>{j.value=V},oe=V=>{if(j.value===null||j.value===V)return;const q=n.value.splice(j.value,1)[0];n.value.splice(V,0,q),j.value=null,H()};return t({initLoraStack:F}),(V,q)=>(openBlock(),createElementBlock("div",{class:normalizeClass(`${prefix}lora-stack`)},[createBaseVNode("div",{class:normalizeClass(`${prefix}lora-content`)},[createBaseVNode("div",{class:normalizeClass(`${prefix}lora-header`)},[createBaseVNode("div",_hoisted_1$3,[createBaseVNode("button",{class:normalizeClass(`${prefix}add-btn`),onClick:g,title:unref(a)("controls.addLora")},q[1]||(q[1]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"16",height:"16"},[createBaseVNode("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})],-1)]),10,_hoisted_2$3)])],2),createBaseVNode("div",{class:normalizeClass(`${prefix}lora-body`)},[createBaseVNode("div",{class:normalizeClass(`${prefix}lora-list`)},[(openBlock(!0),createElementBlock(Fragment,null,renderList(n.value,(Q,O)=>(openBlock(),createElementBlock("div",{ref_for:!0,ref_key:"loraStackItemRef",ref:f,key:Q.name,class:normalizeClass(["lora-item",{"hidden-lora":Q.hidden}]),onMouseover:G=>b(Q.lora,G),onMouseleave:$,draggable:"true",onDragstart:G=>fe(O),onDragover:q[0]||(q[0]=withModifiers(()=>{},["prevent"])),onDrop:G=>oe(O)},[createBaseVNode("div",_hoisted_4$2,[createBaseVNode("div",_hoisted_5$2,[createBaseVNode("span",{class:"lora-name",title:Q.name},toDisplayString$1(Q.name),9,_hoisted_6$2),createBaseVNode("div",_hoisted_7$2,[createBaseVNode("button",{class:"look-on-btn",onClick:G=>R(Q),title:unref(a)("controls.lookOnLora")},q[2]||(q[2]=[createBaseVNode("svg",{viewBox:"0 0 1024 1024",width:"14",height:"14"},[createBaseVNode("path",{d:"M576.5 930.2H163.1c-52.9 0-96-43.1-96-96v-672c0-52.9 43.1-96 96-96h672c52.9 0 96 43.1 96 96V577c0 17.7-14.3 32-32 32s-32-14.3-32-32V162.2c0-17.6-14.4-32-32-32h-672c-17.6 0-32 14.4-32 32v672c0 17.6 14.4 32 32 32h413.4c17.7 0 32 14.3 32 32s-14.3 32-32 32z","p-id":"3466"}),createBaseVNode("path",{d:"M692.4 322.3H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h446.7c17.7 0 32 14.3 32 32s-14.3 32-32 32zM388.5 530.2H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.6-14.3 32-31.9 32zM388.5 738H245.7c-17.7 0-32-14.3-32-32s14.3-32 32-32h142.7c17.7 0 32 14.3 32 32 0.1 17.7-14.3 32-31.9 32z","p-id":"3467"}),createBaseVNode("path",{d:"M624.1 792.5c-94.8 0-172-77.2-172-172s77.2-172 172-172 172 77.2 172 172-77.1 172-172 172z m0-280c-59.6 0-108 48.4-108 108s48.4 108 108 108 108-48.4 108-108-48.4-108-108-108z","p-id":"3468"}),createBaseVNode("path",{d:"M820.8 864.2L710.5 753.9c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L866 818.9c12.5 12.5 12.5 32.8 0 45.3s-32.7 12.5-45.2 0z","p-id":"3469"})],-1)]),8,_hoisted_8$2),createBaseVNode("button",{class:"remove-btn",onClick:G=>y(Q),title:unref(a)("controls.removeLora")},q[3]||(q[3]=[createBaseVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[createBaseVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,_hoisted_9$2)])]),createBaseVNode("div",_hoisted_10$2,[createBaseVNode("div",_hoisted_11$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("loraManager.modelWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":G=>Q.weight=G,class:"lora-weight",step:"0.1"},null,8,_hoisted_12$2),[[vModelText,Q.weight]])]),createBaseVNode("div",_hoisted_13$2,[createBaseVNode("label",null,toDisplayString$1(unref(a)("loraManager.textEncoderWeight")),1),withDirectives(createBaseVNode("input",{type:"number","onUpdate:modelValue":G=>Q.text_encoder_weight=G,class:"lora-weight",step:"0.1"},null,8,_hoisted_14$2),[[vModelText,Q.text_encoder_weight]])]),createBaseVNode("div",_hoisted_15$2,[createBaseVNode("label",null,toDisplayString$1(Q.hidden?unref(a)("lora.hideLora"):unref(a)("lora.showLora")),1),createBaseVNode("label",_hoisted_16$2,[createBaseVNode("input",{type:"checkbox",checked:!Q.hidden,onChange:G=>v(Q)},null,40,_hoisted_17$2),q[4]||(q[4]=createBaseVNode("span",{class:"slider"},null,-1))])])])])],42,_hoisted_3$3))),128))],2)],2)],2),createVNode(loraDetail,{ref_key:"loraDetailLoraStackRef",ref:E},null,512),r.value?(openBlock(),createBlock(LoraCard,{key:0,ref_key:"loraCardItem",ref:m,fileNmae:s.value,paddingLeft:l.value,paddingTop:c.value,onCardLeave:C,onCardenter:w},null,8,["fileNmae","paddingLeft","paddingTop"])):createCommentVNode("",!0)],2))}},LoraStackWindow=_export_sfc(_sfc_main$3,[["__scopeId","data-v-c2ab38ea"]]),danbooruApi={searchDanbooru:async(e="",t=1,a=100)=>await request({url:"/danbooru/get_tags",method:"post",data:{search:e,page:t,limit:a}}),addDanbooruTag:async e=>await request({url:"/danbooru/add_tag",method:"post",data:e}),updateDanbooruTag:async e=>await request({url:"/danbooru/update_tag",method:"post",timeout:0,data:e}),deleteDanbooruTag:async e=>await request({url:"/danbooru/delete_tag",method:"post",timeout:0,data:{id:e}}),batchDeleteDanbooruTags:async e=>await request({url:"/danbooru/batch_delete_tag",method:"post",timeout:0,data:{values:e}}),runSQLToServer:async e=>await request({url:"/danbooru/run_sql_text",method:"post",timeout:0,data:{sql:e}})},_hoisted_1$2={key:0,class:"loading-overlay"},_hoisted_2$2={class:"settings-content"},_hoisted_3$2={style:{"margin-bottom":"16px"}},_hoisted_4$1=["placeholder"],_hoisted_5$1={style:{"margin-bottom":"16px"}},_hoisted_6$1=["placeholder"],_hoisted_7$1=["placeholder"],_hoisted_8$1=["placeholder"],_hoisted_9$1={class:"data-container"},_hoisted_10$1={key:0},_hoisted_11$1={key:0},_hoisted_12$1={class:"tag-group-container"},_hoisted_13$1={key:0},_hoisted_14$1={key:1},_hoisted_15$1={style:{display:"flex","align-items":"center"}},_hoisted_16$1={key:0},_hoisted_17$1=["placeholder"],_hoisted_18$1=["placeholder"],_hoisted_19$1=["placeholder"],_hoisted_20$1=["placeholder"],_hoisted_21$1=["onClick"],_hoisted_22$1=["onClick"],_hoisted_23$1=["onClick"],_hoisted_24$1={key:1},_hoisted_25$1={class:"tag-group-container"},_hoisted_26$1={key:0},_hoisted_27$1={key:1},_hoisted_28$1={style:{display:"flex","align-items":"center"}},_hoisted_29$1={key:0},_hoisted_30$1=["placeholder"],_hoisted_31$1=["placeholder"],_hoisted_32$1=["placeholder"],_hoisted_33$1=["placeholder"],_hoisted_34$1=["onClick"],_hoisted_35$1=["onClick"],_hoisted_36$1=["onClick"],_sfc_main$2={__name:"import_danbooru",setup(e,{expose:t}){const{t:a}=useI18n(),n=ref(!1),o=ref(""),r=ref(""),s=ref(""),l=ref(""),c=ref(""),f=ref(""),u=ref(""),d=ref(""),m=ref(""),g=ref([]),v=ref(-1),b=ref(""),$=ref(""),w=ref(null);ref(null);const C=ref(null),P=ref(!1),y=ref(""),E=ref(0),R=ref(0);function F(){o.value="",r.value="",E.value=0,R.value=0,s.value="",l.value="",c.value="",f.value="",u.value="",d.value="",m.value="",g.value=[],v.value=-1,b.value="",$.value="",P.value=!1}function H(re){F();const B=re.target.files[0];if(B){const z=new FileReader;z.onload=Z=>{Z.target.result.split(";").filter(x=>x.trim()).forEach(x=>{if((x.includes("tag_groups")||x.includes("tag_subgroups"))&&x.includes("p_uuid"))if(x.includes("g_uuid")){c.value=x+";";const I=x.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);I&&(m.value=I[1]);const X=x.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);X&&(u.value=X[1].replace(/''/g,"'"))}else{l.value=x+";";const I=x.split("VALUES")[1].trim().match(/,\s*'([^']+)'\)$/);I&&(d.value=I[1]);const X=x.match(/VALUES\s*\([^'"]*['"]([^'"]+)['"]/);X&&(f.value=X[1].replace(/''/g,"'"))}else x.includes("tag_tags")&&g.value.push(x+";")})},z.readAsText(B)}re.target.value=""}function j(re){const B=re.target.files[0];if(B){const z=new FileReader;z.onload=Z=>{Z.target.result.split(` +`).filter(x=>x.trim()).forEach(x=>{const S=x.split(",");if(S.length>=2){let I,X,ie,pe;S.length===2?(I=S[0].trim(),pe=S[1].trim(),X=0,ie=0):S.length>=3&&(I=S[0].trim(),X=parseInt(S[1].trim())||0,ie=parseInt(S[2].trim())||0,pe=S.slice(3).join(",").trim(),pe=pe.replace(/^"(.*)"$/,"$1"));const T=I.replace(/'/g,"''"),_=pe.replace(/'/g,"''"),M=`INSERT INTO "danbooru_tag" ("tag", "color_id", "translate", "hot", "aliases") VALUES ('${T}', '', '${_}', ${ie}, ${X});`;g.value.push(M)}})},z.readAsText(B)}re.target.value=""}function fe(){C.value.click()}function oe(){let re;g.value.length>0&&q(g.value[0])?re=[...g.value].join(` `):re=[l.value,c.value,...g.value].join(` -`);const B=new Blob([re],{type:"text/sql"}),z=document.createElement("a");if(z.href=URL.createObjectURL(B),y.value.length<=0){const Z=parseInt(new Date().getTime()/1e3);z.download="export_"+Z+".sql"}else z.download=y.value+".sql";z.click()}function V(re){const B=re.match(/VALUES\s*\([^']*'([^']+)'/),z=re.match(/VALUES\s*\([^']*'[^']*'\s*,\s*'([^']+)'/);return{text:B?B[1].replace(/''/g,"'"):"",desc:z?z[1].replace(/''/g,"'"):""}}function q(re){return re.includes("danbooru_tag")}function Q(re){const B=re.match(/VALUES\s*\(\s*'([^']+)'\s*,\s*'([^']*)'\s*,\s*'([^']*)'\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);return B?{tag:B[1].replace(/''/g,"'"),color_id:B[2],translate:B[3].replace(/''/g,"'"),hot:parseInt(B[4]),aliases:parseInt(B[5])}:{tag:"",color_id:"",translate:"",hot:0,aliases:0}}const O=ref(0),G=ref(0);function ee(re){const B=g.value[re];if(q(B)){const z=Q(B);b.value=z.tag,$.value=z.translate,O.value=z.hot,G.value=z.aliases}else{const z=V(B);b.value=z.text,$.value=z.desc}v.value=re}function A(re){const B=b.value.replace(/'/g,"''"),z=$.value.replace(/'/g,"''");if(q(g.value[re])){const Z=Q(g.value[re]),L=parseInt(O.value)||0,K=parseInt(G.value)||0;g.value[re]=`INSERT INTO "danbooru_tag" ("tag", "color_id", "translate", "hot", "aliases") VALUES ('${B}', '${Z.color_id}', '${z}', ${L}, ${K});`}else g.value[re]=g.value[re].replace(/(VALUES\s*\([^']*')([^']+)'/,`$1${B}'`).replace(/(VALUES\s*\([^']*'[^']*'\s*,\s*')([^']+)'/,`$1${z}'`);v.value=-1}function D(){v.value=-1,b.value="",$.value="",O.value=0,G.value=0}function W(re){g.value.splice(re,1)}function ae(){const re=o.value.replace(/'/g,"''"),B=r.value.replace(/'/g,"''"),z=parseInt(E.value)||0,Z=parseInt(R.value)||0,L=`INSERT INTO "danbooru_tag" ("tag", "color_id", "translate", "hot", "aliases") VALUES ('${re}', '', '${B}', ${z}, ${Z});`;g.value.push(L),o.value="",r.value="",E.value=0,R.value=0}const Y=ref(!1),ne=async re=>{Y.value=!0;try{await danbooruApi.runSQLToServer(re).then(B=>{if(B.code!=200){message$1({type:"warn",str:B.message});return}else te(),message$1({type:"success",str:"importDialog.successImport"})}).catch(B=>{console.error(B),message$1({type:"warn",str:"importDialog.importFail"})})}catch(B){console.error(B),message$1({type:"warn",str:"importDialog.importFail"})}finally{Y.value=!1}},te=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*")},ge=async()=>{if(g.value.length>0&&q(g.value[0])){const re=[...g.value];await ne(re)}else if(P.value){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const re=[...g.value];await ne(re)}else{if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const re=[l.value,c.value,...g.value];await ne(re)}};return watch(l,(re,B)=>{var L,K;if(!re||re===B)return;const z=(L=re.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:L[1],Z=(K=B==null?void 0:B.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:K[1];z&&Z&&c.value&&(c.value=c.value.replace(new RegExp(`'${Z}'`,"g"),`'${z}'`))}),watch(c,(re,B)=>{var L,K;if(!re||re===B)return;const z=(L=re.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:L[1],Z=(K=B==null?void 0:B.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:K[1];z&&Z&&g.value.length>0&&(g.value=g.value.map(x=>x.replace(new RegExp(`'${Z}'`,"g"),`'${z}'`)))}),t({open:()=>{n.value=!0}}),(re,B)=>(openBlock(),createElementBlock(Fragment,null,[Y.value?(openBlock(),createElementBlock("div",_hoisted_1$2,B[19]||(B[19]=[createBaseVNode("div",{class:"loading-spinner"},null,-1)]))):createCommentVNode("",!0),createVNode(Dialog,{modelValue:n.value,"onUpdate:modelValue":B[18]||(B[18]=z=>n.value=z),title:unref(a)("danbooruManager.importBatchTitle")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:B[17]||(B[17]=z=>n.value=!1)},toDisplayString$1(unref(a)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:ge},toDisplayString$1(unref(a)("importDialog.sure")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_2$2,[createBaseVNode("div",_hoisted_3$2,[createBaseVNode("button",{onClick:F,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.cleanAll")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:oe},toDisplayString$1(unref(a)("importDialog.dumpSQL")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":B[0]||(B[0]=z=>y.value=z),placeholder:unref(a)("importDialog.settingOutputName")},null,8,_hoisted_4$1),[[vModelText,y.value]]),createBaseVNode("input",{type:"file",ref_key:"fileInput",ref:w,onChange:H,accept:".sql",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"danbooruTxtFileInput",ref:N,onChange:j,accept:".txt,.csv",style:{display:"none"}},null,544)]),createBaseVNode("div",_hoisted_5$1,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[1]||(B[1]=z=>o.value=z),placeholder:"Tag"},null,512),[[vModelText,o.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[2]||(B[2]=z=>r.value=z),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_6$1),[[vModelText,r.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[3]||(B[3]=z=>E.value=z),placeholder:unref(a)("danbooruManager.hot"),type:"number"},null,8,_hoisted_7$1),[[vModelText,E.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[4]||(B[4]=z=>R.value=z),placeholder:unref(a)("danbooruManager.aliases"),type:"number"},null,8,_hoisted_8$1),[[vModelText,R.value]]),createBaseVNode("button",{onClick:ae},toDisplayString$1(unref(a)("importDialog.add")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:fe,class:"upload-btn"},toDisplayString$1(unref(a)("danbooruManager.import")),1)]),createBaseVNode("div",_hoisted_9$1,[l.value?(openBlock(),createElementBlock("div",_hoisted_10$1,[createBaseVNode("h3",null,toDisplayString$1(V(l.value).text),1),c.value?(openBlock(),createElementBlock("div",_hoisted_11$1,[createBaseVNode("h4",null,toDisplayString$1(V(c.value).text),1),createBaseVNode("div",_hoisted_12$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(z,Z)=>(openBlock(),createElementBlock("div",{key:Z,style:{display:"flex","flex-direction":"column","align-items":"center"}},[q(z)?(openBlock(),createElementBlock("p",_hoisted_13$1,toDisplayString$1(Q(z).tag)+" - "+toDisplayString$1(Q(z).translate)+" ("+toDisplayString$1(unref(a)("danbooruManager.hot"))+": "+toDisplayString$1(Q(z).hot)+", "+toDisplayString$1(unref(a)("danbooruManager.aliases"))+": "+toDisplayString$1(Q(z).aliases)+")",1)):(openBlock(),createElementBlock("p",_hoisted_14$1,toDisplayString$1(V(z).text)+" - "+toDisplayString$1(V(z).desc),1)),createBaseVNode("div",_hoisted_15$1,[v.value===Z?(openBlock(),createElementBlock("div",_hoisted_16$1,[q(z)?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":B[5]||(B[5]=L=>b.value=L),placeholder:"Tag"},null,512)),[[vModelText,b.value]]):withDirectives((openBlock(),createElementBlock("input",{key:1,"onUpdate:modelValue":B[6]||(B[6]=L=>b.value=L),placeholder:"Tag"},null,512)),[[vModelText,b.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:2,"onUpdate:modelValue":B[7]||(B[7]=L=>$.value=L),placeholder:unref(a)("importDialog.translate")},null,8,_hoisted_17$1)),[[vModelText,$.value]]):withDirectives((openBlock(),createElementBlock("input",{key:3,"onUpdate:modelValue":B[8]||(B[8]=L=>$.value=L),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_18$1)),[[vModelText,$.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:4,"onUpdate:modelValue":B[9]||(B[9]=L=>O.value=L),placeholder:unref(a)("danbooruManager.hot"),type:"number"},null,8,_hoisted_19$1)),[[vModelText,O.value]]):createCommentVNode("",!0),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:5,"onUpdate:modelValue":B[10]||(B[10]=L=>G.value=L),placeholder:unref(a)("danbooruManager.aliases"),type:"number"},null,8,_hoisted_20$1)),[[vModelText,G.value]]):createCommentVNode("",!0),createBaseVNode("button",{onClick:L=>A(Z)},toDisplayString$1(unref(a)("importDialog.sureYes")),9,_hoisted_21$1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:D},toDisplayString$1(unref(a)("importDialog.cancel")),1)])):(openBlock(),createElementBlock("button",{key:1,onClick:L=>ee(Z)},toDisplayString$1(unref(a)("importDialog.edit")),9,_hoisted_22$1)),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:L=>W(Z)},toDisplayString$1(unref(a)("importDialog.delete")),9,_hoisted_23$1)])]))),128))])])):createCommentVNode("",!0)])):g.value.length>0?(openBlock(),createElementBlock("div",_hoisted_24$1,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("danbooruManager.importTitle")),1),createBaseVNode("div",_hoisted_25$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(z,Z)=>(openBlock(),createElementBlock("div",{key:Z,style:{display:"flex","flex-direction":"column","align-items":"center"}},[q(z)?(openBlock(),createElementBlock("p",_hoisted_26$1,toDisplayString$1(Q(z).tag)+" - "+toDisplayString$1(Q(z).translate)+" (热度: "+toDisplayString$1(Q(z).hot)+", 别名: "+toDisplayString$1(Q(z).aliases)+")",1)):(openBlock(),createElementBlock("p",_hoisted_27$1,toDisplayString$1(V(z).text)+" - "+toDisplayString$1(V(z).desc),1)),createBaseVNode("div",_hoisted_28$1,[v.value===Z?(openBlock(),createElementBlock("div",_hoisted_29$1,[q(z)?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":B[11]||(B[11]=L=>b.value=L),placeholder:"Tag"},null,512)),[[vModelText,b.value]]):withDirectives((openBlock(),createElementBlock("input",{key:1,"onUpdate:modelValue":B[12]||(B[12]=L=>b.value=L),placeholder:"Tag"},null,512)),[[vModelText,b.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:2,"onUpdate:modelValue":B[13]||(B[13]=L=>$.value=L),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_30$1)),[[vModelText,$.value]]):withDirectives((openBlock(),createElementBlock("input",{key:3,"onUpdate:modelValue":B[14]||(B[14]=L=>$.value=L),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_31$1)),[[vModelText,$.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:4,"onUpdate:modelValue":B[15]||(B[15]=L=>O.value=L),placeholder:unref(a)("danbooruManager.hot"),type:"number"},null,8,_hoisted_32$1)),[[vModelText,O.value]]):createCommentVNode("",!0),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:5,"onUpdate:modelValue":B[16]||(B[16]=L=>G.value=L),placeholder:unref(a)("danbooruManager.aliases"),type:"number"},null,8,_hoisted_33$1)),[[vModelText,G.value]]):createCommentVNode("",!0),createBaseVNode("button",{onClick:L=>A(Z)},toDisplayString$1(unref(a)("importDialog.sureYes")),9,_hoisted_34$1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:D},toDisplayString$1(unref(a)("importDialog.cancel")),1)])):(openBlock(),createElementBlock("button",{key:1,onClick:L=>ee(Z)},toDisplayString$1(unref(a)("importDialog.edit")),9,_hoisted_35$1)),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:L=>W(Z)},toDisplayString$1(unref(a)("importDialog.delete")),9,_hoisted_36$1)])]))),128))])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"])],64))}},importDanbooru=_export_sfc(_sfc_main$2,[["__scopeId","data-v-d9630f57"]]),_hoisted_1$1={class:"danbooru-manager"},_hoisted_2$1={class:"title"},_hoisted_3$1={class:"action-bar"},_hoisted_4={class:"search-box"},_hoisted_5=["placeholder"],_hoisted_6=["disabled"],_hoisted_7={class:"pagination"},_hoisted_8=["disabled"],_hoisted_9={class:"page-info"},_hoisted_10=["disabled"],_hoisted_11={class:"page-size-control"},_hoisted_12={key:0,class:"tag-list"},_hoisted_13={style:{"table-layout":"fixed",overflow:"auto"}},_hoisted_14={class:"checkbox-column"},_hoisted_15=["checked"],_hoisted_16={class:"tag-column"},_hoisted_17={class:"translate-column"},_hoisted_18={class:"color-column"},_hoisted_19={class:"hot-column"},_hoisted_20={class:"aliases-column"},_hoisted_21={class:"control-column"},_hoisted_22=["value"],_hoisted_23=["onClick"],_hoisted_24=["onClick"],_hoisted_25={key:1,class:"no-results"},_hoisted_26={key:2,class:"weilin-tools-dialog"},_hoisted_27={class:"weilin-tools-dialog-content"},_hoisted_28={class:"form-group"},_hoisted_29=["placeholder"],_hoisted_30={class:"form-group"},_hoisted_31=["placeholder"],_hoisted_32={class:"form-group"},_hoisted_33=["value"],_hoisted_34={class:"form-group"},_hoisted_35={key:0,class:"form-group"},_hoisted_36={class:"weilin-tools-dialog-actions"},_hoisted_37={key:3,class:"weilin-tools-dialog"},_hoisted_38={class:"weilin-tools-dialog-content"},_hoisted_39={class:"weilin-tools-dialog-actions"},_hoisted_40={key:4,class:"weilin-tools-dialog"},_hoisted_41={class:"weilin-tools-dialog-content"},_hoisted_42={class:"weilin-tools-dialog-actions"},_hoisted_43={key:5,class:"overlay"},_sfc_main$1={__name:"danbooru_manager",setup(e){const{t}=useI18n(),a=ref(""),n=ref([]),o=ref(1),r=ref(1),s=ref(100),l=ref(!1),c=ref(!1),f=ref(!1),u=ref(!1),d=ref(!1),m=ref(null),g=ref({tag:"",translate:"",color_id:0,hot:0,aliases:0}),v=[{name:"默认",color:"#888888"},{name:"红色",color:"#FF6666"},{name:"绿色",color:"#66FF66"},{name:"蓝色",color:"#6666FF"},{name:"黄色",color:"#FFFF66"},{name:"紫色",color:"#FF66FF"},{name:"青色",color:"#66FFFF"},{name:"橙色",color:"#FF9966"},{name:"粉色",color:"#FF99CC"},{name:"棕色",color:"#996633"}],b=A=>v[A]?v[A].color:v[0].color;let $=null;const w=()=>{$&&clearTimeout($),$=setTimeout(()=>{o.value=1,N()},300)},N=async()=>{l.value=!0,oe.value=[];try{const A=await danbooruApi.searchDanbooru(a.value,o.value,s.value);A&&A.data?(n.value=A.data.data||[],r.value=A.data.total_pages||1):(n.value=[],r.value=1)}catch(A){console.error("搜索标签失败:",A),message$1({type:"error",str:t("message.searchFailed")}),n.value=[]}finally{l.value=!1}},P=A=>{A<1||A>r.value||(o.value=A,N())},y=()=>{s.value<10&&(s.value=10),s.value>500&&(s.value=500),o.value=1,oe.value=[],N()},E=()=>{d.value=!1,g.value={tag:"",translate:"",color_id:0,hot:0,aliases:0},c.value=!0},R=A=>{d.value=!0,m.value=A,g.value={id:A.id_index,tag:A.tag,translate:A.translate||"",color_id:A.color_id||0,hot:A.hot||0,aliases:A.aliases||0},c.value=!0},F=()=>{c.value=!1},H=async()=>{if(!g.value.tag){message$1({type:"error",str:t("tagManager.textRequired")});return}try{if(d.value){const A=await danbooruApi.updateDanbooruTag({id:g.value.id,update_data:{tag:g.value.tag,translate:g.value.translate,color_id:g.value.color_id,hot:g.value.hot,aliases:g.value.aliases}});A&&A.code===200?(message$1({type:"success",str:t("message.editSuccess")}),N()):message$1({type:"error",str:t("message.editFailed")})}else{const A=await danbooruApi.addDanbooruTag({tag:g.value.tag,translate:g.value.translate,color_id:g.value.color_id,hot:g.value.hot,aliases:g.value.aliases});A&&A.code===200?(message$1({type:"success",str:t("message.addSuccess")}),N()):message$1({type:"error",str:t("message.addFailed")})}F()}catch(A){console.error("提交表单失败:",A),message$1({type:"error",str:d.value?t("message.editFailed"):t("message.addFailed")})}},j=A=>{m.value=A,f.value=!0},fe=async()=>{if(!(!m.value||!m.value.id_index))try{const A=await danbooruApi.deleteDanbooruTag(m.value.id_index);A&&A.code===200?(message$1({type:"success",str:t("message.deleteSuccess")}),N()):message$1({type:"error",str:t("message.deleteFailed")}),f.value=!1}catch(A){console.error("删除标签失败:",A),message$1({type:"error",str:t("message.deleteFailed")})}},oe=ref([]),V=computed(()=>n.value.length>0&&oe.value.length===n.value.length),q=()=>{V.value?oe.value=[]:oe.value=n.value.map(A=>A.id_index)},Q=()=>{oe.value.length!==0&&(u.value=!0)},O=async()=>{if(oe.value.length!==0){try{const A=await danbooruApi.batchDeleteDanbooruTags(oe.value);A&&A.code===200?(message$1({type:"success",str:`成功删除 ${oe.value.length} 个标签`}),oe.value=[],N()):message$1({type:"error",str:"批量删除失败"})}catch(A){console.error("批量删除失败:",A),message$1({type:"error",str:"批量删除失败"})}u.value=!1}},G=ref(),ee=()=>{G.value.open()};return onMounted(()=>{N()}),(A,D)=>{var W;return openBlock(),createElementBlock("div",_hoisted_1$1,[createBaseVNode("h2",_hoisted_2$1,toDisplayString$1(unref(t)("danbooruManager.title")),1),createBaseVNode("div",_hoisted_3$1,[createBaseVNode("div",_hoisted_4,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":D[0]||(D[0]=ae=>a.value=ae),type:"text",placeholder:unref(t)("danbooruManager.searchPlaceholder"),onInput:w},null,40,_hoisted_5),[[vModelText,a.value]]),createBaseVNode("button",{class:"search-btn",onClick:N},toDisplayString$1(unref(t)("tagManager.search")),1)]),createBaseVNode("button",{class:"add-btn",onClick:E},toDisplayString$1(unref(t)("danbooruManager.add")),1),createBaseVNode("button",{class:"add-btn",onClick:ee},toDisplayString$1(unref(t)("tagManager.importDanbooru")),1),createBaseVNode("button",{class:normalizeClass(["batch-delete-btn",{disabled:oe.value.length===0}]),disabled:oe.value.length===0,onClick:Q},toDisplayString$1(unref(t)("tagManager.hasDeleteAction"))+" ("+toDisplayString$1(oe.value.length)+") ",11,_hoisted_6)]),createBaseVNode("div",_hoisted_7,[createBaseVNode("button",{disabled:o.value<=1,onClick:D[1]||(D[1]=ae=>P(o.value-1)),class:"page-btn"},toDisplayString$1(unref(t)("loraManager.prevPage")),9,_hoisted_8),createBaseVNode("span",_hoisted_9,toDisplayString$1(o.value)+" / "+toDisplayString$1(r.value),1),createBaseVNode("button",{disabled:o.value>=r.value,onClick:D[2]||(D[2]=ae=>P(o.value+1)),class:"page-btn"},toDisplayString$1(unref(t)("loraManager.nextPage")),9,_hoisted_10),createBaseVNode("div",_hoisted_11,[createBaseVNode("label",null,toDisplayString$1(unref(t)("danbooruManager.pageShow")),1),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":D[3]||(D[3]=ae=>s.value=ae),type:"number",min:"10",max:"500",onChange:y,class:"page-size-input"},null,544),[[vModelText,s.value,void 0,{number:!0}]]),createBaseVNode("span",null,toDisplayString$1(unref(t)("danbooruManager.pageLimit")),1)])]),n.value.length>0?(openBlock(),createElementBlock("div",_hoisted_12,[createBaseVNode("table",_hoisted_13,[createBaseVNode("thead",null,[createBaseVNode("tr",null,[createBaseVNode("th",_hoisted_14,[createBaseVNode("input",{type:"checkbox",checked:V.value,onChange:q},null,40,_hoisted_15)]),D[12]||(D[12]=createBaseVNode("th",{class:"id-column"},"ID",-1)),createBaseVNode("th",_hoisted_16,toDisplayString$1(unref(t)("tagManager.description")),1),createBaseVNode("th",_hoisted_17,toDisplayString$1(unref(t)("promptBox.translate")),1),createBaseVNode("th",_hoisted_18,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),createBaseVNode("th",_hoisted_19,toDisplayString$1(unref(t)("danbooruManager.hot")),1),createBaseVNode("th",_hoisted_20,toDisplayString$1(unref(t)("danbooruManager.aliases")),1),createBaseVNode("th",_hoisted_21,toDisplayString$1(unref(t)("danbooruManager.controle")),1)])]),createBaseVNode("tbody",null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(n.value,ae=>(openBlock(),createElementBlock("tr",{key:ae.id_index},[createBaseVNode("td",null,[withDirectives(createBaseVNode("input",{type:"checkbox",value:ae.id_index,"onUpdate:modelValue":D[4]||(D[4]=Y=>oe.value=Y)},null,8,_hoisted_22),[[vModelCheckbox,oe.value]])]),createBaseVNode("td",null,toDisplayString$1(ae.id_index),1),createBaseVNode("td",null,toDisplayString$1(ae.tag),1),createBaseVNode("td",null,toDisplayString$1(ae.translate),1),createBaseVNode("td",null,[createBaseVNode("div",{class:"color-box",style:normalizeStyle({backgroundColor:b(ae.color_id)})},null,4)]),createBaseVNode("td",null,toDisplayString$1(ae.hot),1),createBaseVNode("td",null,toDisplayString$1(ae.aliases),1),createBaseVNode("td",null,[createBaseVNode("button",{class:"edit-btn",onClick:Y=>R(ae)},toDisplayString$1(unref(t)("common.edit")),9,_hoisted_23),createBaseVNode("button",{style:{"margin-left":"10px"},class:"delete-btn",onClick:Y=>j(ae)},toDisplayString$1(unref(t)("common.delete")),9,_hoisted_24)])]))),128))])])])):(openBlock(),createElementBlock("div",_hoisted_25,toDisplayString$1(unref(t)("tagManager.noResults")),1)),c.value?(openBlock(),createElementBlock("div",_hoisted_26,[createBaseVNode("div",_hoisted_27,[createBaseVNode("h3",null,toDisplayString$1(d.value?unref(t)("danbooruManager.edit"):unref(t)("danbooruManager.add")),1),createBaseVNode("div",_hoisted_28,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.description")),1),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":D[5]||(D[5]=ae=>g.value.tag=ae),type:"text",placeholder:unref(t)("tagManager.descriptionPlaceholder")},null,8,_hoisted_29),[[vModelText,g.value.tag]])]),createBaseVNode("div",_hoisted_30,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.translate")),1),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":D[6]||(D[6]=ae=>g.value.translate=ae),type:"text",placeholder:unref(t)("danbooruManager.translatePlaceholder")},null,8,_hoisted_31),[[vModelText,g.value.translate]])]),createBaseVNode("div",_hoisted_32,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":D[7]||(D[7]=ae=>g.value.color_id=ae)},[(openBlock(),createElementBlock(Fragment,null,renderList(v,(ae,Y)=>createBaseVNode("option",{key:Y,value:Y},toDisplayString$1(ae.name),9,_hoisted_33)),64))],512),[[vModelSelect,g.value.color_id]]),createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:b(g.value.color_id)})},null,4)]),createBaseVNode("div",_hoisted_34,[D[13]||(D[13]=createBaseVNode("label",null,"Hot",-1)),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":D[8]||(D[8]=ae=>g.value.hot=ae),type:"number",min:"0"},null,512),[[vModelText,g.value.hot,void 0,{number:!0}]])]),d.value?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_35,[D[14]||(D[14]=createBaseVNode("label",null,"Aliases",-1)),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":D[9]||(D[9]=ae=>g.value.aliases=ae),type:"number",min:"0"},null,512),[[vModelText,g.value.aliases,void 0,{number:!0}]])])),createBaseVNode("div",_hoisted_36,[createBaseVNode("button",{onClick:F},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{onClick:H},toDisplayString$1(unref(t)("common.save")),1)])])])):createCommentVNode("",!0),f.value?(openBlock(),createElementBlock("div",_hoisted_37,[createBaseVNode("div",_hoisted_38,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("common.confirmDelete")),1),createBaseVNode("p",null,toDisplayString$1(unref(t)("tagManager.deleteTagConfirm",{name:((W=m.value)==null?void 0:W.tag)||""})),1),createBaseVNode("div",_hoisted_39,[createBaseVNode("button",{onClick:D[10]||(D[10]=ae=>f.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:fe},toDisplayString$1(unref(t)("common.delete")),1)])])])):createCommentVNode("",!0),u.value?(openBlock(),createElementBlock("div",_hoisted_40,[createBaseVNode("div",_hoisted_41,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("danbooruManager.sureBatchDelete")),1),createBaseVNode("p",null,toDisplayString$1(unref(t)("danbooruManager.sureBatchDeleteTips1"))+" "+toDisplayString$1(oe.value.length)+" "+toDisplayString$1(unref(t)("danbooruManager.sureBatchDeleteTips2")),1),createBaseVNode("div",_hoisted_42,[createBaseVNode("button",{onClick:D[11]||(D[11]=ae=>u.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:O},toDisplayString$1(unref(t)("danbooruManager.sureDelete")),1)])])])):createCommentVNode("",!0),c.value||f.value||u.value?(openBlock(),createElementBlock("div",_hoisted_43)):createCommentVNode("",!0),createVNode(importDanbooru,{ref_key:"importDanbooruDialog",ref:G},null,512)])}}},DanbooruManagerWindow=_export_sfc(_sfc_main$1,[["__scopeId","data-v-f19f168a"]]),_hoisted_1={id:"weilin_comfyui_tools_prompt_ui_div"},_hoisted_2={key:10,class:"version-update-notification"},_hoisted_3={class:"version-update-content"},STORAGE_PREFIX="weilin_tools_",_sfc_main={__name:"App",setup(e){useTagStore();const t=ref(localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true");localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")||(localStorage.setItem("weilin_prompt_ui_floatingBallEnabled","true"),t.value=!0);const{t:a}=useI18n(),n=ref(""),o=ref("look"),r=ref("manager"),s=ref("prompt_global"),l=ref(!1),c=`${STORAGE_PREFIX}theme`,f=ref(localStorage.getItem(c)==="dark"),u=ref(""),d=ref(!1),m=ref(""),g=ref(null),v=`${STORAGE_PREFIX}version_update_remind`,b=()=>{d.value=!1,g.value&&(clearTimeout(g.value),g.value=null)},$=()=>{window.open("https://github.com/weilin9999/WeiLin-Comfyui-Tools","_blank"),b()},w=()=>{localStorage.setItem(v,"false"),b()},N={prompt:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:600,height:500}},tag:{visible:!1,is_default_close:!1,position:{x:150,y:150},size:{width:800,height:600}},lora:{visible:!1,is_default_close:!1,position:{x:200,y:200},size:{width:800,height:600}},history:{visible:!1,is_default_close:!1,position:{x:300,y:300},size:{width:800,height:600}},ai_window:{visible:!1,is_default_close:!1,position:{x:400,y:400},size:{width:800,height:600}},node_list_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:300,height:600}},cloud_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:800,height:600}},lora_stack_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:300,height:600}},danbooru_manager_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:800,height:600}}},P=()=>{try{const A=localStorage.getItem(`${STORAGE_PREFIX}windowStates`);if(A){const D=JSON.parse(A),W={...N};for(const ae in D)ae in W&&(W[ae]={...N[ae],...D[ae],visible:D[ae].is_default_close?!1:D[ae].visible});return W}}catch(A){console.error("Error loading window states:",A)}return{...N}},y=ref(P());watch(y,A=>{try{localStorage.setItem(`${STORAGE_PREFIX}windowStates`,JSON.stringify(A))}catch(D){console.error("Error saving window states:",D)}},{deep:!0}),onMounted(()=>{Object.keys(y.value).forEach(A=>{windowManager.registerWindow(A)}),E(),window.addEventListener("message",G),ee()});const E=()=>{let A=localStorage.getItem(c);A||(localStorage.setItem(c,"dark"),A="dark",f.value=!0),f.value=A==="dark";const D=document.getElementById("weilin_comfyui_tools_prompt_ui_div");D&&D.setAttribute("data-theme",f.value?"dark":"light")};onUnmounted(()=>{Object.keys(y.value).forEach(A=>{windowManager.unregisterWindow(A)}),window.removeEventListener("message",G),g.value&&(clearTimeout(g.value),g.value=null)});const R=A=>{A==="prompt"&&(n.value=""),y.value[A].visible=!1},F=(A,D)=>{y.value[A]&&(y.value[A].position={...D})},H=(A,D)=>{y.value[A]&&(y.value[A].size={...D})},j=()=>{const A={loraDetail:{visible:!1,is_default_close:!1,position:{x:150,y:150},size:{width:800,height:600}}},D={prompt:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:600,height:400}},tag:{visible:!1,is_default_close:!1,position:{x:150,y:150},size:{width:800,height:600}},lora:{visible:!1,is_default_close:!1,position:{x:200,y:200},size:{width:800,height:600}},history:{visible:!1,is_default_close:!1,position:{x:300,y:300},size:{width:800,height:600}},ai_window:{visible:!1,is_default_close:!1,position:{x:400,y:400},size:{width:800,height:600}},node_list_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:400,height:800}},cloud_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:800,height:600}},lora_stack_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:300,height:600}},danbooru_manager_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:800,height:600}}};localStorage.setItem(`${STORAGE_PREFIX}windowStates`,JSON.stringify(D)),localStorage.setItem(`${STORAGE_PREFIX}loraDetailState`,JSON.stringify(A)),y.value=P()};(()=>{translatorApi.getTranslateSetting().then(A=>{localStorage.setItem("weilin_prompt_ui_translater_setting",A.data)}).catch(A=>{message({type:"warn",str:"message.getTranslaterFail"})})})();const oe=ref(),V=ref(),q=ref(),Q=ref(),O=ref(),G=A=>{A.data.type==="weilin_prompt_ui_openTagManager"?(r.value="manager",y.value.tag.visible=!0,windowManager.setActiveWindow("tag")):A.data.type==="weilin_prompt_ui_openTagManager_prompt"?(r.value="prompt",y.value.tag.visible=!0,windowManager.setActiveWindow("tag")):A.data.type==="weilin_prompt_ui_openPromptBox"?(n.value=A.data.id,s.value="prompt",y.value.prompt.visible=!0,l.value=!1,A.data.node==="WeiLinPromptUI"&&(l.value=!0),nextTick(()=>{oe.value.setPromptText(A.data.prompt)}),windowManager.setActiveWindow("prompt")):A.data.type==="weilin_prompt_ui_openLoraManager"?(o.value="look",y.value.lora.visible=!0,windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openLoraManager_addLora"?(o.value="addLora",y.value.lora.visible=!0,nextTick(()=>{q.value.openSetSeed(0,"")}),windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openLoraManager_addLora_stack"?(o.value="addLora",y.value.lora.visible=!0,nextTick(()=>{q.value.openSetSeed(1,A.data.seed)}),windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openLoraManager_addLora_stack_node"?(o.value="addLora",y.value.lora.visible=!0,nextTick(()=>{q.value.openSetSeed(2,A.data.seed)}),windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openHistoryManager"?(y.value.history.visible=!0,windowManager.setActiveWindow("history")):A.data.type==="weilin_prompt_ui_openAiWindow"?(y.value.ai_window.visible=!0,windowManager.setActiveWindow("ai_window")):A.data.type==="weilin_prompt_ui_open_node_list_window"?(y.value.node_list_window.visible=!0,windowManager.setActiveWindow("node_list_window")):A.data.type==="weilin_prompt_ui_prompt_finish_prompt"?window.postMessage({type:"weilin_prompt_ui_prompt_update_prompt_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_open_global_prompt_box"?(s.value="prompt_global",n.value="global",y.value.prompt.visible=!0,l.value=!1,nextTick(()=>{oe.value.setPromptText(u.value)}),windowManager.setActiveWindow("prompt")):A.data.type==="weilin_prompt_ui_open_global_tag_manager"?(r.value="manager",y.value.tag.visible=!0,windowManager.setActiveWindow("tag")):A.data.type==="weilin_prompt_ui_open_global_lora_manager"?(o.value="look",y.value.lora.visible=!0,windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_prompt_update_prompt_global"?u.value=A.data.data:A.data.type==="weilin_prompt_ui_floating_ball_setting"?t.value=localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true":A.data.type==="weilin_prompt_ui_restore_window"?j():A.data.type==="weilin_prompt_ui_open_cloud_window"?(y.value.cloud_window.visible=!0,windowManager.setActiveWindow("cloud_window")):A.data.type==="weilin_prompt_ui_open_node_lora_stack_window"?(y.value.lora_stack_window.visible=!0,nextTick(()=>{V.value.initLoraStack(A.data.prompt,A.data.seed)}),windowManager.setActiveWindow("lora_stack_window")):A.data.type==="weilin_prompt_ui_openLoraDetail"?Q.value.open({name:A.data.lora}):A.data.type==="weilin_prompt_ui_open_danbooru_manager_window"?(y.value.danbooru_manager_window.visible=!0,windowManager.setActiveWindow("danbooru_manager_window")):A.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id"?window.postMessage({type:"weilin_prompt_ui_get_template_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_get_template_response"?n.value===A.data.id&&window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id_response",data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_prompt_inner_update_node_tag_template_id"?window.postMessage({type:"weilin_prompt_ui_update_template_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id_gorandom"?window.postMessage({type:"weilin_prompt_ui_get_template_go_random_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_get_template_go_random_response"&&n.value===A.data.id&&window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id_go_random_response",data:A.data.data},"*")},ee=async()=>{try{if(localStorage.getItem(v)==="false"){console.info("WeiLin-Comfyui-Tools 版本更新提醒已禁用");return}const D=await fetch("https://raw.githubusercontent.com/weilin9999/WeiLin-Comfyui-Tools/refs/heads/main/src/src/utils/version.js");if(!D.ok){console.error("获取版本信息失败:",D.status);return}const ae=(await D.text()).match(/export const version = "([^"]+)"/);if(ae&&ae[1]){const Y=ae[1];console.info(`WeiLin-Comfyui-Tools GitHub版本: ${Y}`),Y!==version&&(m.value=`WeiLin-Comfyui-Tools 发现新版本 ${Y},当前版本 ${version}`,d.value=!0,g.value&&clearTimeout(g.value),g.value=setTimeout(()=>{d.value=!1,g.value=null},1e4),console.info(`WeiLin-Comfyui-Tools 发现新版本 ${Y},当前版本 ${version} GitHub链接:https://github.com/weilin9999/WeiLin-Comfyui-Tools`))}}catch(A){console.error("WeiLin-Comfyui-Tools 检查更新失败:",A)}};return(A,D)=>(openBlock(),createElementBlock("div",_hoisted_1,[y.value.prompt.visible?(openBlock(),createBlock(DraggableWindow,{key:0,name:"promptBox",title:s.value==="prompt"?unref(a)("promptBox.windowTitle"):unref(a)("promptBox.windowTitleGlobal"),position:y.value.prompt.position,size:y.value.prompt.size,"z-index":unref(windowManager).getZIndex("prompt"),"onUpdate:position":D[0]||(D[0]=W=>F("prompt",W)),"onUpdate:size":D[1]||(D[1]=W=>H("prompt",W)),onActive:D[2]||(D[2]=W=>unref(windowManager).setActiveWindow("prompt")),onClose:D[3]||(D[3]=W=>R("prompt"))},{default:withCtx(()=>[createVNode(PromptBox,{promptManager:s.value,hasPromptLoraStack:l.value,ref_key:"promptBoxRef",ref:oe},null,8,["promptManager","hasPromptLoraStack"])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.tag.visible?(openBlock(),createBlock(DraggableWindow,{key:1,name:"tagManager",title:unref(a)("tagManager.windowTitle"),position:y.value.tag.position,size:y.value.tag.size,"z-index":unref(windowManager).getZIndex("tag"),"onUpdate:position":D[4]||(D[4]=W=>F("tag",W)),"onUpdate:size":D[5]||(D[5]=W=>H("tag",W)),onActive:D[6]||(D[6]=W=>unref(windowManager).setActiveWindow("tag")),onClose:D[7]||(D[7]=W=>R("tag"))},{default:withCtx(()=>[createVNode(TagManager,{tagManager:r.value},null,8,["tagManager"])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.lora.visible?(openBlock(),createBlock(DraggableWindow,{key:2,name:"loraManager",title:unref(a)("loraManager.windowTitle"),position:y.value.lora.position,size:y.value.lora.size,"z-index":unref(windowManager).getZIndex("lora"),"onUpdate:position":D[8]||(D[8]=W=>F("lora",W)),"onUpdate:size":D[9]||(D[9]=W=>H("lora",W)),onActive:D[10]||(D[10]=W=>unref(windowManager).setActiveWindow("lora")),onClose:D[11]||(D[11]=W=>R("lora"))},{default:withCtx(()=>[createVNode(LoraManager,{loraManager:o.value,ref_key:"loraManagerRef",ref:q},null,8,["loraManager"])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.history.visible?(openBlock(),createBlock(DraggableWindow,{key:3,name:"historyManager",title:unref(a)("history.windowTitle"),position:y.value.history.position,size:y.value.history.size,"z-index":unref(windowManager).getZIndex("history"),"onUpdate:position":D[12]||(D[12]=W=>F("history",W)),"onUpdate:size":D[13]||(D[13]=W=>H("history",W)),onActive:D[14]||(D[14]=W=>unref(windowManager).setActiveWindow("history")),onClose:D[15]||(D[15]=W=>R("history"))},{default:withCtx(()=>[createVNode(HistoryManager)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.ai_window.visible?(openBlock(),createBlock(DraggableWindow,{key:4,name:"aiWindow",title:unref(a)("aiWindow.windowTitle"),position:y.value.ai_window.position,size:y.value.ai_window.size,"z-index":unref(windowManager).getZIndex("ai_window"),"onUpdate:position":D[16]||(D[16]=W=>F("ai_window",W)),"onUpdate:size":D[17]||(D[17]=W=>H("ai_window",W)),onActive:D[18]||(D[18]=W=>unref(windowManager).setActiveWindow("ai_window")),onClose:D[19]||(D[19]=W=>R("ai_window"))},{default:withCtx(()=>[createVNode(AiWindow)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.node_list_window.visible?(openBlock(),createBlock(DraggableWindow,{key:5,name:"nodeListWindow",title:unref(a)("nodeListWindow.windowTitle"),position:y.value.node_list_window.position,size:y.value.node_list_window.size,"z-index":unref(windowManager).getZIndex("node_list_window"),"onUpdate:position":D[20]||(D[20]=W=>F("node_list_window",W)),"onUpdate:size":D[21]||(D[21]=W=>H("node_list_window",W)),onActive:D[22]||(D[22]=W=>unref(windowManager).setActiveWindow("node_list_window")),onClose:D[23]||(D[23]=W=>R("node_list_window"))},{default:withCtx(()=>[createVNode(NodeListWindow)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.cloud_window.visible?(openBlock(),createBlock(DraggableWindow,{key:6,name:"cloudWindow",title:unref(a)("cloudWindow.windowTitle"),position:y.value.cloud_window.position,size:y.value.cloud_window.size,"z-index":unref(windowManager).getZIndex("cloud_window"),"onUpdate:position":D[24]||(D[24]=W=>F("cloud_window",W)),"onUpdate:size":D[25]||(D[25]=W=>H("cloud_window",W)),onActive:D[26]||(D[26]=W=>unref(windowManager).setActiveWindow("cloud_window")),onClose:D[27]||(D[27]=W=>R("cloud_window"))},{default:withCtx(()=>[createVNode(CloudWindow)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.lora_stack_window.visible?(openBlock(),createBlock(DraggableWindow,{key:7,name:"loraStackWindow",title:unref(a)("controls.loraStack"),position:y.value.lora_stack_window.position,size:y.value.lora_stack_window.size,"z-index":unref(windowManager).getZIndex("lora_stack_window"),"onUpdate:position":D[28]||(D[28]=W=>F("lora_stack_window",W)),"onUpdate:size":D[29]||(D[29]=W=>H("lora_stack_window",W)),onActive:D[30]||(D[30]=W=>unref(windowManager).setActiveWindow("lora_stack_window")),onClose:D[31]||(D[31]=W=>R("lora_stack_window"))},{default:withCtx(()=>[createVNode(LoraStackWindow,{ref_key:"loraStackRef",ref:V},null,512)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.danbooru_manager_window.visible?(openBlock(),createBlock(DraggableWindow,{key:8,name:"DanbooruManagerWindow",title:unref(a)("controls.danbooruManager"),position:y.value.danbooru_manager_window.position,size:y.value.danbooru_manager_window.size,"z-index":unref(windowManager).getZIndex("danbooru_manager_window"),"onUpdate:position":D[32]||(D[32]=W=>F("danbooru_manager_window",W)),"onUpdate:size":D[33]||(D[33]=W=>H("danbooru_manager_window",W)),onActive:D[34]||(D[34]=W=>unref(windowManager).setActiveWindow("danbooru_manager_window")),onClose:D[35]||(D[35]=W=>R("danbooru_manager_window"))},{default:withCtx(()=>[createVNode(DanbooruManagerWindow,{ref_key:"danbooruManagerRef",ref:O},null,512)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),t.value?(openBlock(),createBlock(FloatingBall,{key:9})):createCommentVNode("",!0),createVNode(loraDetail,{ref_key:"loraDetailLoraStackRef",ref:Q},null,512),d.value?(openBlock(),createElementBlock("div",_hoisted_2,[createBaseVNode("div",_hoisted_3,[createBaseVNode("span",null,toDisplayString$1(m.value),1),createBaseVNode("div",{class:"version-update-actions"},[createBaseVNode("button",{class:"goto-github-btn",onClick:$},"前往GitHub"),createBaseVNode("button",{class:"no-remind-btn",onClick:w},"不再提醒"),createBaseVNode("button",{class:"close-version-update",onClick:b},"×")])])])):createCommentVNode("",!0)]))}},App=_export_sfc(_sfc_main,[["__scopeId","data-v-b041d233"]]);var clipboard$1={exports:{}};/*! +`);const B=new Blob([re],{type:"text/sql"}),z=document.createElement("a");if(z.href=URL.createObjectURL(B),y.value.length<=0){const Z=parseInt(new Date().getTime()/1e3);z.download="export_"+Z+".sql"}else z.download=y.value+".sql";z.click()}function V(re){const B=re.match(/VALUES\s*\([^']*'([^']+)'/),z=re.match(/VALUES\s*\([^']*'[^']*'\s*,\s*'([^']+)'/);return{text:B?B[1].replace(/''/g,"'"):"",desc:z?z[1].replace(/''/g,"'"):""}}function q(re){return re.includes("danbooru_tag")}function Q(re){const B=re.match(/VALUES\s*\(\s*'([^']+)'\s*,\s*'([^']*)'\s*,\s*'([^']*)'\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);return B?{tag:B[1].replace(/''/g,"'"),color_id:B[2],translate:B[3].replace(/''/g,"'"),hot:parseInt(B[4]),aliases:parseInt(B[5])}:{tag:"",color_id:"",translate:"",hot:0,aliases:0}}const O=ref(0),G=ref(0);function ee(re){const B=g.value[re];if(q(B)){const z=Q(B);b.value=z.tag,$.value=z.translate,O.value=z.hot,G.value=z.aliases}else{const z=V(B);b.value=z.text,$.value=z.desc}v.value=re}function A(re){const B=b.value.replace(/'/g,"''"),z=$.value.replace(/'/g,"''");if(q(g.value[re])){const Z=Q(g.value[re]),D=parseInt(O.value)||0,K=parseInt(G.value)||0;g.value[re]=`INSERT INTO "danbooru_tag" ("tag", "color_id", "translate", "hot", "aliases") VALUES ('${B}', '${Z.color_id}', '${z}', ${D}, ${K});`}else g.value[re]=g.value[re].replace(/(VALUES\s*\([^']*')([^']+)'/,`$1${B}'`).replace(/(VALUES\s*\([^']*'[^']*'\s*,\s*')([^']+)'/,`$1${z}'`);v.value=-1}function L(){v.value=-1,b.value="",$.value="",O.value=0,G.value=0}function W(re){g.value.splice(re,1)}function ae(){const re=o.value.replace(/'/g,"''"),B=r.value.replace(/'/g,"''"),z=parseInt(E.value)||0,Z=parseInt(R.value)||0,D=`INSERT INTO "danbooru_tag" ("tag", "color_id", "translate", "hot", "aliases") VALUES ('${re}', '', '${B}', ${z}, ${Z});`;g.value.push(D),o.value="",r.value="",E.value=0,R.value=0}const Y=ref(!1),ne=async re=>{Y.value=!0;try{await danbooruApi.runSQLToServer(re).then(B=>{if(B.code!=200){message$1({type:"warn",str:B.message});return}else te(),message$1({type:"success",str:"importDialog.successImport"})}).catch(B=>{console.error(B),message$1({type:"warn",str:"importDialog.importFail"})})}catch(B){console.error(B),message$1({type:"warn",str:"importDialog.importFail"})}finally{Y.value=!1}},te=()=>{window.postMessage({type:"weilin_prompt_ui_tag_manager_refresh"},"*")},ge=async()=>{if(g.value.length>0&&q(g.value[0])){const re=[...g.value];await ne(re)}else if(P.value){if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const re=[...g.value];await ne(re)}else{if(l.value.length<=0||c.value.length<=0){message$1({type:"warn",str:"importDialog.pleaseFullRequest"});return}const re=[l.value,c.value,...g.value];await ne(re)}};return watch(l,(re,B)=>{var D,K;if(!re||re===B)return;const z=(D=re.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:D[1],Z=(K=B==null?void 0:B.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:K[1];z&&Z&&c.value&&(c.value=c.value.replace(new RegExp(`'${Z}'`,"g"),`'${z}'`))}),watch(c,(re,B)=>{var D,K;if(!re||re===B)return;const z=(D=re.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:D[1],Z=(K=B==null?void 0:B.match(/'([^']+)'\s*\)\s*;?$/))==null?void 0:K[1];z&&Z&&g.value.length>0&&(g.value=g.value.map(x=>x.replace(new RegExp(`'${Z}'`,"g"),`'${z}'`)))}),t({open:()=>{n.value=!0}}),(re,B)=>(openBlock(),createElementBlock(Fragment,null,[Y.value?(openBlock(),createElementBlock("div",_hoisted_1$2,B[19]||(B[19]=[createBaseVNode("div",{class:"loading-spinner"},null,-1)]))):createCommentVNode("",!0),createVNode(Dialog,{modelValue:n.value,"onUpdate:modelValue":B[18]||(B[18]=z=>n.value=z),title:unref(a)("danbooruManager.importBatchTitle")},{footer:withCtx(()=>[createBaseVNode("button",{onClick:B[17]||(B[17]=z=>n.value=!1)},toDisplayString$1(unref(a)("promptBox.settings.close")),1),createBaseVNode("button",{onClick:ge},toDisplayString$1(unref(a)("importDialog.sure")),1)]),default:withCtx(()=>[createBaseVNode("div",_hoisted_2$2,[createBaseVNode("div",_hoisted_3$2,[createBaseVNode("button",{onClick:F,class:"upload-btn"},toDisplayString$1(unref(a)("importDialog.cleanAll")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:oe},toDisplayString$1(unref(a)("importDialog.dumpSQL")),1),withDirectives(createBaseVNode("input",{style:{width:"300px","margin-left":"10px"},"onUpdate:modelValue":B[0]||(B[0]=z=>y.value=z),placeholder:unref(a)("importDialog.settingOutputName")},null,8,_hoisted_4$1),[[vModelText,y.value]]),createBaseVNode("input",{type:"file",ref_key:"fileInput",ref:w,onChange:H,accept:".sql",style:{display:"none"}},null,544),createBaseVNode("input",{type:"file",ref_key:"danbooruTxtFileInput",ref:C,onChange:j,accept:".txt,.csv",style:{display:"none"}},null,544)]),createBaseVNode("div",_hoisted_5$1,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[1]||(B[1]=z=>o.value=z),placeholder:"Tag"},null,512),[[vModelText,o.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[2]||(B[2]=z=>r.value=z),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_6$1),[[vModelText,r.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[3]||(B[3]=z=>E.value=z),placeholder:unref(a)("danbooruManager.hot"),type:"number"},null,8,_hoisted_7$1),[[vModelText,E.value]]),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":B[4]||(B[4]=z=>R.value=z),placeholder:unref(a)("danbooruManager.aliases"),type:"number"},null,8,_hoisted_8$1),[[vModelText,R.value]]),createBaseVNode("button",{onClick:ae},toDisplayString$1(unref(a)("importDialog.add")),1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:fe,class:"upload-btn"},toDisplayString$1(unref(a)("danbooruManager.import")),1)]),createBaseVNode("div",_hoisted_9$1,[l.value?(openBlock(),createElementBlock("div",_hoisted_10$1,[createBaseVNode("h3",null,toDisplayString$1(V(l.value).text),1),c.value?(openBlock(),createElementBlock("div",_hoisted_11$1,[createBaseVNode("h4",null,toDisplayString$1(V(c.value).text),1),createBaseVNode("div",_hoisted_12$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(z,Z)=>(openBlock(),createElementBlock("div",{key:Z,style:{display:"flex","flex-direction":"column","align-items":"center"}},[q(z)?(openBlock(),createElementBlock("p",_hoisted_13$1,toDisplayString$1(Q(z).tag)+" - "+toDisplayString$1(Q(z).translate)+" ("+toDisplayString$1(unref(a)("danbooruManager.hot"))+": "+toDisplayString$1(Q(z).hot)+", "+toDisplayString$1(unref(a)("danbooruManager.aliases"))+": "+toDisplayString$1(Q(z).aliases)+")",1)):(openBlock(),createElementBlock("p",_hoisted_14$1,toDisplayString$1(V(z).text)+" - "+toDisplayString$1(V(z).desc),1)),createBaseVNode("div",_hoisted_15$1,[v.value===Z?(openBlock(),createElementBlock("div",_hoisted_16$1,[q(z)?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":B[5]||(B[5]=D=>b.value=D),placeholder:"Tag"},null,512)),[[vModelText,b.value]]):withDirectives((openBlock(),createElementBlock("input",{key:1,"onUpdate:modelValue":B[6]||(B[6]=D=>b.value=D),placeholder:"Tag"},null,512)),[[vModelText,b.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:2,"onUpdate:modelValue":B[7]||(B[7]=D=>$.value=D),placeholder:unref(a)("importDialog.translate")},null,8,_hoisted_17$1)),[[vModelText,$.value]]):withDirectives((openBlock(),createElementBlock("input",{key:3,"onUpdate:modelValue":B[8]||(B[8]=D=>$.value=D),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_18$1)),[[vModelText,$.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:4,"onUpdate:modelValue":B[9]||(B[9]=D=>O.value=D),placeholder:unref(a)("danbooruManager.hot"),type:"number"},null,8,_hoisted_19$1)),[[vModelText,O.value]]):createCommentVNode("",!0),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:5,"onUpdate:modelValue":B[10]||(B[10]=D=>G.value=D),placeholder:unref(a)("danbooruManager.aliases"),type:"number"},null,8,_hoisted_20$1)),[[vModelText,G.value]]):createCommentVNode("",!0),createBaseVNode("button",{onClick:D=>A(Z)},toDisplayString$1(unref(a)("importDialog.sureYes")),9,_hoisted_21$1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:L},toDisplayString$1(unref(a)("importDialog.cancel")),1)])):(openBlock(),createElementBlock("button",{key:1,onClick:D=>ee(Z)},toDisplayString$1(unref(a)("importDialog.edit")),9,_hoisted_22$1)),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:D=>W(Z)},toDisplayString$1(unref(a)("importDialog.delete")),9,_hoisted_23$1)])]))),128))])])):createCommentVNode("",!0)])):g.value.length>0?(openBlock(),createElementBlock("div",_hoisted_24$1,[createBaseVNode("h3",null,toDisplayString$1(unref(a)("danbooruManager.importTitle")),1),createBaseVNode("div",_hoisted_25$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(z,Z)=>(openBlock(),createElementBlock("div",{key:Z,style:{display:"flex","flex-direction":"column","align-items":"center"}},[q(z)?(openBlock(),createElementBlock("p",_hoisted_26$1,toDisplayString$1(Q(z).tag)+" - "+toDisplayString$1(Q(z).translate)+" (热度: "+toDisplayString$1(Q(z).hot)+", 别名: "+toDisplayString$1(Q(z).aliases)+")",1)):(openBlock(),createElementBlock("p",_hoisted_27$1,toDisplayString$1(V(z).text)+" - "+toDisplayString$1(V(z).desc),1)),createBaseVNode("div",_hoisted_28$1,[v.value===Z?(openBlock(),createElementBlock("div",_hoisted_29$1,[q(z)?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":B[11]||(B[11]=D=>b.value=D),placeholder:"Tag"},null,512)),[[vModelText,b.value]]):withDirectives((openBlock(),createElementBlock("input",{key:1,"onUpdate:modelValue":B[12]||(B[12]=D=>b.value=D),placeholder:"Tag"},null,512)),[[vModelText,b.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:2,"onUpdate:modelValue":B[13]||(B[13]=D=>$.value=D),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_30$1)),[[vModelText,$.value]]):withDirectives((openBlock(),createElementBlock("input",{key:3,"onUpdate:modelValue":B[14]||(B[14]=D=>$.value=D),placeholder:unref(a)("importDialog.translater")},null,8,_hoisted_31$1)),[[vModelText,$.value]]),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:4,"onUpdate:modelValue":B[15]||(B[15]=D=>O.value=D),placeholder:unref(a)("danbooruManager.hot"),type:"number"},null,8,_hoisted_32$1)),[[vModelText,O.value]]):createCommentVNode("",!0),q(z)?withDirectives((openBlock(),createElementBlock("input",{key:5,"onUpdate:modelValue":B[16]||(B[16]=D=>G.value=D),placeholder:unref(a)("danbooruManager.aliases"),type:"number"},null,8,_hoisted_33$1)),[[vModelText,G.value]]):createCommentVNode("",!0),createBaseVNode("button",{onClick:D=>A(Z)},toDisplayString$1(unref(a)("importDialog.sureYes")),9,_hoisted_34$1),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:L},toDisplayString$1(unref(a)("importDialog.cancel")),1)])):(openBlock(),createElementBlock("button",{key:1,onClick:D=>ee(Z)},toDisplayString$1(unref(a)("importDialog.edit")),9,_hoisted_35$1)),createBaseVNode("button",{style:{"margin-left":"10px"},onClick:D=>W(Z)},toDisplayString$1(unref(a)("importDialog.delete")),9,_hoisted_36$1)])]))),128))])])):createCommentVNode("",!0)])])]),_:1},8,["modelValue","title"])],64))}},importDanbooru=_export_sfc(_sfc_main$2,[["__scopeId","data-v-d9630f57"]]),_hoisted_1$1={class:"danbooru-manager"},_hoisted_2$1={class:"title"},_hoisted_3$1={class:"action-bar"},_hoisted_4={class:"search-box"},_hoisted_5=["placeholder"],_hoisted_6=["disabled"],_hoisted_7={class:"pagination"},_hoisted_8=["disabled"],_hoisted_9={class:"page-info"},_hoisted_10=["disabled"],_hoisted_11={class:"page-size-control"},_hoisted_12={key:0,class:"tag-list"},_hoisted_13={style:{"table-layout":"fixed",overflow:"auto"}},_hoisted_14={class:"checkbox-column"},_hoisted_15=["checked"],_hoisted_16={class:"tag-column"},_hoisted_17={class:"translate-column"},_hoisted_18={class:"color-column"},_hoisted_19={class:"hot-column"},_hoisted_20={class:"aliases-column"},_hoisted_21={class:"control-column"},_hoisted_22=["value"],_hoisted_23=["onClick"],_hoisted_24=["onClick"],_hoisted_25={key:1,class:"no-results"},_hoisted_26={key:2,class:"weilin-tools-dialog"},_hoisted_27={class:"weilin-tools-dialog-content"},_hoisted_28={class:"form-group"},_hoisted_29=["placeholder"],_hoisted_30={class:"form-group"},_hoisted_31=["placeholder"],_hoisted_32={class:"form-group"},_hoisted_33=["value"],_hoisted_34={class:"form-group"},_hoisted_35={key:0,class:"form-group"},_hoisted_36={class:"weilin-tools-dialog-actions"},_hoisted_37={key:3,class:"weilin-tools-dialog"},_hoisted_38={class:"weilin-tools-dialog-content"},_hoisted_39={class:"weilin-tools-dialog-actions"},_hoisted_40={key:4,class:"weilin-tools-dialog"},_hoisted_41={class:"weilin-tools-dialog-content"},_hoisted_42={class:"weilin-tools-dialog-actions"},_hoisted_43={key:5,class:"overlay"},_sfc_main$1={__name:"danbooru_manager",setup(e){const{t}=useI18n(),a=ref(""),n=ref([]),o=ref(1),r=ref(1),s=ref(100),l=ref(!1),c=ref(!1),f=ref(!1),u=ref(!1),d=ref(!1),m=ref(null),g=ref({tag:"",translate:"",color_id:0,hot:0,aliases:0}),v=[{name:"默认",color:"#888888"},{name:"红色",color:"#FF6666"},{name:"绿色",color:"#66FF66"},{name:"蓝色",color:"#6666FF"},{name:"黄色",color:"#FFFF66"},{name:"紫色",color:"#FF66FF"},{name:"青色",color:"#66FFFF"},{name:"橙色",color:"#FF9966"},{name:"粉色",color:"#FF99CC"},{name:"棕色",color:"#996633"}],b=A=>v[A]?v[A].color:v[0].color;let $=null;const w=()=>{$&&clearTimeout($),$=setTimeout(()=>{o.value=1,C()},300)},C=async()=>{l.value=!0,oe.value=[];try{const A=await danbooruApi.searchDanbooru(a.value,o.value,s.value);A&&A.data?(n.value=A.data.data||[],r.value=A.data.total_pages||1):(n.value=[],r.value=1)}catch(A){console.error("搜索标签失败:",A),message$1({type:"error",str:t("message.searchFailed")}),n.value=[]}finally{l.value=!1}},P=A=>{A<1||A>r.value||(o.value=A,C())},y=()=>{s.value<10&&(s.value=10),s.value>500&&(s.value=500),o.value=1,oe.value=[],C()},E=()=>{d.value=!1,g.value={tag:"",translate:"",color_id:0,hot:0,aliases:0},c.value=!0},R=A=>{d.value=!0,m.value=A,g.value={id:A.id_index,tag:A.tag,translate:A.translate||"",color_id:A.color_id||0,hot:A.hot||0,aliases:A.aliases||0},c.value=!0},F=()=>{c.value=!1},H=async()=>{if(!g.value.tag){message$1({type:"error",str:t("tagManager.textRequired")});return}try{if(d.value){const A=await danbooruApi.updateDanbooruTag({id:g.value.id,update_data:{tag:g.value.tag,translate:g.value.translate,color_id:g.value.color_id,hot:g.value.hot,aliases:g.value.aliases}});A&&A.code===200?(message$1({type:"success",str:t("message.editSuccess")}),C()):message$1({type:"error",str:t("message.editFailed")})}else{const A=await danbooruApi.addDanbooruTag({tag:g.value.tag,translate:g.value.translate,color_id:g.value.color_id,hot:g.value.hot,aliases:g.value.aliases});A&&A.code===200?(message$1({type:"success",str:t("message.addSuccess")}),C()):message$1({type:"error",str:t("message.addFailed")})}F()}catch(A){console.error("提交表单失败:",A),message$1({type:"error",str:d.value?t("message.editFailed"):t("message.addFailed")})}},j=A=>{m.value=A,f.value=!0},fe=async()=>{if(!(!m.value||!m.value.id_index))try{const A=await danbooruApi.deleteDanbooruTag(m.value.id_index);A&&A.code===200?(message$1({type:"success",str:t("message.deleteSuccess")}),C()):message$1({type:"error",str:t("message.deleteFailed")}),f.value=!1}catch(A){console.error("删除标签失败:",A),message$1({type:"error",str:t("message.deleteFailed")})}},oe=ref([]),V=computed(()=>n.value.length>0&&oe.value.length===n.value.length),q=()=>{V.value?oe.value=[]:oe.value=n.value.map(A=>A.id_index)},Q=()=>{oe.value.length!==0&&(u.value=!0)},O=async()=>{if(oe.value.length!==0){try{const A=await danbooruApi.batchDeleteDanbooruTags(oe.value);A&&A.code===200?(message$1({type:"success",str:`成功删除 ${oe.value.length} 个标签`}),oe.value=[],C()):message$1({type:"error",str:"批量删除失败"})}catch(A){console.error("批量删除失败:",A),message$1({type:"error",str:"批量删除失败"})}u.value=!1}},G=ref(),ee=()=>{G.value.open()};return onMounted(()=>{C()}),(A,L)=>{var W;return openBlock(),createElementBlock("div",_hoisted_1$1,[createBaseVNode("h2",_hoisted_2$1,toDisplayString$1(unref(t)("danbooruManager.title")),1),createBaseVNode("div",_hoisted_3$1,[createBaseVNode("div",_hoisted_4,[withDirectives(createBaseVNode("input",{"onUpdate:modelValue":L[0]||(L[0]=ae=>a.value=ae),type:"text",placeholder:unref(t)("danbooruManager.searchPlaceholder"),onInput:w},null,40,_hoisted_5),[[vModelText,a.value]]),createBaseVNode("button",{class:"search-btn",onClick:C},toDisplayString$1(unref(t)("tagManager.search")),1)]),createBaseVNode("button",{class:"add-btn",onClick:E},toDisplayString$1(unref(t)("danbooruManager.add")),1),createBaseVNode("button",{class:"add-btn",onClick:ee},toDisplayString$1(unref(t)("tagManager.importDanbooru")),1),createBaseVNode("button",{class:normalizeClass(["batch-delete-btn",{disabled:oe.value.length===0}]),disabled:oe.value.length===0,onClick:Q},toDisplayString$1(unref(t)("tagManager.hasDeleteAction"))+" ("+toDisplayString$1(oe.value.length)+") ",11,_hoisted_6)]),createBaseVNode("div",_hoisted_7,[createBaseVNode("button",{disabled:o.value<=1,onClick:L[1]||(L[1]=ae=>P(o.value-1)),class:"page-btn"},toDisplayString$1(unref(t)("loraManager.prevPage")),9,_hoisted_8),createBaseVNode("span",_hoisted_9,toDisplayString$1(o.value)+" / "+toDisplayString$1(r.value),1),createBaseVNode("button",{disabled:o.value>=r.value,onClick:L[2]||(L[2]=ae=>P(o.value+1)),class:"page-btn"},toDisplayString$1(unref(t)("loraManager.nextPage")),9,_hoisted_10),createBaseVNode("div",_hoisted_11,[createBaseVNode("label",null,toDisplayString$1(unref(t)("danbooruManager.pageShow")),1),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":L[3]||(L[3]=ae=>s.value=ae),type:"number",min:"10",max:"500",onChange:y,class:"page-size-input"},null,544),[[vModelText,s.value,void 0,{number:!0}]]),createBaseVNode("span",null,toDisplayString$1(unref(t)("danbooruManager.pageLimit")),1)])]),n.value.length>0?(openBlock(),createElementBlock("div",_hoisted_12,[createBaseVNode("table",_hoisted_13,[createBaseVNode("thead",null,[createBaseVNode("tr",null,[createBaseVNode("th",_hoisted_14,[createBaseVNode("input",{type:"checkbox",checked:V.value,onChange:q},null,40,_hoisted_15)]),L[12]||(L[12]=createBaseVNode("th",{class:"id-column"},"ID",-1)),createBaseVNode("th",_hoisted_16,toDisplayString$1(unref(t)("tagManager.description")),1),createBaseVNode("th",_hoisted_17,toDisplayString$1(unref(t)("promptBox.translate")),1),createBaseVNode("th",_hoisted_18,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),createBaseVNode("th",_hoisted_19,toDisplayString$1(unref(t)("danbooruManager.hot")),1),createBaseVNode("th",_hoisted_20,toDisplayString$1(unref(t)("danbooruManager.aliases")),1),createBaseVNode("th",_hoisted_21,toDisplayString$1(unref(t)("danbooruManager.controle")),1)])]),createBaseVNode("tbody",null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(n.value,ae=>(openBlock(),createElementBlock("tr",{key:ae.id_index},[createBaseVNode("td",null,[withDirectives(createBaseVNode("input",{type:"checkbox",value:ae.id_index,"onUpdate:modelValue":L[4]||(L[4]=Y=>oe.value=Y)},null,8,_hoisted_22),[[vModelCheckbox,oe.value]])]),createBaseVNode("td",null,toDisplayString$1(ae.id_index),1),createBaseVNode("td",null,toDisplayString$1(ae.tag),1),createBaseVNode("td",null,toDisplayString$1(ae.translate),1),createBaseVNode("td",null,[createBaseVNode("div",{class:"color-box",style:normalizeStyle({backgroundColor:b(ae.color_id)})},null,4)]),createBaseVNode("td",null,toDisplayString$1(ae.hot),1),createBaseVNode("td",null,toDisplayString$1(ae.aliases),1),createBaseVNode("td",null,[createBaseVNode("button",{class:"edit-btn",onClick:Y=>R(ae)},toDisplayString$1(unref(t)("common.edit")),9,_hoisted_23),createBaseVNode("button",{style:{"margin-left":"10px"},class:"delete-btn",onClick:Y=>j(ae)},toDisplayString$1(unref(t)("common.delete")),9,_hoisted_24)])]))),128))])])])):(openBlock(),createElementBlock("div",_hoisted_25,toDisplayString$1(unref(t)("tagManager.noResults")),1)),c.value?(openBlock(),createElementBlock("div",_hoisted_26,[createBaseVNode("div",_hoisted_27,[createBaseVNode("h3",null,toDisplayString$1(d.value?unref(t)("danbooruManager.edit"):unref(t)("danbooruManager.add")),1),createBaseVNode("div",_hoisted_28,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.description")),1),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":L[5]||(L[5]=ae=>g.value.tag=ae),type:"text",placeholder:unref(t)("tagManager.descriptionPlaceholder")},null,8,_hoisted_29),[[vModelText,g.value.tag]])]),createBaseVNode("div",_hoisted_30,[createBaseVNode("label",null,toDisplayString$1(unref(t)("promptBox.translate")),1),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":L[6]||(L[6]=ae=>g.value.translate=ae),type:"text",placeholder:unref(t)("danbooruManager.translatePlaceholder")},null,8,_hoisted_31),[[vModelText,g.value.translate]])]),createBaseVNode("div",_hoisted_32,[createBaseVNode("label",null,toDisplayString$1(unref(t)("tagManager.backgroundColor")),1),withDirectives(createBaseVNode("select",{"onUpdate:modelValue":L[7]||(L[7]=ae=>g.value.color_id=ae)},[(openBlock(),createElementBlock(Fragment,null,renderList(v,(ae,Y)=>createBaseVNode("option",{key:Y,value:Y},toDisplayString$1(ae.name),9,_hoisted_33)),64))],512),[[vModelSelect,g.value.color_id]]),createBaseVNode("div",{class:"color-preview",style:normalizeStyle({backgroundColor:b(g.value.color_id)})},null,4)]),createBaseVNode("div",_hoisted_34,[L[13]||(L[13]=createBaseVNode("label",null,"Hot",-1)),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":L[8]||(L[8]=ae=>g.value.hot=ae),type:"number",min:"0"},null,512),[[vModelText,g.value.hot,void 0,{number:!0}]])]),d.value?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_35,[L[14]||(L[14]=createBaseVNode("label",null,"Aliases",-1)),withDirectives(createBaseVNode("input",{"onUpdate:modelValue":L[9]||(L[9]=ae=>g.value.aliases=ae),type:"number",min:"0"},null,512),[[vModelText,g.value.aliases,void 0,{number:!0}]])])),createBaseVNode("div",_hoisted_36,[createBaseVNode("button",{onClick:F},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{onClick:H},toDisplayString$1(unref(t)("common.save")),1)])])])):createCommentVNode("",!0),f.value?(openBlock(),createElementBlock("div",_hoisted_37,[createBaseVNode("div",_hoisted_38,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("common.confirmDelete")),1),createBaseVNode("p",null,toDisplayString$1(unref(t)("tagManager.deleteTagConfirm",{name:((W=m.value)==null?void 0:W.tag)||""})),1),createBaseVNode("div",_hoisted_39,[createBaseVNode("button",{onClick:L[10]||(L[10]=ae=>f.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:fe},toDisplayString$1(unref(t)("common.delete")),1)])])])):createCommentVNode("",!0),u.value?(openBlock(),createElementBlock("div",_hoisted_40,[createBaseVNode("div",_hoisted_41,[createBaseVNode("h3",null,toDisplayString$1(unref(t)("danbooruManager.sureBatchDelete")),1),createBaseVNode("p",null,toDisplayString$1(unref(t)("danbooruManager.sureBatchDeleteTips1"))+" "+toDisplayString$1(oe.value.length)+" "+toDisplayString$1(unref(t)("danbooruManager.sureBatchDeleteTips2")),1),createBaseVNode("div",_hoisted_42,[createBaseVNode("button",{onClick:L[11]||(L[11]=ae=>u.value=!1)},toDisplayString$1(unref(t)("common.cancel")),1),createBaseVNode("button",{class:"delete-btn",onClick:O},toDisplayString$1(unref(t)("danbooruManager.sureDelete")),1)])])])):createCommentVNode("",!0),c.value||f.value||u.value?(openBlock(),createElementBlock("div",_hoisted_43)):createCommentVNode("",!0),createVNode(importDanbooru,{ref_key:"importDanbooruDialog",ref:G},null,512)])}}},DanbooruManagerWindow=_export_sfc(_sfc_main$1,[["__scopeId","data-v-f19f168a"]]),_hoisted_1={id:"weilin_comfyui_tools_prompt_ui_div"},_hoisted_2={key:10,class:"version-update-notification"},_hoisted_3={class:"version-update-content"},STORAGE_PREFIX="weilin_tools_",_sfc_main={__name:"App",setup(e){useTagStore();const t=ref(localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true");localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")||(localStorage.setItem("weilin_prompt_ui_floatingBallEnabled","true"),t.value=!0);const{t:a}=useI18n(),n=ref(""),o=ref("look"),r=ref("manager"),s=ref("prompt_global"),l=ref(!1),c=`${STORAGE_PREFIX}theme`,f=ref(localStorage.getItem(c)==="dark"),u=ref(""),d=ref(!1),m=ref(""),g=ref(null),v=`${STORAGE_PREFIX}version_update_remind`,b=()=>{d.value=!1,g.value&&(clearTimeout(g.value),g.value=null)},$=()=>{window.open("https://github.com/weilin9999/WeiLin-Comfyui-Tools","_blank"),b()},w=()=>{localStorage.setItem(v,"false"),b()},C={prompt:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:600,height:500}},tag:{visible:!1,is_default_close:!1,position:{x:150,y:150},size:{width:800,height:600}},lora:{visible:!1,is_default_close:!1,position:{x:200,y:200},size:{width:800,height:600}},history:{visible:!1,is_default_close:!1,position:{x:300,y:300},size:{width:800,height:600}},ai_window:{visible:!1,is_default_close:!1,position:{x:400,y:400},size:{width:800,height:600}},node_list_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:300,height:600}},cloud_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:800,height:600}},lora_stack_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:300,height:600}},danbooru_manager_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:800,height:600}}},P=()=>{try{const A=localStorage.getItem(`${STORAGE_PREFIX}windowStates`);if(A){const L=JSON.parse(A),W={...C};for(const ae in L)ae in W&&(W[ae]={...C[ae],...L[ae],visible:L[ae].is_default_close?!1:L[ae].visible});return W}}catch(A){console.error("Error loading window states:",A)}return{...C}},y=ref(P());watch(y,A=>{try{localStorage.setItem(`${STORAGE_PREFIX}windowStates`,JSON.stringify(A))}catch(L){console.error("Error saving window states:",L)}},{deep:!0}),onMounted(()=>{Object.keys(y.value).forEach(A=>{windowManager.registerWindow(A)}),E(),window.addEventListener("message",G),ee()});const E=()=>{let A=localStorage.getItem(c);A||(localStorage.setItem(c,"dark"),A="dark",f.value=!0),f.value=A==="dark";const L=document.getElementById("weilin_comfyui_tools_prompt_ui_div");L&&L.setAttribute("data-theme",f.value?"dark":"light")};onUnmounted(()=>{Object.keys(y.value).forEach(A=>{windowManager.unregisterWindow(A)}),window.removeEventListener("message",G),g.value&&(clearTimeout(g.value),g.value=null)});const R=A=>{A==="prompt"&&(n.value=""),y.value[A].visible=!1},F=(A,L)=>{y.value[A]&&(y.value[A].position={...L})},H=(A,L)=>{y.value[A]&&(y.value[A].size={...L})},j=()=>{const A={loraDetail:{visible:!1,is_default_close:!1,position:{x:150,y:150},size:{width:800,height:600}}},L={prompt:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:600,height:400}},tag:{visible:!1,is_default_close:!1,position:{x:150,y:150},size:{width:800,height:600}},lora:{visible:!1,is_default_close:!1,position:{x:200,y:200},size:{width:800,height:600}},history:{visible:!1,is_default_close:!1,position:{x:300,y:300},size:{width:800,height:600}},ai_window:{visible:!1,is_default_close:!1,position:{x:400,y:400},size:{width:800,height:600}},node_list_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:400,height:800}},cloud_window:{visible:!1,is_default_close:!1,position:{x:100,y:100},size:{width:800,height:600}},lora_stack_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:300,height:600}},danbooru_manager_window:{visible:!1,is_default_close:!0,position:{x:100,y:100},size:{width:800,height:600}}};localStorage.setItem(`${STORAGE_PREFIX}windowStates`,JSON.stringify(L)),localStorage.setItem(`${STORAGE_PREFIX}loraDetailState`,JSON.stringify(A)),y.value=P()};(()=>{translatorApi.getTranslateSetting().then(A=>{localStorage.setItem("weilin_prompt_ui_translater_setting",A.data)}).catch(A=>{message({type:"warn",str:"message.getTranslaterFail"})})})();const oe=ref(),V=ref(),q=ref(),Q=ref(),O=ref(),G=A=>{A.data.type==="weilin_prompt_ui_openTagManager"?(r.value="manager",y.value.tag.visible=!0,windowManager.setActiveWindow("tag")):A.data.type==="weilin_prompt_ui_openTagManager_prompt"?(r.value="prompt",y.value.tag.visible=!0,windowManager.setActiveWindow("tag")):A.data.type==="weilin_prompt_ui_openPromptBox"?(n.value=A.data.id,s.value="prompt",y.value.prompt.visible=!0,l.value=!1,A.data.node==="WeiLinPromptUI"&&(l.value=!0),nextTick(()=>{oe.value.setPromptText(A.data.prompt)}),windowManager.setActiveWindow("prompt")):A.data.type==="weilin_prompt_ui_openLoraManager"?(o.value="look",y.value.lora.visible=!0,windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openLoraManager_addLora"?(o.value="addLora",y.value.lora.visible=!0,nextTick(()=>{q.value.openSetSeed(0,"")}),windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openLoraManager_addLora_stack"?(o.value="addLora",y.value.lora.visible=!0,nextTick(()=>{q.value.openSetSeed(1,A.data.seed)}),windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openLoraManager_addLora_stack_node"?(o.value="addLora",y.value.lora.visible=!0,nextTick(()=>{q.value.openSetSeed(2,A.data.seed)}),windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_openHistoryManager"?(y.value.history.visible=!0,windowManager.setActiveWindow("history")):A.data.type==="weilin_prompt_ui_openAiWindow"?(y.value.ai_window.visible=!0,windowManager.setActiveWindow("ai_window")):A.data.type==="weilin_prompt_ui_open_node_list_window"?(y.value.node_list_window.visible=!0,windowManager.setActiveWindow("node_list_window")):A.data.type==="weilin_prompt_ui_prompt_finish_prompt"?window.postMessage({type:"weilin_prompt_ui_prompt_update_prompt_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_open_global_prompt_box"?(s.value="prompt_global",n.value="global",y.value.prompt.visible=!0,l.value=!1,nextTick(()=>{oe.value.setPromptText(u.value)}),windowManager.setActiveWindow("prompt")):A.data.type==="weilin_prompt_ui_open_global_tag_manager"?(r.value="manager",y.value.tag.visible=!0,windowManager.setActiveWindow("tag")):A.data.type==="weilin_prompt_ui_open_global_lora_manager"?(o.value="look",y.value.lora.visible=!0,windowManager.setActiveWindow("lora")):A.data.type==="weilin_prompt_ui_prompt_update_prompt_global"?u.value=A.data.data:A.data.type==="weilin_prompt_ui_floating_ball_setting"?t.value=localStorage.getItem("weilin_prompt_ui_floatingBallEnabled")==="true":A.data.type==="weilin_prompt_ui_restore_window"?j():A.data.type==="weilin_prompt_ui_open_cloud_window"?(y.value.cloud_window.visible=!0,windowManager.setActiveWindow("cloud_window")):A.data.type==="weilin_prompt_ui_open_node_lora_stack_window"?(y.value.lora_stack_window.visible=!0,nextTick(()=>{V.value.initLoraStack(A.data.prompt,A.data.seed)}),windowManager.setActiveWindow("lora_stack_window")):A.data.type==="weilin_prompt_ui_openLoraDetail"?Q.value.open({name:A.data.lora}):A.data.type==="weilin_prompt_ui_open_danbooru_manager_window"?(y.value.danbooru_manager_window.visible=!0,windowManager.setActiveWindow("danbooru_manager_window")):A.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id"?window.postMessage({type:"weilin_prompt_ui_get_template_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_get_template_response"?n.value===A.data.id&&window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id_response",data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_prompt_inner_update_node_tag_template_id"?window.postMessage({type:"weilin_prompt_ui_update_template_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_prompt_inner_get_node_tag_template_id_gorandom"?window.postMessage({type:"weilin_prompt_ui_get_template_go_random_"+n.value,data:A.data.data},"*"):A.data.type==="weilin_prompt_ui_get_template_go_random_response"&&n.value===A.data.id&&window.postMessage({type:"weilin_prompt_ui_prompt_inner_get_node_tag_template_id_go_random_response",data:A.data.data},"*")},ee=async()=>{try{if(localStorage.getItem(v)==="false"){console.info("WeiLin-Comfyui-Tools 版本更新提醒已禁用");return}const L=await fetch("https://raw.githubusercontent.com/weilin9999/WeiLin-Comfyui-Tools/refs/heads/main/src/src/utils/version.js");if(!L.ok){console.error("获取版本信息失败:",L.status);return}const ae=(await L.text()).match(/export const version = "([^"]+)"/);if(ae&&ae[1]){const Y=ae[1];console.info(`WeiLin-Comfyui-Tools GitHub版本: ${Y}`),Y!==version&&(m.value=`WeiLin-Comfyui-Tools 发现新版本 ${Y},当前版本 ${version}`,d.value=!0,g.value&&clearTimeout(g.value),g.value=setTimeout(()=>{d.value=!1,g.value=null},1e4),console.info(`WeiLin-Comfyui-Tools 发现新版本 ${Y},当前版本 ${version} GitHub链接:https://github.com/weilin9999/WeiLin-Comfyui-Tools`))}}catch(A){console.error("WeiLin-Comfyui-Tools 检查更新失败:",A)}};return(A,L)=>(openBlock(),createElementBlock("div",_hoisted_1,[y.value.prompt.visible?(openBlock(),createBlock(DraggableWindow,{key:0,name:"promptBox",title:s.value==="prompt"?unref(a)("promptBox.windowTitle"):unref(a)("promptBox.windowTitleGlobal"),position:y.value.prompt.position,size:y.value.prompt.size,"z-index":unref(windowManager).getZIndex("prompt"),"onUpdate:position":L[0]||(L[0]=W=>F("prompt",W)),"onUpdate:size":L[1]||(L[1]=W=>H("prompt",W)),onActive:L[2]||(L[2]=W=>unref(windowManager).setActiveWindow("prompt")),onClose:L[3]||(L[3]=W=>R("prompt"))},{default:withCtx(()=>[createVNode(PromptBox,{promptManager:s.value,hasPromptLoraStack:l.value,ref_key:"promptBoxRef",ref:oe},null,8,["promptManager","hasPromptLoraStack"])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.tag.visible?(openBlock(),createBlock(DraggableWindow,{key:1,name:"tagManager",title:unref(a)("tagManager.windowTitle"),position:y.value.tag.position,size:y.value.tag.size,"z-index":unref(windowManager).getZIndex("tag"),"onUpdate:position":L[4]||(L[4]=W=>F("tag",W)),"onUpdate:size":L[5]||(L[5]=W=>H("tag",W)),onActive:L[6]||(L[6]=W=>unref(windowManager).setActiveWindow("tag")),onClose:L[7]||(L[7]=W=>R("tag"))},{default:withCtx(()=>[createVNode(TagManager,{tagManager:r.value},null,8,["tagManager"])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.lora.visible?(openBlock(),createBlock(DraggableWindow,{key:2,name:"loraManager",title:unref(a)("loraManager.windowTitle"),position:y.value.lora.position,size:y.value.lora.size,"z-index":unref(windowManager).getZIndex("lora"),"onUpdate:position":L[8]||(L[8]=W=>F("lora",W)),"onUpdate:size":L[9]||(L[9]=W=>H("lora",W)),onActive:L[10]||(L[10]=W=>unref(windowManager).setActiveWindow("lora")),onClose:L[11]||(L[11]=W=>R("lora"))},{default:withCtx(()=>[createVNode(LoraManager,{loraManager:o.value,ref_key:"loraManagerRef",ref:q},null,8,["loraManager"])]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.history.visible?(openBlock(),createBlock(DraggableWindow,{key:3,name:"historyManager",title:unref(a)("history.windowTitle"),position:y.value.history.position,size:y.value.history.size,"z-index":unref(windowManager).getZIndex("history"),"onUpdate:position":L[12]||(L[12]=W=>F("history",W)),"onUpdate:size":L[13]||(L[13]=W=>H("history",W)),onActive:L[14]||(L[14]=W=>unref(windowManager).setActiveWindow("history")),onClose:L[15]||(L[15]=W=>R("history"))},{default:withCtx(()=>[createVNode(HistoryManager)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.ai_window.visible?(openBlock(),createBlock(DraggableWindow,{key:4,name:"aiWindow",title:unref(a)("aiWindow.windowTitle"),position:y.value.ai_window.position,size:y.value.ai_window.size,"z-index":unref(windowManager).getZIndex("ai_window"),"onUpdate:position":L[16]||(L[16]=W=>F("ai_window",W)),"onUpdate:size":L[17]||(L[17]=W=>H("ai_window",W)),onActive:L[18]||(L[18]=W=>unref(windowManager).setActiveWindow("ai_window")),onClose:L[19]||(L[19]=W=>R("ai_window"))},{default:withCtx(()=>[createVNode(AiWindow)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.node_list_window.visible?(openBlock(),createBlock(DraggableWindow,{key:5,name:"nodeListWindow",title:unref(a)("nodeListWindow.windowTitle"),position:y.value.node_list_window.position,size:y.value.node_list_window.size,"z-index":unref(windowManager).getZIndex("node_list_window"),"onUpdate:position":L[20]||(L[20]=W=>F("node_list_window",W)),"onUpdate:size":L[21]||(L[21]=W=>H("node_list_window",W)),onActive:L[22]||(L[22]=W=>unref(windowManager).setActiveWindow("node_list_window")),onClose:L[23]||(L[23]=W=>R("node_list_window"))},{default:withCtx(()=>[createVNode(NodeListWindow)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.cloud_window.visible?(openBlock(),createBlock(DraggableWindow,{key:6,name:"cloudWindow",title:unref(a)("cloudWindow.windowTitle"),position:y.value.cloud_window.position,size:y.value.cloud_window.size,"z-index":unref(windowManager).getZIndex("cloud_window"),"onUpdate:position":L[24]||(L[24]=W=>F("cloud_window",W)),"onUpdate:size":L[25]||(L[25]=W=>H("cloud_window",W)),onActive:L[26]||(L[26]=W=>unref(windowManager).setActiveWindow("cloud_window")),onClose:L[27]||(L[27]=W=>R("cloud_window"))},{default:withCtx(()=>[createVNode(CloudWindow)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.lora_stack_window.visible?(openBlock(),createBlock(DraggableWindow,{key:7,name:"loraStackWindow",title:unref(a)("controls.loraStack"),position:y.value.lora_stack_window.position,size:y.value.lora_stack_window.size,"z-index":unref(windowManager).getZIndex("lora_stack_window"),"onUpdate:position":L[28]||(L[28]=W=>F("lora_stack_window",W)),"onUpdate:size":L[29]||(L[29]=W=>H("lora_stack_window",W)),onActive:L[30]||(L[30]=W=>unref(windowManager).setActiveWindow("lora_stack_window")),onClose:L[31]||(L[31]=W=>R("lora_stack_window"))},{default:withCtx(()=>[createVNode(LoraStackWindow,{ref_key:"loraStackRef",ref:V},null,512)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),y.value.danbooru_manager_window.visible?(openBlock(),createBlock(DraggableWindow,{key:8,name:"DanbooruManagerWindow",title:unref(a)("controls.danbooruManager"),position:y.value.danbooru_manager_window.position,size:y.value.danbooru_manager_window.size,"z-index":unref(windowManager).getZIndex("danbooru_manager_window"),"onUpdate:position":L[32]||(L[32]=W=>F("danbooru_manager_window",W)),"onUpdate:size":L[33]||(L[33]=W=>H("danbooru_manager_window",W)),onActive:L[34]||(L[34]=W=>unref(windowManager).setActiveWindow("danbooru_manager_window")),onClose:L[35]||(L[35]=W=>R("danbooru_manager_window"))},{default:withCtx(()=>[createVNode(DanbooruManagerWindow,{ref_key:"danbooruManagerRef",ref:O},null,512)]),_:1},8,["title","position","size","z-index"])):createCommentVNode("",!0),t.value?(openBlock(),createBlock(FloatingBall,{key:9})):createCommentVNode("",!0),createVNode(loraDetail,{ref_key:"loraDetailLoraStackRef",ref:Q},null,512),d.value?(openBlock(),createElementBlock("div",_hoisted_2,[createBaseVNode("div",_hoisted_3,[createBaseVNode("span",null,toDisplayString$1(m.value),1),createBaseVNode("div",{class:"version-update-actions"},[createBaseVNode("button",{class:"goto-github-btn",onClick:$},"前往GitHub"),createBaseVNode("button",{class:"no-remind-btn",onClick:w},"不再提醒"),createBaseVNode("button",{class:"close-version-update",onClick:b},"×")])])])):createCommentVNode("",!0)]))}},App=_export_sfc(_sfc_main,[["__scopeId","data-v-b041d233"]]);var clipboard$1={exports:{}};/*! * clipboard.js v2.0.11 * https://clipboardjs.com/ * * Licensed MIT © Zeno Rocha - */var clipboard=clipboard$1.exports,hasRequiredClipboard;function requireClipboard(){return hasRequiredClipboard||(hasRequiredClipboard=1,function(e,t){(function(n,o){e.exports=o()})(clipboard,function(){return function(){var a={686:function(r,s,l){l.d(s,{default:function(){return ae}});var c=l(279),f=l.n(c),u=l(370),d=l.n(u),m=l(817),g=l.n(m);function v(Y){try{return document.execCommand(Y)}catch{return!1}}var b=function(ne){var te=g()(ne);return v("cut"),te},$=b;function w(Y){var ne=document.documentElement.getAttribute("dir")==="rtl",te=document.createElement("textarea");te.style.fontSize="12pt",te.style.border="0",te.style.padding="0",te.style.margin="0",te.style.position="absolute",te.style[ne?"right":"left"]="-9999px";var ge=window.pageYOffset||document.documentElement.scrollTop;return te.style.top="".concat(ge,"px"),te.setAttribute("readonly",""),te.value=Y,te}var N=function(ne,te){var ge=w(ne);te.container.appendChild(ge);var re=g()(ge);return v("copy"),ge.remove(),re},P=function(ne){var te=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},ge="";return typeof ne=="string"?ge=N(ne,te):ne instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(ne==null?void 0:ne.type)?ge=N(ne.value,te):(ge=g()(ne),v("copy")),ge},y=P;function E(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?E=function(te){return typeof te}:E=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},E(Y)}var R=function(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},te=ne.action,ge=te===void 0?"copy":te,re=ne.container,B=ne.target,z=ne.text;if(ge!=="copy"&&ge!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(B!==void 0)if(B&&E(B)==="object"&&B.nodeType===1){if(ge==="copy"&&B.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(ge==="cut"&&(B.hasAttribute("readonly")||B.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(z)return y(z,{container:re});if(B)return ge==="cut"?$(B):y(B,{container:re})},F=R;function H(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(te){return typeof te}:H=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},H(Y)}function j(Y,ne){if(!(Y instanceof ne))throw new TypeError("Cannot call a class as a function")}function fe(Y,ne){for(var te=0;te"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf:function(te){return te.__proto__||Object.getPrototypeOf(te)},A(Y)}function D(Y,ne){var te="data-clipboard-".concat(Y);if(ne.hasAttribute(te))return ne.getAttribute(te)}var W=function(Y){V(te,Y);var ne=Q(te);function te(ge,re){var B;return j(this,te),B=ne.call(this),B.resolveOptions(re),B.listenClick(ge),B}return oe(te,[{key:"resolveOptions",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof re.action=="function"?re.action:this.defaultAction,this.target=typeof re.target=="function"?re.target:this.defaultTarget,this.text=typeof re.text=="function"?re.text:this.defaultText,this.container=H(re.container)==="object"?re.container:document.body}},{key:"listenClick",value:function(re){var B=this;this.listener=d()(re,"click",function(z){return B.onClick(z)})}},{key:"onClick",value:function(re){var B=re.delegateTarget||re.currentTarget,z=this.action(B)||"copy",Z=F({action:z,container:this.container,target:this.target(B),text:this.text(B)});this.emit(Z?"success":"error",{action:z,text:Z,trigger:B,clearSelection:function(){B&&B.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(re){return D("action",re)}},{key:"defaultTarget",value:function(re){var B=D("target",re);if(B)return document.querySelector(B)}},{key:"defaultText",value:function(re){return D("text",re)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(re){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return y(re,B)}},{key:"cut",value:function(re){return $(re)}},{key:"isSupported",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],B=typeof re=="string"?[re]:re,z=!!document.queryCommandSupported;return B.forEach(function(Z){z=z&&!!document.queryCommandSupported(Z)}),z}}]),te}(f()),ae=W},828:function(r){var s=9;if(typeof Element<"u"&&!Element.prototype.matches){var l=Element.prototype;l.matches=l.matchesSelector||l.mozMatchesSelector||l.msMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector}function c(f,u){for(;f&&f.nodeType!==s;){if(typeof f.matches=="function"&&f.matches(u))return f;f=f.parentNode}}r.exports=c},438:function(r,s,l){var c=l(828);function f(m,g,v,b,$){var w=d.apply(this,arguments);return m.addEventListener(v,w,$),{destroy:function(){m.removeEventListener(v,w,$)}}}function u(m,g,v,b,$){return typeof m.addEventListener=="function"?f.apply(null,arguments):typeof v=="function"?f.bind(null,document).apply(null,arguments):(typeof m=="string"&&(m=document.querySelectorAll(m)),Array.prototype.map.call(m,function(w){return f(w,g,v,b,$)}))}function d(m,g,v,b){return function($){$.delegateTarget=c($.target,g),$.delegateTarget&&b.call(m,$)}}r.exports=u},879:function(r,s){s.node=function(l){return l!==void 0&&l instanceof HTMLElement&&l.nodeType===1},s.nodeList=function(l){var c=Object.prototype.toString.call(l);return l!==void 0&&(c==="[object NodeList]"||c==="[object HTMLCollection]")&&"length"in l&&(l.length===0||s.node(l[0]))},s.string=function(l){return typeof l=="string"||l instanceof String},s.fn=function(l){var c=Object.prototype.toString.call(l);return c==="[object Function]"}},370:function(r,s,l){var c=l(879),f=l(438);function u(v,b,$){if(!v&&!b&&!$)throw new Error("Missing required arguments");if(!c.string(b))throw new TypeError("Second argument must be a String");if(!c.fn($))throw new TypeError("Third argument must be a Function");if(c.node(v))return d(v,b,$);if(c.nodeList(v))return m(v,b,$);if(c.string(v))return g(v,b,$);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function d(v,b,$){return v.addEventListener(b,$),{destroy:function(){v.removeEventListener(b,$)}}}function m(v,b,$){return Array.prototype.forEach.call(v,function(w){w.addEventListener(b,$)}),{destroy:function(){Array.prototype.forEach.call(v,function(w){w.removeEventListener(b,$)})}}}function g(v,b,$){return f(document.body,v,b,$)}r.exports=u},817:function(r){function s(l){var c;if(l.nodeName==="SELECT")l.focus(),c=l.value;else if(l.nodeName==="INPUT"||l.nodeName==="TEXTAREA"){var f=l.hasAttribute("readonly");f||l.setAttribute("readonly",""),l.select(),l.setSelectionRange(0,l.value.length),f||l.removeAttribute("readonly"),c=l.value}else{l.hasAttribute("contenteditable")&&l.focus();var u=window.getSelection(),d=document.createRange();d.selectNodeContents(l),u.removeAllRanges(),u.addRange(d),c=u.toString()}return c}r.exports=s},279:function(r){function s(){}s.prototype={on:function(l,c,f){var u=this.e||(this.e={});return(u[l]||(u[l]=[])).push({fn:c,ctx:f}),this},once:function(l,c,f){var u=this;function d(){u.off(l,d),c.apply(f,arguments)}return d._=c,this.on(l,d,f)},emit:function(l){var c=[].slice.call(arguments,1),f=((this.e||(this.e={}))[l]||[]).slice(),u=0,d=f.length;for(u;u({toClipboard(t,a){return new Promise((n,o)=>{const r=document.createElement("button"),s=new Clipboard(r,{text:()=>t,action:()=>"copy",container:a!==void 0?a:document.body});s.on("success",l=>{s.destroy(),n(l)}),s.on("error",l=>{s.destroy(),o(l)}),document.body.appendChild(r),r.click(),document.body.removeChild(r)})}}),suspectProtoRx=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,suspectConstructorRx=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,JsonSigRx=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function jsonParseTransform(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){warnKeyDropped(e);return}return t}function warnKeyDropped(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function destr(e,t={}){if(typeof e!="string")return e;const a=e.trim();if(e[0]==='"'&&e.endsWith('"')&&!e.includes("\\"))return a.slice(1,-1);if(a.length<=9){const n=a.toLowerCase();if(n==="true")return!0;if(n==="false")return!1;if(n==="undefined")return;if(n==="null")return null;if(n==="nan")return Number.NaN;if(n==="infinity")return Number.POSITIVE_INFINITY;if(n==="-infinity")return Number.NEGATIVE_INFINITY}if(!JsonSigRx.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(suspectProtoRx.test(e)||suspectConstructorRx.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,jsonParseTransform)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}function get(e,t){if(e==null)return;let a=e;for(let n=0;n1&&(t=set(typeof e!="object"||e===null||!Object.prototype.hasOwnProperty.call(e,n)?Number.isInteger(Number(a[1]))?[]:{}:e[n],t,Array.prototype.slice.call(a,1))),Number.isInteger(Number(n))&&Array.isArray(e)?e.slice()[n]:Object.assign({},e,{[n]:t})}function unset(e,t){if(e==null||t.length===0)return e;if(t.length===1){if(e==null)return e;if(Number.isInteger(t[0])&&Array.isArray(e))return Array.prototype.slice.call(e,0).splice(t[0],1);const a={};for(const n in e)a[n]=e[n];return delete a[t[0]],a}if(e[t[0]]==null){if(Number.isInteger(t[0])&&Array.isArray(e))return Array.prototype.concat.call([],e);const a={};for(const n in e)a[n]=e[n];return a}return set(e,unset(e[t[0]],Array.prototype.slice.call(t,1)),[t[0]])}function deepPickUnsafe(e,t){return t.map(a=>a.split(".")).map(a=>[a,get(e,a)]).filter(a=>a[1]!==void 0).reduce((a,n)=>set(a,n[1],n[0]),{})}function deepOmitUnsafe(e,t){return t.map(a=>a.split(".")).reduce((a,n)=>unset(a,n),e)}function hydrateStore(e,{storage:t,serializer:a,key:n,debug:o,pick:r,omit:s,beforeHydrate:l,afterHydrate:c},f,u=!0){try{u&&(l==null||l(f));const d=t.getItem(n);if(d){const m=a.deserialize(d),g=r?deepPickUnsafe(m,r):m,v=s?deepOmitUnsafe(g,s):g;e.$patch(v)}u&&(c==null||c(f))}catch(d){o&&console.error("[pinia-plugin-persistedstate]",d)}}function persistState(e,{storage:t,serializer:a,key:n,debug:o,pick:r,omit:s}){try{const l=r?deepPickUnsafe(e,r):e,c=s?deepOmitUnsafe(l,s):l,f=a.serialize(c);t.setItem(n,f)}catch(l){o&&console.error("[pinia-plugin-persistedstate]",l)}}function createPersistence(e,t,a){const{pinia:n,store:o,options:{persist:r=a}}=e;if(!r)return;if(!(o.$id in n.state.value)){const c=n._s.get(o.$id.replace("__hot:",""));c&&Promise.resolve().then(()=>c.$persist());return}const l=(Array.isArray(r)?r:r===!0?[{}]:[r]).map(t);o.$hydrate=({runHooks:c=!0}={})=>{l.forEach(f=>{hydrateStore(o,f,e,c)})},o.$persist=()=>{l.forEach(c=>{persistState(o.$state,c)})},l.forEach(c=>{hydrateStore(o,c,e),o.$subscribe((f,u)=>persistState(u,c),{detached:!0})})}function createPersistedState(e={}){return function(t){createPersistence(t,a=>({key:(e.key?e.key:n=>n)(a.key??t.store.$id),debug:a.debug??e.debug??!1,serializer:a.serializer??e.serializer??{serialize:n=>JSON.stringify(n),deserialize:n=>destr(n)},storage:a.storage??e.storage??window.localStorage,beforeHydrate:a.beforeHydrate,afterHydrate:a.afterHydrate,pick:a.pick,omit:a.omit}),e.auto??!1)}}var src_default=createPersistedState();const{toClipboard}=VueClipboard(),div=document.createElement("div");div.id="weilin_comfyui_tools_prompt_ui_div";const body=document.querySelector("body");body.appendChild(div);const pinia=createPinia();pinia.use(src_default);const app=createApp(App);app.use(pinia),app.use(i18n),initI18n(),app.config.globalProperties.$copyText=toClipboard,app.mount(div),console.log("WeiLin Prompt UI is running - version "+version),console.log("WeiLin 节点插件已运行 - 版本 "+version)}); + */var clipboard=clipboard$1.exports,hasRequiredClipboard;function requireClipboard(){return hasRequiredClipboard||(hasRequiredClipboard=1,function(e,t){(function(n,o){e.exports=o()})(clipboard,function(){return function(){var a={686:function(r,s,l){l.d(s,{default:function(){return ae}});var c=l(279),f=l.n(c),u=l(370),d=l.n(u),m=l(817),g=l.n(m);function v(Y){try{return document.execCommand(Y)}catch{return!1}}var b=function(ne){var te=g()(ne);return v("cut"),te},$=b;function w(Y){var ne=document.documentElement.getAttribute("dir")==="rtl",te=document.createElement("textarea");te.style.fontSize="12pt",te.style.border="0",te.style.padding="0",te.style.margin="0",te.style.position="absolute",te.style[ne?"right":"left"]="-9999px";var ge=window.pageYOffset||document.documentElement.scrollTop;return te.style.top="".concat(ge,"px"),te.setAttribute("readonly",""),te.value=Y,te}var C=function(ne,te){var ge=w(ne);te.container.appendChild(ge);var re=g()(ge);return v("copy"),ge.remove(),re},P=function(ne){var te=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},ge="";return typeof ne=="string"?ge=C(ne,te):ne instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(ne==null?void 0:ne.type)?ge=C(ne.value,te):(ge=g()(ne),v("copy")),ge},y=P;function E(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?E=function(te){return typeof te}:E=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},E(Y)}var R=function(){var ne=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},te=ne.action,ge=te===void 0?"copy":te,re=ne.container,B=ne.target,z=ne.text;if(ge!=="copy"&&ge!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(B!==void 0)if(B&&E(B)==="object"&&B.nodeType===1){if(ge==="copy"&&B.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(ge==="cut"&&(B.hasAttribute("readonly")||B.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(z)return y(z,{container:re});if(B)return ge==="cut"?$(B):y(B,{container:re})},F=R;function H(Y){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(te){return typeof te}:H=function(te){return te&&typeof Symbol=="function"&&te.constructor===Symbol&&te!==Symbol.prototype?"symbol":typeof te},H(Y)}function j(Y,ne){if(!(Y instanceof ne))throw new TypeError("Cannot call a class as a function")}function fe(Y,ne){for(var te=0;te"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function A(Y){return A=Object.setPrototypeOf?Object.getPrototypeOf:function(te){return te.__proto__||Object.getPrototypeOf(te)},A(Y)}function L(Y,ne){var te="data-clipboard-".concat(Y);if(ne.hasAttribute(te))return ne.getAttribute(te)}var W=function(Y){V(te,Y);var ne=Q(te);function te(ge,re){var B;return j(this,te),B=ne.call(this),B.resolveOptions(re),B.listenClick(ge),B}return oe(te,[{key:"resolveOptions",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof re.action=="function"?re.action:this.defaultAction,this.target=typeof re.target=="function"?re.target:this.defaultTarget,this.text=typeof re.text=="function"?re.text:this.defaultText,this.container=H(re.container)==="object"?re.container:document.body}},{key:"listenClick",value:function(re){var B=this;this.listener=d()(re,"click",function(z){return B.onClick(z)})}},{key:"onClick",value:function(re){var B=re.delegateTarget||re.currentTarget,z=this.action(B)||"copy",Z=F({action:z,container:this.container,target:this.target(B),text:this.text(B)});this.emit(Z?"success":"error",{action:z,text:Z,trigger:B,clearSelection:function(){B&&B.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(re){return L("action",re)}},{key:"defaultTarget",value:function(re){var B=L("target",re);if(B)return document.querySelector(B)}},{key:"defaultText",value:function(re){return L("text",re)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(re){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return y(re,B)}},{key:"cut",value:function(re){return $(re)}},{key:"isSupported",value:function(){var re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],B=typeof re=="string"?[re]:re,z=!!document.queryCommandSupported;return B.forEach(function(Z){z=z&&!!document.queryCommandSupported(Z)}),z}}]),te}(f()),ae=W},828:function(r){var s=9;if(typeof Element<"u"&&!Element.prototype.matches){var l=Element.prototype;l.matches=l.matchesSelector||l.mozMatchesSelector||l.msMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector}function c(f,u){for(;f&&f.nodeType!==s;){if(typeof f.matches=="function"&&f.matches(u))return f;f=f.parentNode}}r.exports=c},438:function(r,s,l){var c=l(828);function f(m,g,v,b,$){var w=d.apply(this,arguments);return m.addEventListener(v,w,$),{destroy:function(){m.removeEventListener(v,w,$)}}}function u(m,g,v,b,$){return typeof m.addEventListener=="function"?f.apply(null,arguments):typeof v=="function"?f.bind(null,document).apply(null,arguments):(typeof m=="string"&&(m=document.querySelectorAll(m)),Array.prototype.map.call(m,function(w){return f(w,g,v,b,$)}))}function d(m,g,v,b){return function($){$.delegateTarget=c($.target,g),$.delegateTarget&&b.call(m,$)}}r.exports=u},879:function(r,s){s.node=function(l){return l!==void 0&&l instanceof HTMLElement&&l.nodeType===1},s.nodeList=function(l){var c=Object.prototype.toString.call(l);return l!==void 0&&(c==="[object NodeList]"||c==="[object HTMLCollection]")&&"length"in l&&(l.length===0||s.node(l[0]))},s.string=function(l){return typeof l=="string"||l instanceof String},s.fn=function(l){var c=Object.prototype.toString.call(l);return c==="[object Function]"}},370:function(r,s,l){var c=l(879),f=l(438);function u(v,b,$){if(!v&&!b&&!$)throw new Error("Missing required arguments");if(!c.string(b))throw new TypeError("Second argument must be a String");if(!c.fn($))throw new TypeError("Third argument must be a Function");if(c.node(v))return d(v,b,$);if(c.nodeList(v))return m(v,b,$);if(c.string(v))return g(v,b,$);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function d(v,b,$){return v.addEventListener(b,$),{destroy:function(){v.removeEventListener(b,$)}}}function m(v,b,$){return Array.prototype.forEach.call(v,function(w){w.addEventListener(b,$)}),{destroy:function(){Array.prototype.forEach.call(v,function(w){w.removeEventListener(b,$)})}}}function g(v,b,$){return f(document.body,v,b,$)}r.exports=u},817:function(r){function s(l){var c;if(l.nodeName==="SELECT")l.focus(),c=l.value;else if(l.nodeName==="INPUT"||l.nodeName==="TEXTAREA"){var f=l.hasAttribute("readonly");f||l.setAttribute("readonly",""),l.select(),l.setSelectionRange(0,l.value.length),f||l.removeAttribute("readonly"),c=l.value}else{l.hasAttribute("contenteditable")&&l.focus();var u=window.getSelection(),d=document.createRange();d.selectNodeContents(l),u.removeAllRanges(),u.addRange(d),c=u.toString()}return c}r.exports=s},279:function(r){function s(){}s.prototype={on:function(l,c,f){var u=this.e||(this.e={});return(u[l]||(u[l]=[])).push({fn:c,ctx:f}),this},once:function(l,c,f){var u=this;function d(){u.off(l,d),c.apply(f,arguments)}return d._=c,this.on(l,d,f)},emit:function(l){var c=[].slice.call(arguments,1),f=((this.e||(this.e={}))[l]||[]).slice(),u=0,d=f.length;for(u;u({toClipboard(t,a){return new Promise((n,o)=>{const r=document.createElement("button"),s=new Clipboard(r,{text:()=>t,action:()=>"copy",container:a!==void 0?a:document.body});s.on("success",l=>{s.destroy(),n(l)}),s.on("error",l=>{s.destroy(),o(l)}),document.body.appendChild(r),r.click(),document.body.removeChild(r)})}}),suspectProtoRx=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,suspectConstructorRx=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,JsonSigRx=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function jsonParseTransform(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){warnKeyDropped(e);return}return t}function warnKeyDropped(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function destr(e,t={}){if(typeof e!="string")return e;const a=e.trim();if(e[0]==='"'&&e.endsWith('"')&&!e.includes("\\"))return a.slice(1,-1);if(a.length<=9){const n=a.toLowerCase();if(n==="true")return!0;if(n==="false")return!1;if(n==="undefined")return;if(n==="null")return null;if(n==="nan")return Number.NaN;if(n==="infinity")return Number.POSITIVE_INFINITY;if(n==="-infinity")return Number.NEGATIVE_INFINITY}if(!JsonSigRx.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(suspectProtoRx.test(e)||suspectConstructorRx.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,jsonParseTransform)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}function get(e,t){if(e==null)return;let a=e;for(let n=0;n1&&(t=set(typeof e!="object"||e===null||!Object.prototype.hasOwnProperty.call(e,n)?Number.isInteger(Number(a[1]))?[]:{}:e[n],t,Array.prototype.slice.call(a,1))),Number.isInteger(Number(n))&&Array.isArray(e)?e.slice()[n]:Object.assign({},e,{[n]:t})}function unset(e,t){if(e==null||t.length===0)return e;if(t.length===1){if(e==null)return e;if(Number.isInteger(t[0])&&Array.isArray(e))return Array.prototype.slice.call(e,0).splice(t[0],1);const a={};for(const n in e)a[n]=e[n];return delete a[t[0]],a}if(e[t[0]]==null){if(Number.isInteger(t[0])&&Array.isArray(e))return Array.prototype.concat.call([],e);const a={};for(const n in e)a[n]=e[n];return a}return set(e,unset(e[t[0]],Array.prototype.slice.call(t,1)),[t[0]])}function deepPickUnsafe(e,t){return t.map(a=>a.split(".")).map(a=>[a,get(e,a)]).filter(a=>a[1]!==void 0).reduce((a,n)=>set(a,n[1],n[0]),{})}function deepOmitUnsafe(e,t){return t.map(a=>a.split(".")).reduce((a,n)=>unset(a,n),e)}function hydrateStore(e,{storage:t,serializer:a,key:n,debug:o,pick:r,omit:s,beforeHydrate:l,afterHydrate:c},f,u=!0){try{u&&(l==null||l(f));const d=t.getItem(n);if(d){const m=a.deserialize(d),g=r?deepPickUnsafe(m,r):m,v=s?deepOmitUnsafe(g,s):g;e.$patch(v)}u&&(c==null||c(f))}catch(d){o&&console.error("[pinia-plugin-persistedstate]",d)}}function persistState(e,{storage:t,serializer:a,key:n,debug:o,pick:r,omit:s}){try{const l=r?deepPickUnsafe(e,r):e,c=s?deepOmitUnsafe(l,s):l,f=a.serialize(c);t.setItem(n,f)}catch(l){o&&console.error("[pinia-plugin-persistedstate]",l)}}function createPersistence(e,t,a){const{pinia:n,store:o,options:{persist:r=a}}=e;if(!r)return;if(!(o.$id in n.state.value)){const c=n._s.get(o.$id.replace("__hot:",""));c&&Promise.resolve().then(()=>c.$persist());return}const l=(Array.isArray(r)?r:r===!0?[{}]:[r]).map(t);o.$hydrate=({runHooks:c=!0}={})=>{l.forEach(f=>{hydrateStore(o,f,e,c)})},o.$persist=()=>{l.forEach(c=>{persistState(o.$state,c)})},l.forEach(c=>{hydrateStore(o,c,e),o.$subscribe((f,u)=>persistState(u,c),{detached:!0})})}function createPersistedState(e={}){return function(t){createPersistence(t,a=>({key:(e.key?e.key:n=>n)(a.key??t.store.$id),debug:a.debug??e.debug??!1,serializer:a.serializer??e.serializer??{serialize:n=>JSON.stringify(n),deserialize:n=>destr(n)},storage:a.storage??e.storage??window.localStorage,beforeHydrate:a.beforeHydrate,afterHydrate:a.afterHydrate,pick:a.pick,omit:a.omit}),e.auto??!1)}}var src_default=createPersistedState();const{toClipboard}=VueClipboard(),div=document.createElement("div");div.id="weilin_comfyui_tools_prompt_ui_div";const body=document.querySelector("body");body.appendChild(div);const pinia=createPinia();pinia.use(src_default);const app=createApp(App);app.use(pinia),app.use(i18n),initI18n(),app.config.globalProperties.$copyText=toClipboard,app.mount(div),console.log("WeiLin Prompt UI is running - version "+version),console.log("WeiLin 节点插件已运行 - 版本 "+version)}); //# sourceMappingURL=main.entry.js.map diff --git a/dist/javascript/main.entry.js.map b/dist/javascript/main.entry.js.map index d6ae8cd..3c29849 100644 --- a/dist/javascript/main.entry.js.map +++ b/dist/javascript/main.entry.js.map @@ -1 +1 @@ -{"version":3,"file":"main.entry.js","sources":["../../weilin-comfyui-tools/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@intlify/shared/dist/shared.mjs","../../weilin-comfyui-tools/node_modules/@intlify/message-compiler/dist/message-compiler.mjs","../../weilin-comfyui-tools/node_modules/@intlify/core-base/dist/core-base.mjs","../../weilin-comfyui-tools/node_modules/vue-i18n/dist/vue-i18n.mjs","../../weilin-comfyui-tools/src/components/DraggableWindow.vue","../../weilin-comfyui-tools/src/utils/version.js","../../weilin-comfyui-tools/src/i18n/locales/zh_CN.js","../../weilin-comfyui-tools/src/i18n/locales/en_US.js","../../weilin-comfyui-tools/node_modules/pinia/dist/pinia.mjs","../../weilin-comfyui-tools/src/stores/tagStore.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/bind.js","../../weilin-comfyui-tools/node_modules/axios/lib/utils.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/AxiosError.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/null.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/toFormData.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/buildURL.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/InterceptorManager.js","../../weilin-comfyui-tools/node_modules/axios/lib/defaults/transitional.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/classes/FormData.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/classes/Blob.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/index.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/common/utils.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/index.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/formDataToJSON.js","../../weilin-comfyui-tools/node_modules/axios/lib/defaults/index.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/parseHeaders.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/AxiosHeaders.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/transformData.js","../../weilin-comfyui-tools/node_modules/axios/lib/cancel/isCancel.js","../../weilin-comfyui-tools/node_modules/axios/lib/cancel/CanceledError.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/settle.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/parseProtocol.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/speedometer.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/throttle.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/progressEventReducer.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/cookies.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/combineURLs.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/buildFullPath.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/mergeConfig.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/resolveConfig.js","../../weilin-comfyui-tools/node_modules/axios/lib/adapters/xhr.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/composeSignals.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/trackStream.js","../../weilin-comfyui-tools/node_modules/axios/lib/adapters/fetch.js","../../weilin-comfyui-tools/node_modules/axios/lib/adapters/adapters.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/dispatchRequest.js","../../weilin-comfyui-tools/node_modules/axios/lib/env/data.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/validator.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/Axios.js","../../weilin-comfyui-tools/node_modules/axios/lib/cancel/CancelToken.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/spread.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/isAxiosError.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/HttpStatusCode.js","../../weilin-comfyui-tools/node_modules/axios/lib/axios.js","../../weilin-comfyui-tools/node_modules/axios/index.js","../../weilin-comfyui-tools/src/api/request.js","../../weilin-comfyui-tools/src/api/language.js","../../weilin-comfyui-tools/src/i18n/index.js","../../weilin-comfyui-tools/src/utils/message.vue","../../weilin-comfyui-tools/src/utils/message.js","../../weilin-comfyui-tools/src/components/LanguageSwitcher.vue","../../weilin-comfyui-tools/src/components/Dialog.vue","../../weilin-comfyui-tools/src/api/translator.js","../../weilin-comfyui-tools/src/api/autocomplete.js","../../weilin-comfyui-tools/src/api/openai.js","../../weilin-comfyui-tools/src/view/prompt_box/components/translater.ts","../../weilin-comfyui-tools/src/api/ai_server.js","../../weilin-comfyui-tools/src/view/prompt_box/components/setting_dilaog_components/ai_server_setting.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/setting_dialog.vue","../../weilin-comfyui-tools/src/components/ThemeSwitch.vue","../../weilin-comfyui-tools/src/api/tags.js","../../weilin-comfyui-tools/node_modules/uuidv7/dist/index.js","../../weilin-comfyui-tools/src/view/tag_manager/tag_group_select.vue","../../weilin-comfyui-tools/node_modules/js-yaml/dist/js-yaml.mjs","../../weilin-comfyui-tools/src/view/tag_manager/import_tag.vue","../../weilin-comfyui-tools/src/view/tag_manager/tag_index.vue","../../weilin-comfyui-tools/src/utils/windowManager.js","../../weilin-comfyui-tools/src/api/lora.js","../../weilin-comfyui-tools/node_modules/vue3-json-viewer/dist/bundle.esm.js","../../weilin-comfyui-tools/src/view/lora_manager/lora_raw.vue","../../weilin-comfyui-tools/src/view/lora_manager/lora_detail.vue","../../weilin-comfyui-tools/src/view/lora_manager/lora_card.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/lora_stack.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/main_label_manager.vue","../../weilin-comfyui-tools/node_modules/i18n-jsautotranslate/index.js","../../weilin-comfyui-tools/src/api/history.js","../../weilin-comfyui-tools/src/view/lora_manager/lora_index.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/tag_group_select.vue","../../weilin-comfyui-tools/src/api/random_tag.js","../../weilin-comfyui-tools/src/view/prompt_box/components/random_setting.vue","../../weilin-comfyui-tools/node_modules/pako/dist/pako.esm.mjs","../../weilin-comfyui-tools/src/view/prompt_box/components/favour.vue","../../weilin-comfyui-tools/src/view/prompt_box/prompt_index.vue","../../weilin-comfyui-tools/src/view/history_manager/history_index.vue","../../weilin-comfyui-tools/src/components/tranToWeb.vue","../../weilin-comfyui-tools/src/components/FloatingBall.vue","../../weilin-comfyui-tools/src/view/ai_window/ai_window.vue","../../weilin-comfyui-tools/src/view/node_list/index.vue","../../weilin-comfyui-tools/src/api/cloud.js","../../weilin-comfyui-tools/src/view/cloud/index.vue","../../weilin-comfyui-tools/src/view/lora_manager/lora_stack.vue","../../weilin-comfyui-tools/src/api/danbooru.js","../../weilin-comfyui-tools/src/view/danbooru/import_danbooru.vue","../../weilin-comfyui-tools/src/view/danbooru/danbooru_manager.vue","../../weilin-comfyui-tools/src/App.vue","../../weilin-comfyui-tools/node_modules/clipboard/dist/clipboard.js","../../weilin-comfyui-tools/node_modules/vue-clipboard3/dist/esm/index.js","../../weilin-comfyui-tools/node_modules/destr/dist/index.mjs","../../weilin-comfyui-tools/node_modules/deep-pick-omit/dist/index.mjs","../../weilin-comfyui-tools/node_modules/pinia-plugin-persistedstate/dist/index.js","../../weilin-comfyui-tools/src/main.js"],"sourcesContent":["/**\n* @vue/shared v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, toRawType, capitalize, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isSymbol, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= ~1;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(() => {\n mountToTarget();\n n2.el.__isMounted = true;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n delete n1.el.__isMounted;\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const disabled = isTeleportDisabled(vnode.props);\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= ~256;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n","export const version = \"v0.0.66\";","import { version } from \"../../utils/version.js\"\r\nexport default {\r\n promptBox: {\r\n placeholder: '请输入文本...',\r\n delete: '删除',\r\n newline: '换行',\r\n tab: '制表符',\r\n windowTitle: \"WeiLin提示词UI窗口 \" + version,\r\n windowTitleGlobal: \"WeiLin全局提示词UI窗口 \" + version,\r\n translate: '翻译',\r\n translatePlaceholder: '请输入要翻译的文本,回车即可',\r\n weight: '权重',\r\n weightPlaceholder: '请输入权重',\r\n addBracket: '添加括号',\r\n removeLayer: '减去括号',\r\n\r\n hiddenHint: \"双击显示提示词\",\r\n tagTips: \"鼠标左键双击屏蔽Tag
鼠标左键单击Tag可以编辑
鼠标左键拖动可以拖动Tag\",\r\n oneClickRandomTag: '一键随机Tag',\r\n randomTagSettings: '设置随机Tag规则',\r\n oneClickTranslate: \"一键翻译Tag\",\r\n modelWeight: \"模型权重\",\r\n textWeight: \"文本权重\",\r\n favour: \"收藏\",\r\n lineToken: \"换行\",\r\n addLineToken: \"添加换行符\",\r\n settings: {\r\n title: '设置',\r\n cancel: '取消',\r\n save: '保存',\r\n translator: '翻译设置',\r\n sourceLanguage: '源语言',\r\n targetLanguage: '目标语言',\r\n chinese_simplified: '简体中文',\r\n english: '英语',\r\n close: '关闭',\r\n auto_detect: '自动检测',\r\n setting_floating_ball: '悬浮球设置',\r\n setting_prompt_box: '提示词设置',\r\n enablePromptCommaShow: '显示提示词逗号',\r\n floatingBallCount: '悬浮球数量',\r\n floatingBallCountPlaceholder: '请输入悬浮球数量',\r\n floatingBallSize: '悬浮球宽度',\r\n floatingBallSizePlaceholder: '请输入悬浮球宽度',\r\n floatingBallHeight: '悬浮球高度',\r\n floatingBallHeightPlaceholder: '请输入悬浮球高度',\r\n enableFloatingBall: '启用悬浮球',\r\n enableCommaConversion: '启用逗号转换,全角逗号转为半角逗号',\r\n enablePeriodConversion: '启用句号转换,全角句号转为半角句号',\r\n enableBracketConversion: '启用括号转换,全角括号转为半角括号',\r\n enableAngleBracketConversion: '启用尖括号转换,全角尖括号转为半角尖括号',\r\n enableUnderscoreToBracket: '启用下划线转换,下划线转换为空格',\r\n enableBracketEscape: '启用括号转义,自动添加\\\\转义括号',\r\n enableCommaCloseAutocomplete: '启动逗号关闭补全,输入逗号立即关闭补全列表',\r\n setting_openai_box: 'OpenAI设置',\r\n openai_api_key: 'API Key',\r\n openai_api_key_placeholder: '请输入API Key',\r\n openai_api_key_save: '保存',\r\n openaiSettings: 'OpenAI设置',\r\n openai_base_url: 'Base URL',\r\n openai_base_url_placeholder: '请输入Base URL',\r\n openai_model: '模型',\r\n openai_model_placeholder: '请输入模型',\r\n not_set: '未设置',\r\n edit: '编辑',\r\n delete: '删除',\r\n selectedOpenaiConfig: '当前选择的OpenAI配置',\r\n addNewConfig: '添加OpenAI配置',\r\n setting_sponsor_me: '赞助我',\r\n sponsorMe: '赞助我',\r\n sponsorMeTip: '赞助我,支持我继续开发',\r\n sponsorMeLink: '唯一赞助链接 https://afdian.com/a/weilin9999',\r\n setting_start_panel: '启动面板',\r\n startPanel: '启动面板',\r\n startPanelTip: '点击启动面板,启动成功后会自动打开面板页面',\r\n selectTranslater: '选择翻译器',\r\n selectOptionNetworkTranslater: '三方网络翻译',\r\n selectOptionPythonTranslater: '翻译库翻译',\r\n apply: '应用',\r\n selectOptionNetworkTranslaterTitle: '三方网络翻译设置',\r\n selectOptionPythonTranslaterTitle: '翻译库设置',\r\n selectOptionNetworkTranslaterInfo: '使用的三方工具是(仅网络翻译)',\r\n selectOptionPythonTranslaterInfo: '使用的翻译包为translators',\r\n install: '安装',\r\n nowTranlaterPackageState: '当前翻译包状态:',\r\n tranlaterPackageStateTrue: '已安装',\r\n tranlaterPackageStateFlase: '未安装',\r\n installed: '正在安装中...',\r\n installTranslaterPackageInfo: '当前正在安装翻译库中,请不要关闭窗口!等待安装完成',\r\n translaterSetting: \"翻译设置\",\r\n chooseTranslaterSetting: \"选择翻译服务:\",\r\n translaterLangSourceSetting: \"翻译语言:\",\r\n translaterLangTargeSetting: \"翻译目标语言:\",\r\n saveTranslaterSetting: \"保存设置\",\r\n testTranslaterTitle: \"测试翻译\",\r\n inputTestTranslater: \"输入翻译内容:\",\r\n outPutTestTranslater: \"翻译结果:\",\r\n testingTranslater: \"测试翻译\",\r\n inputTestTranslaterPlaceholder: \"请输入要翻译的内容\",\r\n outPutTestTranslaterPlaceholder: \"翻译结果将显示在这里\",\r\n errorPrompt: \"读取节点提示词失败!\",\r\n setting_auto_complete_limit: \"补全提示设置\",\r\n show_auto_limit: \"显示补全提示数量\",\r\n showAutoLimitPlaceholder: \"请输入要显示的数量\",\r\n settingAutoCompleteWidth: \"设置补全提示框宽度\",\r\n settingAutoCompleteWidthPlaceholder: \"请输入宽度\",\r\n settingAutoCompleteHeight: \"设置补全提示框最大高度\",\r\n settingAutoCompleteHeightPlaceholder: \"请输入最大高度\",\r\n skinSetting: '皮肤设置',\r\n defaultSkin: '默认皮肤',\r\n customSkin: '自定义皮肤',\r\n uploadSkin: '上传皮肤',\r\n bgSetting: '背景设置',\r\n gradientBg: '渐变颜色',\r\n transparentBg: '透明',\r\n gradientColor: '渐变颜色选择',\r\n borderRadius: '圆角设置',\r\n resetToDefault: '恢复默认',\r\n },\r\n },\r\n controls: {\r\n language: '语言',\r\n settings: '设置',\r\n switchTheme: '切换主题',\r\n darkMode: '夜间模式',\r\n lightMode: '日间模式',\r\n tagManager: '标签管理',\r\n loraStack: 'Lora堆',\r\n loraManager: 'Lora管理',\r\n history: '历史记录',\r\n addLora: '添加Lora',\r\n removeLora: '移除Lora',\r\n lookOnLora: '查看Lora',\r\n aiChat: 'AI对话',\r\n github: \"Github主页\",\r\n shareCloudData: '共享云数据',\r\n tutorialVideo: \"教程视频\",\r\n sponsor: \"赞助我\",\r\n danbooruManager: \"Danbooru管理器\",\r\n },\r\n theme: {\r\n toggle: '切换主题'\r\n },\r\n common: {\r\n \"confirmDelete\": \"确认删除\",\r\n \"delete\": \"删除\",\r\n \"cancel\": \"取消\",\r\n \"confirm\": \"确定\",\r\n \"edit\": \"编辑\",\r\n \"save\": \"保存\",\r\n \"refresh\": \"刷新\",\r\n \"copy\": \"复制\",\r\n \"copySuccess\": \"复制成功\",\r\n \"copyFailed\": \"复制失败\",\r\n \"windowSize\": \"调节窗口大小\",\r\n \"showMore\": \"显示更多\",\r\n \"showLess\": \"收起\"\r\n },\r\n cloudWindow: {\r\n \"windowTitle\": \"共享云仓库\",\r\n back: '返回上一级',\r\n currentPath: '当前路径',\r\n tagDatabase: 'Tag 数据库',\r\n danbooruDatabase: 'Danbooru 数据库',\r\n open: \"打开文件夹\",\r\n installed: '已安装',\r\n install: '安装',\r\n installing: '正在安装...'\r\n },\r\n nodeListWindow: {\r\n \"windowTitle\": \"节点列表\",\r\n \"openPromptUI\": \"打开提示词编辑器\",\r\n },\r\n lora: {\r\n \"title\": \"Lora 信息\",\r\n rawTitle: \"LoraRaw\",\r\n \"file\": \"文件\",\r\n \"hash\": \"Hash值\",\r\n \"civitai\": \"Civitai\",\r\n \"viewOnCivitai\": \"在 Civitai 上查看\",\r\n \"fetchFromCivitai\": \"从 Civitai 获取信息\",\r\n \"modelNotFound\": \"模型未找到\",\r\n \"modelNotFoundTip\": \"该模型在 Civitai 上未找到,可能是私有模型或已被删除\",\r\n \"name\": \"名称\",\r\n \"nameTip\": \"模型的显示名称\",\r\n \"type\": \"类型\",\r\n \"baseModel\": \"基础模型\",\r\n \"trainedWords\": \"训练词\",\r\n \"trainedWordsTip\": \"模型训练时使用的关键词,点击可选择复制\",\r\n \"selectedWords\": \"已选择 {count} 个词\",\r\n \"strengthMin\": \"最小强度\",\r\n \"strengthMinTip\": \"推荐的最小强度值\",\r\n \"strengthMax\": \"最大强度\",\r\n \"strengthMaxTip\": \"推荐的最大强度值\",\r\n \"promptWords\": \"提示词\",\r\n \"promptWordsTip\": \"使用该模型时的推荐提示词\",\r\n \"loraWorks\": \"Lora提示词\",\r\n \"strWeight\": \"文本强度权重\",\r\n hideLora: \"禁用Lora\",\r\n showLora: \"启用Lora\",\r\n baseModel: \"基础模型\",\r\n skipClip: \"跳过层\",\r\n seeLoraRaw: \"查看LoraRaw\",\r\n addDiyFiled: \"添加自定义字段\",\r\n getCivitData: \"获取Civitai信息\",\r\n copy: \"复制\",\r\n },\r\n tagManager: {\r\n \"deletePrimaryCategoryConfirm\": \"确定要删除分类 {name} 吗?\",\r\n \"deleteGroupConfirm\": \"确定要删除分组 {name} 吗?\",\r\n \"deleteTagConfirm\": \"确定要删除标签 {name} 吗?\",\r\n \"windowTitle\": \"标签管理器\",\r\n \"categories\": \"分类管理\",\r\n \"groups\": \"分组管理\",\r\n \"selectCategory\": \"请选择分类\",\r\n \"selectGroup\": \"请选择分组\",\r\n \"addPrimaryCategory\": \"添加分类\",\r\n \"addGroup\": \"添加分组\",\r\n \"editPrimaryCategory\": \"编辑分类\",\r\n \"editGroup\": \"编辑分组\",\r\n \"editTag\": \"编辑标签\",\r\n \"categoryName\": \"分类名称\",\r\n \"categoryNamePlaceholder\": \"请输入分类名称\",\r\n \"categoryNameRequired\": \"分类名称不能为空\",\r\n \"groupName\": \"分组名称\",\r\n \"groupNamePlaceholder\": \"请输入分组名称\",\r\n \"groupNameRequired\": \"分组名称不能为空\",\r\n \"addTag\": \"添加Tag\",\r\n \"text\": \"Tag描述\",\r\n \"textPlaceholder\": \"请输入Tag描述\",\r\n \"description\": \"Tag\",\r\n \"descriptionPlaceholder\": \"请输入Tag\",\r\n \"textRequired\": \"Tag和Tag描述不能为空\",\r\n \"favourRequired\": \"Tag和Tag描述不能为空,且必须选择分组\",\r\n \"backgroundColor\": \"背景颜色\",\r\n \"colorPickerTitle\": \"选择颜色\",\r\n \"opacity\": \"透明度\",\r\n \"searchPlaceholder\": \"搜索Tag...\",\r\n \"noResults\": \"未找到相关结果\",\r\n \"searchInCategory\": \"在分类中\",\r\n \"searchInTag\": \"在Tag中\",\r\n \"save\": \"保存\",\r\n \"cancel\": \"取消\",\r\n \"confirm\": \"确定\",\r\n \"delete\": \"删除\",\r\n \"addSubCategory\": \"添加子分类\",\r\n \"editSubCategory\": \"编辑子分类\",\r\n \"subCategoryName\": \"子分类名称\",\r\n \"subCategoryNamePlaceholder\": \"请输入子分类名称\",\r\n \"subCategoryNameRequired\": \"子分类名称不能为空\",\r\n \"deleteConfirmTitle\": \"确认删除\",\r\n \"deleteConfirmMessage\": \"此操作将永久删除该{type},是否继续?\",\r\n \"deleteSuccess\": \"删除成功\",\r\n \"deleteFailed\": \"删除失败\",\r\n \"saveSuccess\": \"保存成功\",\r\n \"saveFailed\": \"保存失败\",\r\n \"colorPickerAlpha\": \"透明度\",\r\n \"colorPickerHex\": \"十六进制颜色值\",\r\n \"colorPreview\": \"颜色预览\",\r\n \"dragToSort\": \"拖动排序\",\r\n \"searchTags\": \"搜索标签\",\r\n \"noTagsFound\": \"未找到标签\",\r\n \"noGroupsFound\": \"未找到分组\",\r\n \"noCategoriesFound\": \"未找到分类\",\r\n \"refresh\": \"刷新\",\r\n \"refreshing\": \"刷新中...\",\r\n \"refreshSuccess\": \"刷新成功\",\r\n \"refreshFailed\": \"刷新失败\",\r\n \"search\": \"搜索\",\r\n \"searching\": \"搜索中...\",\r\n \"searchResult\": \"搜索结果\",\r\n \"searchInPath\": \"位于: {path}\",\r\n \"category\": \"分类\",\r\n \"group\": \"分组\",\r\n \"tag\": \"标签\",\r\n \"resultType\": {\r\n \"category\": \"分类\",\r\n \"group\": \"分组\",\r\n \"tag\": \"标签\"\r\n },\r\n \"hasDeleteAction\": \"批量删除\",\r\n \"deleteSelected\": \"删除选中\",\r\n \"confirmDeleteSelected\": \"确定要删除选中标签吗?\",\r\n \"cancelDelete\": \"取消删除\",\r\n \"moveTag\": \"移动标签\",\r\n \"targetTag\": \"目标标签\",\r\n \"movePosition\": \"移动位置\",\r\n \"moveBefore\": \"移动到目标标签之前\",\r\n \"moveAfter\": \"移动到目标标签之后\",\r\n \"editTag\": \"编辑标签\",\r\n \"deleteTag\": \"删除标签\",\r\n \"editGroupMode\": \"编辑模式\",\r\n \"exitEditMode\": \"退出编辑模式\",\r\n \"autoAddSearchTag\": \"搜索的Tag自动添加到提示词中\",\r\n \"importTags\": \"批量导入Tag\",\r\n share: \"分享\",\r\n delete: \"删除\",\r\n edit: \"编辑\",\r\n outputSuccess: \"分享成功\",\r\n noTagsSelected: \"没有选择要分享的Tag\",\r\n shareSelected: \"分享选择的Tag\",\r\n batchShare: \"批量分享Tag\",\r\n cancelShare: \"取消分享\",\r\n moveGroup: \"移动分组\",\r\n \"targetGroup\": \"目标分组\",\r\n \"moveGroupBefore\": \"移动到目标分组之前\",\r\n \"moveGroupAfter\": \"移动到目标分组之后\",\r\n importDanbooru: \"批量导入\",\r\n // 标签尺寸相关\r\n modifyTabSize: '修改标签尺寸',\r\n tabSizeConfig: '标签尺寸配置',\r\n primaryTabConfig: '一级分类标签配置',\r\n groupTabConfig: '二级分类标签配置',\r\n tabWidth: '标签宽度',\r\n tabHeight: '标签高度',\r\n fontSize: '字体大小',\r\n fitContent: '自适应内容',\r\n customWidth: '自定义宽度',\r\n resetDefault: '重置为默认值',\r\n tabSizeConfigSaved: '标签尺寸配置已保存',\r\n tabSizeConfigSaveFailed: '标签尺寸配置保存失败',\r\n },\r\n loraManager: {\r\n windowTitle: \"Lora管理\",\r\n modelWeight: \"模型权重\",\r\n textEncoderWeight: \"文本权重\",\r\n all: \"全部\",\r\n root: \"根目录\",\r\n refresh: \"刷新\",\r\n cacheAll: \"缓存全部Lora信息\",\r\n searchPlaceholder: \"搜索Lora...\",\r\n prevPage: \"上一页\",\r\n nextPage: \"下一页\",\r\n noResults: \"未找到相关结果\",\r\n loadingMore: \"正在加载更多...\",\r\n noMoreData: \"没有更多结果了\",\r\n },\r\n \"message\": {\r\n \"copySuccess\": \"复制成功\",\r\n \"copyFailed\": \"复制失败\",\r\n \"saveSuccess\": \"保存成功\",\r\n \"saveFailed\": \"保存失败\",\r\n \"deleteSuccess\": \"删除成功\",\r\n \"deleteFailed\": \"删除失败\",\r\n \"operationSuccess\": \"操作成功\",\r\n \"operationFailed\": \"操作失败\",\r\n \"networkError\": \"网络错误\",\r\n \"unknownError\": \"未知错误\",\r\n \"refreshSuccess\": \"刷新成功\",\r\n \"refreshFailed\": \"刷新失败\",\r\n \"loadingData\": \"加载数据中...\",\r\n \"dataLoaded\": \"数据加载完成\",\r\n \"editSuccess\": \"编辑成功\",\r\n \"editFailed\": \"编辑失败\",\r\n \"addSuccess\": \"添加成功\",\r\n \"addFailed\": \"添加失败\",\r\n \"addFavoriteSuccess\": \"已添加到收藏夹\",\r\n \"addFavoriteIsExist\": \"已添加到收藏夹\",\r\n \"error\": \"错误\",\r\n \"editNameExist\": \"名称已存在\",\r\n \"moveSuccess\": \"移动成功\",\r\n \"moveFailed\": \"移动失败\",\r\n \"setLanguageSuccess\": \"设置语言成功\",\r\n \"setLanguageFailed\": \"设置语言失败\",\r\n \"startPanelSuccess\": \"启动面板成功\",\r\n \"startPanelFailed\": \"启动面板失败\",\r\n \"isLoading\": \"已在执行中请等待\",\r\n \"loaddingPrc\": \"执行进度 {name}%\",\r\n \"loaddingSuccess\": \"已全部加载成功\",\r\n \"noFinishKuo\": \"括号不完整,请检查输入\",\r\n \"getTranslaterFail\": \"获取翻译设置失败\",\r\n \"applyTranslaterFail\": \"应用翻译设置失败\",\r\n \"applyToTranslaterFail\": \"切换翻译库翻译需要安装翻译库,请先安装翻译库再应用设置\",\r\n \"applyTranslaterSuccess\": \"应用翻译设置成功\",\r\n tranlaterPackageInstallFail: '等待安装超时,请查看后台安装情况,若安装成功再次点击安装即可验证',\r\n tranlaterPackageInstallSuccess: '安装翻译包成功',\r\n translaterTestFail: \"翻译失败,请使用其它的翻译服务进行尝试\",\r\n \"installPackageSuccess\": \"安装共享数据成功!\",\r\n \"installPackageFail\": \"安装共享数据失败,请查看后台错误\",\r\n loadFailed: \"加载失败\",\r\n jsonErrorMesg: \"JSON文件格式错误\",\r\n pleaseAddSub: \"请先添加二级分类\",\r\n pleaseAddMainCeb: \"请先添加一级分类\",\r\n pleaseSelectGroup: \"请选择完整的分组路径\",\r\n isLoadingPleaseWait: \"正在执行中,请查看后台进度\",\r\n shareGroupError: \"分享失败,获取分组信息失败\",\r\n shareTagError: \"分享失败,获取组Tag信息失败\",\r\n },\r\n history: {\r\n \"title\": \"历史记录\",\r\n \"search_placeholder\": \"搜索历史记录...\",\r\n \"search\": \"搜索\",\r\n \"windowTitle\": \"历史记录\",\r\n \"favorites\": \"收藏夹\",\r\n \"history\": \"历史记录\",\r\n \"refresh\": \"刷新\",\r\n \"refresh_history\": \"刷新历史记录\",\r\n \"refresh_favorites\": \"刷新收藏夹\",\r\n \"add_to_favorites\": \"添加到收藏夹\",\r\n \"delete_history\": \"删除历史记录\",\r\n \"use_item\": \"使用\",\r\n \"add_new\": \"添加收藏\",\r\n \"bulk_delete\": \"批量删除\",\r\n \"deleteHistoryConfirm\": \"确定要删除历史记录 {name} 吗?\",\r\n \"deleteFavoriteConfirm\": \"确定要删除收藏夹 {name} 吗?\",\r\n \"confirmDeleteSelected\": \"确定要删除选中的信息吗?\",\r\n \"cancel_delete\": \"取消删除\",\r\n \"sure_delete\": \"确定删除\",\r\n \"deleteSelected\": \"删除选中\",\r\n \"dialog\": {\r\n \"add_tag\": \"添加收藏\",\r\n \"edit_tag\": \"编辑收藏\",\r\n \"name\": \"名称\",\r\n \"name_placeholder\": \"请输入名称\",\r\n \"tag\": \"标签\",\r\n \"tag_placeholder\": \"请输入标签\",\r\n \"background_color\": \"背景颜色\",\r\n \"background_color_placeholder\": \"请选择背景颜色\",\r\n \"edit_favorite\": \"编辑收藏\",\r\n \"delete_favorite\": \"删除收藏\",\r\n },\r\n \"edit_favorite\": \"编辑收藏\",\r\n \"delete_favorite\": \"删除收藏\",\r\n \"use_favorite\": \"使用收藏\"\r\n },\r\n floatingBall: {\r\n \"promptBox\": \"打开全局提示词\",\r\n \"tagManager\": \"打开标签管理\",\r\n \"loraManager\": \"打开Lora管理\",\r\n \"aiWindow\": \"打开AI对话\",\r\n \"restoreWindow\": \"重置所有窗口\",\r\n \"openNodeListWindow\": \"打开节点列表\",\r\n tranToWeb: \"图片转换工具\",\r\n openSetting: \"打开设置\",\r\n },\r\n aiWindow: {\r\n \"windowTitle\": \"AI对话窗口\",\r\n \"newChat\": \"新建对话\",\r\n \"chatName\": \"对话\",\r\n \"thinking\": \"思考中...\",\r\n \"send\": \"发送\",\r\n \"inputMessage\": \"输入你的消息...\"\r\n },\r\n translaterService: {\r\n \"niutrans\": \"小牛翻译\",\r\n \"mymemory\": \"MyMemory\",\r\n \"alibaba\": \"阿里巴巴翻译\",\r\n \"baidu\": \"百度翻译\",\r\n \"modernmt\": \"ModernMT\",\r\n \"volcengine\": \"火山翻译\",\r\n \"iciba\": \"金山词霸\",\r\n \"iflytek\": \"科大讯飞翻译\",\r\n \"google\": \"谷歌翻译\",\r\n \"bing\": \"必应翻译\",\r\n \"lingvanex\": \"Lingvanex\",\r\n \"yandex\": \"Yandex翻译\",\r\n \"itranslate\": \"iTranslate\",\r\n \"systran\": \"SYSTRAN\",\r\n \"argos\": \"Argos翻译\",\r\n \"apertium\": \"Apertium\",\r\n \"reverso\": \"Reverso翻译\",\r\n \"deepl\": \"DeepL翻译\",\r\n \"cloudtranslation\": \"云翻译\",\r\n \"qqtransmart\": \"腾讯翻译君\",\r\n \"translatecom\": \"Translate.com\",\r\n \"sogou\": \"搜狗翻译\",\r\n \"tilde\": \"Tilde翻译\",\r\n \"caiyun\": \"彩云小译\",\r\n \"qqfanyi\": \"腾讯翻译\",\r\n \"translateme\": \"TranslateMe\",\r\n \"papago\": \"Papago翻译\",\r\n \"mirai\": \"未来翻译\",\r\n \"youdao\": \"有道翻译\",\r\n \"iflyrec\": \"讯飞听见翻译\",\r\n \"hujiang\": \"沪江翻译\",\r\n \"yeekit\": \"译库翻译\",\r\n \"languagewire\": \"LanguageWire\",\r\n \"elia\": \"Elia翻译\",\r\n \"judic\": \"Judic翻译\",\r\n \"mglip\": \"蒙古语翻译\",\r\n \"utibet\": \"藏语翻译\"\r\n },\r\n translaterLanguage: {\r\n \"english\": \"英语\",\r\n \"chinese\": \"中文\",\r\n \"arabic\": \"阿拉伯语\",\r\n \"russian\": \"俄语\",\r\n \"french\": \"法语\",\r\n \"german\": \"德语\",\r\n \"spanish\": \"西班牙语\",\r\n \"portuguese\": \"葡萄牙语\",\r\n \"italian\": \"意大利语\",\r\n \"japanese\": \"日语\",\r\n \"korean\": \"韩语\",\r\n \"greek\": \"希腊语\",\r\n \"dutch\": \"荷兰语\",\r\n \"hindi\": \"印地语\",\r\n \"turkish\": \"土耳其语\",\r\n \"malay\": \"马来语\",\r\n \"thai\": \"泰语\",\r\n \"vietnamese\": \"越南语\",\r\n \"indonesian\": \"印度尼西亚语\",\r\n \"hebrew\": \"希伯来语\",\r\n \"polish\": \"波兰语\",\r\n \"mongolian\": \"蒙古语\",\r\n \"czech\": \"捷克语\",\r\n \"hungarian\": \"匈牙利语\",\r\n \"estonian\": \"爱沙尼亚语\",\r\n \"bulgarian\": \"保加利亚语\",\r\n \"danish\": \"丹麦语\",\r\n \"finnish\": \"芬兰语\",\r\n \"romanian\": \"罗马尼亚语\",\r\n \"swedish\": \"瑞典语\",\r\n \"slovenian\": \"斯洛文尼亚语\",\r\n \"persian/farsi\": \"波斯语/波斯语\",\r\n \"bosnian\": \"波斯尼亚语\",\r\n \"serbian\": \"塞尔维亚语\",\r\n \"fijian\": \"斐济语\",\r\n \"filipino\": \"菲律宾语\",\r\n \"haitiancreole\": \"海地克里奥尔语\",\r\n \"catalan\": \"加泰罗尼亚语\",\r\n \"croatian\": \"克罗地亚语\",\r\n \"latvian\": \"拉脱维亚语\",\r\n \"lithuanian\": \"立陶宛语\",\r\n \"urdu\": \"乌尔都语\",\r\n \"ukrainian\": \"乌克兰语\",\r\n \"welsh\": \"威尔士语\",\r\n \"tahiti\": \"塔希提语\",\r\n \"tongan\": \"汤加语\",\r\n \"swahili\": \"斯瓦希里语\",\r\n \"samoan\": \"萨摩亚语\",\r\n \"slovak\": \"斯洛伐克语\",\r\n \"afrikaans\": \"南非荷兰语\",\r\n \"norwegian\": \"挪威语\",\r\n \"bengali\": \"孟加拉语\",\r\n \"malagasy\": \"马达加斯加语\",\r\n \"maltese\": \"马耳他语\",\r\n \"queretaro otomi\": \"克雷塔罗奥托米语\",\r\n \"klingon/tlhingan hol\": \"克林贡语\",\r\n \"gujarati\": \"古吉拉特语\",\r\n \"tamil\": \"泰米尔语\",\r\n \"telugu\": \"泰卢固语\",\r\n \"punjabi\": \"旁遮普语\",\r\n \"amharic\": \"阿姆哈拉语\",\r\n \"azerbaijani\": \"阿塞拜疆语\",\r\n \"bashkir\": \"巴什基尔语\",\r\n \"belarusian\": \"白俄罗斯语\",\r\n \"cebuano\": \"宿务语\",\r\n \"chuvash\": \"楚瓦什语\",\r\n \"esperanto\": \"世界语\",\r\n \"basque\": \"巴斯克语\",\r\n \"irish\": \"爱尔兰语\"\r\n },\r\n utils: {\r\n tranToWeb: '转换图片为HTML',\r\n dropOrPasteImage: '点击本区域可以上传文件也可以拖动图片或粘贴图片到此处',\r\n downloadHtml: '下载HTML',\r\n copyHtml: '复制HTML',\r\n copySuccess: 'HTML已复制',\r\n copyFailed: '复制HTML失败',\r\n clear: '清空内容'\r\n },\r\n importDialog: {\r\n title: '批量导入Tag',\r\n sure: \"确认并导入\",\r\n cleanAll: \"清空所有\",\r\n dumpSQL: \"导出所有SQL\",\r\n uploadSQL: \"上传原始SQL文件\",\r\n setMainCeb: \"设置一级分类\",\r\n setSubCeb: \"设置二级分类\",\r\n addTag: \"添加Tag\",\r\n fromJSONImput: \"从JSON文件批量导入Tag\",\r\n fromTxtInput: \"从TXT文件批量导入Tag\",\r\n fromYmalInput: \"从YAML文件批量导入Tag\",\r\n selectMainCeb: \"选择一级分类\",\r\n selectSubCeb: \"选择二级分类\",\r\n selectGroup: \"选择已有分类\",\r\n sureSelect: \"确认选择\",\r\n pleaseAddGroupName: \"请填写一级分类名称\",\r\n pleaseAddSubGroupName: \"请填写二级分类名称\",\r\n pleaseFullRequest: \"请填写完整一级分类和二级分类信息\",\r\n successImport: \"导入成功\",\r\n importFail: \"导入失败\",\r\n dumpOnlySQL: \"仅导出Tag的SQL\",\r\n settingOutputName: \"设置导出文件名称\",\r\n sureYes: \"确认\",\r\n cancel: \"取消\",\r\n edit: \"编辑\",\r\n delete: \"删除\",\r\n add: \"添加Tag\",\r\n pleaseMainCebUuid: \"一级分原UUID,增量更新才需要\",\r\n pleaseSubGroupUuid: \"二级分原UUID,增量更新才需要\",\r\n pleaseSubGroup: \"二级分类名称\",\r\n pleaseMainCeb: \"一级分类名称\",\r\n translater: \"描述\",\r\n tips1: \"使用教程:\",\r\n tips1text: \"B站视频教程\",\r\n tips2: \"Tag云仓库:\",\r\n tips2text: \"GitHub仓库\",\r\n tips3: \"在线批量编辑:\",\r\n tips3text: \"在线编辑器\",\r\n selectTitle: \"选择分类\",\r\n selectedCategories: \"已选择的分类\",\r\n clearAll: \"清除全部\",\r\n primaryCategories: \"一级分类\",\r\n subCategories: \"二级分类\",\r\n noSelectedCategories: \"暂无选择的分类\",\r\n selectCategory: \"选择此分类\",\r\n selectSubcategory: \"选择此子分类\",\r\n sureSelect: \"确认选择\",\r\n },\r\n randomUtils: {\r\n title: \"随机Tag规则设置\",\r\n \"generalSettings\": \"通用设置\",\r\n \"totalTags\": \"随机Tag总数量(规则范围超过总数量按总数量算最大范围)\",\r\n \"rules\": \"规则\",\r\n \"addRule\": \"添加规则\",\r\n \"rule\": \"规则\",\r\n \"range\": \"范围\",\r\n \"tagType\": \"标签类型\",\r\n \"category\": \"Tag数据\",\r\n \"specificTags\": \"特定标签\",\r\n \"selectCategory\": \"选择分类\",\r\n \"addTagPlaceholder\": \"输入标签并按回车\",\r\n \"addTag\": \"添加标签\",\r\n \"testRandom\": \"测试随机\",\r\n \"generatedTags\": \"生成的标签\",\r\n selectTagGroup: \"选择Tag分组\",\r\n \"ruleTemplates\": \"规则模板\",\r\n \"saveAsTemplate\": \"保存为模板\",\r\n \"selectTemplate\": \"选择模板\",\r\n \"applyTemplate\": \"应用模板\",\r\n \"templateNamePlaceholder\": \"输入模板名称\",\r\n \"templateNameRequired\": \"请输入模板名称\",\r\n \"templateSaved\": \"模板已保存\",\r\n \"templateApplied\": \"模板已应用\",\r\n \"errorSavingTemplates\": \"保存模板时出错\",\r\n \"save\": \"保存\",\r\n \"cancel\": \"取消\",\r\n \"editTemplate\": \"修改名称\",\r\n \"deleteTemplate\": \"删除模板\",\r\n \"confirmDeleteTemplate\": \"确定要删除此模板吗?\",\r\n \"templateDeleted\": \"模板已删除\",\r\n \"templateUpdated\": \"模板名称已更新\",\r\n errorUpdatingTemplate: \"更新模板失败\",\r\n errorLoadingTemplate: \"加载模板失败\",\r\n errorDeletingTemplate: \"删除模板失败\",\r\n errorApplyingTemplate: \"应用模板失败\",\r\n pleaseChooseTemplate: \"请选择模板\",\r\n errorSavingTemplate: \"保存模板失败\",\r\n newTemplate: \"新建模板\",\r\n rulesReminder: \"提醒:第一个规则的范围必须从1开始!如果范围区间超过了随机的总数则直接显示全部不会随机!\",\r\n },\r\n danbooruManager:{\r\n title: \"Danbooru管理器\",\r\n controle: \"操作\",\r\n translatePlaceholder: \"请输入对应的翻译文本\",\r\n searchPlaceholder: \"输入需要搜索的Danbooru标签...\",\r\n pageShow: \"每页显示:\",\r\n pageLimit: \"条\",\r\n hot: \"热度\",\r\n aliases: \"分区\",\r\n sureBatchDelete: \"批量删除确认\",\r\n sureBatchDeleteTips1: \"您确定要删除选中的\",\r\n sureBatchDeleteTips2: \"个标签吗?此操作不可撤销。\",\r\n sureDelete: \"确认删除\",\r\n import: \"Danbooru格式导入\",\r\n importBatchTitle: \"批量导入Danbooru数据\",\r\n importTitle: \"Danbooru 导入数据展示\",\r\n add: \"添加Danbooru标签\",\r\n edit: \"编辑Danbooru标签\",\r\n }\r\n}","import { version } from \"../../utils/version.js\"\r\nexport default {\r\n promptBox: {\r\n placeholder: 'Please enter text...',\r\n delete: 'Delete',\r\n newline: 'New Line',\r\n tab: 'Tab',\r\n windowTitle: \"WeiLin Prompt UI Window \" + version,\r\n windowTitleGlobal: \"WeiLin Global Prompt UI Window \" + version,\r\n translate: 'Translate',\r\n translatePlaceholder: 'Please enter the text to be translated',\r\n weight: 'Weight',\r\n weightPlaceholder: 'Please enter the weight',\r\n addBracket: 'Add Bracket',\r\n removeLayer: 'Remove Bracket',\r\n\r\n hiddenHint: \"Double-click to show\",\r\n tagTips: \"Double-click the left mouse button to mask the Tag
click the Tag to edit
and drag the Tag to drag\",\r\n oneClickRandomTag: 'one Click Random Tag',\r\n randomTagSettings: 'setting Random Tag',\r\n oneClickTranslate: \"one Click Translate Tag\",\r\n modelWeight: \"Model Weight\",\r\n textWeight: \"Text Weight\",\r\n favour: \"Favour\",\r\n lineToken: \"Line Break\",\r\n addLineToken: \"Add Line Break Token\",\r\n settings: {\r\n title: 'Settings',\r\n cancel: 'Cancel',\r\n save: 'Save',\r\n translator: 'Translator',\r\n sourceLanguage: 'Source Language',\r\n targetLanguage: 'Target Language',\r\n chinese_simplified: 'Chinese Simplified',\r\n english: 'English',\r\n close: 'Close',\r\n auto_detect: 'Auto Detect',\r\n setting_floating_ball: 'Setting Floating Ball',\r\n setting_prompt_box: 'Setting Prompt Box',\r\n enablePromptCommaShow: 'Show Prompt Comma',\r\n floatingBallCount: 'Floating Ball Count',\r\n floatingBallCountPlaceholder: 'Please enter the number of floating balls',\r\n floatingBallSize: 'Width of suspended ball',\r\n floatingBallSizePlaceholder: 'Please enter the width of the suspension ball',\r\n floatingBallHeight: 'Height of suspended ball',\r\n floatingBallHeightPlaceholder: 'Please input the height of the suspension ball',\r\n enableFloatingBall: 'Enable Floating Ball',\r\n enableCommaConversion: 'Enable Comma Conversion',\r\n enablePeriodConversion: 'Enable Period Conversion',\r\n enableBracketConversion: 'Enable Bracket Conversion',\r\n enableAngleBracketConversion: 'Enable Angle Bracket Conversion',\r\n enableUnderscoreToBracket: 'Enable Underscore to Bracket',\r\n setting_openai_box: 'OpenAI Settings',\r\n openai_api_key: 'API Key',\r\n openai_api_key_placeholder: 'Please enter API Key',\r\n openai_api_key_save: 'Save',\r\n openaiSettings: 'OpenAI Settings',\r\n openaiSettings_api_key: 'API Key',\r\n openaiSettings_api_key_placeholder: 'Please enter API Key',\r\n openaiSettings_api_key_save: 'Save',\r\n openai_base_url: 'Base URL',\r\n openai_base_url_placeholder: 'Please enter Base URL',\r\n openai_model: 'Model',\r\n openai_model_placeholder: 'Please enter Model',\r\n not_set: 'Not Set',\r\n edit: 'Edit',\r\n delete: 'Delete',\r\n selectedOpenaiConfig: 'Selected OpenAI Config',\r\n addNewConfig: 'Add New Config',\r\n setting_sponsor_me: 'Sponsor Me',\r\n sponsorMe: 'Sponsor Me',\r\n sponsorMeTip: 'Sponsor Me, Support Me to Continue Development',\r\n sponsorMeLink: 'Unique Sponsor Link https://afdian.com/a/weilin9999',\r\n setting_start_panel: 'Start Panel',\r\n startPanel: 'Start Panel',\r\n startPanelTip: 'Click Start Panel, after successful startup, the panel page will be automatically opened',\r\n selectTranslater: 'select translater',\r\n selectOptionNetworkTranslater: 'Three party online translation',\r\n selectOptionPythonTranslater: 'Translation Library Translation',\r\n apply: 'Apply',\r\n selectOptionNetworkTranslaterTitle: 'Three party network translation settings',\r\n selectOptionPythonTranslaterTitle: 'Translation library settings',\r\n selectOptionNetworkTranslaterInfo: 'The third-party tool used is (only for online translation)',\r\n selectOptionPythonTranslaterInfo: 'The translation package used is translators',\r\n install: 'Install',\r\n nowTranlaterPackageState: 'now transtler package state:',\r\n tranlaterPackageStateTrue: 'installed',\r\n tranlaterPackageStateFlase: 'not installed',\r\n installed: 'is installed ....',\r\n installTranslaterPackageInfo: 'Currently installing translation library, please do not close the window! Wait for installation to complete',\r\n translaterSetting: \"Translation Settings\",\r\n chooseTranslaterSetting: \"Choose a translation service:\",\r\n translaterLangSourceSetting: \"Translation language:\",\r\n translaterLangTargeSetting: \"Translation target language:\",\r\n saveTranslaterSetting: \"Save Settings\",\r\n testTranslaterTitle: \"Test translation\",\r\n inputTestTranslater: \"Enter translation content:\",\r\n outPutTestTranslater: \"Translation result:\",\r\n testingTranslater: \"Test translation\",\r\n inputTestTranslaterPlaceholder: \"Please enter the content to be translated\",\r\n outPutTestTranslaterPlaceholder: \"The translation result will be displayed here\",\r\n errorPrompt: \"Read the prompt node failed\",\r\n skinSetting: 'skin setting',\r\n defaultSkin: 'default skin',\r\n customSkin: 'custom skin',\r\n uploadSkin: 'upload skin',\r\n bgSetting: 'background setting',\r\n gradientBg: 'gradient color',\r\n transparentBg: 'transparent',\r\n gradientColor: 'gradient color select',\r\n borderRadius: 'border radius',\r\n resetToDefault: 'reset to default',\r\n },\r\n },\r\n controls: {\r\n language: 'Language',\r\n settings: 'Settings',\r\n switchTheme: 'Switch Theme',\r\n darkMode: 'Dark Mode',\r\n lightMode: 'Light Mode',\r\n tagManager: 'Tag Manager',\r\n loraStack: 'Lora Stack',\r\n loraManager: 'Lora Manager',\r\n history: 'History',\r\n addLora: 'Add Lora',\r\n removeLora: 'Remove Lora',\r\n lookOnLora: 'Look On Lora',\r\n aiChat: 'AI Chat',\r\n github: \"Github Home\",\r\n shareCloudData: 'Share Cloud Data',\r\n tutorialVideo: \"Tutorial Video\",\r\n sponsor: \"Sponsor Me\",\r\n danbooruManager: \"danbooru Manager\",\r\n },\r\n theme: {\r\n toggle: 'Switch Theme'\r\n },\r\n lora: {\r\n \"title\": \"Lora Information\",\r\n rawTitle: \"LoraRaw\",\r\n \"file\": \"File\",\r\n \"hash\": \"Hash\",\r\n \"civitai\": \"Civitai\",\r\n \"viewOnCivitai\": \"View on Civitai\",\r\n \"fetchFromCivitai\": \"Fetch from Civitai\",\r\n \"modelNotFound\": \"Model not found\",\r\n \"modelNotFoundTip\": \"The model was not found on Civitai. It might be private or deleted\",\r\n \"name\": \"Name\",\r\n \"nameTip\": \"Display name of the model\",\r\n \"type\": \"Type\",\r\n \"baseModel\": \"Base Model\",\r\n \"trainedWords\": \"Trained Words\",\r\n \"trainedWordsTip\": \"Keywords used in model training, click to select for copying\",\r\n \"selectedWords\": \"{count} words selected\",\r\n \"strengthMin\": \"Min Strength\",\r\n \"strengthMinTip\": \"Recommended minimum strength value\",\r\n \"strengthMax\": \"Max Strength\",\r\n \"strengthMaxTip\": \"Recommended maximum strength value\",\r\n \"promptWords\": \"Prompt Words\",\r\n \"promptWordsTip\": \"Recommended prompt words when using this model\",\r\n \"loraWorks\": \"Lora Prompt Words\",\r\n \"strWeight\": \"Text Strength Weight\",\r\n hideLora: \"Disable Lora\",\r\n showLora: \"Enable Lora\",\r\n baseModel: \"Base Model\",\r\n skipClip: \"Clip Skip\",\r\n seeLoraRaw: \"LoraRaw\",\r\n addDiyFiled: \"Add DIY Filed\",\r\n getCivitData: \"Get Civitai Data\",\r\n copy: \"Copy\",\r\n },\r\n common: {\r\n confirmDelete: \"Confirm Delete\",\r\n delete: \"Delete\",\r\n cancel: \"Cancel\",\r\n confirm: \"Confirm\",\r\n edit: \"Edit\",\r\n save: \"Save\",\r\n \"refresh\": \"Refresh\",\r\n \"copy\": \"Copy\",\r\n \"copySuccess\": \"Copied successfully\",\r\n \"copyFailed\": \"Copy failed\",\r\n \"windowSize\": \"Adjust window size\",\r\n \"showMore\": \"show more\",\r\n \"showLess\": \"show less\",\r\n },\r\n nodeListWindow: {\r\n \"windowTitle\": \"Node List\",\r\n \"openPromptUI\": \"Open Prompt UI\",\r\n },\r\n tagManager: {\r\n \"deletePrimaryCategoryConfirm\": \"Are you sure you want to delete category {name}?\",\r\n \"deleteGroupConfirm\": \"Are you sure you want to delete group {name}?\",\r\n \"deleteTagConfirm\": \"Are you sure you want to delete tag {name}?\",\r\n \"windowTitle\": \"Tag Manager\",\r\n \"categories\": \"Categories\",\r\n \"groups\": \"Groups\",\r\n \"selectCategory\": \"Please select a category\",\r\n \"selectGroup\": \"Please select a group\",\r\n \"addPrimaryCategory\": \"Add Category\",\r\n \"addGroup\": \"Add Group\",\r\n \"editPrimaryCategory\": \"Edit Category\",\r\n \"editGroup\": \"Edit Group\",\r\n \"editTag\": \"Edit Tag\",\r\n \"categoryName\": \"Category Name\",\r\n \"categoryNamePlaceholder\": \"Enter category name\",\r\n \"categoryNameRequired\": \"Category name is required\",\r\n \"groupName\": \"Group Name\",\r\n \"groupNamePlaceholder\": \"Enter group name\",\r\n \"groupNameRequired\": \"Group name is required\",\r\n \"addTag\": \"Add Tag\",\r\n \"text\": \"Tag Description\",\r\n \"textPlaceholder\": \"Enter tag Description\",\r\n \"description\": \"Tag\",\r\n \"descriptionPlaceholder\": \"Enter tag\",\r\n \"textRequired\": \"Tag and Tag description cannot be empty\",\r\n \"favourRequired\": \"Tag and Tag description cannot be empty, and a group must be selected\",\r\n \"backgroundColor\": \"Background Color\",\r\n \"colorPickerTitle\": \"Select Color\",\r\n \"opacity\": \"Opacity\",\r\n \"searchPlaceholder\": \"Search tags...\",\r\n \"noResults\": \"No results found\",\r\n \"searchInCategory\": \"in category\",\r\n \"searchInTag\": \"in tag\",\r\n \"save\": \"Save\",\r\n \"cancel\": \"Cancel\",\r\n \"confirm\": \"Confirm\",\r\n \"delete\": \"Delete\",\r\n \"addSubCategory\": \"Add Sub-category\",\r\n \"editSubCategory\": \"Edit Sub-category\",\r\n \"subCategoryName\": \"Sub-category Name\",\r\n \"subCategoryNamePlaceholder\": \"Enter sub-category name\",\r\n \"subCategoryNameRequired\": \"Sub-category name is required\",\r\n \"deleteConfirmTitle\": \"Confirm Delete\",\r\n \"deleteConfirmMessage\": \"This action will permanently delete this {type}. Continue?\",\r\n \"deleteSuccess\": \"Deleted successfully\",\r\n \"deleteFailed\": \"Delete failed\",\r\n \"saveSuccess\": \"Saved successfully\",\r\n \"saveFailed\": \"Save failed\",\r\n \"colorPickerAlpha\": \"Opacity\",\r\n \"colorPickerHex\": \"Hex Color Value\",\r\n \"colorPreview\": \"Color Preview\",\r\n \"dragToSort\": \"Drag to Sort\",\r\n \"searchTags\": \"Search Tags\",\r\n \"noTagsFound\": \"No tags found\",\r\n \"noGroupsFound\": \"No groups found\",\r\n \"noCategoriesFound\": \"No categories found\",\r\n \"refresh\": \"Refresh\",\r\n \"refreshing\": \"Refreshing...\",\r\n \"refreshSuccess\": \"Refresh successful\",\r\n \"refreshFailed\": \"Refresh failed\",\r\n \"search\": \"Search\",\r\n \"searching\": \"Searching...\",\r\n \"searchResult\": \"Search Result\",\r\n \"searchInPath\": \"Located in: {path}\",\r\n \"category\": \"Category\",\r\n \"group\": \"Group\",\r\n \"tag\": \"Tag\",\r\n \"resultType\": {\r\n \"category\": \"Category\",\r\n \"group\": \"Group\",\r\n \"tag\": \"Tag\"\r\n },\r\n \"hasDeleteAction\": \"Batch Delete\",\r\n \"deleteSelected\": \"Delete Selected\",\r\n \"confirmDeleteSelected\": \"Are you sure you want to delete the selected tags?\",\r\n \"cancelDelete\": \"Cancel Delete\",\r\n \"moveTag\": \"Move Tag\",\r\n \"targetTag\": \"Target Tag\",\r\n \"movePosition\": \"Move Position\",\r\n \"moveBefore\": \"Move Before\",\r\n \"moveAfter\": \"Move After\",\r\n \"editTag\": \"Edit Tag\",\r\n \"deleteTag\": \"Delete Tag\",\r\n \"editGroupMode\": \"Edit Group Mode\",\r\n \"exitEditMode\": \"Exit Edit Mode\",\r\n \"autoAddSearchTag\": \"Auto Add Search Tag With Prompt\",\r\n \"importTags\": \"Import Tags\",\r\n share: \"Share\",\r\n delete: \"Delete\",\r\n edit: \"Edit\",\r\n outputSuccess: \"Share successfully\",\r\n noTagsSelected: \"No share tags selected\",\r\n shareSelected: \"Share selected Tag\",\r\n batchShare: \"Batch Share Tag\",\r\n cancelShare: \"Cancel Share\",\r\n moveGroup: \"Move Group\",\r\n \"targetGroup\": \"Target Group\",\r\n \"moveGroupBefore\": \"Move Before\",\r\n \"moveGroupAfter\": \"Move After\",\r\n importDanbooru: \"Batch import\",\r\n // Tag size related\r\n modifyTabSize: 'Modify Tag Size',\r\n tabSizeConfig: 'Tag Size Configuration',\r\n primaryTabConfig: 'Primary Category Tab Configuration',\r\n groupTabConfig: 'Group Category Tab Configuration',\r\n tabWidth: 'Tab Width',\r\n tabHeight: 'Tab Height',\r\n fontSize: 'Font Size',\r\n fitContent: 'Fit Content',\r\n customWidth: 'Custom Width',\r\n resetDefault: 'Reset to Default',\r\n tabSizeConfigSaved: 'Tag size configuration saved',\r\n tabSizeConfigSaveFailed: 'Failed to save tag size configuration',\r\n \r\n },\r\n loraManager: {\r\n windowTitle: \"Lora Manager\",\r\n modelWeight: \"Model Weight\",\r\n textEncoderWeight: \"Text Encoder Weight\",\r\n all: \"All\",\r\n root: \"Root\",\r\n refresh: \"Refresh\",\r\n cacheAll: \"Cache all Lora information\",\r\n searchPlaceholder: \"Search Lora...\",\r\n noResults: \"No results found\",\r\n prevPage: \"prev page\",\r\n nextPage: \"next page\",\r\n loadingMore: \"Loadding more ...\",\r\n noMoreData: \"No more data\",\r\n },\r\n \"message\": {\r\n \"copySuccess\": \"Copy successful\",\r\n \"copyFailed\": \"Copy failed\",\r\n \"saveSuccess\": \"Save successful\",\r\n \"saveFailed\": \"Save failed\",\r\n \"deleteSuccess\": \"Delete successful\",\r\n \"deleteFailed\": \"Delete failed\",\r\n \"operationSuccess\": \"Operation successful\",\r\n \"operationFailed\": \"Operation failed\",\r\n \"networkError\": \"Network error\",\r\n \"unknownError\": \"Unknown error\",\r\n \"refreshSuccess\": \"Refresh successful\",\r\n \"refreshFailed\": \"Refresh failed\",\r\n \"loadingData\": \"Loading data...\",\r\n \"dataLoaded\": \"Data loaded\",\r\n \"editSuccess\": \"Edit successful\",\r\n \"editFailed\": \"Edit failed\",\r\n \"addSuccess\": \"Add successful\",\r\n \"addFailed\": \"Add failed\",\r\n \"addFavoriteSuccess\": \"Added to favorites\",\r\n \"addFavoriteIsExist\": \"Added to favorites\",\r\n \"error\": \"Error\",\r\n \"moveSuccess\": \"Move successful\",\r\n \"moveFailed\": \"Move failed\",\r\n \"setLanguageSuccess\": \"Set language successful\",\r\n \"setLanguageFailed\": \"Set language failed\",\r\n \"startPanelSuccess\": \"Start panel successful\",\r\n \"startPanelFailed\": \"Start panel failed\",\r\n \"isLoading\": \"Loading...\",\r\n \"loaddingPrc\": \"Execution progress {name}%\",\r\n \"loaddingSuccess\": \"All loaded successfully\",\r\n \"noFinishKuo\": \"The parentheses are incomplete. Please check the input\",\r\n \"getTranslaterFail\": \"Get translator failed\",\r\n \"applyTranslaterFail\": \"Apply translator failed\",\r\n \"applyToTranslaterFail\": \"Switching to a translation library requires installing a translation library. Please install the translation library first and then apply the settings\",\r\n \"applyTranslaterSuccess\": \"Apply translator successful\",\r\n tranlaterPackageInstallFail: 'Waiting for installation timeout, please check the background installation status. If the installation is successful, click install again to verify',\r\n tranlaterPackageInstallSuccess: 'Successfully installed translation package',\r\n translaterTestFail: \"Translation failed, please try using another translation service\",\r\n \"installPackageSuccess\": \"Successfully installed translation package\",\r\n \"installPackageFail\": \"Failed to install translation package, please check the background installation status\",\r\n loadFailed: \"load failed\",\r\n jsonErrorMesg: \"The format of the JSON file is incorrect\",\r\n pleaseAddSub: \"Please add the secondary classification first\",\r\n pleaseAddMainCeb: \"Please add the first-level category first\",\r\n pleaseSelectGroup: \"Please select the complete grouping path\",\r\n isLoadingPleaseWait: \"It is being executed. Please check the progress in the background\",\r\n shareGroupError: \"Failed to share and failed to obtain group information\",\r\n shareTagError: \"Failed to share and failed to obtain group tag information\",\r\n },\r\n cloudWindow: {\r\n \"windowTitle\": \"Share Cloud Window\",\r\n back: 'Back',\r\n currentPath: 'Current Path',\r\n tagDatabase: 'Tag Database',\r\n danbooruDatabase: 'Danbooru Database',\r\n open: \"Open Folder\",\r\n installed: 'Installed',\r\n install: 'Install',\r\n installing: 'Installing...'\r\n },\r\n history: {\r\n \"title\": \"History\",\r\n \"search_placeholder\": \"Search history...\",\r\n \"windowTitle\": \"History\",\r\n \"search\": \"Search\",\r\n \"favorites\": \"Favorites\",\r\n \"history\": \"History\",\r\n \"refresh\": \"Refresh\",\r\n \"refresh_history\": \"Refresh history\",\r\n \"refresh_favorites\": \"Refresh favorites\",\r\n \"add_to_favorites\": \"Add to favorites\",\r\n \"delete_history\": \"Delete history\",\r\n \"use_item\": \"Use\",\r\n \"add_new\": \"Add new\",\r\n \"bulk_delete\": \"Bulk delete\",\r\n \"deleteHistoryConfirm\": \"Are you sure you want to delete history {name}?\",\r\n \"deleteFavoriteConfirm\": \"Are you sure you want to delete favorite {name}?\",\r\n \"confirmDeleteSelected\": \"Are you sure you want to delete selected information?\",\r\n \"cancel_delete\": \"Cancel delete\",\r\n \"sure_delete\": \"Sure delete\",\r\n \"deleteSelected\": \"Delete selected\",\r\n \"dialog\": {\r\n \"add_tag\": \"Add favorite\",\r\n \"edit_tag\": \"Edit favorite\",\r\n \"name\": \"Name\",\r\n \"name_placeholder\": \"Please enter name\",\r\n \"tag\": \"Tag\",\r\n \"tag_placeholder\": \"Please enter tag\",\r\n \"background_color\": \"Background color\",\r\n \"background_color_placeholder\": \"Please select background color\",\r\n \"edit_favorite\": \"Edit favorite\",\r\n \"delete_favorite\": \"Delete favorite\",\r\n },\r\n \"edit_favorite\": \"Edit favorite\",\r\n \"delete_favorite\": \"Delete favorite\",\r\n \"use_favorite\": \"Use favorite\"\r\n },\r\n floatingBall: {\r\n \"promptBox\": \"open Global Prompt Box\",\r\n \"tagManager\": \"open Tag Manager\",\r\n \"loraManager\": \"open Lora Manager\",\r\n \"aiWindow\": \"open AI Chat\",\r\n \"restoreWindow\": \"reset all windows\",\r\n \"openNodeListWindow\": \"open Node List\",\r\n tranToWeb: \"Image to Web Utils\",\r\n openSetting: \"open Setting\",\r\n },\r\n aiWindow: {\r\n \"windowTitle\": \"AI Chat Window\",\r\n \"newChat\": \"New Chat\",\r\n \"chatName\": \"Chat\",\r\n \"thinking\": \"Thinking...\",\r\n \"send\": \"Send\",\r\n \"inputMessage\": \"Enter your message...\"\r\n },\r\n translaterService: {\r\n \"niutrans\": \"niutrans\",\r\n \"mymemory\": \"mymemory\",\r\n \"alibaba\": \"alibaba\",\r\n \"baidu\": \"baidu\",\r\n \"modernmt\": \"modernmt\",\r\n \"volcengine\": \"volcengine\",\r\n \"iciba\": \"iciba\",\r\n \"iflytek\": \"iflytek\",\r\n \"google\": \"google\",\r\n \"bing\": \"bing\",\r\n \"lingvanex\": \"lingvanex\",\r\n \"yandex\": \"yandex\",\r\n \"itranslate\": \"itranslate\",\r\n \"systran\": \"systran\",\r\n \"argos\": \"argos\",\r\n \"apertium\": \"apertium\",\r\n \"reverso\": \"reverso\",\r\n \"deepl\": \"deepl\",\r\n \"cloudtranslation\": \"cloudtranslation\",\r\n \"qqtransmart\": \"qqtransmart\",\r\n \"translatecom\": \"translatecom\",\r\n \"sogou\": \"sogou\",\r\n \"tilde\": \"tilde\",\r\n \"caiyun\": \"caiyun\",\r\n \"qqfanyi\": \"qqfanyi\",\r\n \"translateme\": \"translateme\",\r\n \"papago\": \"papago\",\r\n \"mirai\": \"mirai\",\r\n \"youdao\": \"youdao\",\r\n \"iflyrec\": \"iflyrec\",\r\n \"hujiang\": \"hujiang\",\r\n \"yeekit\": \"yeekit\",\r\n \"languagewire\": \"languagewire\",\r\n \"elia\": \"elia\",\r\n \"judic\": \"judic\",\r\n \"mglip\": \"mglip\",\r\n \"utibet\": \"utibet\"\r\n },\r\n translaterLanguage: {\r\n \"english\": \"english\",\r\n \"chinese\": \"chinese\",\r\n \"arabic\": \"arabic\",\r\n \"russian\": \"russian\",\r\n \"french\": \"french\",\r\n \"german\": \"german\",\r\n \"spanish\": \"spanish\",\r\n \"portuguese\": \"portuguese\",\r\n \"italian\": \"italian\",\r\n \"japanese\": \"japanese\",\r\n \"korean\": \"korean\",\r\n \"greek\": \"greek\",\r\n \"dutch\": \"dutch\",\r\n \"hindi\": \"hindi\",\r\n \"turkish\": \"turkish\",\r\n \"malay\": \"malay\",\r\n \"thai\": \"thai\",\r\n \"vietnamese\": \"vietnamese\",\r\n \"indonesian\": \"indonesian\",\r\n \"hebrew\": \"hebrew\",\r\n \"polish\": \"polish\",\r\n \"mongolian\": \"mongolian\",\r\n \"czech\": \"czech\",\r\n \"hungarian\": \"hungarian\",\r\n \"estonian\": \"estonian\",\r\n \"bulgarian\": \"bulgarian\",\r\n \"danish\": \"danish\",\r\n \"finnish\": \"finnish\",\r\n \"romanian\": \"romanian\",\r\n \"swedish\": \"swedish\",\r\n \"slovenian\": \"slovenian\",\r\n \"persian/farsi\": \"persian/farsi\",\r\n \"bosnian\": \"bosnian\",\r\n \"serbian\": \"serbian\",\r\n \"fijian\": \"fijian\",\r\n \"filipino\": \"filipino\",\r\n \"haitiancreole\": \"haitiancreole\",\r\n \"catalan\": \"catalan\",\r\n \"croatian\": \"croatian\",\r\n \"latvian\": \"latvian\",\r\n \"lithuanian\": \"lithuanian\",\r\n \"urdu\": \"urdu\",\r\n \"ukrainian\": \"ukrainian\",\r\n \"welsh\": \"welsh\",\r\n \"tahiti\": \"tahiti\",\r\n \"tongan\": \"tongan\",\r\n \"swahili\": \"swahili\",\r\n \"samoan\": \"samoan\",\r\n \"slovak\": \"slovak\",\r\n \"afrikaans\": \"afrikaans\",\r\n \"norwegian\": \"norwegian\",\r\n \"bengali\": \"bengali\",\r\n \"malagasy\": \"malagasy\",\r\n \"maltese\": \"maltese\",\r\n \"queretaro otomi\": \"queretaro otomi\",\r\n \"klingon/tlhingan hol\": \"klingon/tlhingan hol\",\r\n \"gujarati\": \"gujarati\",\r\n \"tamil\": \"tamil\",\r\n \"telugu\": \"telugu\",\r\n \"punjabi\": \"punjabi\",\r\n \"amharic\": \"amharic\",\r\n \"azerbaijani\": \"azerbaijani\",\r\n \"bashkir\": \"bashkir\",\r\n \"belarusian\": \"belarusian\",\r\n \"cebuano\": \"cebuano\",\r\n \"chuvash\": \"chuvash\",\r\n \"esperanto\": \"esperanto\",\r\n \"basque\": \"basque\",\r\n \"irish\": \"irish\"\r\n },\r\n utils: {\r\n tranToWeb: 'Image to HTML',\r\n dropOrPasteImage: 'Drop or paste image here',\r\n downloadHtml: 'Download HTML',\r\n copyHtml: 'Copy HTML',\r\n copySuccess: 'HTML copied to clipboard',\r\n copyFailed: 'Failed to copy HTML',\r\n clear: 'Clear'\r\n },\r\n importDialog: {\r\n title: 'Batch import of Tags',\r\n sure: \"Confirm and import\",\r\n cleanAll: \"Empty all\",\r\n dumpSQL: \"Export All SQL\",\r\n uploadSQL: \"Upload the original SQL file\",\r\n setMainCeb: \"Set up a first-level classification\",\r\n setSubCeb: \"Set up secondary classification\",\r\n addTag: \"Add Tag\",\r\n fromJSONImput: \"Import tags from the JSON file\",\r\n fromTxtInput: \"Batch import tags from TXT files\",\r\n fromYmalInput: \"Batch import tags from YMAL files\",\r\n selectMainCeb: \"Select the first-level classification\",\r\n selectSubCeb: \"Select the secondary classification\",\r\n selectGroup: \"Select the existing classification\",\r\n sureSelect: \"Confirm the selection\",\r\n pleaseAddGroupName: \"Please fill in the name of the first-level classification\",\r\n pleaseAddSubGroupName: \"Please fill in the name of the secondary classification\",\r\n pleaseFullRequest: \"Please fill in the information of the first-level and second-level classifications completely\",\r\n successImport: \"Import successful\",\r\n importFail: \"Import failed\",\r\n dumpOnlySQL: \"Only export the SQL of the Tag\",\r\n settingOutputName: \"Set the name of the export file\",\r\n sureYes: \"Sure\",\r\n cancel: \"Cancel\",\r\n edit: \"Edit\",\r\n delete: \"Delete\",\r\n add: \"Add Tag\",\r\n pleaseMainCebUuid: \"The original UUID of the first-level division is only required for incremental updates and cannot be modified\",\r\n pleaseSubGroupUuid: \"The secondary division of the original UUID is only required for incremental updates and cannot be modified\",\r\n pleaseSubGroup: \"Secondary classification name\",\r\n pleaseMainCeb: \"First-level classification name\",\r\n translater: \"Description\",\r\n tips1: \"Usage Tutorial:\",\r\n tips1text: \"Bilibili video tutorial\",\r\n tips2: \"Tag Cloud Warehouse:\",\r\n tips2text: \"GitHub repository\",\r\n tips3: \"Online batch editing:\",\r\n tips3text: \"Online editor\",\r\n selectTitle: \"Select Category\",\r\n selectedCategories: \"Selected Categories\",\r\n clearAll: \"Clear All\",\r\n primaryCategories: \"Primary Categories\",\r\n subCategories: \"Sub Categories\",\r\n noSelectedCategories: \"No categories selected\",\r\n selectCategory: \"Select this category\",\r\n selectSubcategory: \"Select this subcategory\",\r\n sureSelect: \"Confirm Selection\",\r\n },\r\n randomUtils: {\r\n title: \"Random Tag Rules Settings\",\r\n generalSettings: \"General Settings\",\r\n totalTags: \"Random Tag Total Number (If the rule range exceeds the total quantity, the maximum range is calculated by the total quantity)\",\r\n rules: \"Rules\",\r\n addRule: \"Add Rule\",\r\n rule: \"Rule\",\r\n range: \"Range\",\r\n tagType: \"Tag Type\",\r\n category: \"Tag Category\",\r\n specificTags: \"Specific Tags\",\r\n selectCategory: \"Select Category\",\r\n addTagPlaceholder: \"Enter tag and press Enter\",\r\n addTag: \"Add Tag\",\r\n testRandom: \"Test Random\",\r\n generatedTags: \"Generated Tags\",\r\n selectTagGroup: \"Select Tag Group\",\r\n \"ruleTemplates\": \"Rule Templates\",\r\n \"saveAsTemplate\": \"Save as Template\",\r\n \"selectTemplate\": \"Select Template\",\r\n \"applyTemplate\": \"Apply Template\",\r\n \"templateNamePlaceholder\": \"Enter template name\",\r\n \"templateNameRequired\": \"Template name is required\",\r\n \"templateSaved\": \"Template saved\",\r\n \"templateApplied\": \"Template applied\",\r\n \"errorSavingTemplates\": \"Error saving templates\",\r\n \"save\": \"Save\",\r\n \"cancel\": \"Cancel\",\r\n \"editTemplate\": \"Edit Name\",\r\n \"deleteTemplate\": \"Delete\",\r\n \"confirmDeleteTemplate\": \"Are you sure you want to delete this template?\",\r\n \"templateDeleted\": \"Template deleted\",\r\n \"templateUpdated\": \"Template name updated\",\r\n errorUpdatingTemplate: \"Update template failed\",\r\n errorLoadingTemplate: \"Load template failed\",\r\n errorDeletingTemplate: \"Delete template failed\",\r\n pleaseChooseTemplate: \"Please choose a template\",\r\n errorApplyingTemplate: \"Apply template failed\",\r\n errorSavingTemplate: \"Save template failed\",\r\n newTemplate: \"New Template\",\r\n rulesReminder: \"Reminder: The range of the first rule must start at 1! If the range exceeds the total number of random, it will simply display all not random!\"\r\n },\r\n danbooruManager:{\r\n title: \"Danbooru Manager\",\r\n controle: 'Controle',\r\n translatePlaceholder: \"Please enter the tag to be translated\",\r\n searchPlaceholder: \"Input need search danbooru tag\",\r\n pageShow: \"Display per page:\",\r\n pageLimit: \"article\",\r\n hot: \"hot\",\r\n aliases: \"aliases\",\r\n sureBatchDelete: \"Batch deletion confirmation\",\r\n sureBatchDeleteTips1: \"You are sure you want to delete the selected one\",\r\n sureBatchDeleteTips2: \"A label? This operation is irrevocable.\",\r\n sureDelete: \"Confirm deletion\",\r\n import: \"Import in Danbooru format\",\r\n importBatchTitle: \"Batch import Danbooru data\",\r\n importTitle: \"Danbooru Import data display\",\r\n add: \"Add Danbooru Tag\",\r\n edit: \"Edit Danbooru Tag\",\r\n }\r\n}","/*!\n * pinia v3.0.1\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isRef, isReactive, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, nextTick, computed, toRefs } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n // Expose pinia instance as $pinia to window\n globalThis.$pinia = pinia;\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n // Expose selected store as $store to window\n if (payload.nodeId !== PINIA_ROOT_ID)\n globalThis.$store = toRaw(inspectedStore);\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n // Do not overwrite actions mocked by @pinia/testing (#2298)\n if (!store._p._testing) {\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n },\n use(plugin) {\n if (!this._a) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n/**\n * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly\n * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.\n * Once disposed, the pinia instance cannot be used anymore.\n *\n * @param pinia - pinia instance\n */\nfunction disposePinia(pinia) {\n pinia._e.stop();\n pinia._s.clear();\n pinia._p.splice(0);\n pinia.state.value = {};\n // @ts-expect-error: non valid\n pinia._a = null;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n newState[key] = subPatch;\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\n/**\n * Marks a function as an action for `$onAction`\n * @internal\n */\nconst ACTION_MARKER = Symbol();\n/**\n * Action name symbol. Allows to add a name to an action after defining it\n * @internal\n */\nconst ACTION_NAME = Symbol();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n else if (target instanceof Set && patchToApply instanceof Set) {\n // Handle Set instances\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[id] = state ? state() : {};\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = { deep: true };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = [];\n let actionSubscriptions = [];\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[$id] = {};\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Helper that wraps function so it can be tracked with $onAction\n * @param fn - action to wrap\n * @param name - name of the action\n */\n const action = (fn, name = '') => {\n if (ACTION_MARKER in fn) {\n fn[ACTION_NAME] = name;\n return fn;\n }\n const wrappedAction = function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name: wrappedAction[ACTION_NAME],\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = fn.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n wrappedAction[ACTION_MARKER] = true;\n wrappedAction[ACTION_NAME] = name; // will be set later\n // @ts-expect-error: we are intentionally limiting the returned type to just Fn\n // because all the added properties are internals that are exposed through `$onAction()` only\n return wrappedAction;\n };\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n const store = reactive((process.env.NODE_ENV !== 'production') || ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT)\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(() => setup({ action }))));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n hotState.value[key] = toRef(setupStore, key);\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n pinia.state.value[$id][key] = prop;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : action(prop, key);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n // @ts-expect-error\n setupStore[key] = actionValue;\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n // @ts-expect-error: any type\n store[stateKey] = toRef(newStore.$state, stateKey);\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[stateKey];\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const actionFn = newStore[actionName];\n // @ts-expect-error: actionName is a string\n store[actionName] =\n //\n action(actionFn, actionName);\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n // @ts-expect-error: getterName is a string\n store[getterName] =\n //\n getterValue;\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const extensions = scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\n// allows unused stores to be tree shaken\n/*! #__NO_SIDE_EFFECTS__ */\nfunction defineStore(\n// TODO: add proper types from above\nid, setup, setupOptions) {\n let options;\n const isSetupStore = typeof setup === 'function';\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : // @ts-expect-error: FIXME: should work?\n store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n const rawStore = toRaw(store);\n const refs = {};\n for (const key in rawStore) {\n const value = rawStore[key];\n // There is no native method to check for a computed\n // https://github.com/vuejs/core/pull/4165\n if (value.effect) {\n // @ts-expect-error: too hard to type correctly\n refs[key] =\n // ...\n computed({\n get: () => store[key],\n set(value) {\n store[key] = value;\n },\n });\n }\n else if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n}\n\nexport { MutationType, acceptHMRUpdate, createPinia, defineStore, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs };\n","// src/stores/tagStore.js\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\n\nexport const useTagStore = defineStore('tag', () => {\n // 定义 categories 变量\n const categories = ref([]);\n const userSetting = ref({user_lang: 'zh_CN'})\n const isFirstLoading = ref(0)\n\n // 更新 categories 的方法\n const setCategories = (newCategories) => {\n categories.value = newCategories;\n };\n\n // 更新 categories 的方法\n const setisFirstLoading = (newData) => {\n isFirstLoading.value = newData;\n };\n\n const setUserSetting = (newUserSetting) => {\n userSetting.value = newUserSetting;\n };\n\n return {\n categories,\n setCategories,\n userSetting,\n setUserSetting,\n isFirstLoading,\n setisFirstLoading,\n };\n});","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.8.3\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","import axios from 'axios'\n\nexport const baseUrl = '/weilin/prompt_ui/api'\n\n// 创建 axios 实例\nconst request = axios.create({\n baseURL: baseUrl, // 基础URL,根据实际情况修改\n timeout: 30000, // 请求超时时间\n headers: {\n 'Content-Type': 'application/json'\n }\n})\n\n// 请求拦截器\nrequest.interceptors.request.use(\n config => {\n // 在这里可以添加token等认证信息\n return config\n },\n error => {\n return Promise.reject(error)\n }\n)\n\n// 响应拦截器\nrequest.interceptors.response.use(\n response => {\n return response.data\n },\n error => {\n return Promise.reject(error)\n }\n)\n\nexport default request ","import request from './request'\n// 语言相关接口\nexport const languageApi = {\n // 获取用户设置\n getUserSetting: async () => {\n return await request({\n url: '/user_init/get_settings',\n method: 'get',\n })\n },\n\n // 设置用户语言\n setUserLanguage: async (data) => {\n return await request({\n url: '/user_init/set_user_lang',\n method: 'post',\n data: {user_lang: data}\n })\n },\n\n // 启动面板\n startPanel: async () => {\n return await request({\n url: '/panel/start',\n method: 'post'\n })\n }\n}","import { createI18n } from 'vue-i18n'\r\nimport zh_CN from './locales/zh_CN'\r\nimport en_US from './locales/en_US'\r\nimport { useTagStore } from '@/stores/tagStore'\r\nimport { languageApi } from '@/api/language'\r\n\r\n// 延迟获取 pinia 实例\r\nconst getTagStore = () => {\r\n return useTagStore()\r\n}\r\n\r\n// 创建 i18n 实例\r\nconst i18n = createI18n({\r\n legacy: false,\r\n locale: 'zh_CN', // 默认语言\r\n fallbackLocale: 'zh_CN',\r\n messages: {\r\n zh_CN,\r\n en_US\r\n }\r\n})\r\n\r\n// 延迟初始化语言设置\r\nconst initLocale = () => {\r\n const tagStore = getTagStore()\r\n languageApi.getUserSetting().then(res => {\r\n tagStore.setUserSetting(res.data)\r\n const savedLocale = tagStore.userSetting?.user_lang || 'zh_CN'\r\n i18n.global.locale.value = savedLocale\r\n })\r\n}\r\n\r\n// 导出设置语言的方法\r\nexport const setLocale = (locale) => {\r\n i18n.global.locale.value = locale\r\n const tagStore = getTagStore()\r\n tagStore.setUserSetting({ user_lang: locale })\r\n}\r\n\r\n// 导出初始化方法\r\nexport const initI18n = () => {\r\n initLocale()\r\n}\r\n\r\nexport default i18n","\n\n\n\n","// 引入创建虚拟节点和渲染方法\nimport { createVNode, render } from \"vue\";\nimport tip from \"./message.vue\";\nimport i18n from '@/i18n'\n\n// 定义一个div容器\nconst div = document.createElement(\"div\");\n// 将定义的容器添加到dom上\ndocument.body.appendChild(div);\n// 定义定时器:一定时间后清除\nlet timer = null;\n\nconst message = ({ str, type, name = \"\" }) => {\n // 调用创建虚拟节点方法\n // 第一个参数为要创建的虚拟节点即编写好的vue组件\n // 第二个参数为props的参数\n\n let translatedMessage = i18n.global.t(str)\n if (name.length > 0) {\n translatedMessage = i18n.global.t(str, { name })\n }\n const vnode = createVNode(tip, { str: translatedMessage, type });\n // 调用渲染方法:将虚拟节点渲染到dom中\n render(vnode, div);\n // 开启定时器,若原先存在则先进行清除\n timer&&clearTimeout(timer);\n timer = setTimeout(() => {\n render(null, div);\n }, 2000);\n};\n\nexport default message","\n\n\n\n","\r\n\r\n\r\n\r\n","import request from './request'\n// 翻译相关接口\nexport const translatorApi = {\n // 离线翻译\n getTranslateLocal: async (text) => {\n return await request({\n url: '/prompt/local/translate',\n method: 'post',\n data: { phrase: text }\n })\n },\n // 获取翻译包信息\n getTranslatePackagesState: async () => {\n return await request({\n url: '/translate/get/packages/state',\n method: 'post',\n data: { }\n })\n },\n // 获取翻译设置\n getTranslateSetting: async () => {\n return await request({\n url: '/translate/get/setting',\n method: 'post',\n data: { }\n })\n },\n // 应用翻译设置\n applyTranslateSetting: async (ss) => {\n return await request({\n url: '/translate/apply_setting',\n method: 'post',\n data: { setting: ss }\n })\n },\n // 安装翻译包\n installTranslatePackage: async () => {\n return await request({\n url: '/translate/install/translaterpackage',\n method: 'post',\n timeout: 0,\n data: { }\n })\n },\n // 获取翻译库设置\n getTranslateBuktSetting: async () => {\n return await request({\n url: '/translate/get/tran_setting',\n method: 'post',\n data: { }\n })\n },\n // 应用翻译库设置\n saveTranslateSetting: async (a,b,c) => {\n return await request({\n url: '/translate/save_tran/setting',\n method: 'post',\n data: { service: a,source_lang:b,target_lang:c }\n })\n },\n // 翻译文本\n translaterText: async (str_object, text) => {\n return await request({\n url: '/translate/tran/text',\n method: 'post',\n timeout: 0,\n data: { str_object, text }\n })\n },\n // 翻译输入的文本\n translaterInputText: async (str_object, text) => {\n return await request({\n url: '/translate/tran/input',\n method: 'post',\n timeout: 0,\n data: { str_object, text }\n })\n },\n}","import request from './request'\n// 自动补全相关接口\nexport const autocompleteApi = {\n // 自动补全获取\n getAutocomplete: async (text) => {\n return await request({\n url: '/prompt/fast/autocomplete',\n method: 'post',\n data: { query: text }\n })\n },\n\n getAutocompleteLimit: async () => {\n return await request({\n url: '/get/setting/get_auto_limit_setting',\n method: 'post'\n })\n },\n\n updateAutocompleteLimit: async (limit) => {\n return await request({\n url: '/update/setting/update_auto_limit_setting',\n method: 'post',\n data: {\n limit: limit\n }\n })\n },\n}","import request from './request'\n// OpenAI 相关接口\nexport const openaiApi = {\n // 更新设置\n updateOpenAiSetting: async (data) => {\n return await request({\n url: '/prompt/openai/update_settings',\n method: 'post',\n data\n })\n },\n\n // 添加设置\n addOpenAiSetting: async (data) => {\n return await request({\n url: '/prompt/openai/add_setting',\n method: 'post',\n data\n })\n },\n\n // 删除设置\n deleteOpenAiSetting: async (data) => {\n return await request({\n url: '/prompt/openai/delete_setting',\n method: 'post',\n data\n })\n },\n\n // 设置选中\n setOpenAiSelect: async (data) => {\n return await request({\n url: '/prompt/openai/set_select',\n method: 'post',\n data\n })\n },\n\n getOpenAiSetting: async () => {\n return await request({\n url: '/prompt/openai/get_settings',\n method: 'get'\n })\n }\n\n}","// 翻译服务列表\nexport const translaterSerives = \n[\n \"alibaba\",\n \"baidu\",\n \"bing\",\n \"deepl\",\n \"youdao\",\n \"qqtransmart\",\n \"sogou\",\n \"niutrans\",\n \"mymemory\",\n \"modernmt\",\n \"volcengine\",\n \"iciba\",\n \"iflytek\",\n \"google\",\n \"lingvanex\",\n \"yandex\",\n \"itranslate\",\n \"systran\",\n \"argos\",\n \"apertium\",\n \"reverso\",\n \"cloudtranslation\",\n \"translatecom\",\n \"tilde\",\n \"caiyun\",\n \"qqfanyi\",\n \"translateme\",\n \"papago\",\n \"mirai\",\n \"iflyrec\",\n \"hujiang\",\n \"yeekit\",\n \"languagewire\",\n \"elia\",\n \"judic\",\n \"mglip\",\n \"utibet\"\n]\n\nexport const language = \n[\n {\"language\": \"chinese\", \"translator\": \"zh\"},\n {\"language\": \"english\", \"translator\": \"en\"},\n {\"language\": \"arabic\", \"translator\": \"ar\"},\n {\"language\": \"russian\", \"translator\": \"ru\"},\n {\"language\": \"french\", \"translator\": \"fr\"},\n {\"language\": \"german\", \"translator\": \"de\"},\n {\"language\": \"spanish\", \"translator\": \"es\"},\n {\"language\": \"portuguese\", \"translator\": \"pt\"},\n {\"language\": \"italian\", \"translator\": \"it\"},\n {\"language\": \"japanese\", \"translator\": \"ja\"},\n {\"language\": \"korean\", \"translator\": \"ko\"},\n {\"language\": \"greek\", \"translator\": \"el\"},\n {\"language\": \"dutch\", \"translator\": \"nl\"},\n {\"language\": \"hindi\", \"translator\": \"hi\"},\n {\"language\": \"turkish\", \"translator\": \"tr\"},\n {\"language\": \"malay\", \"translator\": \"ms\"},\n {\"language\": \"thai\", \"translator\": \"th\"},\n {\"language\": \"vietnamese\", \"translator\": \"vi\"},\n {\"language\": \"indonesian\", \"translator\": \"id\"},\n {\"language\": \"hebrew\", \"translator\": \"he\"},\n {\"language\": \"polish\", \"translator\": \"pl\"},\n {\"language\": \"mongolian\", \"translator\": \"mn\"},\n {\"language\": \"czech\", \"translator\": \"cs\"},\n {\"language\": \"hungarian\", \"translator\": \"hu\"},\n {\"language\": \"estonian\", \"translator\": \"et\"},\n {\"language\": \"bulgarian\", \"translator\": \"bg\"},\n {\"language\": \"danish\", \"translator\": \"da\"},\n {\"language\": \"finnish\", \"translator\": \"fi\"},\n {\"language\": \"romanian\", \"translator\": \"ro\"},\n {\"language\": \"swedish\", \"translator\": \"sv\"},\n {\"language\": \"slovenian\", \"translator\": \"sl\"},\n {\"language\": \"persian/farsi\", \"translator\": \"fa\"},\n {\"language\": \"bosnian\", \"translator\": \"bs\"},\n {\"language\": \"serbian\", \"translator\": \"sr\"},\n {\"language\": \"fijian\", \"translator\": \"fj\"},\n {\"language\": \"filipino\", \"translator\": \"tl\"},\n {\"language\": \"haitiancreole\", \"translator\": \"ht\"},\n {\"language\": \"catalan\", \"translator\": \"ca\"},\n {\"language\": \"croatian\", \"translator\": \"hr\"},\n {\"language\": \"latvian\", \"translator\": \"lv\"},\n {\"language\": \"lithuanian\", \"translator\": \"lt\"},\n {\"language\": \"urdu\", \"translator\": \"ur\"},\n {\"language\": \"ukrainian\", \"translator\": \"uk\"},\n {\"language\": \"welsh\", \"translator\": \"cy\"},\n {\"language\": \"tahiti\", \"translator\": \"ty\"},\n {\"language\": \"tongan\", \"translator\": \"to\"},\n {\"language\": \"swahili\", \"translator\": \"sw\"},\n {\"language\": \"samoan\", \"translator\": \"sm\"},\n {\"language\": \"slovak\", \"translator\": \"sk\"},\n {\"language\": \"afrikaans\", \"translator\": \"af\"},\n {\"language\": \"norwegian\", \"translator\": \"no\"},\n {\"language\": \"bengali\", \"translator\": \"bn\"},\n {\"language\": \"malagasy\", \"translator\": \"mg\"},\n {\"language\": \"maltese\", \"translator\": \"mt\"},\n {\"language\": \"queretaro otomi\", \"translator\": \"otq\"},\n {\"language\": \"klingon/tlhingan hol\", \"translator\": \"tlh\"},\n {\"language\": \"gujarati\", \"translator\": \"gu\"},\n {\"language\": \"tamil\", \"translator\": \"ta\"},\n {\"language\": \"telugu\", \"translator\": \"te\"},\n {\"language\": \"punjabi\", \"translator\": \"pa\"},\n {\"language\": \"amharic\", \"translator\": \"am\"},\n {\"language\": \"azerbaijani\", \"translator\": \"az\"},\n {\"language\": \"bashkir\", \"translator\": \"ba\"},\n {\"language\": \"belarusian\", \"translator\": \"be\"},\n {\"language\": \"cebuano\", \"translator\": \"ceb\"},\n {\"language\": \"chuvash\", \"translator\": \"cv\"},\n {\"language\": \"esperanto\", \"translator\": \"eo\"},\n {\"language\": \"basque\", \"translator\": \"eu\"},\n {\"language\": \"irish\", \"translator\": \"ga\"}\n]","import request from './request'\r\n\r\nexport const aiServerApi = {\r\n\r\n getAiServerSetting: async (path) => {\r\n return await request({\r\n url: '/ai_server/get_settings',\r\n method: 'post',\r\n data: { }\r\n })\r\n },\r\n\r\n updateAiServerSetting: async (data) => {\r\n return await request({\r\n url: '/ai_server/update_settings',\r\n method: 'post',\r\n data\r\n })\r\n },\r\n\r\n getAiModels: async () => {\r\n return await request({\r\n url: '/ai_server/get_ai_models',\r\n method: 'post',\r\n data: { }\r\n })\r\n },\r\n}","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","\n\n\n\n ","import request from './request'\n// 添加前缀常量\nconst STORAGE_PREFIX = 'weilin_tools_'\n// 提示词相关接口\nexport const tagsApi = {\n\n // 获取提示词列表\n getTagsList: async (params) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/get_group_tags',\n method: 'get',\n params: {...params,lang:savedLocale}\n })\n },\n\n // 添加主分类\n addPrimaryCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/add_new_f_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 编辑主分类\n editPrimaryCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/edit_f_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 删除主分类\n deletePrimaryCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/delete_f_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 添加子分类\n addSubCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/add_new_s_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 编辑子分类\n editSubCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/edit_s_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 删除子分类\n deleteSubCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/delete_s_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 添加提示词\n addNewTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/new_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 编辑提示词\n editTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/edit_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 删除提示词\n deleteTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/delete_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 批量删除提示词\n batchDeleteTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/batch_delete_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 移动标签\n moveTag: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/move_tag',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 获取选择的标签列表\n getTagsGroupList: async () => {\n return await request({\n url: '/prompt/get_groups_list',\n method: 'post',\n })\n },\n\n // 执行SQL数组脚本\n runSQLToServer: async (arr) => {\n return await request({\n url: '/prompt/run_sql_text',\n method: 'post',\n timeout: 0,\n data: {\n sql: arr\n }\n })\n },\n\n // 移动主分组\n moveMainGroup: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/move_group',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 移动子分组\n moveSubGroup: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/move_subgroup',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n getTagMainGroup: async () => {\n return await request({\n url: '/prompt/get_tag_groups',\n method: 'post',\n })\n },\n\n getTagSubGroup: async (p_uuid) => {\n return await request({\n url: '/prompt/get_tag_subgroups',\n method: 'post',\n data: {p_uuid}\n })\n },\n\n getTagList: async (g_uuid) => {\n return await request({\n url: '/prompt/get_tag_tags',\n method: 'post',\n data: {g_uuid}\n })\n },\n\n searchTag: async (keyword) => {\n return await request({\n url: '/prompt/search_tags',\n method: 'post',\n data: {keyword}\n })\n },\n}","/**\n * uuidv7: A JavaScript implementation of UUID version 7\n *\n * Copyright 2021-2024 LiosK\n *\n * @license Apache-2.0\n * @packageDocumentation\n */\nconst DIGITS = \"0123456789abcdef\";\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(bytes) {\n this.bytes = bytes;\n }\n /**\n * Creates an object from the internal representation, a 16-byte byte array\n * containing the binary UUID representation in the big-endian byte order.\n *\n * This method does NOT shallow-copy the argument, and thus the created object\n * holds the reference to the underlying buffer.\n *\n * @throws TypeError if the length of the argument is not 16.\n */\n static ofInner(bytes) {\n if (bytes.length !== 16) {\n throw new TypeError(\"not 128-bit length\");\n }\n else {\n return new UUID(bytes);\n }\n }\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n * @throws RangeError if any field value is out of the specified range.\n */\n static fromFieldsV7(unixTsMs, randA, randBHi, randBLo) {\n if (!Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 281474976710655 ||\n randA > 0xfff ||\n randBHi > 1073741823 ||\n randBLo > 4294967295) {\n throw new RangeError(\"invalid field value\");\n }\n const bytes = new Uint8Array(16);\n bytes[0] = unixTsMs / 2 ** 40;\n bytes[1] = unixTsMs / 2 ** 32;\n bytes[2] = unixTsMs / 2 ** 24;\n bytes[3] = unixTsMs / 2 ** 16;\n bytes[4] = unixTsMs / 2 ** 8;\n bytes[5] = unixTsMs;\n bytes[6] = 0x70 | (randA >>> 8);\n bytes[7] = randA;\n bytes[8] = 0x80 | (randBHi >>> 24);\n bytes[9] = randBHi >>> 16;\n bytes[10] = randBHi >>> 8;\n bytes[11] = randBHi;\n bytes[12] = randBLo >>> 24;\n bytes[13] = randBLo >>> 16;\n bytes[14] = randBLo >>> 8;\n bytes[15] = randBLo;\n return new UUID(bytes);\n }\n /**\n * Builds a byte array from a string representation.\n *\n * This method accepts the following formats:\n *\n * - 32-digit hexadecimal format without hyphens: `0189dcd553117d408db09496a2eef37b`\n * - 8-4-4-4-12 hyphenated format: `0189dcd5-5311-7d40-8db0-9496a2eef37b`\n * - Hyphenated format with surrounding braces: `{0189dcd5-5311-7d40-8db0-9496a2eef37b}`\n * - RFC 9562 URN format: `urn:uuid:0189dcd5-5311-7d40-8db0-9496a2eef37b`\n *\n * Leading and trailing whitespaces represents an error.\n *\n * @throws SyntaxError if the argument could not parse as a valid UUID string.\n */\n static parse(uuid) {\n var _a, _b, _c, _d;\n let hex = undefined;\n switch (uuid.length) {\n case 32:\n hex = (_a = /^[0-9a-f]{32}$/i.exec(uuid)) === null || _a === void 0 ? void 0 : _a[0];\n break;\n case 36:\n hex =\n (_b = /^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i\n .exec(uuid)) === null || _b === void 0 ? void 0 : _b.slice(1, 6).join(\"\");\n break;\n case 38:\n hex =\n (_c = /^\\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\\}$/i\n .exec(uuid)) === null || _c === void 0 ? void 0 : _c.slice(1, 6).join(\"\");\n break;\n case 45:\n hex =\n (_d = /^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i\n .exec(uuid)) === null || _d === void 0 ? void 0 : _d.slice(1, 6).join(\"\");\n break;\n default:\n break;\n }\n if (hex) {\n const inner = new Uint8Array(16);\n for (let i = 0; i < 16; i += 4) {\n const n = parseInt(hex.substring(2 * i, 2 * i + 8), 16);\n inner[i + 0] = n >>> 24;\n inner[i + 1] = n >>> 16;\n inner[i + 2] = n >>> 8;\n inner[i + 3] = n;\n }\n return new UUID(inner);\n }\n else {\n throw new SyntaxError(\"could not parse UUID string\");\n }\n }\n /**\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (`0189dcd5-5311-7d40-8db0-9496a2eef37b`).\n */\n toString() {\n let text = \"\";\n for (let i = 0; i < this.bytes.length; i++) {\n text += DIGITS.charAt(this.bytes[i] >>> 4);\n text += DIGITS.charAt(this.bytes[i] & 0xf);\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += \"-\";\n }\n }\n return text;\n }\n /**\n * @returns The 32-digit hexadecimal representation without hyphens\n * (`0189dcd553117d408db09496a2eef37b`).\n */\n toHex() {\n let text = \"\";\n for (let i = 0; i < this.bytes.length; i++) {\n text += DIGITS.charAt(this.bytes[i] >>> 4);\n text += DIGITS.charAt(this.bytes[i] & 0xf);\n }\n return text;\n }\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toJSON() {\n return this.toString();\n }\n /**\n * Reports the variant field value of the UUID or, if appropriate, \"NIL\" or\n * \"MAX\".\n *\n * For convenience, this method reports \"NIL\" or \"MAX\" if `this` represents\n * the Nil or Max UUID, although the Nil and Max UUIDs are technically\n * subsumed under the variants `0b0` and `0b111`, respectively.\n */\n getVariant() {\n const n = this.bytes[8] >>> 4;\n if (n < 0) {\n throw new Error(\"unreachable\");\n }\n else if (n <= 0b0111) {\n return this.bytes.every((e) => e === 0) ? \"NIL\" : \"VAR_0\";\n }\n else if (n <= 0b1011) {\n return \"VAR_10\";\n }\n else if (n <= 0b1101) {\n return \"VAR_110\";\n }\n else if (n <= 0b1111) {\n return this.bytes.every((e) => e === 0xff) ? \"MAX\" : \"VAR_RESERVED\";\n }\n else {\n throw new Error(\"unreachable\");\n }\n }\n /**\n * Returns the version field value of the UUID or `undefined` if the UUID does\n * not have the variant field value of `0b10`.\n */\n getVersion() {\n return this.getVariant() === \"VAR_10\" ? this.bytes[6] >>> 4 : undefined;\n }\n /** Creates an object from `this`. */\n clone() {\n return new UUID(this.bytes.slice(0));\n }\n /** Returns true if `this` is equivalent to `other`. */\n equals(other) {\n return this.compareTo(other) === 0;\n }\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other) {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i];\n if (diff !== 0) {\n return Math.sign(diff);\n }\n }\n return 0;\n }\n}\n/**\n * Encapsulates the monotonic counter state.\n *\n * This class provides APIs to utilize a separate counter state from that of the\n * global generator used by {@link uuidv7} and {@link uuidv7obj}. In addition to\n * the default {@link generate} method, this class has {@link generateOrAbort}\n * that is useful to absolutely guarantee the monotonically increasing order of\n * generated UUIDs. See their respective documentation for details.\n */\nexport class V7Generator {\n /**\n * Creates a generator object with the default random number generator, or\n * with the specified one if passed as an argument. The specified random\n * number generator should be cryptographically strong and securely seeded.\n */\n constructor(randomNumberGenerator) {\n this.timestamp = 0;\n this.counter = 0;\n this.random = randomNumberGenerator !== null && randomNumberGenerator !== void 0 ? randomNumberGenerator : getDefaultRandom();\n }\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns a monotonically increasing UUID by reusing the previous\n * timestamp even if the up-to-date timestamp is smaller than the immediately\n * preceding UUID's. However, when such a clock rollback is considered\n * significant (i.e., by more than ten seconds), this method resets the\n * generator and returns a new UUID based on the given timestamp, breaking the\n * increasing order of UUIDs.\n *\n * See {@link generateOrAbort} for the other mode of generation and\n * {@link generateOrResetCore} for the low-level primitive.\n */\n generate() {\n return this.generateOrResetCore(Date.now(), 10000);\n }\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns a monotonically increasing UUID by reusing the previous\n * timestamp even if the up-to-date timestamp is smaller than the immediately\n * preceding UUID's. However, when such a clock rollback is considered\n * significant (i.e., by more than ten seconds), this method aborts and\n * returns `undefined` immediately.\n *\n * See {@link generate} for the other mode of generation and\n * {@link generateOrAbortCore} for the low-level primitive.\n */\n generateOrAbort() {\n return this.generateOrAbortCore(Date.now(), 10000);\n }\n /**\n * Generates a new UUIDv7 object from the `unixTsMs` passed, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method is equivalent to {@link generate} except that it takes a custom\n * timestamp and clock rollback allowance.\n *\n * @param rollbackAllowance - The amount of `unixTsMs` rollback that is\n * considered significant. A suggested value is `10_000` (milliseconds).\n * @throws RangeError if `unixTsMs` is not a 48-bit positive integer.\n */\n generateOrResetCore(unixTsMs, rollbackAllowance) {\n let value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);\n if (value === undefined) {\n // reset state and resume\n this.timestamp = 0;\n value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);\n }\n return value;\n }\n /**\n * Generates a new UUIDv7 object from the `unixTsMs` passed, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method is equivalent to {@link generateOrAbort} except that it takes a\n * custom timestamp and clock rollback allowance.\n *\n * @param rollbackAllowance - The amount of `unixTsMs` rollback that is\n * considered significant. A suggested value is `10_000` (milliseconds).\n * @throws RangeError if `unixTsMs` is not a 48-bit positive integer.\n */\n generateOrAbortCore(unixTsMs, rollbackAllowance) {\n const MAX_COUNTER = 4398046511103;\n if (!Number.isInteger(unixTsMs) ||\n unixTsMs < 1 ||\n unixTsMs > 281474976710655) {\n throw new RangeError(\"`unixTsMs` must be a 48-bit positive integer\");\n }\n else if (rollbackAllowance < 0 || rollbackAllowance > 281474976710655) {\n throw new RangeError(\"`rollbackAllowance` out of reasonable range\");\n }\n if (unixTsMs > this.timestamp) {\n this.timestamp = unixTsMs;\n this.resetCounter();\n }\n else if (unixTsMs + rollbackAllowance >= this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++;\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++;\n this.resetCounter();\n }\n }\n else {\n // abort if clock went backwards to unbearable extent\n return undefined;\n }\n return UUID.fromFieldsV7(this.timestamp, Math.trunc(this.counter / 2 ** 30), this.counter & (2 ** 30 - 1), this.random.nextUint32());\n }\n /** Initializes the counter at a 42-bit random integer. */\n resetCounter() {\n this.counter =\n this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff);\n }\n /**\n * Generates a new UUIDv4 object utilizing the random number generator inside.\n *\n * @internal\n */\n generateV4() {\n const bytes = new Uint8Array(Uint32Array.of(this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32()).buffer);\n bytes[6] = 0x40 | (bytes[6] >>> 4);\n bytes[8] = 0x80 | (bytes[8] >>> 2);\n return UUID.ofInner(bytes);\n }\n}\n/** Returns the default random number generator available in the environment. */\nconst getDefaultRandom = () => {\n // detect Web Crypto API\n if (typeof crypto !== \"undefined\" &&\n typeof crypto.getRandomValues !== \"undefined\") {\n return new BufferedCryptoRandom();\n }\n else {\n // fall back on Math.random() unless the flag is set to true\n if (typeof UUIDV7_DENY_WEAK_RNG !== \"undefined\" && UUIDV7_DENY_WEAK_RNG) {\n throw new Error(\"no cryptographically strong RNG available\");\n }\n return {\n nextUint32: () => Math.trunc(Math.random() * 65536) * 65536 +\n Math.trunc(Math.random() * 65536),\n };\n }\n};\n/**\n * Wraps `crypto.getRandomValues()` to enable buffering; this uses a small\n * buffer by default to avoid both unbearable throughput decline in some\n * environments and the waste of time and space for unused values.\n */\nclass BufferedCryptoRandom {\n constructor() {\n this.buffer = new Uint32Array(8);\n this.cursor = 0xffff;\n }\n nextUint32() {\n if (this.cursor >= this.buffer.length) {\n crypto.getRandomValues(this.buffer);\n this.cursor = 0;\n }\n return this.buffer[this.cursor++];\n }\n}\nlet defaultGenerator;\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = () => uuidv7obj().toString();\n/** Generates a UUIDv7 object. */\nexport const uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator())).generate();\n/**\n * Generates a UUIDv4 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv4 = () => uuidv4obj().toString();\n/** Generates a UUIDv4 object. */\nexport const uuidv4obj = () => (defaultGenerator || (defaultGenerator = new V7Generator())).generateV4();\n","\n\n\n\n\n","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","\n\n\n\n","\r\n\r\n\r\n\r\n\r\n","import { ref } from 'vue'\n\nconst baseZIndex = 100\nconst activeWindow = ref('')\nconst windowZIndexes = ref({})\n\nexport const windowManager = {\n // 设置活动窗口\n setActiveWindow(windowName) {\n if (activeWindow.value !== windowName) {\n activeWindow.value = windowName\n // 更新所有窗口的 z-index\n Object.keys(windowZIndexes.value).forEach(key => {\n windowZIndexes.value[key] = baseZIndex\n })\n // 设置当前窗口为最高层\n windowZIndexes.value[windowName] = baseZIndex + 10\n }\n },\n\n // 获取窗口的 z-index\n getZIndex(windowName) {\n if (!windowZIndexes.value[windowName]) {\n windowZIndexes.value[windowName] = baseZIndex\n }\n return windowZIndexes.value[windowName]\n },\n\n // 注册窗口\n registerWindow(windowName) {\n if (!windowZIndexes.value[windowName]) {\n windowZIndexes.value[windowName] = baseZIndex\n }\n },\n\n // 注销窗口\n unregisterWindow(windowName) {\n delete windowZIndexes.value[windowName]\n }\n} ","import request from './request'\n\n// Lora相关接口\nexport const loraApi = {\n // 获取Lora列表\n getLoraList: async (params) => {\n return await request({\n url: '/get_lora_list',\n method: 'get',\n params\n })\n },\n\n // 获取Lora全部列表\n getAllLoraList: async (params) => {\n return await request({\n url: '/get_lora_load_all',\n method: 'get',\n params\n })\n },\n\n // 获取执行进度\n getAllLoraStatus: async (params) => {\n return await request({\n url: '/get_lora_load_status',\n method: 'get',\n params\n })\n },\n\n // 获取Lora详情\n getLoraDetail: async (params) => {\n return await request({\n url: '/lorainfo/api/loras/info',\n method: 'get',\n params\n })\n },\n\n // 获取Lora信息C站获取\n getLoraRefresh: async (params) => {\n return await request({\n url: '/lorainfo/api/loras/info/refresh',\n method: 'get',\n params\n })\n },\n\n // 上传Lora图片\n postUplaodImg: async (image,path,fileName) => {\n const body = new FormData();\n body.append(\"image\", image);\n body.append(\"path\", path);\n body.append(\"fileName\", fileName);\n return await request({\n url: \"/lorainfo/api/loras/set/img\",\n method: 'post',\n data: body,\n headers: {'Content-Type': 'multipart/form-data'}\n })\n },\n\n // 保存Lora信息\n postLoraSave: async (file,json) => {\n const body = new FormData();\n body.append(\"json\", JSON.stringify(json));\n return await request({\n url: \"/lorainfo/api/loras/info?file=\"+file,\n method: 'post',\n data: body,\n headers: {'Content-Type': 'multipart/form-data'}\n })\n },\n\n // 删除Lora信息字段\n postLoraDelet: async (file,json) => {\n return await request({\n url: \"/lorainfo/api/delete/loras/info/filed?file=\"+file,\n method: 'post',\n data: {\n json: json,\n },\n })\n },\n\n // 获取Lora文件夹列表\n getLoraFolderList: async () => {\n return await request({\n url: '/get_lora_folder_list',\n method: 'post',\n })\n },\n // 根据数组获取Lora具体信息\n getLoraRangeList: async (range) => {\n return await request({\n url: '/get_lora_list_by_range',\n method: 'post',\n data:{ range }\n })\n },\n // 查询Lora返回相关信息\n searchLoraGetFolderList: async (search) => {\n return await request({\n url: '/get_lora_list_by_search',\n method: 'post',\n data:{ search }\n })\n },\n} ","import { h, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createVNode } from 'vue';\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nvar REG_LINK$1 = /^([hH][tT]{2}[pP]:\\/\\/|[hH][tT]{2}[pP][sS]:\\/\\/)(([A-Za-z0-9-~]+)\\.)+([A-Za-z0-9-~\\/])+$/;\nvar script$a = {\n name: 'JsonString',\n props: {\n jsonValue: {\n type: String,\n required: true\n }\n },\n data: function data() {\n return {\n expand: true,\n canExtend: false\n };\n },\n mounted: function mounted() {\n if (this.$refs.itemRef.offsetHeight > this.$refs.holderRef.offsetHeight) {\n this.canExtend = true;\n }\n },\n methods: {\n toggle: function toggle() {\n this.expand = !this.expand;\n }\n },\n render: function render() {\n var value = this.jsonValue;\n var islink = REG_LINK$1.test(value);\n var domItem;\n if (!this.expand) {\n domItem = {\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n innerText: '...'\n };\n } else {\n domItem = {\n 'class': {\n 'jv-item': true,\n 'jv-string': true\n },\n ref: 'itemRef'\n };\n if (islink) {\n value = '').concat(value, '');\n domItem.innerHTML = '\"'.concat(value.toString(), '\"');\n } else {\n domItem.innerText = '\"'.concat(value.toString(), '\"');\n }\n }\n return h('span', {}, [\n this.canExtend && h('span', {\n 'class': {\n 'jv-toggle': true,\n open: this.expand\n },\n onClick: this.toggle\n }),\n h('span', {\n 'class': { 'jv-holder-node': true },\n ref: 'holderRef'\n }),\n h('span', domItem)\n ]);\n }\n};\n\nscript$a.__file = \"src/Components/types/json-string.vue\";\n\nvar script$9 = {\n name: 'JsonUndefined',\n functional: true,\n props: {\n jsonValue: {\n type: Object,\n 'default': null\n }\n },\n render: function render() {\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-undefined': true\n },\n innerText: this.jsonValue === null ? 'null' : 'undefined'\n });\n }\n};\n\nscript$9.__file = \"src/Components/types/json-undefined.vue\";\n\nvar script$8 = {\n name: 'JsonNumber',\n functional: true,\n props: {\n jsonValue: {\n type: Number,\n required: true\n }\n },\n render: function render() {\n var isInteger = Number.isInteger(this.jsonValue);\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-number': true,\n 'jv-number-integer': isInteger,\n 'jv-number-float': !isInteger\n },\n innerText: this.jsonValue.toString()\n });\n }\n};\n\nscript$8.__file = \"src/Components/types/json-number.vue\";\n\nvar script$7 = {\n name: 'JsonBoolean',\n functional: true,\n props: { jsonValue: Boolean },\n render: function render() {\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-boolean': true\n },\n innerText: this.jsonValue.toString()\n });\n }\n};\n\nscript$7.__file = \"src/Components/types/json-boolean.vue\";\n\nvar script$6 = {\n name: 'JsonObject',\n props: {\n jsonValue: {\n type: Object,\n required: true\n },\n keyName: {\n type: String,\n 'default': ''\n },\n depth: {\n type: Number,\n 'default': 0\n },\n expand: Boolean,\n sort: Boolean,\n previewMode: Boolean\n },\n data: function data() {\n return { value: {} };\n },\n computed: {\n ordered: function ordered() {\n var _this = this;\n if (!this.sort) {\n return this.value;\n }\n var ordered = {};\n Object.keys(this.value).sort().forEach(function (key) {\n ordered[key] = _this.value[key];\n });\n return ordered;\n }\n },\n watch: {\n jsonValue: function jsonValue(newVal) {\n this.setValue(newVal);\n }\n },\n mounted: function mounted() {\n this.setValue(this.jsonValue);\n },\n methods: {\n setValue: function setValue(val) {\n var _this2 = this;\n setTimeout(function () {\n _this2.value = val;\n }, 0);\n },\n toggle: function toggle() {\n this.$emit('update:expand', !this.expand);\n this.dispatchEvent();\n },\n dispatchEvent: function dispatchEvent() {\n try {\n this.$el.dispatchEvent(new Event('resized'));\n } catch (e) {\n var evt = document.createEvent('Event');\n evt.initEvent('resized', true, false);\n this.$el.dispatchEvent(evt);\n }\n }\n },\n render: function render() {\n var elements = [];\n if (!this.previewMode && !this.keyName) {\n elements.push(h('span', {\n 'class': {\n 'jv-toggle': true,\n 'open': !!this.expand\n },\n onClick: this.toggle\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-object': true\n },\n innerText: '{'\n }));\n if (this.expand) {\n for (var key in this.ordered) {\n if (this.ordered.hasOwnProperty(key)) {\n var value = this.ordered[key];\n elements.push(h(script$1, {\n key: key,\n style: { display: !this.expand ? 'none' : undefined },\n sort: this.sort,\n keyName: key,\n depth: this.depth + 1,\n value: value,\n previewMode: this.previewMode\n }));\n }\n }\n }\n if (!this.expand && Object.keys(this.value).length) {\n elements.push(h('span', {\n style: { display: this.expand ? 'none' : undefined },\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n title: 'click to reveal object content (keys: '.concat(Object.keys(this.ordered).join(', '), ')'),\n innerText: '...'\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-object': true\n },\n innerText: '}'\n }));\n return h('span', elements);\n }\n};\n\nscript$6.__file = \"src/Components/types/json-object.vue\";\n\nvar script$5 = {\n name: 'JsonArray',\n props: {\n jsonValue: {\n type: Array,\n required: true\n },\n keyName: {\n type: String,\n 'default': ''\n },\n depth: {\n type: Number,\n 'default': 0\n },\n sort: Boolean,\n expand: Boolean,\n previewMode: Boolean\n },\n data: function data() {\n return { value: [] };\n },\n watch: {\n jsonValue: function jsonValue(newVal) {\n this.setValue(newVal);\n }\n },\n mounted: function mounted() {\n this.setValue(this.jsonValue);\n },\n methods: {\n setValue: function setValue(vals) {\n var _this = this;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (index === 0) {\n this.value = [];\n }\n setTimeout(function () {\n if (vals.length > index) {\n _this.value.push(vals[index]);\n _this.setValue(vals, index + 1);\n }\n }, 0);\n },\n toggle: function toggle() {\n this.$emit('update:expand', !this.expand);\n try {\n this.$el.dispatchEvent(new Event('resized'));\n } catch (e) {\n var evt = document.createEvent('Event');\n evt.initEvent('resized', true, false);\n this.$el.dispatchEvent(evt);\n }\n }\n },\n render: function render() {\n var _this2 = this;\n var elements = [];\n if (!this.previewMode && !this.keyName) {\n elements.push(h('span', {\n 'class': {\n 'jv-toggle': true,\n 'open': !!this.expand\n },\n onClick: this.toggle\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-array': true\n },\n innerText: '['\n }));\n if (this.expand) {\n this.value.forEach(function (value, key) {\n elements.push(h(script$1, {\n key: key,\n style: { display: _this2.expand ? undefined : 'none' },\n sort: _this2.sort,\n depth: _this2.depth + 1,\n value: value,\n previewMode: _this2.previewMode\n }));\n });\n }\n if (!this.expand && this.value.length) {\n elements.push(h('span', {\n style: { display: undefined },\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n title: 'click to reveal '.concat(this.value.length, ' hidden items'),\n innerText: '...'\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-array': true\n },\n innerText: ']'\n }));\n return h('span', elements);\n }\n};\n\nscript$5.__file = \"src/Components/types/json-array.vue\";\n\nvar script$4 = {\n name: 'JsonFunction',\n functional: true,\n props: {\n jsonValue: {\n type: Function,\n required: true\n }\n },\n render: function render() {\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-function': true\n },\n attrs: { title: this.jsonValue.toString() },\n innerHTML: '<function>'\n });\n }\n};\n\nscript$4.__file = \"src/Components/types/json-function.vue\";\n\nvar script$3 = {\n name: 'JsonDate',\n inject: ['timeformat'],\n functional: true,\n props: {\n jsonValue: {\n type: Date,\n required: true\n }\n },\n render: function render() {\n var value = this.jsonValue;\n var timeformat = this.timeformat;\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-string': true\n },\n innerText: '\"'.concat(timeformat(value), '\"')\n });\n }\n};\n\nscript$3.__file = \"src/Components/types/json-date.vue\";\n\nvar REG_LINK = /^([hH][tT]{2}[pP]:\\/\\/|[hH][tT]{2}[pP][sS]:\\/\\/)(([A-Za-z0-9-~]+)\\.)+([A-Za-z0-9-~\\/])+$/;\nvar script$2 = {\n name: 'JsonString',\n props: {\n jsonValue: {\n type: RegExp,\n required: true\n }\n },\n data: function data() {\n return {\n expand: true,\n canExtend: false\n };\n },\n mounted: function mounted() {\n if (this.$refs.itemRef.offsetHeight > this.$refs.holderRef.offsetHeight) {\n this.canExtend = true;\n }\n },\n methods: {\n toggle: function toggle() {\n this.expand = !this.expand;\n }\n },\n render: function render() {\n var value = this.jsonValue;\n var islink = REG_LINK.test(value);\n var domItem;\n if (!this.expand) {\n domItem = {\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n innerText: '...'\n };\n } else {\n domItem = {\n 'class': {\n 'jv-item': true,\n 'jv-string': true\n },\n ref: 'itemRef'\n };\n if (islink) {\n value = '').concat(value, '');\n domItem.innerHTML = ''.concat(value.toString());\n } else {\n domItem.innerText = ''.concat(value.toString());\n }\n }\n return h('span', {}, [\n this.canExtend && h('span', {\n 'class': {\n 'jv-toggle': true,\n open: this.expand\n },\n onClick: this.toggle\n }),\n h('span', {\n 'class': { 'jv-holder-node': true },\n ref: 'holderRef'\n }),\n h('span', domItem)\n ]);\n }\n};\n\nscript$2.__file = \"src/Components/types/json-regexp.vue\";\n\nvar script$1 = {\n name: 'JsonBox',\n inject: [\n 'expandDepth',\n 'keyClick'\n ],\n props: {\n value: {\n type: [\n Object,\n Array,\n String,\n Number,\n Boolean,\n Function,\n Date\n ],\n 'default': null\n },\n keyName: {\n type: String,\n 'default': ''\n },\n sort: Boolean,\n depth: {\n type: Number,\n 'default': 0\n },\n previewMode: Boolean\n },\n data: function data() {\n return { expand: true };\n },\n mounted: function mounted() {\n this.expand = this.previewMode || (this.depth >= this.expandDepth ? false : true);\n },\n methods: {\n toggle: function toggle() {\n this.expand = !this.expand;\n try {\n this.$el.dispatchEvent(new Event('resized'));\n } catch (e) {\n var evt = document.createEvent('Event');\n evt.initEvent('resized', true, false);\n this.$el.dispatchEvent(evt);\n }\n }\n },\n render: function render() {\n var _this = this;\n var elements = [];\n var dataType;\n if (this.value === null || this.value === undefined) {\n dataType = script$9;\n } else if (Array.isArray(this.value)) {\n dataType = script$5;\n } else if (Object.prototype.toString.call(this.value) === '[object Date]') {\n dataType = script$3;\n } else if (_typeof(this.value) === 'object') {\n dataType = script$6;\n } else if (typeof this.value === 'number') {\n dataType = script$8;\n } else if (typeof this.value === 'string') {\n dataType = script$a;\n } else if (typeof this.value === 'boolean') {\n dataType = script$7;\n } else if (typeof this.value === 'function') {\n dataType = script$4;\n }\n if (this.value.constructor === RegExp) {\n dataType = script$2;\n }\n var complex = this.keyName && this.value && (Array.isArray(this.value) || _typeof(this.value) === 'object' && Object.prototype.toString.call(this.value) !== '[object Date]');\n if (!this.previewMode && complex) {\n elements.push(h('span', {\n 'class': {\n 'jv-toggle': true,\n open: !!this.expand\n },\n onClick: this.toggle\n }));\n }\n if (this.keyName) {\n elements.push(h('span', {\n 'class': { 'jv-key': true },\n onClick: function onClick() {\n _this.keyClick(_this.keyName);\n },\n innerText: ''.concat(this.keyName, ':')\n }));\n }\n elements.push(h(dataType, {\n 'class': { 'jv-push': true },\n jsonValue: this.value,\n keyName: this.keyName,\n sort: this.sort,\n depth: this.depth,\n expand: this.expand,\n previewMode: this.previewMode,\n 'onUpdate:expand': function onUpdateExpand(value) {\n _this.expand = value;\n }\n }));\n return h('div', {\n 'class': {\n 'jv-node': true,\n 'jv-key-node': Boolean(this.keyName) && !complex,\n toggle: !this.previewMode && complex\n }\n }, elements);\n }\n};\n\nscript$1.__file = \"src/Components/json-box.vue\";\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar clipboard = {exports: {}};\n\n(function (module, exports) {\n (function webpackUniversalModuleDefinition(root, factory) {\n module.exports = factory();\n }(commonjsGlobal, function () {\n return function () {\n var __webpack_modules__ = {\n 686: function (__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n __webpack_require__.d(__webpack_exports__, {\n 'default': function () {\n return clipboard;\n }\n });\n var tiny_emitter = __webpack_require__(279);\n var tiny_emitter_default = __webpack_require__.n(tiny_emitter);\n var listen = __webpack_require__(370);\n var listen_default = __webpack_require__.n(listen);\n var src_select = __webpack_require__(817);\n var select_default = __webpack_require__.n(src_select);\n function command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n }\n var ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n };\n var actions_cut = ClipboardActionCut;\n function createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea');\n fakeElement.style.fontSize = '12pt';\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0';\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px';\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = ''.concat(yPosition, 'px');\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n }\n var fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n };\n var ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { container: document.body };\n var selectedText = '';\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && ![\n 'text',\n 'search',\n 'url',\n 'tel',\n 'password'\n ].includes(target === null || target === void 0 ? void 0 : target.type)) {\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n return selectedText;\n };\n var actions_copy = ClipboardActionCopy;\n function _typeof(obj) {\n '@babel/helpers - typeof';\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n return _typeof(obj);\n }\n var ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$action = options.action, action = _options$action === void 0 ? 'copy' : _options$action, container = options.container, target = options.target, text = options.text;\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n if (text) {\n return actions_copy(text, { container: container });\n }\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, { container: container });\n }\n };\n var actions_default = ClipboardActionDefault;\n function clipboard_typeof(obj) {\n '@babel/helpers - typeof';\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n clipboard_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n clipboard_typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n return clipboard_typeof(obj);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function');\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass)\n _setPrototypeOf(subClass, superClass);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self, call) {\n if (call && (clipboard_typeof(call) === 'object' || typeof call === 'function')) {\n return call;\n }\n return _assertThisInitialized(self);\n }\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError('this hasn\\'t been initialised - super() hasn\\'t been called');\n }\n return self;\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === 'undefined' || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === 'function')\n return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n }));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n function getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-'.concat(suffix);\n if (!element.hasAttribute(attribute)) {\n return;\n }\n return element.getAttribute(attribute);\n }\n var Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n var _super = _createSuper(Clipboard);\n function Clipboard(trigger, options) {\n var _this;\n _classCallCheck(this, Clipboard);\n _this = _super.call(this);\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n _createClass(Clipboard, [\n {\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n },\n {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n },\n {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n });\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n window.getSelection().removeAllRanges();\n }\n });\n }\n },\n {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n },\n {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n if (selector) {\n return document.querySelector(selector);\n }\n }\n },\n {\n key: 'defaultText',\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n }\n }\n ], [\n {\n key: 'copy',\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { container: document.body };\n return actions_copy(target, options);\n }\n },\n {\n key: 'cut',\n value: function cut(target) {\n return actions_cut(target);\n }\n },\n {\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [\n 'copy',\n 'cut'\n ];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }\n ]);\n return Clipboard;\n }(tiny_emitter_default());\n var clipboard = Clipboard;\n },\n 828: function (module) {\n var DOCUMENT_NODE_TYPE = 9;\n if (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector;\n }\n function closest(element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' && element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n }\n module.exports = closest;\n },\n 438: function (module, __unused_webpack_exports, __webpack_require__) {\n var closest = __webpack_require__(828);\n function _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n element.addEventListener(type, listenerFn, useCapture);\n return {\n destroy: function () {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n };\n }\n function delegate(elements, selector, type, callback, useCapture) {\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n if (typeof type === 'function') {\n return _delegate.bind(null, document).apply(null, arguments);\n }\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n }\n function listener(element, selector, type, callback) {\n return function (e) {\n e.delegateTarget = closest(e.target, selector);\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n };\n }\n module.exports = delegate;\n },\n 879: function (__unused_webpack_module, exports) {\n exports.node = function (value) {\n return value !== undefined && value instanceof HTMLElement && value.nodeType === 1;\n };\n exports.nodeList = function (value) {\n var type = Object.prototype.toString.call(value);\n return value !== undefined && (type === '[object NodeList]' || type === '[object HTMLCollection]') && 'length' in value && (value.length === 0 || exports.node(value[0]));\n };\n exports.string = function (value) {\n return typeof value === 'string' || value instanceof String;\n };\n exports.fn = function (value) {\n var type = Object.prototype.toString.call(value);\n return type === '[object Function]';\n };\n },\n 370: function (module, __unused_webpack_exports, __webpack_require__) {\n var is = __webpack_require__(879);\n var delegate = __webpack_require__(438);\n function listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n if (is.node(target)) {\n return listenNode(target, type, callback);\n } else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n } else if (is.string(target)) {\n return listenSelector(target, type, callback);\n } else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n }\n function listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n return {\n destroy: function () {\n node.removeEventListener(type, callback);\n }\n };\n }\n function listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function (node) {\n node.addEventListener(type, callback);\n });\n return {\n destroy: function () {\n Array.prototype.forEach.call(nodeList, function (node) {\n node.removeEventListener(type, callback);\n });\n }\n };\n }\n function listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n }\n module.exports = listen;\n },\n 817: function (module) {\n function select(element) {\n var selectedText;\n if (element.nodeName === 'SELECT') {\n element.focus();\n selectedText = element.value;\n } else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n element.select();\n element.setSelectionRange(0, element.value.length);\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n selectedText = element.value;\n } else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n var selection = window.getSelection();\n var range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n selectedText = selection.toString();\n }\n return selectedText;\n }\n module.exports = select;\n },\n 279: function (module) {\n function E() {\n }\n E.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n return this;\n },\n once: function (name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n },\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n liveEvents.length ? e[name] = liveEvents : delete e[name];\n return this;\n }\n };\n module.exports = E;\n module.exports.TinyEmitter = E;\n }\n };\n var __webpack_module_cache__ = {};\n function __webpack_require__(moduleId) {\n if (__webpack_module_cache__[moduleId]) {\n return __webpack_module_cache__[moduleId].exports;\n }\n var module = __webpack_module_cache__[moduleId] = { exports: {} };\n __webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n return module.exports;\n }\n !function () {\n __webpack_require__.n = function (module) {\n var getter = module && module.__esModule ? function () {\n return module['default'];\n } : function () {\n return module;\n };\n __webpack_require__.d(getter, { a: getter });\n return getter;\n };\n }();\n !function () {\n __webpack_require__.d = function (exports, definition) {\n for (var key in definition) {\n if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: definition[key]\n });\n }\n }\n };\n }();\n !function () {\n __webpack_require__.o = function (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n }();\n return __webpack_require__(686);\n }().default;\n }));\n}(clipboard));\nvar Clipboard = getDefaultExportFromCjs(clipboard.exports);\n\nvar debounce = function debounce(func, wait) {\n var startTime = Date.now();\n var timer;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (Date.now() - startTime < wait && timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(function () {\n func.apply(void 0, args);\n }, wait);\n startTime = Date.now();\n };\n};\n\nvar script = {\n name: 'JsonViewer',\n components: { JsonBox: script$1 },\n props: {\n value: {\n type: [\n Object,\n Array,\n String,\n Number,\n Boolean,\n Function\n ],\n required: true\n },\n expanded: {\n type: Boolean,\n 'default': false\n },\n expandDepth: {\n type: Number,\n 'default': 1\n },\n copyable: {\n type: [\n Boolean,\n Object\n ],\n 'default': false\n },\n sort: {\n type: Boolean,\n 'default': false\n },\n boxed: {\n type: Boolean,\n 'default': false\n },\n theme: {\n type: String,\n 'default': 'light'\n },\n timeformat: {\n type: Function,\n 'default': function _default(value) {\n return value.toLocaleString();\n }\n },\n previewMode: {\n type: Boolean,\n 'default': false\n },\n parse: {\n type: Boolean,\n 'default': false\n }\n },\n provide: function provide() {\n return {\n expandDepth: this.expandDepth,\n timeformat: this.timeformat,\n keyClick: this.keyClick\n };\n },\n data: function data() {\n return {\n copied: false,\n expandableCode: false,\n expandCode: this.expanded\n };\n },\n emits: ['onKeyClick'],\n computed: {\n jvClass: function jvClass() {\n return 'jv-container ' + 'jv-' + this.theme + (this.boxed ? ' boxed' : '');\n },\n copyText: function copyText() {\n var _this$copyable = this.copyable, copyText = _this$copyable.copyText, copiedText = _this$copyable.copiedText, timeout = _this$copyable.timeout, align = _this$copyable.align;\n return {\n copyText: copyText || 'copy',\n copiedText: copiedText || 'copied!',\n timeout: timeout || 2000,\n align: align\n };\n },\n parseValue: function parseValue() {\n if (!this.parse || typeof this.value !== 'string') {\n return this.value;\n }\n try {\n return JSON.parse(this.value);\n } catch (_unused) {\n return this.value;\n }\n }\n },\n watch: {\n value: function value() {\n this.onResized();\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.debounceResized = debounce(this.debResized.bind(this), 200);\n if (this.boxed && this.$refs.jsonBox) {\n this.onResized();\n this.$refs.jsonBox.$el.addEventListener('resized', this.onResized, true);\n }\n if (this.copyable) {\n var clipBoard = new Clipboard(this.$refs.clip, {\n text: function text() {\n return JSON.stringify(_this.value, null, 2);\n }\n });\n clipBoard.on('success', function (e) {\n _this.onCopied(e);\n });\n }\n },\n methods: {\n onResized: function onResized() {\n this.debounceResized();\n },\n debResized: function debResized() {\n var _this2 = this;\n this.$nextTick(function () {\n if (!_this2.$refs.jsonBox)\n return;\n if (_this2.$refs.jsonBox.$el.clientHeight >= 250) {\n _this2.expandableCode = true;\n } else {\n _this2.expandableCode = false;\n }\n });\n },\n keyClick: function keyClick(keyName) {\n this.$emit('onKeyClick', keyName);\n },\n onCopied: function onCopied(copyEvent) {\n var _this3 = this;\n if (this.copied) {\n return;\n }\n this.copied = true;\n setTimeout(function () {\n _this3.copied = false;\n }, this.copyText.timeout);\n this.$emit('copied', copyEvent);\n },\n toggleExpandCode: function toggleExpandCode() {\n this.expandCode = !this.expandCode;\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_json_box = resolveComponent('json-box');\n return openBlock(), createElementBlock('div', { 'class': normalizeClass($options.jvClass) }, [\n $props.copyable ? (openBlock(), createElementBlock('div', {\n key: 0,\n 'class': normalizeClass('jv-tooltip '.concat($options.copyText.align || 'right'))\n }, [createElementVNode('span', {\n ref: 'clip',\n 'class': normalizeClass([\n 'jv-button',\n { copied: $data.copied }\n ])\n }, [renderSlot(_ctx.$slots, 'copy', { copied: $data.copied }, function () {\n return [createTextVNode(toDisplayString($data.copied ? $options.copyText.copiedText : $options.copyText.copyText), 1)];\n })], 2)], 2)) : createCommentVNode('v-if', true),\n createElementVNode('div', {\n 'class': normalizeClass([\n 'jv-code',\n {\n open: $data.expandCode,\n boxed: $props.boxed\n }\n ])\n }, [createVNode(_component_json_box, {\n ref: 'jsonBox',\n value: $options.parseValue,\n sort: $props.sort,\n 'preview-mode': $props.previewMode\n }, null, 8, [\n 'value',\n 'sort',\n 'preview-mode'\n ])], 2),\n $data.expandableCode && $props.boxed ? (openBlock(), createElementBlock('div', {\n key: 1,\n 'class': 'jv-more',\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.toggleExpandCode && $options.toggleExpandCode.apply($options, arguments);\n })\n }, [createElementVNode('span', {\n 'class': normalizeClass([\n 'jv-toggle',\n { open: !!$data.expandCode }\n ])\n }, null, 2)])) : createCommentVNode('v-if', true)\n ], 2);\n}\n\nscript.render = render;\nscript.__file = \"src/Components/json-viewer.vue\";\n\nvar install = function install(app) {\n app.component(script.name, script);\n};\nvar index = { install: install };\n\nexport { script as JsonViewer, index as default };\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","/*\r\n\r\n\t国际化,网页自动翻译。\r\n\t作者:管雷鸣\r\n\t开原仓库:https://github.com/xnx3/translate\r\n */ \r\nif(typeof(translate) == 'object' && typeof(translate.version) == 'string'){\r\n\tthrow new Error('translate.js 已经加载过一次了,当前是重复加载,避免你的翻译出现异常,已帮你拦截此次加载。本信息只是给你一个提示,你可以检查一下你的项目中是否出现了重复引入 translate.js ,当然,这个异常并不会影响到你的具体使用,它已经自动帮你处理拦截了这个异常,只不过提示出来是让你知道,你的代码里出现了重复引入的情况。');\r\n}\r\nvar translate = {\r\n\t/**\r\n\t * 当前的版本\r\n\t * 由 npm 脚本自动更新,无需手动修改\r\n\t * 格式:major.minor.patch.date\r\n\t */\r\n\t// AUTO_VERSION_START\n\tversion: '3.13.12.20250307',\n\t// AUTO_VERSION_END\r\n\t/*\r\n\t\t当前使用的版本,默认使用v2. 可使用 setUseVersion2(); \r\n\t\t来设置使用v2 ,已废弃,主要是区分是否是v1版本来着,v2跟v3版本是同样的使用方式\r\n\t*/\r\n\tuseVersion:'v2',\t\r\n\tsetUseVersion2:function(){\r\n\t\ttranslate.useVersion = 'v2';\r\n\t\tconsole.log('提示:自 v2.10 之后的版本默认就是使用V2版本(当前版本为:'+translate.version+'), translate.setUseVersion2() 可以不用再加这一行了。当然加了也无所谓,只是加了跟不加是完全一样的。');\r\n\t},\r\n\t/*\r\n\t * 翻译的对象,也就是 new google.translate.TranslateElement(...)\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\ttranslate:null,\r\n\t/*\r\n\t * 支持哪些语言切换,包括:de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr\r\n\t * 已废弃,请使用 translate.selectLanguageTag.languages \r\n\t */\r\n\tincludedLanguages:'zh-CN,zh-TW,en',\r\n\t/*\r\n\t * 资源文件url的路径\r\n\t * 已废弃,v1使用的\r\n \t */\r\n\tresourcesUrl:'//res.zvo.cn/translate',\r\n\r\n\t/**\r\n\t * 默认出现的选择语言的 select 选择框,可以通过这个选择切换语言。\r\n\t */\r\n\tselectLanguageTag:{\r\n\t\t/*\r\n\t\t\tv3.1 增加,将 select切换语言的选择框赋予哪个id,这里是具体的id的名字。\r\n\t\t\t如果这个id不存在,会创建这个id的元素\r\n\t\t*/\r\n\t\tdocumentId:'translate',\r\n\t\t/* 是否显示 select选择语言的选择框,true显示; false不显示。默认为true */\r\n\t\tshow:true,\r\n\t\t/* \r\n\t\t\t支持哪些语言切换\r\n\t\t\tv1.x 版本包括:de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr \r\n\t\t\tv2.x 版本根据后端翻译服务不同,支持的语言也不同。具体支持哪些,可通过 http://api.translate.zvo.cn/doc/language.json.html 获取 (如果您私有部署的,将请求域名换为您自己私有部署的域名)\r\n\t\t*/\r\n\t\tlanguages:'',\r\n\t\talreadyRender:false, //当前是否已渲染过了 true为是 v2.2增加\r\n\t\tselectOnChange:function(event){\r\n\t\t\tvar language = event.target.value;\r\n\t\t\ttranslate.changeLanguage(language);\r\n\t\t},\r\n\t\t//重新绘制 select 语种下拉选择。比如进行二次开发过translate.js,手动进行了设置 translate.to ,但是手动改动后的,在select语种选择框中并不会自动进行改变,这是就需要手动重新绘制一下 select语种选择的下拉选择框\r\n\t\trefreshRender:function(){\r\n\t\t\t// 获取元素\r\n\t\t\tlet element = document.getElementById(translate.selectLanguageTag.documentId+\"SelectLanguage\");\r\n\r\n\t\t\t// 删除元素\r\n\t\t\tif (element) {\r\n\t\t\t\telement.parentNode.removeChild(element);\r\n\t\t\t}\r\n\r\n\t\t\t//设置为未 render 状态,允许进行 render\r\n\t\t\ttranslate.selectLanguageTag.alreadyRender = false;\t\r\n\r\n\t\t\ttranslate.selectLanguageTag.render();\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t\t自定义切换语言的样式渲染 v3.2.4 增加\r\n\t\t\t\r\n\t\t*/\r\n\t\tcustomUI:function(languageList){\r\n\t\t\t//select的onchange事件\r\n\t\t\tvar onchange = function(event){ translate.selectLanguageTag.selectOnChange(event); }\r\n\t\t\t\r\n\t\t\t//创建 select 标签\r\n\t\t\tvar selectLanguage = document.createElement(\"select\"); \r\n\t\t\tselectLanguage.id = translate.selectLanguageTag.documentId+'SelectLanguage';\r\n\t\t\tselectLanguage.className = translate.selectLanguageTag.documentId+'SelectLanguage';\r\n\t\t\tvar to = translate.language.getCurrent();\r\n\t\t\tfor(var i = 0; i 0){\r\n\t\t\t\t\t//设置了自定义显示的语言\r\n\r\n\t\t\t\t\t//都转小写判断\r\n\t\t\t\t\tvar langs_indexof = (','+translate.selectLanguageTag.languages+',').toLowerCase();\r\n\t\t\t\t\t//console.log(langs_indexof)\r\n\t\t\t\t\tif(langs_indexof.indexOf(','+languageList[i].id.toLowerCase()+',') < 0){\r\n\t\t\t\t\t\t//没发现,那不显示这个语种,调出\r\n\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*判断默认要选中哪个语言*/\r\n\r\n\t\t\t if(to != null && typeof(to) != 'undefined' && to.length > 0){\r\n\t\t\t\t\t//设置了目标语言,那就进行判断显示目标语言\r\n\t\t\t\t\tif(to == languageList[i].id){\r\n\t\t\t\t\t\toption.setAttribute(\"selected\",'selected');\r\n\t\t\t\t\t}\r\n\t\t\t }else{\r\n\t\t\t\t\t//没设置目标语言,那默认选中当前本地的语种\r\n\t\t\t\t\tif(languageList[i].id == translate.language.getLocal()){\r\n\t\t\t\t\t\toption.setAttribute(\"selected\",'selected');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t option.appendChild(document.createTextNode(languageList[i].name)); \r\n\t\t\t selectLanguage.appendChild(option);\r\n\t\t\t}\r\n\t\t\t//增加 onchange 事件\r\n\t\t\tif(window.addEventListener){ // Mozilla, Netscape, Firefox \r\n\t\t\t\tselectLanguage.addEventListener('change', onchange,false); \r\n\t\t\t}else{ // IE \r\n\t\t\t\tselectLanguage.attachEvent('onchange',onchange); \r\n\t\t\t} \r\n\r\n\t\t\t//将select加入进网页显示\r\n\t\t\tdocument.getElementById(translate.selectLanguageTag.documentId).appendChild(selectLanguage);\r\n\t\t\t\t\r\n\t\t},\r\n\t\trender:function(){ //v2增加\r\n\t\t\tif(translate.selectLanguageTag.alreadyRender){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\ttranslate.selectLanguageTag.alreadyRender = true;\r\n\t\t\t\r\n\t\t\t//判断如果不显示select选择语言,直接就隐藏掉\r\n\t\t\tif(!translate.selectLanguageTag.show){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//判断translate 的id是否存在,不存在就创建一个\r\n\t\t\tif(document.getElementById(translate.selectLanguageTag.documentId) == null){\r\n\t\t\t\tvar findBody = document.getElementsByTagName('body');\r\n\t\t\t\tif(findBody.length == 0){\r\n\t\t\t\t\tconsole.log('body tag not find, translate.selectLanguageTag.render() is not show Select Language');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar body_trans = findBody[0];\r\n\t\t\t\tvar div = document.createElement(\"div\"); //创建一个script标签\r\n\t\t\t\tdiv.id=translate.selectLanguageTag.documentId;\r\n\t\t\t\tbody_trans.appendChild(div);\r\n\t\t\t}else{\r\n\t\t\t\t//存在,那么判断一下 select是否存在,要是存在就不重复创建了\r\n\t\t\t\tif(document.getElementById(translate.selectLanguageTag.documentId+'SelectLanguage') != null){\r\n\t\t\t\t\t//select存在了,就不重复创建了\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//从服务器加载支持的语言库\r\n\t\t\ttranslate.request.post(translate.request.api.language, {}, function(data){\r\n\t\t\t\tif(data.result == 0){\r\n\t\t\t\t\tconsole.log('load language list error : '+data.info);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\ttranslate.selectLanguageTag.customUI(data.list);\r\n\r\n\t\t\t\t/*\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById('translateSelectLanguage').style.width = '94px';\r\n\t\t\t\t}catch(e){ console.log(e);} \r\n\t\t\t\t*/\r\n\t\t\t}, null);\r\n\t\t\t\r\n\t\t\t\r\n\t\t}\r\n\t},\r\n\t\r\n\t/*\r\n\t * 当前本地语言\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\t//localLanguage:'zh-CN',\r\n\tlocalLanguage:'zh-CN',\r\n\t\r\n\t/**\r\n\t * google翻译执行的\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\tgoogleTranslateElementInit:function(){\r\n\t\tvar selectId = '';\r\n\t\tif(document.getElementById('translate') != null){\t// && document.getElementById('translate').innerHTML.indexOf('translateSelectLanguage') > 0\r\n\t\t\t//已经创建过了,存在\r\n\t\t\tselectId = 'translate';\r\n\t\t}\r\n\t\t\r\n\t\ttranslate.translate = new google.translate.TranslateElement(\r\n\t\t\t{\r\n\t\t\t\t//这参数没用,请忽略\r\n\t\t\t\tpageLanguage: 'zh-CN',\r\n\t\t\t\t//一共80种语言选择,这个是你需要翻译的语言,比如你只需要翻译成越南和英语,这里就只写en,vi\r\n\t\t\t\t//includedLanguages: 'de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr',\r\n\t includedLanguages: translate.selectLanguageTag.languages,\r\n\t\t\t\t//选择语言的样式,这个是面板,还有下拉框的样式,具体的记不到了,找不到api~~ \r\n\t\t\t\tlayout: 0,\r\n\t\t\t\t//自动显示翻译横幅,就是翻译后顶部出现的那个,有点丑,设置这个属性不起作用的话,请看文章底部的其他方法\r\n\t\t\t\t//autoDisplay: false, \r\n\t\t\t\t//disableAutoTranslation:false,\r\n\t\t\t\t//还有些其他参数,由于原插件不再维护,找不到详细api了,将就了,实在不行直接上dom操作\r\n\t\t\t}, \r\n\t\t\tselectId //触发按钮的id\r\n\t\t);\r\n\t},\r\n\t\r\n\t/**\r\n\t * 初始化,如加载js、css资源\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\t/* v2.11.11.20240124 彻底注释掉,有新的init方法替代\r\n\tinit:function(){\r\n\t\tvar protocol = window.location.protocol;\r\n\t\tif(window.location.protocol == 'file:'){\r\n\t\t\t//本地的,那就用http\r\n\t\t\tprotocol = 'http:';\r\n\t\t}\r\n\t\tif(this.resourcesUrl.indexOf('://') == -1){\r\n\t\t\t//还没设置过,进行设置\r\n\t\t\tthis.resourcesUrl = protocol + this.resourcesUrl;\r\n\t\t}\r\n\t\t\r\n\t\t//this.resourcesUrl = 'file://G:/git/translate';\r\n\t\t\r\n\t},\r\n\t*/\r\n\t/**\r\n\t * 执行翻译操作\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\texecute_v1:function(){\r\n\t\tconsole.log('=====ERROR======');\r\n\t\tconsole.log('The v1 version has been discontinued since 2022. Please use the latest V3 version and refer to: http://translate.zvo.cn/41162.html');\r\n\t},\r\n\t\r\n\t/**\r\n\t * 设置Cookie,失效时间一年。\r\n\t * @param name\r\n\t * @param value\r\n\t * * 已废弃,v1使用的\r\n\t */\r\n\tsetCookie:function (name,value){\r\n\t\tvar cookieString=name+\"=\"+escape(value); \r\n\t\tdocument.cookie=cookieString; \r\n\t},\r\n\r\n\t//获取Cookie。若是不存再,返回空字符串\r\n\t//* 已废弃,v1使用的\r\n\tgetCookie:function (name){ \r\n\t\tvar strCookie=document.cookie; \r\n\t\tvar arrCookie=strCookie.split(\"; \"); \r\n\t\tfor(var i=0;i 0){\r\n\t\t\treturn cookieValue.substr(cookieValue.lastIndexOf('/')+1,cookieValue.length-1);\r\n\t\t}else{\r\n\t\t\treturn translate.localLanguage;\r\n\t\t}\r\n\t},\r\n\t\r\n\t/**\r\n\t * 切换语言,比如切换为英语、法语\r\n \t * @param languageName 要切换的语言语种。传入如 english\r\n\t * \t\t\t\t会自动根据传入的语言来判断使用哪种版本。比如传入 en、zh-CN 等,则会使用v1.x版本\r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t\t\t传入 chinese_simplified 、english 等,则会使用 v2.x版本\r\n\t */\r\n\tchangeLanguage:function(languageName){\r\n\t\t//判断使用的是否是v1.x\r\n\t\tvar v1 = ',en,de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr,';\r\n\t\tif(v1.indexOf(','+languageName+',') > -1){\r\n\t\t\t//用的是v1.x\r\n\t\t\tconsole.log('您使用的是v1版本的切换语种方式,v1已在2021年就以废弃,请更换为v2,参考文档: http://translate.zvo.cn/41549.html');\r\n\t\t\ttranslate.check();\r\n\t\t\t\r\n\t\t\tvar googtrans = '/'+translate.localLanguage+'/'+languageName;\r\n\t\t\t\r\n\t\t\t//先清空泛解析域名的设置\r\n\t\t\tvar s = document.location.host.split('.');\r\n\t\t\tif(s.length > 2){\r\n\t\t\t\tvar fanDomain = s[s.length-2]+'.'+s[s.length-1];\r\n\t\t\t\tdocument.cookie = 'googtrans=;expires='+(new Date(1))+';domain='+fanDomain+';path=/';\r\n\t\t\t\tdocument.cookie = 'googtrans='+googtrans+';domain='+fanDomain+';path=/';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\ttranslate.setCookie('googtrans', ''+googtrans);\r\n\t\t\ttranslate.refreshCurrentPage();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\t//用的是v2.x或更高\r\n\t\t//translate.setUseVersion2();\r\n\t\ttranslate.useVersion = 'v2';\r\n\t\t//判断是否是第一次翻译,如果是,那就不用刷新页面了。 true则是需要刷新,不是第一次翻译\r\n\t\tif(translate.to != null && translate.to.length > 0){\r\n\t\t\t//当前目标值有值,且目标语言跟当前语言不一致,那当前才是已经被翻译过的\r\n\t\t\tif(translate.to != translate.language.getLocal()){\r\n\t\t\t\tvar isReload = true; //标记要刷新页面\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\ttranslate.to = languageName;\r\n\t\ttranslate.storage.set('to',languageName);\t//设置目标翻译语言\r\n\t\t\r\n\t\tif(isReload){\r\n\t\t\tlocation.reload(); //刷新页面\r\n\t\t}else{\r\n\t\t\t//不用刷新,直接翻译\r\n\t\t\ttranslate.execute(); //翻译\r\n\r\n\t\t\t//检测是否有iframe中的子页面,如果有,也对子页面下发翻译命令。这个是针对 LayuiAdmin 框架的场景适配,它的主体区域是在 iframe 中的,不能点击切换语言后,只翻译外面的大框,而iframe中的不翻译\r\n\t\t\tconst iframes = document.querySelectorAll('iframe');\r\n\t\t\tfor (let i = 0; i < iframes.length; i++) {\r\n\t\t\t\tconst iframe = iframes[i];\r\n\t\t\t\t// 获取 iframe 的 window 对象\r\n\t\t\t\tconst iframeWindow = iframe.contentWindow; \r\n\t\t\t\tif(typeof(iframeWindow.translate) == 'object' && typeof(iframeWindow.translate.version) == 'string'){\r\n\t\t\t\t\t//iframe页面中存在 translate,那么也控制iframe中的进行翻译\r\n\t\t\t\t\tiframeWindow.translate.execute();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\r\n\t/**\r\n\t * 自检提示,适用于 v1.x, 在 v2.x中已废弃\r\n\t * english\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\tcheck:function(){\r\n\t\tif(window.location.protocol == 'file:'){\r\n\t\t\tconsole.log('\\r\\n---WARNING----\\r\\ntranslate.js 主动翻译组件自检异常,当前协议是file协议,翻译组件要在正常的线上http、https协议下才能正常使用翻译功能\\r\\n------------');\r\n\t\t}\r\n\t},\r\n\t\r\n\t\r\n\t/**************************** v2.0 */\r\n\tto:'', //翻译为的目标语言,如 english 、chinese_simplified\r\n\t//用户第一次打开网页时,自动判断当前用户所在国家使用的是哪种语言,来自动进行切换为用户所在国家的语种。\r\n\t//如果使用后,第二次在用,那就优先以用户所选择的为主,这个就不管用了\r\n\t//默认是false,不使用,可设置true:使用\r\n\t//使用 setAutoDiscriminateLocalLanguage 进行设置\r\n\tautoDiscriminateLocalLanguage:false,\r\n\tdocuments:[], //指定要翻译的元素的集合,可设置多个,如设置: document.getElementsByTagName('DIV')\r\n\t/*\r\n\t\tv2.11.5增加\r\n\t\t正在进行翻译的节点,会记录到此处。\r\n\t\t这里是最底的节点了,不会再有下级了。这也就是翻译的最终节点,也就是 translate.element.findNode() 发现的节点\r\n\t\t也就是扫描到要进行翻译的节点,在翻译前,加入到这里,在这个节点翻译结束后,将这里面记录的节点删掉。\r\n\t\t\r\n\t\t格式如 \r\n\t\t\t[\r\n\t\t\t\t{\r\n\t\t\t\t\tnode: node节点的对象\r\n\t\t\t\t\tnumber: 2 (当前正在翻译进行中的次数,比如一个节点有中英文混合的文本,那么中文、英文 会同时进行两次翻译,也就是最后要进行两次替换,会导致这个node产生两次改动。每次便是+1、-1)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t......\r\n\t\t\t\t}\r\n\t\t\t]\r\n\r\n\t\t生命周期:\r\n\t\t\r\n\t\ttranslate.execute() 执行后,会扫描要翻译的字符,扫描完成后首先会判断缓存中是否有,是否会命中缓存,如果缓存中有,那么在加入 task.add 之前就会将这个进行记录 ++ \r\n\t\t在浏览器缓存没有命中后,则会通过网络api请求进行翻译,此时在发起网络请求前,会进行记录 ++\r\n\t\t当使用 translate.listener.start() 后,网页中动态渲染的部分会触发监听,触发监听后首先会判断这个节点是否存在于这里面正在被翻译,如果存在里面,那么忽略, 如果不存在里面,那么再进行 translate.execute(变动的节点) 进行翻译 (当然执行这个翻译后,自然也就又把它加入到此处进行记录 ++)\r\n\t\t【唯一的减去操作】 在task.execute() 中,翻译完成并且渲染到页面执行完成后,会触发延迟50毫秒后将这个翻译的节点从这里减去\r\n\t*/\r\n\tinProgressNodes:[], \r\n\t//翻译时忽略的一些东西,比如忽略某个tag、某个class等\r\n\tignore:{\r\n\t\ttag:['style', 'script', 'link', 'pre', 'code'],\r\n\t\tclass:['ignore','translateSelectLanguage'],\r\n\t\tid:[],\r\n\t\t/*\r\n\t\t\t传入一个元素,判断这个元素是否是被忽略的元素。 这个会找父类,看看父类中是否包含在忽略的之中。\r\n\t\t\treturn true是在忽略的之中,false不再忽略的之中\r\n\t\t*/\r\n\t\tisIgnore:function(ele){\r\n\t\t\tif(ele == null || typeof(ele) == 'undefined'){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar parentNode = ele;\r\n\t\t\tvar maxnumber = 100;\t//最大循环次数,避免死循环\r\n\t\t\twhile(maxnumber-- > 0){\r\n\t\t\t\tif(parentNode == null || typeof(parentNode) == 'undefined'){\r\n\t\t\t\t\t//没有父元素了\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断Tag\r\n\t\t\t\t//var tagName = parentNode.nodeName.toLowerCase(); //tag名字,小写\r\n\t\t\t\tvar nodename = translate.element.getNodeName(parentNode).toLowerCase(); //tag名字,小写\r\n\t\t\t\tif(nodename.length > 0){\r\n\t\t\t\t\t//有nodename\r\n\t\t\t\t\tif(nodename == 'body' || nodename == 'html' || nodename == '#document'){\r\n\t\t\t\t\t\t//上层元素已经是顶级元素了,那肯定就不是了\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(translate.ignore.tag.indexOf(nodename) > -1){\r\n\t\t\t\t\t\t//发现ignore.tag 当前是处于被忽略的 tag\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\t\t\t\t//判断class name\r\n\t\t\t\tif(parentNode.className != null){\r\n\t\t\t\t\tvar classNames = parentNode.className;\r\n\t\t\t\t\tif(classNames == null || typeof(classNames) != 'string'){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('className:'+typeof(classNames));\r\n\t\t\t\t\t//console.log(classNames);\r\n\t\t\t\t\tclassNames = classNames.trim().split(' ');\r\n\t\t\t\t\tfor(var c_index = 0; c_index < classNames.length; c_index++){\r\n\t\t\t\t\t\tif(classNames[c_index] != null && classNames[c_index].trim().length > 0){\r\n\t\t\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\t\t\tif(translate.ignore.class.indexOf(classNames[c_index]) > -1){\r\n\t\t\t\t\t\t\t\t//发现ignore.class 当前是处于被忽略的 class\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断id\r\n\t\t\t\tif(parentNode.id != null && typeof(parentNode.id) != 'undefined'){\r\n\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\tif(translate.ignore.id.indexOf(parentNode.id) > -1){\r\n\t\t\t\t\t\t//发现ignore.id 当前是处于被忽略的 id\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//赋予判断的元素向上一级\r\n\t\t\t\tparentNode = parentNode.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t * 忽略不被翻译的文本,这里出现的文本将不会被翻译。\r\n\t\t * 这个其实是借用了 自定义术语 的能力,设置了自定义术语的原字符等于翻译后的字符, 于是这个字符就不会被翻译了\r\n\t\t * 这里可以是多个,数组,如 ['你好','世界']\r\n\t\t */\r\n\t\ttext:[]\r\n\r\n\t},\r\n\t//刷新页面,你可以自定义刷新页面的方式,比如在 uniapp 打包生成 apk 时,apk中的刷新页面就不是h5的这个刷新,而是app的刷新方式,就需要自己进行重写这个刷新页面的方法了\r\n\trefreshCurrentPage:function(){\r\n\t\tlocation.reload();\r\n\t},\r\n\t//自定义翻译术语\r\n\tnomenclature:{\r\n\t\t/*\r\n\t\t\t术语表\r\n\t\t\t一维:要转换的语种,如 english\r\n\t\t\t二维:翻译至的目标语种,如 english\r\n\t\t\t三维:要转换的字符串,如 \"你好\"\r\n\t\t\t结果:自定义的翻译结果,如 “Hallo”\r\n\t\t*/\r\n\t\tdata:new Array(),\r\n\t\t\r\n\t\t/*\r\n\t\t\t原始术语表,可编辑的\r\n\t\t\t一维:要自定义目标词\r\n\t\t\t二维:针对的是哪个语种\r\n\t\t\t值:要翻译为什么内容\r\n\r\n\t\t\t其设置如 \r\n\t\t\tvar data = new Array();\r\n\t\t\tdata['版本'] = {\r\n\t\t\t\tenglish : 'banben',\r\n\t\t\t\tkorean : 'BanBen'\r\n\t\t\t};\r\n\t\t\tdata['国际化'] = {\r\n\t\t\t\tenglish : 'guojihua',\r\n\t\t\t\tkorean : 'GuoJiHua'\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\t【已过时】\r\n\t\t*/\r\n\t\told_Data:[],\r\n\t\t/*\r\n\t\tset:function(data){\r\n\t\t\ttranslate.nomenclature.data = data;\r\n\t\t},\r\n\t\t*/\r\n\t\tset:function(data){\r\n\t\t\talert('请将 translate.nomenclature.set 更换为 append,具体使用可参考: https://github.com/xnx3/translate ');\r\n\t\t},\r\n\t\t/*\r\n\t\t\t向当前术语库中追加自定义术语。如果追加的数据重复,会自动去重\r\n\t\t\t传入参数:\r\n\t\t\t\tfrom 要转换的语种\r\n\t\t\t\tto 翻译至的目标语种\r\n\t\t\t\tproperties 属于配置表,格式如:\r\n\t\t\t\t\t\t你好=Hello\r\n\t\t\t\t\t\t世界=ShiJie\r\n\r\n\t\t*/\r\n\t\tappend:function(from, to, properties){\r\n\t\t\tif(typeof(translate.nomenclature.data[from]) == 'undefined'){\r\n\t\t\t\ttranslate.nomenclature.data[from] = new Array();\r\n\t\t\t}\r\n\t\t\tif(typeof(translate.nomenclature.data[from][to]) == 'undefined'){\r\n\t\t\t\ttranslate.nomenclature.data[from][to] = new Array();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//将properties进行分析\r\n\t\t\t//按行拆分\r\n\t\t\tvar line = properties.split('\\n');\r\n\t\t\t//console.log(line)\r\n\t\t\tfor(var line_index = 0; line_index < line.length; line_index++){\r\n\t\t\t\tvar item = line[line_index].trim();\r\n\t\t\t\tif(item.length < 1){\r\n\t\t\t\t\t//空行,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar kvs = item.split('=');\r\n\t\t\t\t//console.log(kvs)\r\n\t\t\t\tif(kvs.length != 2){\r\n\t\t\t\t\t//不是key、value构成的,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar key = kvs[0].trim();\r\n\t\t\t\tvar value = kvs[1].trim();\r\n\t\t\t\t//console.log(key)\r\n\t\t\t\tif(key.length == 0 || value.length == 0){\r\n\t\t\t\t\t//其中某个有空,则忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t//加入,如果之前有加入,则会覆盖\r\n\t\t\t\ttranslate.nomenclature.data[from][to][key] = value;\r\n\t\t\t\t//console.log(local+', '+target+', key:'+key+', value:'+value);\r\n\t\t\t}\r\n\r\n\t\t\t//追加完后,对整个对象数组进行排序,key越大越在前面\r\n\t\t\ttranslate.nomenclature.data[from][to] = translate.util.objSort(translate.nomenclature.data[from][to]);\r\n\r\n\t\t},\r\n\t\t//获取当前定义的术语表\r\n\t\tget:function(){\r\n\t\t\treturn translate.nomenclature.data;\r\n\t\t},\r\n\t\t//对传入的str字符进行替换,将其中的自定义术语提前进行替换,然后将替换后的结果返回\r\n\t\t//v3.11 后此方法已废弃,不再使用\r\n\t\tdispose:function(str){\r\n\t\t\tif(str == null || str.length == 0){\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t\t//if(translate.nomenclature.data.length == 0){\r\n\t\t\t//\treturn str;\r\n\t\t\t//}\r\n\t\t\t//判断当前翻译的两种语种是否有自定义术语库\r\n\t\t\t//console.log(typeof(translate.nomenclature.data[translate.language.getLocal()][translate.to]))\r\n\t\t\tif(typeof(translate.nomenclature.data[translate.language.getLocal()]) == 'undefined' || typeof(translate.nomenclature.data[translate.language.getLocal()][translate.to]) == 'undefined'){\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t\t//console.log(str)\r\n\t\t\tfor(var originalText in translate.nomenclature.data[translate.language.getLocal()][translate.to]){\r\n\t\t\t\tvar translateText = translate.nomenclature.data[translate.language.getLocal()][translate.to][originalText];\r\n\t\t\t\tif(typeof(translateText) == 'function'){\r\n\t\t\t\t\t//进行异常的预处理调出\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar index = str.indexOf(originalText);\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\t//console.log('find -- '+originalText+', \\t'+translateText);\r\n\t\t\t\t\tif(translate.language.getLocal() == 'english'){\r\n\t\t\t\t\t\t//如果本地语种是英文,那么还要判断它的前后,避免比如要替换 is 将 display 中的is给替换,将单词给强行拆分了\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//判断这个词前面是否符合\r\n\t\t\t\t\t\tvar beforeChar = '';\t//前面的字符\r\n\t\t\t\t\t\tif(index == 0){\r\n\t\t\t\t\t\t\t//前面没别的字符了,那前面合适\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//前面有别的字符,判断是什么字符,如果是英文,那么这个是不能被拆分的,要忽略\r\n\t\t\t\t\t\t\tbeforeChar = str.substr(index-1,1);\r\n\t\t\t\t\t\t\t//console.log('beforeChar:'+beforeChar+', str:'+str)\r\n\t\t\t\t\t\t\tvar lang = translate.language.getCharLanguage(beforeChar);\r\n\t\t\t\t\t\t\t//console.log(lang);\r\n\t\t\t\t\t\t\tif(lang == 'english' || lang == 'romance'){\r\n\t\t\t\t\t\t\t\t//调出,不能强拆\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//判断这个词的后面是否符合\r\n\t\t\t\t\t\tvar afterChar = ''; //后面的字符\r\n\t\t\t\t\t\tif(index + originalText.length == str.length ){\r\n\t\t\t\t\t\t\t//后面没别的字符了,那前面合适\r\n\t\t\t\t\t\t\t//console.log(originalText+', meile '+str)\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//后面有别的字符,判断是什么字符,如果是英文,那么这个是不能被拆分的,要忽略\r\n\t\t\t\t\t\t\tafterChar = str.substr(index+originalText.length,1);\r\n\t\t\t\t\t\t\tvar lang = translate.language.getCharLanguage(afterChar);\r\n\t\t\t\t\t\t\tif(lang == 'english' || lang == 'romance'){\r\n\t\t\t\t\t\t\t\t//跳出,不能强拆\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tstr = str.replace(new RegExp(beforeChar+originalText+afterChar,'g'), beforeChar+translateText+afterChar);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//其他情况,如汉语、汉语等语种\r\n\t\t\t\t\t\tstr = str.replace(new RegExp(originalText,'g'), translateText);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn str;\r\n\r\n\t\t\t/*\r\n\t\t\t//遍历一维\r\n\t\t\tfor(var originalText in translate.nomenclature.data){\r\n\t\t\t\tvar languageResult = translate.nomenclature.data[originalText];\r\n\t\t\t\tif(typeof(languageResult) == 'function'){\r\n\t\t\t\t\t//进行异常的预处理调出\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof(languageResult[translate.to]) == 'undefined'){\r\n\t\t\t\t\t//console.log('und');\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//var hash = translate.util.hash(originalText);\r\n\r\n\t\t\t\t//console.log(originalText+',\\t'+str);\r\n\t\t\t\tif(str.indexOf(originalText) > -1){\r\n\t\t\t\t\t//console.log('find -- '+originalText+', \\t'+languageResult[translate.to]);\r\n\t\t\t\t\tstr = str.replace(new RegExp(originalText,'g'),languageResult[translate.to]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\treturn str;\r\n\t\t\t*/\r\n\t\t},\r\n\t\t\r\n\t},\r\n\r\n\toffice:{\r\n\t\t/*\r\n\t\t\t网页上翻译之后,自动导出当前页面的术语库\r\n\t\t\t\r\n\t\t\t需要先指定本地语种,会自动将本地语种进行配置术语库\r\n\t\t\t\r\n\t\t*/\r\n\t\texport:function(){\r\n\t\t\tif(translate.language.getLocal() == translate.language.getCurrent()){\r\n\t\t\t\talert('本地语种跟要翻译的语种一致,无需导出');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar text = '';\r\n\t\t\tfor(var uuid in translate.nodeQueue){\r\n\t\t\t\tvar queueValue = translate.nodeQueue[uuid];\r\n\t\t\t\tfor(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\t\t//console.log('------'+lang)\r\n\t\t\t\t\tif(typeof(lang) != 'string' || lang.length < 1){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if(translate.language.getLocal() == lang){\r\n\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang]);\r\n\t\t\t\t\t\tfor(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].original);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].original);\r\n\t\t\t\t\t\t\ttext = text + '\\n' + translate.nodeQueue[uuid].list[lang][hash].original + '='+translate.storage.get('hash_'+translate.language.getCurrent()+'_'+hash);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t//}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tif(text.length > 0){\r\n\t\t\t\t//有内容\r\n\t\t\t\ttext = 'translate.office.append(\\''+translate.language.getCurrent()+'\\',`'+text+'\\n`);';\r\n\t\t\t\t//console.log(text);\r\n\t\t\t\ttranslate.util.loadMsgJs();\r\n\t\t\t\tmsg.popups({\r\n\t\t\t\t text:'',\r\n\t\t\t\t width:'750px',\r\n\t\t\t\t height:'600px',\r\n\t\t\t\t padding:'1px',\r\n\t\t\t\t});\t\r\n\t\t\t\tdocument.getElementById('msgPopupsTextarea').value = text;\r\n\t\t\t}else{\r\n\t\t\t\tmsg.alert('无有效内容!');\r\n\t\t\t}\r\n\r\n\r\n\t\t},\r\n\t\t//显示导出面板\r\n\t\tshowPanel:function(){\r\n\t\t\tlet panel = document.createElement('div');\r\n\t\t\tpanel.setAttribute('id', 'translate_export');\r\n\t\t\tpanel.setAttribute('class','ignore');\r\n\r\n\t\t\t//导出按钮\r\n\t\t\tlet button = document.createElement('button');\r\n\t\t\tbutton.onclick = function() {\r\n\t\t\t translate.office.export();\r\n\t\t\t};\r\n\t\t\tbutton.innerHTML = '导出配置信息';\r\n\t\t\tbutton.setAttribute('style', 'margin-left: 72px; margin-top: 30px; margin-bottom: 20px; font-size: 25px; background-color: blue; padding: 15px; padding-top: 3px; padding-bottom: 3px; border-radius: 3px;');\r\n\t\t\tpanel.appendChild(button);\r\n\r\n\t\t\t//说明文字\r\n\t\t\tlet textdiv = document.createElement('div');\r\n\t\t\ttextdiv.innerHTML = '1. 首先将当前语种切换为你要翻译的语种
2. 点击导出按钮,将翻译的配置信息导出
3. 将导出的配置信息粘贴到代码中,即可完成
点此进行查阅详细使用说明';\r\n\t\t\ttextdiv.setAttribute('style','font-size: 14px; padding: 12px;');\r\n\r\n\t\t\tpanel.appendChild(textdiv);\t\t\t\r\n\t\t\t\r\n\t\t\tpanel.setAttribute('style', 'background-color: black; color: #fff; width: 320px; height: 206px; position: fixed; bottom: 50px; right: 50px;');\r\n\t\t\t//把元素节点添加到body元素节点中成为其子节点,放在body的现有子节点的最后\r\n\t\t\tdocument.body.appendChild(panel);\r\n\r\n\t\t\ttranslate.util.loadMsgJs();\r\n\t\t},\r\n\t\t/*\r\n\t\t\t追加离线翻译数据。如果追加的数据重复,会自动去重\r\n\t\t\t传入参数:\r\n\t\t\t\tfrom 要转换的语种\r\n\t\t\t\tto 翻译至的目标语种\r\n\t\t\t\tproperties 属于配置表,格式如:\r\n\t\t\t\t\t\t你好=Hello\r\n\t\t\t\t\t\t世界=ShiJie\r\n\t\t\t这个传入参数跟 translate.nomenclature.append 的传入参数格式是一致的\t\t\t\r\n\t\t*/\r\n\t\tappend:function(to, properties){\r\n\t\t\t//console.log(properties)\r\n\t\t\t//将properties进行分析\r\n\t\t\t//按行拆分\r\n\t\t\tvar line = properties.split('\\n');\r\n\t\t\t//console.log(line)\r\n\t\t\tfor(var line_index = 0; line_index < line.length; line_index++){\r\n\t\t\t\tvar item = line[line_index].trim();\r\n\t\t\t\tif(item.length < 1){\r\n\t\t\t\t\t//空行,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar kvs = item.split('=');\r\n\t\t\t\t//console.log(kvs)\r\n\t\t\t\tif(kvs.length != 2){\r\n\t\t\t\t\t//不是key、value构成的,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar key = kvs[0];\r\n\t\t\t\tvar value = kvs[1];\r\n\t\t\t\t//console.log(key)\r\n\t\t\t\tif(key.length == 0 || value.length == 0){\r\n\t\t\t\t\t//其中某个有空,则忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\t//console.log('set---'+key);\r\n\t\t\t\t//加入 storate\r\n\t\t\t\ttranslate.storage.set('hash_'+to+'_'+translate.util.hash(key), value);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tsetAutoDiscriminateLocalLanguage:function(){\r\n\t\ttranslate.autoDiscriminateLocalLanguage = true;\r\n\t},\r\n\t/*\r\n\t\t待翻译的页面的node队列\r\n\t\t一维:key:uuid,也就是execute每次执行都会创建一个翻译队列,这个是翻译队列的唯一标识。 \r\n\t\t\t value:\r\n\t\t\t\tk/v \r\n\t\t二维:对象形态,具体有:\r\n\t\t\t key:expireTime 当前一维数组key的过期时间,到达过期时间会自动删除掉这个一维数组。如果<0则代表永不删除,常驻内存\r\n\t\t\t value:list 从DOM中自动识别出的语言文本及节点数据,按照语种进行了划分,每个语种便是其中的一项。\r\n\t\t三维:针对二维的value, key:english、chinese_simplified等语种,这里的key便是对value的判断,取value中的要翻译的词是什么语种,对其进行了语种分类 value: k/v\r\n\t\t四维:针对三维的value, key:要翻译的词(经过语种分割的)的hash, value: node数组\r\n\t\t五维:针对四维的value, 这是个对象, 其中\r\n\t\t\t\toriginal: 是三维的key的hash的原始文字, node 元素中的原始文字(可能是node元素整个内容,也可能是被分割出的某一块内容,比如中英文混合时单独提取中文)\r\n\t\t\t\tcacheHash: 如果翻译时匹配到了自定义术语库中的词,那么翻译完后存入到缓存中时,其缓存的翻译前字符串已经不是original,而是匹配完术语库后的文本的hash了。所以这里额外多增加了这个属性。如果匹配了术语库,那这里就是要进行缓存的翻译前文本的hash,如果未使用术语库,这里就跟其key-hash 相同。\r\n\t\t\t\ttranslateText: 针对 original 的经过加工过的文字,比如经过自定义术语、以及其他处理操作后的,待进行文本翻译的文字。\r\n\t\t\t\tnodes: 有哪些node元素中包含了这个词,都会在这里记录\r\n\t\t六维:针对五维的 nodes,将各个具体的 node 以及 其操作的 attribute 以数组形式列出\r\n\t\t七维:针对六维列出的nodes数组,其中包含:\r\n\t\t\t\tnode: 具体操作的node元素\r\n\t\t\t\tattribute: 也就是翻译文本针对的是什么,是node本身(nodeValue),还是 node 的某个属性,比如title属性,这则是设置为 \"title\"。如果这里不为空,那就是针对的属性操作的。 如果这里为空或者undefined ,那就是针对node本身,也就是 nodeValue 的字符串操作的\r\n\t\t\t\tbeforeText: node元素中进行翻译结果赋予时,额外在翻译结果的前面加上的字符串。其应用场景为,如果中英文混合场景下,避免中文跟英文挨着导致翻译为英语后,连到一块了。默认是空字符串 ''\r\n\t\t\t\tafterText: node元素中进行翻译结果赋予时,额外在翻译结果的后面加上的字符串。其应用场景为,如果中英文混合场景下,避免中文跟英文挨着导致翻译为英语后,连到一块了。默认是空字符串 ''\r\n\r\n\t\t生命周期: 当execute()执行时创建, 当execute结束(其中的所有request接收到响应并渲染完毕)时销毁(当前暂时不销毁,以方便调试)\r\n\t*/\r\n\tnodeQueue:{},\r\n\t//指定要翻译的元素的集合,可传入一个元素或多个元素\r\n\t//如设置一个元素,可传入如: document.getElementById('test')\r\n\t//如设置多个元素,可传入如: document.getElementsByTagName('DIV')\r\n\tsetDocuments:function(documents){\r\n\t\tif (documents == null || typeof(documents) == 'undefined') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif(typeof(documents.length) == 'undefined'){\r\n\t\t\t//不是数组,是单个元素\r\n\t\t\ttranslate.documents[0] = documents;\r\n\t\t}else{\r\n\t\t\t//是数组,直接赋予\r\n\t\t\ttranslate.documents = documents;\r\n\t\t}\r\n\t\t//清空翻译队列,下次翻译时重新检索\r\n\t\ttranslate.nodeQueue = {};\r\n\t\t//console.log('set documents , clear translate.nodeQueue');\r\n\t},\r\n\t//获取当前指定翻译的元素(数组形式 [document,document,...])\r\n\t//如果用户未使用setDocuments 指定的,那么返回整个网页\r\n\t//它返回的永远是个数组形式\r\n\tgetDocuments:function(){\r\n\t\tif(translate.documents != null && typeof(translate.documents) != 'undefined' && translate.documents.length > 0){\r\n\t\t\t// setDocuments 指定的\r\n\t\t\treturn translate.documents;\r\n\t\t}else{\r\n\t\t\t//未使用 setDocuments指定,那就是整个网页了\r\n\t\t\t//return document.all; //翻译所有的 这是 v3.5.0之前的\r\n\t\t\t//v3.5.0 之后采用 拿 html的最上层的demo,而不是 document.all 拿到可能几千个dom\r\n\t\t\tvar doms = new Array();\r\n\t\t\tdoms[0] = document.documentElement;\r\n\t\t\treturn doms;\r\n\t\t}\r\n\t},\r\n\t\r\n\tlistener:{\r\n\t\t//当前页面打开后,是否已经执行完execute() 方法进行翻译了,只要执行完一次,这里便是true。 (多种语言的API请求完毕并已渲染html)\r\n\t\t//isExecuteFinish:false,\r\n\t\t//是否已经使用了 translate.listener.start() 了,如果使用了,那这里为true,多次调用 translate.listener.start() 只有第一次有效\r\n\t\tisStart:false,\r\n\t\t//translate.listener.start();\t//开启html页面变化的监控,对变化部分会进行自动翻译。注意,这里变化区域,是指使用 translate.setDocuments(...) 设置的区域。如果未设置,那么为监控整个网页的变化\r\n\t\tstart:function(){\r\n\t\t\t\r\n\t\t\ttranslate.temp_linstenerStartInterval = setInterval(function(){\r\n\t\t\t\tif(document.readyState == 'complete'){\r\n\t\t\t\t\t//dom加载完成,进行启动\r\n\t\t\t\t\tclearInterval(translate.temp_linstenerStartInterval);//停止\r\n\r\n\t\t\t\t\t//如果不需要翻译的情况,是不需要进行监听的\r\n\t\t\t\t\tif(translate.language.getCurrent() == translate.language.getLocal()){\r\n\t\t\t\t\t\tif(translate.language.translateLocal){\r\n\t\t\t\t\t\t\t//本地语种也要强制翻译跟本地语种不一致的语种\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//console.log('本地语种跟目标语种一致,不进行翻译操作,无需监听。');\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//console.log('进行监听。。');\r\n\t\t\t\t\ttranslate.listener.addListener();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//if(translate.listener.isExecuteFinish){ //执行完过一次,那才能使用\r\n\t\t\t\t\t/*if(translate.listener.isStart){\r\n\t\t\t\t\t\t//已开启了\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}*/\r\n\t\t\t\t\t\r\n\t\t\t\t\t//console.log('translate.temp_linstenerStartInterval Finish!');\r\n\t\t\t\t//}\r\n\t }, 300);\r\n\t\t\t\r\n\t\t\t\r\n\t\t},\r\n\t\t/* \r\n\t\t\tkey: nodeid node的唯一标识,格式如 HTML1_BODY1_DIV2_#text1 ,它是使用 nodeuuid.uuid(node) 获得的\r\n\t\t\t\t\t注意,document.getElementById 获得的并不是,需要这样获得 document.getElementById('xx').childNodes[0] 因为它是要给监听dom改动那里用的,监听到的改动的是里面具体的node\r\n\t\t\tvalue:13位时间戳\r\n\t\t*/\r\n\t\tignoreNode:[],\r\n\t\t/*\r\n\t\t\t通过 translate.execute() 触发的翻译,来使node发生的改动,这种改动加入到 ignoreNode 的过期时间是多少。 \r\n\t\t\t单位是毫秒\r\n\t\t*/\r\n\t\ttranslateExecuteNodeIgnoreExpireTime:1000,\r\n\t\t/*\r\n\t\t \t增加一个被listener忽略的节点\r\n\t\t \t这里通常是用于被 translate.js 本身翻译更改的节点、以及像是 Layui 被翻译后触发了渲染改动了dom , 这几种场景都是翻译本身自己触发的,是不需要再被listener触发,不然就形成死循环了\r\n\t\t \tnode 是哪个节点被listener扫描到改动后忽略。\r\n\t\t \t\t可传入 node、也可以传入node的uuid字符串\r\n\t\t \texpireTime 过期时间,也就是执行当前方法将 node 加入后,过多长时间失效,这里是毫秒,比如传入 500 则这个node在当前时间往后的500毫秒内,如果被listener监听到改动,是直接被忽略的,不会触发任何翻译操作\r\n\t\t */\r\n\t\taddIgnore:function(node, expireTime){\r\n\t\t\tlet nodeid = '';\r\n\t\t\tif(typeof(node) == 'string'){\r\n\t\t\t\tnodeid = node;\r\n\t\t\t}else{\r\n\t\t\t\tnodeid = nodeuuid.uuid(node);\r\n\t\t\t}\r\n\r\n\t\t\ttranslate.listener.ignoreNode[nodeid] = Date.now()+expireTime;\r\n\r\n\t\t\t//translate.listener.renderTaskFinish();\r\n\t\t},\r\n\t\t/*\r\n\t\t\t刷新 ignoreNode 中的元素,也就是查找其中 expireTime 过期的,删掉\r\n\t\t*/\r\n\t\trefreshIgnoreNode:function(){\r\n\t\t\t//console.log('refresh ignore ,current: '+Object.keys(translate.listener.ignoreNode).length);\r\n\t\t\tvar currentTime = Date.now();\r\n\t\t\tfor (const node in translate.listener.ignoreNode) {\r\n\t\t\t\tif(translate.listener.ignoreNode[node] < currentTime){\r\n\t\t\t\t\t//console.log('delete : ');\r\n\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\tdelete translate.listener.ignoreNode[node];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//console.log('refresh ignore finish: '+Object.keys(translate.listener.ignoreNode).length);\r\n\t\t},\r\n\r\n\r\n\t\t//增加监听,开始监听。这个不要直接调用,需要使用上面的 start() 开启\r\n\t\taddListener:function(){\r\n\t\t\ttranslate.listener.isStart = true; //记录已执行过启动方法了\r\n\t\t\t\r\n\t\t\t// 观察器的配置(需要观察什么变动)\r\n\t\t\ttranslate.listener.config = { attributes: true, childList: true, subtree: true, characterData: true, attributeOldValue:true, characterDataOldValue:true };\r\n\t\t\t// 当观察到变动时执行的回调函数\r\n\t\t\ttranslate.listener.callback = function(mutationsList, observer) {\r\n\t\t\t\tvar documents = []; //有变动的元素\r\n\t\t\t\t//console.log('--------- lisetner 变动');\r\n\t\t\t // Use traditional 'for loops' for IE 11\r\n\t\t\t for(let mutation of mutationsList) {\r\n\t\t\t \tlet addNodes = [];\r\n\t\t\t\t\tif (mutation.type === 'childList') {\r\n\t\t\t\t\t\tif(mutation.addedNodes.length > 0){\r\n\t\t\t\t\t\t\t//多了组件\r\n\t\t\t\t\t\t\taddNodes = mutation.addedNodes;\r\n\t\t\t\t\t\t\t//documents.push.apply(documents, mutation.addedNodes);\r\n\t\t\t\t\t\t}else if(mutation.removedNodes.length > 0){\r\n\t\t\t\t\t\t\t//console.log('remove:');\r\n\t\t\t\t\t\t\t//console.log(mutation.removedNodes);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//console.log('not find:');\r\n\t\t\t\t\t\t\t//console.log(mutation);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else if (mutation.type === 'attributes') {\r\n\t\t\t\t\t\t//console.log('The ' + mutation.attributeName + ' attribute was modified.');\r\n\t\t\t\t\t}else if(mutation.type === 'characterData'){\r\n\t\t\t\t\t\t//内容改变\r\n\t\t\t\t\t\taddNodes = [mutation.target];\r\n\t\t\t\t\t\t//documents.push.apply(documents, [mutation.target]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//去重并加入 documents\r\n\t\t\t\t\tfor(let item of addNodes){\r\n\t\t\t\t\t\t//console.log(item);\r\n\r\n\t\t\t\t\t\t//判断是否已经加入过了,如果已经加入过了,就不重复加了\r\n\t\t\t\t\t\tvar isFind = false;\r\n\t\t\t\t\t\tfor(var di = 0; di < documents.length; di++){\r\n\t\t\t\t\t\t\tif(documents[di].isSameNode(item)){\r\n\t\t\t\t\t\t\t\tisFind = true;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(isFind){\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdocuments.push.apply(documents, [item]);\r\n\t\t\t\t\t}\r\n\t \t}\r\n\t\t\t \r\n\t\t\t\t//console.log(documents.length);\r\n\t\t\t\tif(documents.length > 0){\r\n\t\t\t\t\t//有变动,需要看看是否需要翻译,延迟10毫秒执行\r\n\t\t\t\t\t\r\n\t\t\t\t\t//判断是否属于在正在翻译的节点,重新组合出新的要翻译的node集合\r\n\t\t\t\t\tvar translateNodes = [];\r\n\t\t\t\t\t//console.log(translate.inProgressNodes.length);\r\n\t\t\t\t\tfor(let node of documents){\r\n\t\t\t\t\t\t//console.log('---type:'+node.nodeType);\r\n\r\n\t\t\t\t\t\tvar find = false;\r\n\t\t\t\t\t\tfor(var ini = 0; ini < translate.inProgressNodes.length; ini++){\r\n\t\t\t\t\t\t\tif(translate.inProgressNodes[ini].node.isSameNode(node)){\r\n\t\t\t\t\t\t\t\t//有记录了,那么忽略这个node,这个node是因为翻译才导致的变动\r\n\t\t\t\t\t\t\t\t//console.log('发现相同');\r\n\t\t\t\t\t\t\t\tfind = true;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(find){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\t\tlet nodeid = nodeuuid.uuid(node);\r\n\t\t\t\t\t\tif(typeof(translate.listener.ignoreNode[nodeid]) == 'number'){\r\n\t\t\t\t\t\t\tif(translate.listener.ignoreNode[nodeid] > Date.now()){\r\n\t\t\t\t\t\t\t\t//console.log('node 未过忽略期,listener扫描后忽略:'+nodeid);\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//不相同,才追加到新的 translateNodes\r\n\t\t\t\t\t\ttranslateNodes.push(node);\r\n\t\t\t\t\t\t//console.log('listener ++ '+node.nodeValue);\r\n\t\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(translateNodes.length < 1){\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('translateNodeslength: '+translateNodes.length);\r\n\r\n\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t//console.log(translateNodes);\r\n\t\t\t\t\t\ttranslate.execute(translateNodes); //指定要翻译的元素的集合,可传入一个或多个元素。如果不设置,默认翻译整个网页\r\n\t\t\t\t\t}, 10); //这个要比 task.execute() 中的 settimeout 延迟执行删除 translate.inpr.....nodes 的时间要小,目的是前一个发生变动后,记入 inpr...nodes 然后翻译完成后节点发生变化又触发了listener,此时 inpr....nodes 还有,那么这个变化将不做处理,然后 inp.....nodes 再删除这个标记\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t// 创建一个观察器实例并传入回调函数\r\n\t\t\ttranslate.listener.observer = new MutationObserver(translate.listener.callback);\r\n\t\t\t// 以上述配置开始观察目标节点\r\n\t\t\tvar docs = translate.getDocuments();\r\n\t\t\tfor(var docs_index = 0; docs_index < docs.length; docs_index++){\r\n\t\t\t\tvar doc = docs[docs_index];\r\n\t\t\t\tif(doc != null){\r\n\t\t\t\t\ttranslate.listener.observer.observe(doc, translate.listener.config);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/*\r\n\t\t\t每当执行完一次渲染任务(翻译)时会触发此。注意页面一次翻译会触发多个渲染任务。普通情况下,一次页面的翻译可能会触发两三次渲染任务。\r\n\t\t\t另外如果页面中有ajax交互方面的信息,时,每次ajax信息刷新后,也会进行翻译,也是一次渲染任务。\r\n\t\t\t这个是为了方便扩展使用。比如在layui中扩展,监控 select 的渲染\r\n\t\t*/\r\n\t\trenderTaskFinish:function(renderTask){\r\n\t\t\t//console.log(renderTask);\r\n\t\t},\r\n\r\n\t\t/*\r\n 翻译执行过程中,相关的监控\r\n */\r\n execute:{\r\n\r\n /*\r\n 每当触发执行 translate.execute() 时,当缓存中未发现,需要请求翻译API进行翻译时,在发送API请求前,触发此\r\n */\r\n renderStartByApi : [],\r\n renderStartByApiRun:function(uuid){\r\n //console.log(translate.nodeQueue[uuid]);\r\n for(var i = 0; i < translate.listener.execute.renderStartByApi.length; i++){\r\n try{\r\n translate.listener.execute.renderStartByApi[i](uuid);\r\n }catch(e){\r\n console.log(e);\r\n }\r\n }\r\n },\r\n\r\n /*\r\n 每当 translate.execute() 执行完毕(前提是采用API翻译的,API将翻译结果返回,并且界面上的翻译结果也已经渲染完毕)后,触发此方法。\r\n uuid:translate.nodeQueue[uuid] 这里的\r\n */\r\n renderFinishByApi : [],\r\n renderFinishByApiRun:function(uuid){\r\n //console.log(translate.nodeQueue[uuid]);\r\n for(var i = 0; i < translate.listener.execute.renderFinishByApi.length; i++){\r\n try{\r\n translate.listener.execute.renderFinishByApi[i](uuid);\r\n }catch(e){\r\n console.log(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\t},\r\n\t//对翻译结果进行替换渲染的任务,将待翻译内容替换为翻译内容的过程\r\n\trenderTask:class{\r\n\t\tconstructor(){\r\n\t\t\t/*\r\n\t\t\t * 任务列表\r\n\t\t\t * 一维数组 [hash] = tasks; tasks 是多个task的数组集合\r\n\t\t\t * 二维数组 [task,task,...],存放多个 task,每个task是一个替换。这里的数组是同一个nodeValue的多个task替换\r\n\t\t\t * 三维数组 task['originalText'] 、 task['resultText'] 存放要替换的字符串\r\n\t\t\t \t\t task['attribute'] 存放要替换的属性,比如 a标签的title属性。 如果是直接替换node.nodeValue ,那这个没有\r\n\t\t\t */\r\n\t\t\tthis.taskQueue = [];\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t * 要进行翻译的node元素,\r\n\t\t\t * 一维数组 key:node.nodeValue 的 hash , value:node的元素数组\r\n\t\t\t * 二维数组,也就是value中包含的node集合 [node,node,...]\r\n\t \t\t */\r\n\t\t\tthis.nodes = [];\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * 向替换队列中增加替换任务\r\n\t\t * node:要替换的字符属于那个node元素\r\n\t\t * originalText:待翻译的字符\r\n\t\t * resultText:翻译后的结果字符\r\n\t\t * attribute: 要替换的是哪个属性,比如 a标签的title属性,这里便是传入title。如果不是替换属性,这里不用传入,或者传入null\r\n\t\t */\r\n\t\tadd(node, originalText, resultText, attribute){\r\n\t\t\tvar nodeAnaly = translate.element.nodeAnalyse.get(node, attribute); //node解析\r\n\t\t\t//var hash = translate.util.hash(translate.element.getTextByNode(node)); \t//node中内容的hash\r\n\t\t\tvar hash = translate.util.hash(nodeAnaly['text']);\r\n\t\t\t//console.log('--------------'+hash);\r\n\t\t\t//console.log(nodeAnaly);\r\n\t\t\t//console.log(node);\r\n\t\t\t//console.log('originalText:'+originalText+', resultText:'+resultText+', attribute:'+attribute);\r\n\t\t\t/****** 加入翻译的元素队列 */\r\n\t\t\tif(typeof(this.nodes[hash]) == 'undefined'){\r\n\t\t\t\tthis.nodes[hash] = new Array();\r\n\t\t\t}\r\n\t\t\tthis.nodes[hash].push(node);\r\n\t\t\t//console.log(node)\r\n\t\t\t\r\n\t\t\t/****** 加入翻译的任务队列 */\r\n\t\t\tvar tasks = this.taskQueue[hash];\r\n\t\t\tif(tasks == null || typeof(tasks) == 'undefined'){\r\n\t\t\t\t//console.log(node.nodeValue);\r\n\t\t\t\ttasks = new Array(); //任务列表,存放多个 task,每个task是一个替换。这里的数组是同一个nodeValue的多个task替换\r\n\t\t\t}\r\n\t\t\tvar task = new Array();\r\n\t\t\t\r\n\t\t\t//v2.3.3 增加 -- 开始\r\n\t\t\t//这里要进行处理,因为有时候翻译前,它前或者后是有空格的,但是翻译后会把前或者后的空格给自动弄没了,如果是这种情况,要手动补上\r\n\t\t\tif (originalText.substr(0, 1) == ' ') {\r\n\t\t\t\t//console.log('第一个字符是空格');\r\n\t\t\t\tif(resultText.substr(0, 1) != ' '){\r\n\t\t\t\t\t//翻译结果的第一个字符不是空格,那么补上\r\n\t\t\t\t\tresultText = ' ' + resultText;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (originalText.substr(originalText.length - 1, 1) === ' ') {\r\n\t\t\t\t//console.log('最后一个字符是空格');\r\n\t\t\t\tif(resultText.substr(0, 1) != ' '){\r\n\t\t\t\t\t//翻译结果的最后一个字符不是空格,那么补上\r\n\t\t\t\t\tresultText = resultText + ' ';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//v2.3.3 增加 -- 结束\r\n\r\n\t\t\ttask['originalText'] = originalText;\r\n\t\t\ttask['resultText'] = resultText;\r\n\t\t\ttask['attribute'] = attribute;\r\n\r\n\t\t\t//console.log(task);\r\n\t\t\ttasks.push(task);\r\n\t\t\tthis.taskQueue[hash] = tasks;\r\n\t\t\t/****** 加入翻译的任务队列 end */\r\n\t\t}\r\n\t\t//进行替换渲染任务,对页面进行渲染替换翻译\r\n\t\texecute(){\r\n\t\t\t//先对tasks任务队列的替换词进行排序,将同一个node的替换词有大到小排列,避免先替换了小的,大的替换时找不到\r\n\t\t\tfor(var hash in this.taskQueue){\r\n\t\t\t\tvar tasks = this.taskQueue[hash];\r\n\t\t\t\tif(typeof(tasks) == 'function'){\r\n\t\t\t\t\t//进行异常的预处理调出\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//进行排序,将原字符串长的放前面,避免造成有部分不翻译的情况(bug是先翻译了短的,导致长的被打断而无法进行适配)\r\n\t\t\t\ttasks.sort((a, b) => b.originalText.length - a.originalText.length);\r\n\t\t\t\t\r\n\t\t\t\tthis.taskQueue[hash] = tasks;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//console.log('===========task=========');\r\n\t\t\t//console.log(this.taskQueue);\r\n\t\t\t//console.log(this.nodes);\r\n\t\t\t//console.log('===========task======end===');\r\n\r\n\t\t\t//进行翻译前,先刷新一下 dom监听的忽略node,将过期的node剔除,降低listener的压力\r\n\t\t\ttranslate.listener.refreshIgnoreNode();\r\n\r\n\t\t\t//对nodeQueue进行翻译\r\n\t\t\tfor(var hash in this.nodes){\r\n\t\t\t\tvar tasks = this.taskQueue[hash]; //取出当前node元素对应的替换任务\r\n\t\t\t\t//var tagName = this.nodes[hash][0].nodeName; //以下节点的tag name\r\n\t\t\t\t//console.log(tasks);\r\n\t\t\t\tfor(var node_index = 0; node_index < this.nodes[hash].length; node_index++){\r\n\t\t\t\t\t//对这个node元素进行替换翻译字符\r\n\t\t\t\t\tfor(var task_index=0; task_index 0){\r\n\t\t\t\t//50毫秒后执行,以便页面渲染完毕\r\n\t\t\t\tvar renderTask = this;\r\n\t\t\t\tsetTimeout(function() {\r\n\r\n\t\t\t\t\t/** 执行完成后,保存翻译的历史node **/\r\n\t\t\t\t\t//将当前翻译完成的node进行缓存记录,以node唯一标识为key, node、以及node当前翻译之后的内容为值进行缓存。方便下一次执行 translate.execute() 时,若值未变化则不进行翻译\r\n\t\t\t\t\tfor(var hash in renderTask.nodes){\r\n\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash])\r\n\t\t\t\t\t\tfor(var nodeindex in renderTask.nodes[hash]){\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].original);\r\n\t\t\t\t\t\t\t//var nodename = translate.element.getNodeName(translate.nodeQueue[uuid].list[lang][hash].nodes[0].node);\r\n\t\t\t\t\t\t\t//console.log(\"nodename:\"+nodename);\r\n\t\t\t\t\t\t\tvar analyse = translate.element.nodeAnalyse.get(renderTask.nodes[hash][0]);\r\n\t\t\t\t\t\t\t//analyse.text analyse.node\r\n\t\t\t\t\t\t\tvar nodeid = nodeuuid.uuid(analyse.node);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif(nodeid.length == 0){\r\n\t\t\t\t\t\t\t\t//像是input的placeholder 暂时没考虑进去,这种就直接忽略了\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//加入\r\n\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\tif(typeof(translate.nodeHistory[nodeid]) == 'object'){\r\n\t\t\t\t\t\t\t\t//已经加入过了,判断它的值是否有发生过变化\r\n\r\n\t\t\t\t\t\t\t\tif(translate.nodeHistory[nodeid].translateText == analyse.text){\r\n\t\t\t\t\t\t\t\t\t//值相同,就不用再加入了\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t这里就不用判断了,直接同步到最新的,因为同一个node,可能有本地缓存直接更新,这样会非常快,网络的会慢2秒,因时间导致同步不是最新的\r\n\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t//console.log(analyse);\r\n\t\t\t\t\t\t\t//console.log('add-----'+analyse.text +', uuid:'+nodeid);\r\n\t\t\t\t\t\t\t//console.log(analyse.node);\r\n\t\t\t\t\t\t\ttranslate.nodeHistory[nodeid] = {};\r\n\t\t\t\t\t\t\ttranslate.nodeHistory[nodeid].node = analyse.node;\r\n\t\t\t\t\t\t\ttranslate.nodeHistory[nodeid].translateText = analyse.text;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(translate.nodeHistory);\r\n\r\n\t\t\t\t\t/** 执行完成后,触发用户自定义的翻译完成执行函数 **/\r\n\t\t\t\t\ttranslate.listener.renderTaskFinish(renderTask);\r\n\r\n\t\t\t\t}, 50);\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\t//console.log(this.taskQueue);\r\n\t\t\t\t//console.log('---this.taskQueue is null');\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t/*\r\n\t\t当前状态,执行状态\r\n\t\t0 空闲(或者执行翻译完毕)\r\n\t\t10 扫描要翻译的node,并读取浏览器缓存的翻译内容进行渲染显示\r\n\t\t20 浏览器缓存渲染完毕,ajax通过文本翻译接口开始请求,在发起ajax请求前,状态变为20,然后再发起ajax请求\r\n\t\t至于翻译完毕后进行渲染,这个就不单独记录了,因为如果页面存在不同的语种,不同的语种是按照不同的请求来的,是多个异步同时进行的过程\r\n\t*/\r\n\tstate:0,\r\n\r\n\t/*\r\n\t\t等待翻译队列 v3.12.6 增加\r\n\t\t当前是否有需要等待翻译的任务,这个目的是为了保证同一时间 translate.execute() 只有一次在执行,免得被新手前端给造成死循环,导致edge翻译给你屏蔽,用户网页还卡死\r\n\t\t当执行 translate.execute() 时,会先判断状态 translate.state 是否是0空闲的状态,如果空闲,才会执行,如果不是空闲,则不会执行,而是进入到这里进行等待,等待执行完毕后 translate.state 变成0空闲之后,再来执行这里的\r\n\t\t\r\n\t*/\r\n\twaitingExecute:{\r\n\r\n\t\t/*\r\n\t\t\t一维数组形态,存放执行的翻译任务\r\n\t\t\t二维对象形态,存放执行传入的 docs\r\n\t\t*/\r\n\t\tqueue:[],\r\n\t\t/*\r\n\t\t\t增加一个翻译任务到翻译队列中\r\n\t\t\tdocs 同 translate.execute(docs) 的传入参数\r\n\t\t */ \r\n\t\tadd:function(docs){\r\n\t\t\t//向数组末尾追加\r\n\t\t\ttranslate.waitingExecute.queue.push(docs);\r\n\t\t\t//开启一个定时器进行触发\r\n\t\t\tlet intervalId = setInterval(function() {\r\n\t\t\t\tif(translate.state == 0){\r\n\t\t\t\t\t//清除定时器,结束循环\r\n\t\t\t\t\tclearInterval(intervalId);\r\n\t\t\t\t\tvar docs = translate.waitingExecute.get();\r\n\t\t\t\t\ttranslate.execute(docs);\r\n\t\t\t\t\t//console.log('stop waitingExecute setInterval');\r\n\t\t\t\t}\r\n\t\t\t}, 500);\r\n\t\t},\r\n\t\t/*\r\n\t\t\t从 quque 中取第一个元素,同时将其从queue中删除掉它。\r\n\t\t\t如果取的时候 quque已经没有任何元素了,会返回 null, 但是理论上不会出现null\r\n\t\t */\r\n\t\tget:function(){\r\n\t\t\t//使用 shift 方法删除数组的第一个元素,并将第一个元素的值返回\r\n\t\t\tif(translate.waitingExecute.queue.length > 0){\r\n\t\t\t\treturn translate.waitingExecute.queue.shift();\r\n\t\t\t}else{\r\n\t\t\t\tconsole.log('警告, translate.waitingExecute.get 出现异常,quque已空,但还往外取。');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//当前 translate.translateRequest[uuid] 的是否已经全部执行完毕,这里单纯只是对 translate.translateRequest[uuid] 的进行判断,这里要在 translate.json 接口触发完并渲染完毕后触发,当然接口失败时也要触发\r\n\t\tisAllExecuteFinish:function(uuid){\r\n\t\t\tfor(var lang in translate.translateRequest[uuid]){\r\n\t\t\t\tfor(var i = 0; i 0){\r\n\t\t\t\ttranslate.to = to_storage;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t//渲染select选择语言\r\n\t\ttry{\r\n\t\t\ttranslate.selectLanguageTag.render();\t\r\n\t\t}catch(e){\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t\t\r\n\t\t//判断是否还未指定翻译的目标语言\r\n\t\tif(translate.to == null || typeof(translate.to) == 'undefined' || translate.to.length == 0){\r\n\t\t\t//未指定,判断如果指定了自动获取用户本国语种了,那么进行获取\r\n\t\t\tif(translate.autoDiscriminateLocalLanguage){\r\n\t\t\t\ttranslate.executeByLocalLanguage();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//没有指定翻译目标语言、又没自动获取用户本国语种,则不翻译\r\n\t\t\ttranslate.state = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\t//判断本地语种跟要翻译的目标语种是否一样,如果是一样,那就不需要进行任何翻译\r\n\t\tif(translate.to == translate.language.getLocal()){\r\n\t\t\tif(translate.language.translateLocal){\r\n\t\t\t\t//这是自定义设置的允许翻译本地语种中,跟本地语种不一致的语言进行翻译\r\n\r\n\t\t\t}else{\r\n\t\t\t\ttranslate.state = 0;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\r\n\t\t/********** 翻译进行 */\r\n\t\t\r\n\t\t//先进行图片的翻译替换,毕竟图片还有加载的过程\r\n\t\ttranslate.images.execute();\r\n\t\t\r\n\t\t/*\r\n\t\t\t进行翻译指定的node操作。优先级为:\r\n\t\t\t1. 这个方法已经指定的翻译 nodes\r\n\t\t\t2. setDocuments 指定的 \r\n\t\t\t3. 整个网页 \r\n\t\t\t其实2、3都是通过 getDocuments() 取,在getDocuments() 就对2、3进行了判断\r\n\t\t*/\r\n\t\tvar all;\r\n\t\tif(typeof(docs) != 'undefined' && docs != null){\r\n\t\t\t//1. 这个方法已经指定的翻译 nodes\r\n\t\t\t\r\n\t\t\t/* v3.12.6 注释,转到判断非null\r\n\t\t\tif(docs == null){\r\n\t\t\t\t//要翻译的目标区域不存在\r\n\t\t\t\tconsole.log('translate.execute(...) 中传入的要翻译的目标区域不存在。');\r\n\t\t\t\ttranslate.state = 0;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t\r\n\t\t\tif(typeof(docs.length) == 'undefined'){\r\n\t\t\t\t//不是数组,是单个元素\r\n\t\t\t\tall = new Array();\r\n\t\t\t\tall[0] = docs;\r\n\t\t\t}else{\r\n\t\t\t\t//是数组,直接赋予\r\n\t\t\t\tall = docs;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}else{\r\n\t\t\t//2、3\r\n\t\t\tall = translate.getDocuments();\r\n\t\t}\r\n\t\t//console.log('----要翻译的目标元素-----');\r\n\t\t//console.log(all)\r\n\t\t\r\n\t\tif(all.length > 500){\r\n\t\t\tconsole.log('------tip------');\r\n\t\t\tconsole.log('translate.execute( docs ) 传入的docs.length 过大,超过500,这很不正常,当前 docs.length : '+all.length+' ,如果你感觉真的没问题,请联系作者 http://translate.zvo.cn/43006.html 说明情况,根据你的情况进行分析。 当前只取前500个元素进行翻译');\r\n\t\t}\r\n\r\n\t\t//检索目标内的node元素\r\n\t\tfor(var i = 0; i< all.length & i < 500; i++){\r\n\t\t\tvar node = all[i];\r\n\t\t\ttranslate.element.whileNodes(uuid, node);\t\r\n\t\t}\r\n\r\n\t\t/***** translate.language.translateLanguagesRange 开始 *****/\r\n\t\tif(translate.language.translateLanguagesRange.length > 0){\r\n\t\t\t//如果大于0,则是有设置,那么只翻译有设置的语种,不在设置中的语种不会参与翻译\r\n\t\t\tfor(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\tif(translate.language.translateLanguagesRange.indexOf(lang) < 0){\r\n\t\t\t\t\t//删除这个语种\r\n\t\t\t\t\tdelete translate.nodeQueue[uuid].list[lang];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t/***** translate.language.translateLanguagesRange 结束 *****/\r\n\t\t\r\n\t\t//修复如果translate放在了页面最顶部,此时执行肯定扫描不到任何东西的,避免这种情况出现报错\r\n\t\tif(typeof(translate.nodeQueue[uuid]) == 'undefined'){\r\n\t\t\ttranslate.nodeQueue[uuid] = new Array();\r\n\t\t\ttranslate.nodeQueue[uuid].list = [];\r\n\t\t\tconsole.log('--- translate.js warn tip 警告!! ---');\r\n\t\t\tconsole.log('您使用translate.js时可能放的位置不对,不要吧 translate.js 放在网页最顶部,这样当 translate.js 进行执行,也就是 translate.execute() 执行时,因为网页是从上往下加载,它放在网页最顶部,那么它执行时网页后面的内容都还没加载出来,这个是不会获取到网页任何内容的,也就是它是不起任何作用的');\r\n\t\t}\r\n\t\tfor(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t//console.log('lang:'+lang)\r\n\t\t\tfor(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t//console.log(hash)\r\n\t\t\t\tif(typeof(translate.nodeQueue[uuid].list[lang][hash]) == 'function'){\r\n\t\t\t\t\t//v2.10增加,避免hash冒出个 Contains 出来导致for中的.length 出错\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tfor(var nodeindex = translate.nodeQueue[uuid].list[lang][hash].nodes.length-1; nodeindex > -1; nodeindex--){\r\n\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].nodes);\r\n\t\t\t\t\tvar analyse = translate.element.nodeAnalyse.get(translate.nodeQueue[uuid].list[lang][hash].nodes[nodeindex].node);\r\n\t\t\t\t\t//analyse.text analyse.node\r\n\t\t\t\t\tvar nodeid = nodeuuid.uuid(analyse.node);\r\n\t\t\t\t\t//translate.nodeQueue[uuid].list[lang][hash].nodes.splice(nodeindex, 1);\r\n\t\t\t\t\t//console.log(nodeid+'\\t'+analyse.text);\r\n\t\t\t\t\tif(typeof(translate.nodeHistory[nodeid]) != 'undefined'){\r\n\t\t\t\t\t\t//存在,判断其内容是否发生了改变\r\n\t\t\t\t\t\t//console.log('比较---------');\r\n\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].translateText);\r\n\t\t\t\t\t\t//console.log(analyse.text);\r\n\t\t\t\t\t\tif(translate.nodeHistory[nodeid].translateText == analyse.text){\r\n\t\t\t\t\t\t\t//内容未发生改变,那么不需要再翻译了,从translate.nodeQueue中删除这个node\r\n\t\t\t\t\t\t\ttranslate.nodeQueue[uuid].list[lang][hash].nodes.splice(nodeindex, 1);\r\n\t\t\t\t\t\t\t//console.log('发现相等的node,删除 '+analyse.text+'\\t'+hash);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//console.log(\"发现变化的node =======nodeid:\"+nodeid);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].translateText == analyse.text);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].node);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].translateText);\r\n\t\t\t\t\t\t\t//console.log(analyse.text);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//console.log('未在 nodeHistory 中发现,新的node nodeid:'+nodeid);\r\n\t\t\t\t\t\t//console.log(analyse.node)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(translate.nodeQueue[uuid].list[lang][hash].nodes.length == 0){\r\n\t\t\t\t\t//如果node数组中已经没有了,那么直接把这个hash去掉\r\n\t\t\t\t\tdelete translate.nodeQueue[uuid].list[lang][hash];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(Object.keys(translate.nodeQueue[uuid].list[lang]).length == 0){\r\n\t\t\t\t//如果这个语言中没有要翻译的node了,那么删除这个语言\r\n\t\t\t\tdelete translate.nodeQueue[uuid].list[lang];\r\n\t\t\t}\r\n\t\t}\r\n\t\t//console.log('new queuq');\r\n\t\t//console.log(translate.nodeQueue[uuid])\r\n\t\t//translate.nodeHistory[nodeid]\r\n\r\n\t\t\r\n\t\t//console.log('-----待翻译:----');\r\n\t\t//console.log(translate.nodeQueue);\r\n\t\t\r\n\t\t//translateTextArray[lang][0]\r\n\t\tvar translateTextArray = {};\t//要翻译的文本的数组,格式如 [\"你好\",\"欢迎\"]\r\n\t\tvar translateHashArray = {};\t//要翻译的文本的hash,跟上面的index是一致的,只不过上面是存要翻译的文本,这个存hash值\r\n\t\t\r\n\r\n\t\t/*\r\n\t\t\t\t要进行第二次扫描的node - 2023.8.22 解决缓存会打散扫描到的翻译文本,导致翻译结束后找寻不到而导致不翻译的问题\r\n\t\t\t\t一维 key: lang\r\n\t\t\t\t二维 key: hash\r\n\t\t\t\t三维 key: \r\n\t\t\t\t\t\tnode: 当前的node元素\r\n\t\t\t\t四维\t\tarray: 当前缓存中进行翻译的文本数组:\r\n\t\t\t\t\t\t\tcacheOriginal: 已缓存被替换前的文本\r\n\t\t\t\t\t\t\tcacheTranslateText: 已缓存被替换后的翻译文本\r\n\t\t\t\t\t\r\n\t\t*/\r\n\t\tvar twoScanNodes = {};\r\n\t\tvar cacheScanNodes = []; //同上面的 twoScanNodes,只不过 twoScanNodes 是按照lang存的,而这个不再有lang区分\r\n\t\tfor(var lang in translate.nodeQueue[uuid]['list']){ //二维数组中,取语言\r\n\t\t\t//console.log('lang:'+lang); //lang为english这种语言标识\r\n\t\t\tif(lang == null || typeof(lang) == 'undefined' || lang.length == 0 || lang == 'undefined'){\r\n\t\t\t\t//console.log('lang is null : '+lang);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\ttranslateTextArray[lang] = [];\r\n\t\t\ttranslateHashArray[lang] = [];\r\n\t\t\t\r\n\t\t\tlet task = new translate.renderTask();\r\n\t\t\t//console.log(translate.nodeQueue);\r\n\t\t\t\r\n\t\t\ttwoScanNodes[lang] = [];\r\n\t\t\t//二维数组,取hash、value\r\n\t\t\tfor(var hash in translate.nodeQueue[uuid]['list'][lang]){\r\n\t\t\t\tif(typeof(translate.nodeQueue[uuid]['list'][lang][hash]) == 'function'){\r\n\t\t\t\t\t//跳出,增加容错。 正常情况下应该不会这样\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//取原始的词,还未经过翻译的,需要进行翻译的词\r\n\t\t\t\t//var originalWord = translate.nodeQueue[uuid]['list'][lang][hash]['original'];\t\r\n\r\n\t\t\t\t//原始的node中的词\r\n\t\t\t\tvar originalWord = translate.nodeQueue[uuid]['list'][lang][hash]['original'];\t\r\n\t\t\t\t//要翻译的词\r\n\t\t\t\tvar translateText = translate.nodeQueue[uuid]['list'][lang][hash]['translateText'];\r\n\t\t\t\t//console.log(originalWord);\r\n/*\r\n\t\t\t\t//自定义术语后的。如果\r\n\t\t\t\tvar nomenclatureOriginalWord = translate.nomenclature.dispose(cache);\r\n\t\t\t\tif(nomenclatureOriginalWord != originalWord){\r\n\t\t\t\t\thas\r\n\t\t\t\t}\r\n*/\t\t\t\t\r\n\t\t\t\t//console.log(originalWord == translateText ? '1':'xin:'+translateText);\r\n\t\t\t\t//根据hash,判断本地是否有缓存了\r\n\t\t\t\tvar cacheHash = originalWord == translateText ? hash:translate.util.hash(translateText); //如果匹配到了自定义术语库,那翻译前的hash是被改变了\r\n\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['cacheHash'] = cacheHash; //缓存的hash。 缓存时,其hash跟翻译的语言是完全对应的,缓存的hash就是翻译的语言转换来的\r\n\t\t\t\tvar cache = translate.storage.get('hash_'+translate.to+'_'+cacheHash);\r\n\t\t\t\t//console.log(cacheHash+', '+cache);\r\n\r\n\t\t\t\t//var twoScanNodes[] = [];\t//要进行第二次扫描的node\r\n\t\t\t\tif(cache != null && cache.length > 0){\r\n\t\t\t\t\t//有缓存了\r\n\t\t\t\t\t//console.log('find cache:'+cache);\r\n\t\t\t\t\t//直接将缓存赋予\r\n\t\t\t\t\t//for(var index = 0; index < this.nodeQueue[lang][hash].length; index++){\r\n\t\t\t\t\t\t//this.nodeQueue[lang][hash][index].nodeValue = cache;\r\n\r\n\t\t\t\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]);\r\n\r\n\r\n\t\t\t\t\t\t\t//加入 translate.inProgressNodes\r\n\t\t\t\t\t\t\t//取得这个翻译的node\r\n\t\t\t\t\t\t\tvar ipnode = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'];\r\n\r\n\t\t\t\t\t\t\t//判断这个node是否已经在 inProgressNodes 记录了\r\n\t\t\t\t\t\t\tvar isFind = false;\r\n\t\t\t\t\t\t\tfor(var ini = 0; ini < translate.inProgressNodes.length; ini++){\r\n\t\t\t\t\t\t\t\tif(translate.inProgressNodes[ini].node.isSameNode(ipnode)){\r\n\t\t\t\t\t\t\t\t\t//有记录了,那么出现次数 +1\r\n\t\t\t\t\t\t\t\t\ttranslate.inProgressNodes[ini].number++;\r\n\t\t\t\t\t\t\t\t\tisFind = true;\r\n\t\t\t\t\t\t\t\t\t//console.log('cache - find - ++ ');\r\n\t\t\t\t\t\t\t\t\t//console.log(ipnode);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t//未发现,那么还要将这个node加入进去\r\n\t\t\t\t\t\t\tif(!isFind){\r\n\t\t\t\t\t\t\t\t//console.log('cache - find - add -- lang:'+lang+', hash:'+hash+' node_index:'+node_index);\r\n\t\t\t\t\t\t\t\t//console.log(ipnode.nodeValue);\r\n\t\t\t\t\t\t\t\ttranslate.inProgressNodes.push({node: ipnode, number:1});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//console.log(translate.inProgressNodes);\r\n\t\t\t\t\t\t\t//加入 translate.inProgressNodes -- 结束\r\n\r\n\t\t\t\t\t\t\t//翻译结果的文本,包含了before 、 after 了\r\n\t\t\t\t\t\t\tvar translateResultText = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['beforeText']+cache+translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['afterText'];\r\n\t\t\t\t\t\t\ttask.add(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'], originalWord, translateResultText, translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['attribute']);\r\n\t\t\t\t\t\t\t//this.nodeQueue[lang][hash]['nodes'][node_index].nodeValue = this.nodeQueue[lang][hash]['nodes'][node_index].nodeValue.replace(new RegExp(originalWord,'g'), cache);\r\n\t\t\t\t\t\t\t//console.log(translateResultText);\r\n\r\n\t\t\t\t\t\t\t//重新扫描这个node,避免这种情况:\r\n\t\t\t\t\t\t\t//localstorage缓存中有几个词的缓存了,但是从缓存中使用时,把原本识别的要翻译的数据给打散了,导致翻译结果没法赋予,导致用户展示时有些句子没成功翻译的问题 -- 2023.8.22\r\n\t\t\t\t\t\t\t//console.log('继续扫描 + 1 - '+twoScanNodes.length);\r\n\t\t\t\t\t\t\tvar twoScanIndex = -1; //当前元素是否在 twoScan 中已经加入了,如果已经加入了,那么这里赋予当前所在的下标\r\n\t\t\t\t\t\t\tfor(var i = 0; i 0){\r\n\t\t\t\t\t//因为在这个数组中的值都是一样的,那么只需要取出第一个就行了\r\n\t\t\t\t\tvar valueStr = queueNodes[0].nodeValue;\r\n\t\t\t\t\tvalueStr = this.util.charReplace(valueStr);\r\n\r\n\t\t\t\t\ttranslateTextArray[lang].push(valueStr);\r\n\t\t\t\t\ttranslateHashArray[lang].push(hash);\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\t\t\t\t\r\n\t\t\t\t//加入待翻译数组\r\n\t\t\t\ttranslateTextArray[lang].push(translateText);\r\n\t\t\t\ttranslateHashArray[lang].push(hash); //这里存入的依旧还是用原始hash,未使用自定义术语库前的hash,目的是不破坏 nodeQueue 的 key\r\n\t\t\t}\r\n\r\n\t\t\ttask.execute(); //执行渲染任务\r\n\t\t}\r\n\t\t//console.log(twoScanNodes);\r\n\t\t//console.log('cacheScanNodes:');\r\n\t\t//console.log(cacheScanNodes);\r\n\r\n\t\t/******* 进行第二次扫描、追加入翻译队列。目的是防止缓存打散扫描的待翻译文本 ********/\r\n\t\tfor(var lang in twoScanNodes){\r\n\t\t\t//记录第一次扫描的数据,以便跟第二次扫描后的进行对比\r\n\t\t\tvar firstScan = Object.keys(translate.nodeQueue[uuid]['list'][lang]);\r\n\t\t\tvar firstScan_lang_langth = firstScan.length; //第一次扫描后的数组长度\r\n\r\n\t\t\t//console.log(twoScanNodes[lang]);\r\n\t\t\tfor(var i = 0; i -1){\r\n\t\t\t\t\t\t//发现了,那么强制赋予翻以前内容\r\n\t\t\t\t\t\ttext = translateTextArray[data.from][i];\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t//翻译前的hash对应下标\r\n\t\t\t\t\tvar hash = translateHashArray[data.from][i];\t\r\n\t\t\t\t\tvar cacheHash = translate.nodeQueue[uuid]['list'][lang][hash]['cacheHash'];\r\n\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t//取原始的词,还未经过翻译的,需要进行翻译的词\r\n\t\t\t\t\tvar originalWord = '';\r\n\t\t\t\t\ttry{\r\n\t\t\t\t\t\toriginalWord = translate.nodeQueue[uuid]['list'][lang][hash]['original'];\r\n\t\t\t\t\t\t//console.log('bef:'+translate.nodeQueue[uuid]['list'][lang][hash]['beforeText']);\r\n\t\t\t\t\t}catch(e){\r\n\t\t\t\t\t\tconsole.log('uuid:'+uuid+', originalWord:'+originalWord+', lang:'+lang+', hash:'+hash+', text:'+text+', queue:'+translate.nodeQueue[uuid]);\r\n\t\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t//for(var index = 0; index < translate.nodeQueue[lang][hash].length; index++){\r\n\t\t\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\t\t\t//translate.nodeQueue[lang][hash]['nodes'][node_index].nodeValue = translate.nodeQueue[lang][hash]['nodes'][node_index].nodeValue.replace(new RegExp(originalWord,'g'), text);\r\n\t\t\t\t\t\t//加入任务\r\n\t\t\t\t\t\ttask.add(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'], originalWord, translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['beforeText']+text+translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['afterText'], translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['attribute']);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//}\r\n\t\t\t\t\t/*\r\n\t\t\t\t\tfor(var index = 0; index < translate.nodeQueue[data.from][hash].length; index++){\r\n\t\t\t\t\t\ttranslate.nodeQueue[data.from][hash][index].nodeValue = text;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t*/\r\n\t\t\t\t\t\r\n\t\t\t\t\t//将翻译结果以 key:hash value翻译结果的形式缓存\r\n\t\t\t\t\ttranslate.storage.set('hash_'+data.to+'_'+cacheHash,text);\r\n\t\t\t\t}\r\n\t\t\t\ttask.execute(); //执行渲染任务\r\n\t\t\t\t//translate.temp_executeFinishNumber++; //记录执行完的次数\r\n\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].result = 1;\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].executeFinish = 1; //1是执行完毕\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].stoptime = Math.floor(Date.now() / 1000);\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\ttranslate.waitingExecute.isAllExecuteFinish(uuid);\r\n\t\t\t\t},10);\r\n\t\t\t}, function(xhr){\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].executeFinish = 1; //1是执行完毕\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].stoptime = Math.floor(Date.now() / 1000);\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].result = 3;\r\n\t\t\t\ttranslate.waitingExecute.isAllExecuteFinish(uuid);\r\n\t\t\t});\r\n\t\t\t/*** 翻译end ***/\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * 翻译请求记录\r\n\t * 一维:key:uuid,也就是execute每次执行都会创建一个翻译队列,这个是翻译队列的唯一标识。 这个uuid跟 nodeQueue 的uuid是一样的\r\n\t * \t\tvalue:对象\r\n\t * 二维: 对象,包含:\r\n\t * \t\tfrom 存放的是要翻译的源语种,比如要讲简体中文翻译为英文,这里存放的就是 chinese_simplified\r\n\t * \t\tstate 是否执行完毕,0是执行中, 1是执行完毕(不管是失败还是成功) 而且执行完毕是指ajax请求获得响应,并且dom渲染完成之后才算完毕。当然如果ajax接口失败那也是直接算完毕\r\n\t * \t\taddtime 这条数据加入到本数组的时间,也就是进行ajax请求开始那一刻的时间,10位时间戳\r\n\t * \t\tstoptime 执行完毕的时间,也就是state转为2那一刻的时间\r\n\t * \t\tresult 执行结果, 0 是还没执行完,等待执行完, > 0 是执行完了有结果了, \r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t 1 是执行成功\r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t 2 是接口有响应,也是200响应,但是接口响应的结果返回了错误,也就是返回了 {result:0, info:'...'}\r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t 3 是接口不是200响应码\r\n\t * \r\n\t */\r\n\ttranslateRequest:{\r\n\t\t/* \r\n\t\tuuid:[\r\n\t\t\t'chinese_simplified':{\r\n\t\t\t\texecuteFinish:0,\r\n\t\t\t\taddtime:150001111,\r\n\t\t\t\tstoptime:150001111,\r\n\t\t\t\tresult:0\r\n\t\t\t},\r\n\t\t\t...\r\n\t\t] \r\n\t\t*/\r\n\t},\r\n\r\n\t/*\r\n\t\t将已成功翻译并渲染的node节点进行缓存记录\r\n\t\tkey: node节点的唯一标识符,通过 nodeuuid.uuid() 生成\r\n\t\tvalue: \r\n\t\t\tnode: node节点\r\n\t\t\ttranslateText: 翻译完成后,当前node节点的内容文本(是已经翻译渲染过的)\r\n\t*/\r\n\tnodeHistory:{},\r\n\telement:{\r\n\r\n\t\t/*\r\n\t\t\t注意,里面全部的必须小写。\r\n\t\t\t第一个是tag,第二个是tag的属性。比如要翻译 input 的 value 属性,那么如下:\r\n\t\t\t\ttranslate.element.tagAttribute['input']=['value'];\r\n\t\t\t比如要翻译 input 的 value 、 data-value 这两个属性,那么如下:\r\n\t\t\t\ttranslate.element.tagAttribute['input']=['value','data-value'];\r\n\t\t\t有几个要翻译的属性,就写上几个。\r\n\t\t\t同样,有几个要额外翻译的tag,就加上几行。 \r\n\t\t\t详细文档参考: http://translate.zvo.cn/231504.html\r\n\t\t*/\r\n\t\ttagAttribute : {},\r\n\r\n\t\t//对翻译前后的node元素的分析(翻以前)及渲染(翻译后)\r\n\t\tnodeAnalyse:{\r\n\t\t\t/*\r\n\t\t\t\t获取node中的要进行翻译的文本内容、以及要操作的实际node对象(这个node对象很可能是传入的node中的某个子node)\r\n\t\t\t\tnode \r\n\t\t\t\tattribute 要获取的是某个属性的值,还是node本身的值。比如 a标签的title属性的值,则传入 title。 如果是直接获取node.nodeValue ,那这个没有\r\n\r\n\t\t\t\t返回结果是一个数组。其中:\r\n\t\t\t\t\t['text']:要进行翻译的text内容文本\r\n\t\t\t\t\t['node']:要进行翻译的目标node\r\n\r\n\t\t\t*/\r\n\t\t\tget:function(node, attribute){\r\n\t\t\t\treturn translate.element.nodeAnalyse.analyse(node,'','', attribute);\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t\t进行翻译之后的渲染显示\r\n\t\t\t\t参数:\r\n\t\t\t\t\tnode 当前翻译的node元素\r\n\t\t\t\t\toriginalText 翻译之前的内容文本\r\n\t\t\t\t\tresultText 翻译之后的内容文本\r\n\t\t\t\t\tattribute 存放要替换的属性,比如 a标签的title属性。 如果是直接替换node.nodeValue ,那这个没有\r\n\t\t\t*/\r\n\t\t\tset:function(node, originalText, resultText, attribute){\r\n\t\t\t\ttranslate.element.nodeAnalyse.analyse(node,originalText,resultText, attribute);\r\n\t\t\t},\r\n\t\t\t/*\t\r\n\t\t\t\t\r\n\t\t\t\t注意,这个不使用,只是服务于上面的get、set使用。具体使用用上面的get、set\r\n\r\n\t\t\t\t1. 只传入 node:\r\n\t\t\t\t\t获取node中的要进行翻译的文本内容、以及要操作的实际node对象(这个node对象很可能是传入的node中的某个子node)\r\n\t\t\t\t\t返回结果是一个数组。其中:\r\n\t\t\t\t\t\t['text']:要进行翻译的text内容文本\r\n\t\t\t\t\t\t['node']:要进行翻译的目标node\r\n\t\t\t\t2. 传入 node、originalText、 resultText\r\n\t\t\t\t\t则是进行翻译之后的渲染显示\r\n\r\n\t\t\t\tattribute : 进行替换渲染时使用,存放要替换的属性,比如 a标签的title属性。 如果是直接替换node.nodeValue ,那这个没有\r\n\t\t\t*/\r\n\t\t\tanalyse:function(node, originalText, resultText, attribute){\r\n\t\t\t\tvar result = new Array(); //返回的结果\r\n\t\t\t\tresult['node'] = node;\r\n\t\t\t\tresult['text'] = '';\r\n\r\n\t\t\t\tvar nodename = translate.element.getNodeName(node);\r\n\r\n\t\t\t\tif(attribute != null && typeof(attribute) == 'string' && attribute.length > 0){\r\n\t\t\t\t\t//这个node有属性,替换的是node的属性,而不是nodeValue\r\n\t\t\t\t\tresult['text'] = node[attribute];\r\n\r\n\t\t\t\t\t//替换渲染\r\n\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\tif(typeof(node[attribute]) != 'undefined'){\r\n\t\t\t\t\t\t\t//这种是主流框架,像是vue、element、react 都是用这种 DOM Property 的方式,更快\r\n\t\t\t\t\t\t\tnode[attribute] = node[attribute].replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\t\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//这种 Html Attribute 方式 是 v3.12 版本之前一直使用的方式,速度上要慢于 上面的,为了向前兼容不至于升级出问题,后面可能会优化掉\r\n\t\t\t\t\t\tvar htmlAttributeValue = node.getAttribute(attribute);\r\n\t\t\t\t\t\tif(htmlAttributeValue != null && typeof(htmlAttributeValue) != 'undefined'){\r\n\t\t\t\t\t\t\t//这个才是在v3.9.2 后要用的,上面的留着只是为了适配以前的\r\n\t\t\t\t\t\t\tnode.setAttribute(attribute, htmlAttributeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText)));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//正常的node ,typeof 都是 object\r\n\r\n\t\t\t\t//console.log(typeof(node)+node);\r\n\t\t\t\tif(nodename == '#text'){\r\n\t\t\t\t\t//如果是普通文本,判断一下上层是否是包含在textarea标签中\r\n\t\t\t\t\tif(typeof(node.parentNode) != 'undefined'){\r\n\t\t\t\t\t\tvar parentNodename = translate.element.getNodeName(node.parentNode);\r\n\t\t\t\t\t\t//console.log(parentNodename)\r\n\t\t\t\t\t\tif(parentNodename == 'TEXTAREA'){\r\n\t\t\t\t\t\t\t//是textarea标签,那将nodename 纳入 textarea的判断中,同时将判断对象交于上级,也就是textarea标签\r\n\t\t\t\t\t\t\tnodename = 'TEXTAREA';\r\n\t\t\t\t\t\t\tnode = node.parentNode;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t//console.log(nodename)\r\n\t\t\t\t//console.log(translate.element.getNodeName(node.parentNode))\r\n\t\t\t\t//console.log(node)\r\n\t\t\t\tif(nodename == 'INPUT' || nodename == 'TEXTAREA'){\r\n\t\t\t\t\t//console.log(node.attributes)\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t\t1. input、textarea 输入框,要对 placeholder 做翻译\r\n\t\t\t\t\t\t2. input 要对 type=button 的情况进行翻译\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tif(node.attributes == null || typeof(node.attributes) == 'undefined'){\r\n\t\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//input,要对 type=button、submit 的情况进行翻译\r\n\t\t\t\t\tif(nodename == 'INPUT'){\r\n\t\t\t\t\t\tif(typeof(node.attributes.type) != 'undefined' && typeof(node.attributes.type.nodeValue) != null && (node.attributes.type.nodeValue.toLowerCase() == 'button' || node.attributes.type.nodeValue.toLowerCase() == 'submit')){\r\n\t\t\t\t\t\t\t//console.log('----是 0){\r\n\t\t\t\t\t\t\t\t//替换渲染\r\n\t\t\t\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\t\t\t\tinput_value_node.nodeValue = input_value_node.nodeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tresult['text'] = input_value_node.nodeValue;\r\n\t\t\t\t\t\t\t\tresult['node'] = input_value_node;\r\n\t\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(node)\r\n\r\n\t\t\t\t\t//input textarea 的 placeholder 情况\r\n\t\t\t\t\tif(typeof(node.attributes['placeholder']) != 'undefined'){\r\n\t\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\t\t//替换渲染\r\n\t\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\t\tnode.attributes['placeholder'].nodeValue = node.attributes['placeholder'].nodeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tresult['text'] = node.attributes['placeholder'].nodeValue;\r\n\t\t\t\t\t\tresult['node'] = node.attributes['placeholder'];\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t//return node.attributes['placeholder'].nodeValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(node)\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t\tif(nodename == 'META'){\r\n\t\t\t\t\t//meta标签,如是关键词、描述等\r\n\t\t\t\t\tif(typeof(node.name) != 'undefined' && node.name != null){\r\n\t\t\t\t\t\tvar nodeAttributeName = node.name.toLowerCase(); //取meta 标签的name 属性\r\n\t\t\t\t\t\tvar nodeAttributePropertyOri = node.getAttribute('property'); //取 property的值\r\n\t\t\t\t\t\tvar nodeAttributeProperty = '';\r\n\t\t\t\t\t\tif(typeof(nodeAttributePropertyOri) != 'undefined' && nodeAttributePropertyOri != null && nodeAttributePropertyOri.length > 0){\r\n\t\t\t\t\t\t\tnodeAttributeProperty = nodeAttributePropertyOri.toLowerCase();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(nodeAttributeName == 'keywords' || nodeAttributeName == 'description' || nodeAttributeName == 'sharetitle' || nodeAttributeProperty == 'og:title' || nodeAttributeProperty == 'og:description' || nodeAttributeProperty == 'og:site_name' || nodeAttributeProperty == 'og:novel:latest_chapter_name'){\r\n\t\t\t\t\t\t\t//替换渲染\r\n\t\t\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText != null && originalText.length > 0){\r\n\t\t\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\t\t\tnode.content = node.content.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tresult['text'] = node.content;\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t\tif(nodename == 'IMG'){\r\n\t\t\t\t\tif(typeof(node.alt) == 'undefined' || node.alt == null){\r\n\t\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//替换渲染\r\n\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\tnode.alt = node.alt.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresult['text'] = node.alt;\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t//其他的\r\n\t\t\t\tif(node.nodeValue == null || typeof(node.nodeValue) == 'undefined'){\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t}else if(node.nodeValue.trim().length == 0){\r\n\t\t\t\t\t//避免就是单纯的空格或者换行\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//替换渲染\r\n\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText != null && originalText.length > 0){\r\n\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\tnode.nodeValue = node.nodeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresult['text'] = node.nodeValue;\r\n\t\t\t\t}\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//获取这个node元素的node name ,如果未发现,则返回''空字符串\r\n\t\tgetNodeName:function(node){\r\n\t\t\tif(node == null || typeof(node) == 'undefined'){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tif(node.nodeName == null || typeof(node.nodeName) == 'undefined'){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tvar nodename = node.nodeName;\r\n\t\t\t//console.log('nodename:'+nodename+', node:'+node);\r\n\t\t\treturn nodename;\r\n\t\t},\r\n\t\t//向下遍历node\r\n\t\twhileNodes:function(uuid, node){\r\n\t\t\tif(node == null || typeof(node) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//如果这个uuid没有,则创建\r\n\t\t\tif(typeof(translate.nodeQueue[uuid]) == 'undefined' || translate.nodeQueue[uuid] == null){\r\n\t\t\t\ttranslate.nodeQueue[uuid] = new Array(); //创建\r\n\t\t\t\ttranslate.nodeQueue[uuid]['expireTime'] = Date.now() + 120*1000; //删除时间,10分钟后删除\r\n\t\t\t\ttranslate.nodeQueue[uuid]['list'] = new Array(); \r\n\t\t\t\t//console.log('创建 --- ');\r\n\t\t\t\t//console.log(uuid)\r\n\t\t\t}\r\n\r\n\t\t\t//console.log('---'+typeof(node)+', ');\r\n\t\t\t//判断是否是有title属性,title属性也要翻译\r\n\t\t\tif(typeof(node) == 'object' && typeof(node['title']) == 'string' && node['title'].length > 0){\r\n\t\t\t\t//将title加入翻译队列\r\n\t\t\t\t//console.log('---'+node.title+'\\t'+node.tagName);\r\n\t\t\t\t//console.log(node)\r\n\t\t\t\t//console.log('------------');\r\n\t\t\t\t\r\n\t\t\t\t//判断当前元素是否在ignore忽略的tag、id、class name中\r\n\t\t\t\tif(!translate.ignore.isIgnore(node)){\r\n\t\t\t\t\t//不在忽略的里面,才会加入翻译\r\n\t\t\t\t\ttranslate.addNodeToQueue(uuid, node, node['title'], 'title');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//v3.9.2 增加, 用户可自定义标签内 attribute 的翻译\r\n\t\t\tvar nodeNameLowerCase = translate.element.getNodeName(node).toLowerCase();\r\n\t\t\tif(typeof(translate.element.tagAttribute[nodeNameLowerCase]) != 'undefined'){\r\n\t\t\t\t//console.log('find:'+nodeNameLowerCase);\r\n\t\t\t\t//console.log(translate.element.tagAttribute[nodeNameLowerCase]);\r\n\r\n\t\t\t\tfor(var attributeName_index in translate.element.tagAttribute[nodeNameLowerCase]){\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar attributeName = translate.element.tagAttribute[nodeNameLowerCase][attributeName_index];\r\n\t\t\t\t\t//console.log(attributeName);\r\n\t\t\t\t\t//console.log(node.getAttribute(attributeName));\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * 默认是 HtmlAtrribute 也就是 HTML特性。取值有两个:\r\n\t\t\t\t\t * HTMLAtrribute : HTML特性\r\n\t\t\t\t\t * DOMProperty : DOM属性\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar DOMPropOrHTMLAttr = 'HTMLAtrribute'; \r\n\t\t\t\t\tvar attributeValue = node.getAttribute(attributeName);\r\n\t\t\t\t\tif(typeof(attributeValue) == 'undefined' || attributeValue == null){\r\n\t\t\t\t\t\t//vue、element、react 中的一些动态赋值,比如 element 中的 el-select 选中后赋予显示出来的文本,getAttribute 就取不到,因为是改动的 DOM属性,所以要用这种方式才能取出来\r\n\t\t\t\t\t\tattributeValue = node[attributeName];\r\n\t\t\t\t\t\tDOMPropOrHTMLAttr = 'DOMProperty';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(attributeValue) == 'undefined' || attributeValue == null){\r\n\t\t\t\t\t\t//这个tag标签没有这个属性,忽略\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//if(typeof(node.getAttribute(attributeName)) == 'undefined' && typeof(node[attributeName]) == 'undefined'){\r\n\t\t\t\t\t//\t//这个tag标签没有这个 attribute,忽略\r\n\t\t\t\t\t//\tcontinue\r\n\t\t\t\t\t//}\r\n\t\t\t\t\t\r\n\t\t\t\t\t//加入翻译\r\n\t\t\t\t\ttranslate.addNodeToQueue(uuid, node, attributeValue, attributeName);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t\tvar childNodes = node.childNodes;\r\n\t\t\tif(childNodes == null || typeof(childNodes) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(childNodes.length > 0){\r\n\t\t\t\tfor(var i = 0; i -1){\r\n\t\t\t\t//忽略tag\r\n\t\t\t\t//console.log('忽略tag:'+parentNodeName);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\t/****** 判断忽略的class ******/\r\n\t\t\t/*\r\n\t\t\t这段理论上不需要了,因为在 translate.ignore.isIgnore 判断了\r\n\t\t\tvar ignoreClass = false;\t//是否是被忽略的class,true是\r\n\t\t\tvar parentNode = node.parentNode;\r\n\t\t\twhile(node != parentNode && parentNode != null){\r\n\t\t\t\t//console.log('node:'+node+', parentNode:'+parentNode);\r\n\t\t\t\tif(parentNode.className != null){\r\n\t\t\t\t\tif(translate.ignore.class.indexOf(parentNode.className) > -1){\r\n\t\t\t\t\t\t//发现ignore.class 当前是处于被忽略的 class\r\n\t\t\t\t\t\tignoreClass = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tparentNode = parentNode.parentNode;\r\n\t\t\t}\r\n\t\t\tif(ignoreClass){\r\n\t\t\t\t//console.log('ignore class : node:'+node.nodeValue);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t/**** 判断忽略的class结束 ******/\r\n\r\n\r\n\r\n\t\t\t/**** 避免中途局部翻译,在判断一下 ****/\r\n\t\t\t//判断当前元素是否在ignore忽略的tag、id、class name中\r\n\t\t\tif(translate.ignore.isIgnore(node)){\r\n\t\t\t\t//console.log('node包含在要忽略的元素中:');\r\n\t\t\t\t//console.log(node);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//node分析\r\n\t\t\tvar nodeAnaly = translate.element.nodeAnalyse.get(node);\r\n\t\t\tif(nodeAnaly['text'].length > 0){\r\n\t\t\t\t//有要翻译的目标内容,加入翻译队列\r\n\t\t\t\t//console.log('addNodeToQueue -- '+nodeAnaly['node']+', text:' + nodeAnaly['text']);\r\n\t\t\t\ttranslate.addNodeToQueue(uuid, nodeAnaly['node'], nodeAnaly['text']);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//console.log(nodeAnaly);\r\n\t\t\t/*\r\n\t\t\t//console.log(node.nodeName+', type:'+node.nodeType+', '+node.nodeValue);\r\n\t\t\tvar nodename = translate.element.getNodeName(node);\r\n\t\t\tif(nodename == 'INPUT' || nodename == 'TEXTAREA'){\r\n\t\t\t\t//input 输入框,要对 placeholder 做翻译\r\n\t\t\t\tconsole.log('input---'+node.attributes);\r\n\t\t\t\tif(node.attributes == null || typeof(node.attributes) == 'undefined'){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tif(typeof(node.attributes['placeholder']) != 'undefined'){\r\n\t\t\t\t\t//console.log(node.attributes['placeholder'].nodeValue);\r\n\t\t\t\t\t//加入要翻译的node队列\r\n\t\t\t\t\t//translate.nodeQueue[translate.hash(node.nodeValue)] = node.attributes['placeholder'];\r\n\t\t\t\t\t//加入要翻译的node队列\r\n\t\t\t\t\t//translate.addNodeToQueue(translate.hash(node.attributes['placeholder'].nodeValue), node.attributes['placeholder']);\r\n\t\t\t\t\ttranslate.addNodeToQueue(uuid, node.attributes['placeholder'], node.attributes['placeholder'].nodeValue);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//console.log(node.getAttribute(\"placeholder\"));\r\n\t\t\t}else if(nodename == 'META'){\r\n\t\t\t\t//meta标签,如是关键词、描述等\r\n\t\t\t\tif(typeof(node.name) != 'undefined' && node.name != null){\r\n\t\t\t\t\tvar nodeAttributeName = node.name.toLowerCase(); //取meta 标签的name 属性\r\n\t\t\t\t\t//console.log(nodeName);\r\n\t\t\t\t\tif(nodeAttributeName == 'keywords' || nodeAttributeName == 'description'){\r\n\t\t\t\t\t\t//关键词、描述\r\n\t\t\t\t\t\ttranslate.addNodeToQueue(uuid, node, node.content);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//console.log(node.name)\r\n\t\t\t}else if(nodename == 'IMG'){\r\n\t\t\t\t//console.log('-------'+node.alt);\r\n\t\t\t\ttranslate.addNodeToQueue(uuid, node, node.alt);\r\n\t\t\t}else if(node.nodeValue != null && node.nodeValue.trim().length > 0){\r\n\t\r\n\t\t\t\t//过滤掉无效的值\r\n\t\t\t\tif(node.nodeValue != null && typeof(node.nodeValue) == 'string' && node.nodeValue.length > 0){\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t//console.log(node.nodeValue+' --- ' + translate.language.get(node.nodeValue));\r\n\t\t\t\t\r\n\t\t\t\t//console.log(node.nodeName);\r\n\t\t\t\t//console.log(node.parentNode.nodeName);\r\n\t\t\t\t//console.log(node.nodeValue);\r\n\t\t\t\t//加入要翻译的node队列\r\n\t\t\t\ttranslate.addNodeToQueue(uuid, node, node.nodeValue);\t\r\n\t\t\t\t//translate.addNodeToQueue(translate.hash(node.nodeValue), node);\r\n\t\t\t\t//translate.nodeQueue[translate.hash(node.nodeValue)] = node;\r\n\t\t\t\t//translate.nodeQueue[translate.hash(node.nodeValue)] = node.nodeValue;\r\n\t\t\t\t//node.nodeValue = node.nodeValue+'|';\r\n\t\r\n\t\t\t}\r\n\t\t\t*/\r\n\r\n\t\t},\r\n\t},\r\n\r\n\t\r\n\r\n\r\n\t\r\n\t/*\r\n\t * 将发现的元素节点加入待翻译队列\r\n\t * uuid execute方法执行的唯一id\r\n\t * node 当前text所在的node\r\n\t * text 当前要翻译的目标文本\r\n\t * attribute 是否是元素的某个属性。比如 a标签中的title属性, a.title 再以node参数传入时是string类型的,本身并不是node类型,所以就要传入这个 attribute=title 来代表这是a标签的title属性。同样第二个参数node传入的也不能是a.title,而是传入a这个node元素\r\n\t */\r\n\taddNodeToQueue:function(uuid, node, text, attribute){\r\n\t\tif(node == null || text == null || text.length == 0){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\r\n\t\t//console.log('find tag ignore : '+node.nodeValue+', '+node.nodeName+\", \"+node.nodeType+\", \"+node.tagName);\r\n\t\t//console.log('addNodeToQueue into -- node:'+node+', text:'+text+', attribute:'+attribute);\r\n\t\tvar nodename = translate.element.getNodeName(node);\r\n\t\t\r\n\t\t//判断如果是被 注释的区域,不进行翻译\r\n\t\tif(nodename.toLowerCase() == '#comment'){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t//console.log('\\t\\t'+text);\r\n\t\t//取要翻译字符的hash\r\n\t\tvar key = translate.util.hash(text);\r\n\t\t/*\r\n\t\t如果是input 的 placeholder ,就会出现这个情况\r\n\t\tif(node.parentNode == null){\r\n\t\t\tconsole.log('node.parentNode == null');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t*/\r\n\r\n\t\t//console.log(node.parentNode);\r\n\t\t//console.log(node.parentNode.nodeName);\r\n\t\t\r\n\t\t//判断其内容是否是 script、style 等编程的文本,如果是,则不进行翻译,不然翻译后还会影响页面正常使用\r\n\t\tif(translate.util.findTag(text)){\r\n\t\t\t//console.log('find tag ignore : '+node.nodeValue+', '+node.nodeName+\", \"+node.nodeType+\", \"+node.tagName);\r\n\t\t\t//console.log(node.parentNode.nodeName);\r\n\t\t\t\r\n\t\t\t//获取到当前文本是属于那个tag标签中的,如果是script、style 这样的标签中,那也会忽略掉它,不进行翻译\r\n\t\t\tif(node.parentNode == null){\r\n\t\t\t\t//没有上级了,或是没获取到上级,忽略\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t//去上级的tag name\r\n\t\t\tvar parentNodeName = translate.element.getNodeName(node.parentNode);\r\n\t\t\t//node.parentNode.nodeName;\r\n\t\t\tif(parentNodeName == 'SCRIPT' || parentNodeName == 'STYLE'){\r\n\t\t\t\t//如果是script、style中发现的,那也忽略\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t//console.log(node.nodeValue);\r\n\r\n\r\n\t\t//原本传入的text会被切割为多个小块\r\n\t\tvar textArray = new Array();\r\n\t\ttextArray.push(text); //先将主 text 赋予 ,后面如果对主text进行加工分割,分割后会将主text给删除掉\r\n\t\t//console.log(textArray);\r\n\r\n\t\t/**** v3.10.2.20241206 - 增加自定义忽略翻译的文本,忽略翻译的文本不会被翻译 - 当然这样会打乱翻译之后阅读的连贯性 ****/\r\n\t\tfor(var ti = 0; ti -1){\r\n\t\t\t\t//console.log(textArray[tai]+' 是忽略翻译的文本,不翻译');\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t//判断是否出现在自定义术语的\r\n\t\t\tif(typeof(translate.temp_nomenclature[translate.language.getLocal()]) != 'undefined'){\r\n\t\t\t\tif(translate.temp_nomenclature[translate.language.getLocal()].indexOf(textArray[tai].trim()) > -1){\r\n\t\t\t\t\t//console.log(textArray[tai]+' 是自定义术语,不翻译');\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ttranslate.addNodeToQueueAnalysis(uuid, node, textArray[tai], attribute);\r\n\t\t}\r\n\t\t\r\n\t\t//this.nodeQueue[lang][key][this.nodeQueue[lang][key].length]=node; //往数组中追加\r\n\t},\r\n\r\n\t/**\r\n\t * 服务于上面的 addNodeToQueue ,用于区分不同type情况,进行调用此加入 translate.nodeQueue\r\n\t * uuid, node, attribute 这及个参数说明见 addNodeToQueue 的参数说明,相同\r\n\t * textArray 进行处理的要翻译的文本数组。这个最开始只是一个,但是命中后分割的多了也就变成多个了\r\n\t * nomenclatureKey 替换的原始文本,也就是自定义术语的key部分\r\n\t * nomenclatureValue 替换的目标文本,也就是自定义术语的value部分 。 如果 nomenclatureKey = nomenclatureValue 则是自定义忽略翻译的文本。这个文本不被翻译\r\n\t * @return 处理过后的 textArray 如果没有命中则返回的是传入的 textArray ,命中了则是切割以及删除原本判断的text之后的 textArray\r\n\t */\r\n\taddNodeToQueueTextAnalysis:function(uuid, node,textArray, attribute, nomenclatureKey, nomenclatureValue){\r\n\t\tvar deleteTextArray = new Array();\t//记录要从 textArray 中删除的字符串\r\n\r\n\t\tfor(var tai = 0; tai -1){\r\n\t\t\t\t//出现了,那么需要将其立即进行更改,将自定义术语定义的结果渲染到页面中,并且将 word 要翻译的字符串中,自定义术语部分删除,只翻译除了自定义术语剩余的部分\r\n\t\t\t\t//console.log(text+' --> '+nomenclatureKey);\r\n\r\n\t\t\t\t\r\n\t\t\t\t/*\r\n\t\t\t\t * 判断一下这个text中,出现匹配自定义术语的部分,是否是已经被替换过了,比如要将 好 替换为 你好 ,这里的好会重复替换。这里是判断这种情况\r\n\t\t\t\t * 其中要判断一下 key 不等于value,因为key等于value,属于是指定这个key不被翻译的情况\r\n\t\t\t\t */\r\n\t\t\t\tif(nomenclatureKey != nomenclatureValue){\r\n\t\t\t\t\tvar substringStart = wordKeyIndex-nomenclatureValue.length;\r\n\t\t\t\t\tif(substringStart < 0){\r\n\t\t\t\t\t\tsubstringStart = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar substringEnd = wordKeyIndex+nomenclatureValue.length;\r\n\t\t\t\t\tif(substringEnd > text.length){\r\n\t\t\t\t\t\tsubstringEnd = text.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar nomenclatureValueJudgement = text.substring(substringStart, substringEnd);\r\n\t\t\t\t\t//console.log(text+', '+nomenclatureValueJudgement);\r\n\t\t\t\t\tif(nomenclatureValueJudgement.indexOf(nomenclatureValue) > -1){\r\n\t\t\t\t\t\t//已经替换过了,可能会重复替换,所以忽略掉\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t//判断当前是否是英语及变种,也就是单词之间需要有空格的,如果前后没有空格,要补充上空格\r\n\t\t\t\tif(translate.language.wordBlankConnector(translate.to)){\r\n\t\t\t\t\tif(wordKeyIndex > 0){\r\n\t\t\t\t\t\t//它前面还有文本,判断它前面的文本是否是空格,如果不是,那么要补充上空格\r\n\t\t\t\t\t\tvar before = text.charAt(wordKeyIndex-1);\r\n\t\t\t\t\t\t//console.log(before);\r\n\t\t\t\t\t\tif(!(/\\s/.test(before))){\r\n\t\t\t\t\t\t\t//不是空白字符,补充上一个空格,用于将两个单词隔开\r\n\t\t\t\t\t\t\tnomenclatureValue = ' '+nomenclatureValue\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(wordKeyIndex + nomenclatureKey.length < text.length){\r\n\t\t\t\t\t\t//它后面还有文本,判断它前面的文本是否是空格,如果不是,那么要补充上空格\r\n\t\t\t\t\t\tvar after = text.charAt(wordKeyIndex + nomenclatureKey.length);\r\n\t\t\t\t\t\t//console.log(after);\r\n\t\t\t\t\t\tif(!(/\\s/.test(before))){\r\n\t\t\t\t\t\t\t//不是空白字符,补充上一个空格,用于将两个单词隔开\r\n\t\t\t\t\t\t\tnomenclatureValue = nomenclatureValue+' ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//如果是自定义术语的key等于value,则是属于指定的某些文本不进行翻译的情况,所以这里要单独判断一下\r\n\t\t\t\t//console.log(nomenclatureKey+':'+nomenclatureValue);\r\n\t\t\t\tif(nomenclatureKey != nomenclatureValue){\r\n\t\t\t\t\ttranslate.element.nodeAnalyse.set(node, nomenclatureKey, nomenclatureValue, attribute);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t//从 text 中将自定义术语的部分删掉,自定义术语的不被翻译\r\n\t\t\t\tvar wordSplits = text.split(nomenclatureKey);\r\n\t\t\t\tvar isPushTextArray = false;\r\n\t\t\t\tfor(var index = 0; index < wordSplits.length; index++){\r\n\t\t\t\t\t//console.log(index);\r\n\t\t\t\t\tvar subWord = wordSplits[index]; //分割后的子字符串\r\n\t\t\t\t\tif(subWord.trim().length == 0){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(subWord);\r\n\r\n\t\t\t\t\t//将其加入 textArray 中\r\n\t\t\t\t\ttextArray.push(subWord);\r\n\t\t\t\t\tdeleteTextArray.push(text);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//console.log(wordSplits);\r\n\t\t\t\t//自定义术语适配完后就直接退出了\r\n\t\t\t\t//return wordSplits;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t//console.log(deleteTextArray)\r\n\t\t//从 textArray 中删除\r\n\t\tif(deleteTextArray.length > 0){\r\n\t\t\tfor(var di = 0; di -1) { \r\n\t\t\t\t\t//console.log(textArray);\r\n\t\t\t\t\t//console.log(deleteTextArray[di]);\r\n\t\t\t\t\ttextArray.splice(index, 1); \r\n\t\t\t\t\t//console.log(textArray);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn textArray;\r\n\t},\r\n\r\n\t/*\r\n\r\n\t\t服务于上面的 addNodeToQueue ,用于区分不同type情况,进行调用此加入 translate.nodeQueue\r\n\t\tuuid, node, attribute 这五个参数说明见 addNodeToQueue 的参数说明,相同\r\n\t\t\r\n\t\tword 要实际进行翻译的文本,也就是要把它拿来进行通过后端翻译接口进行翻译的文本\r\n\t\tlang 当前要翻译的文本的语种,如 english\r\n\t\tbeforeText 参见 translate.nodeQueue 注释中第七维的解释\r\n\t\tafterText 参见 translate.nodeQueue 注释中第七维的解释\r\n\r\n\t*/\r\n\taddNodeToQueueAnalysis:function(uuid, node, text, attribute){\r\n\t\t//获取当前是什么语种\r\n\t\t//var langs = translate.language.get(text);\r\n\t\tvar textRecognition = translate.language.recognition(text);\r\n\t\tvar langs = textRecognition.languageArray;\r\n\t\t//console.log('langs');\r\n\t\t//console.log(langs);\r\n\r\n\t\t\r\n\t\t//过滤掉要转换为的目标语种,比如要转为英语,那就将本来是英语的部分过滤掉,不用再翻译了\r\n\t\tif(typeof(langs[translate.to]) != 'undefined'){\r\n\t\t\tdelete langs[translate.to];\r\n\t\t}\r\n\t\t\r\n\t\tvar isWhole = translate.whole.isWhole(node);\r\n\t\t//console.log('isWhole:'+isWhole+', '+text);\r\n\r\n\t\tif(!isWhole){\r\n\t\t\t//常规方式,进行语种分类\r\n\r\n\r\n\t\t\t/* if(this.nodeQueue[lang] == null || typeof(this.nodeQueue[lang]) == 'undefined'){\r\n\t\t\t\tthis.nodeQueue[lang] = new Array();\r\n\t\t\t} \r\n\t\t\t//创建二维数组\r\n\t\t\tif(this.nodeQueue[lang][key] == null || typeof(this.nodeQueue[lang][key]) == 'undefined'){\r\n\t\t\t\tthis.nodeQueue[lang][key] = new Array();\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t//console.log(langs);\r\n\t\t\t\r\n\t\t\tfor(var lang in langs) {\r\n\t\t\t\t//创建二维数组, key为语种,如 english\r\n\t\t\t\t/*\r\n\t\t\t\t放到了 translate.addNodeQueueItem 进行判断\r\n\t\t\t\tif(translate.nodeQueue[uuid]['list'][lang] == null || typeof(translate.nodeQueue[uuid]['list'][lang]) == 'undefined'){\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang] = new Array();\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\t\t\t\t//console.log('|'+langs[lang].length);\r\n\t\t\t\t//遍历出该语种下有哪些词需要翻译\r\n\t\t\t\tfor(var word_index = 0; word_index < langs[lang].list.length; word_index++){\r\n\t\t\t\t\t//console.log('start:'+word_index)\r\n\t\t\t\t\t//console.log(langs[lang].list[word_index]);\r\n\t\t\t\t\tif(typeof(langs[lang].list[word_index]) == 'undefined' || typeof(langs[lang].list[word_index]['text']) == 'undefined'){\r\n\t\t\t\t\t\t//理论上应该不会,但多加个判断\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar word = langs[lang].list[word_index]['text']; //要翻译的词\r\n\t\t\t\t\tvar beforeText = langs[lang].list[word_index]['beforeText'];\r\n\t\t\t\t\tvar afterText = langs[lang].list[word_index]['afterText'];\r\n\r\n\t\t\t\t\t//console.log(lang+' - '+word);\r\n\t\t\t\t\ttranslate.addNodeQueueItem(uuid, node, word, attribute, lang, beforeText, afterText);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\tvar hash = translate.util.hash(word); \t//要翻译的词的hash\t\t\t\t\t\r\n\t\t\t\t\t//创建三维数组, key为要通过接口翻译的文本词或句子的 hash (注意并不是node的文本,而是node拆分后的文本)\r\n\t\t\t\t\tif(translate.nodeQueue[uuid]['list'][lang][hash] == null || typeof(translate.nodeQueue[uuid]['list'][lang][hash]) == 'undefined'){\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash] = new Array();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'] = new Array();\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['original'] = word;\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['translateText'] = translate.nomenclature.dispose(word); //自定义术语处理\r\n\t\t\t\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['beforeText'] = beforeText;\r\n\t\t\t\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['afterText'] = afterText;\r\n\t\t\t\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['attribute'] = attribute; //放入 nodes[index][attribute] 元素中\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//其中key: nodes 是第四维数组,里面存放具体的node元素对象\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid]['list'][lang][hash]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar isEquals = false; //queue中是否已经加入过这个node了(当然是同一hash同一node情况)\r\n\t\t\t\t\tif(typeof(node.isSameNode) != 'undefined'){\t//支持 isSameNode 方法判断对象是否相等\r\n\t\t\t\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\t\t\t\tif(node.isSameNode(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'])){\r\n\t\t\t\t\t\t\t\t//相同,那就不用在存入了\r\n\t\t\t\t\t\t\t\t//console.log('相同,那就不用在存入了')\r\n\t\t\t\t\t\t\t\tisEquals = true;\r\n\t\t\t\t\t\t\t\t//console.log(node)\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(isEquals){\r\n\t\t\t\t\t\t//相同,那就不用在存入了\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//往五维数组nodes中追加node元素\r\n\t\t\t\t\tvar nodesIndex = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length;\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex] = new Array();\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['node']=node; \r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['attribute']=attribute;\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['beforeText'] = beforeText;\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['afterText'] = afterText;\r\n\t\t\t\t\t\r\n\t\t\t\t\t*/\r\n\r\n\t\t\t\t\t//console.log('end:'+word_index)\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t}else{\r\n\t\t\t//直接翻译整个元素内的内容,不再做语种分类,首先删除英文,然后将出现次数最多的语种作为原本语种\r\n\t\t\tvar lang = textRecognition.languageName;\r\n\t\t\t//console.log(lang+' - '+text);\r\n\t\t\ttranslate.addNodeQueueItem(uuid, node, text, attribute, lang, '', '');\r\n\t\t}\r\n\r\n\r\n\t},\r\n\r\n\t/*\r\n\r\n\t\t服务于上面的 addNodeToQueue ,用于区分不同type情况,进行调用此加入 translate.nodeQueue\r\n\t\tuuid, node, attribute 这五个参数说明见 addNodeToQueue 的参数说明,相同\r\n\t\t\r\n\t\tword 要实际进行翻译的文本,也就是要把它拿来进行通过后端翻译接口进行翻译的文本\r\n\t\tlang 当前要翻译的文本的语种,如 english\r\n\t\tbeforeText 参见 translate.nodeQueue 注释中第七维的解释\r\n\t\tafterText 参见 translate.nodeQueue 注释中第七维的解释\r\n\r\n\t*/\r\n\taddNodeQueueItem:function(uuid, node, word, attribute, lang, beforeText, afterText){\r\n\t\t//创建二维数组, key为语种,如 english\r\n\t\tif(translate.nodeQueue[uuid]['list'][lang] == null || typeof(translate.nodeQueue[uuid]['list'][lang]) == 'undefined'){\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang] = new Array();\r\n\t\t}\r\n\t\t//console.log(word)\r\n\t\t//var word = text;\t//要翻译的文本\r\n\t\tvar hash = translate.util.hash(word); \t//要翻译的文本的hash\r\n\r\n\t\t//创建三维数组, key为要通过接口翻译的文本词或句子的 hash 。这里翻译的文本也就是整个node元素的内容了,不用在做拆分了\r\n\t\tif(translate.nodeQueue[uuid]['list'][lang][hash] == null || typeof(translate.nodeQueue[uuid]['list'][lang][hash]) == 'undefined'){\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash] = new Array();\r\n\r\n\t\t\t/*\r\n\t\t\t * 创建四维数组,存放具体数据\r\n\t\t\t * key: nodes 包含了这个hash的node元素的数组集合,array 多个。其中\r\n\t\t\t \t\tnodes[index]['node'] 存放当前的node元素\r\n\t\t\t \t\tnodes[index]['attribute'] 存放当前hash,也就是翻译文本针对的是什么,是node本身(nodeValue),还是 node 的某个属性,比如title属性。如果这里不为空,那就是针对的属性操作的\r\n\t\t\t * key: original 原始的要翻译的词或句子,html加载完成但还没翻译前的文本,用于支持当前页面多次语种翻译切换而无需跳转\r\n\t\t\t * beforeText、afterText:见 translate.nodeQueue 的说明\r\n\t\t\t */\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'] = new Array();\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['original'] = word;\r\n\t\t\t//自定义术语处理在此前面已经执行过了,所以这个废弃,不需要处理自定义术语部分了\r\n\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['translateText'] = translate.nomenclature.dispose(word); \r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['translateText'] = word;\r\n\t\t\t//console.log(word)\r\n\r\n\r\n\r\n\t\t\t//其中key: nodes 是第四维数组,里面存放具体的node元素对象\r\n\t\t}\r\n\r\n\r\n\t\tvar isEquals = false; //queue中是否已经加入过这个node了(当然是同一hash同一node情况)\r\n\t\tif(typeof(node.isSameNode) != 'undefined'){\t//支持 isSameNode 方法判断对象是否相等\r\n\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\tif(node.isSameNode(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'])){\r\n\t\t\t\t\t//相同,那就不用在存入了\r\n\t\t\t\t\t//console.log('相同,那就不用在存入了')\r\n\t\t\t\t\tisEquals = true;\r\n\t\t\t\t\t//console.log(node)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(isEquals){\r\n\t\t\t//相同,那就不用在存入了\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//往五维数组nodes中追加node元素\r\n\t\tvar nodesIndex = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length;\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex] = new Array();\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['node']=node; \r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['attribute']=attribute;\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['beforeText'] = beforeText;\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['afterText'] = afterText;\r\n\t\t\r\n\r\n\t},\r\n\r\n\t//全部翻译,node内容全部翻译,而不是进行语种提取,直接对node本身的全部内容拿出来进行直接全部翻译\r\n\twhole:{\r\n\t\tisEnableAll:false, //是否开启对整个html页面的整体翻译,也就是整个页面上所有存在的能被翻译的全部会采用整体翻译的方式。默认是 false不开启\t\t\r\n\r\n\t\tenableAll:function(){\r\n\t\t\ttranslate.whole.isEnableAll = true;\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t\t一下三个,也就是 class tag id 分别存储加入的值。使用参考:http://translate.zvo.cn/42563.html\r\n\t\t*/\r\n\t\tclass:[],\r\n\t\ttag:[],\r\n\t\tid:[],\r\n\r\n\t\t//运行时出现自检并在浏览器控制台提示性文本。 \r\n\t\t//在执行翻译,也就是 execute() 时,会调用此方法。\r\n\t\texecuteTip:function(){\r\n\t\t\tif(translate.whole.class.length == 0 && translate.whole.tag.length == 0 && translate.whole.id.length == 0){\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\tconsole.log('您开启了 translate.whole 此次行为避开了浏览器端的文本语种自动识别,而是暴力的直接对某个元素的整个文本进行翻译,很可能会产生非常大的翻译量,请谨慎!有关每日翻译字符的说明,可参考: http://translate.zvo.cn/42557.html ');\r\n\t\t\t}\r\n\r\n\t\t\tif(translate.whole.tag.indexOf('html') > -1){\r\n\t\t\t\tconsole.log('自检发现您设置了 translate.whole.tag 其中有 html ,这个是不生效的,最大只允许设置到 body ');\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t//当前元素是属于全部翻译定义的元素\r\n\t\t/*\r\n\t\t\t传入一个元素,判断这个元素是否是被包含的。 这个会找父类,看看父类中是否包含在其之中。\r\n\t\t\treturn true是在其中,false不再其中\r\n\t\t*/\r\n\t\tisWhole:function(ele){\r\n\r\n\t\t\t//如果设置了 class|tag|id 其中某个,或者 all=true ,那么就是启用,反之未启用\r\n\t\t\tif((translate.whole.class.length == 0 && translate.whole.tag.length == 0 && translate.whole.id.length == 0) && translate.whole.isEnableAll == false){\r\n\t\t\t\t//未设置,那么直接返回false\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(ele == null || typeof(ele) == 'undefined'){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(translate.whole.isEnableAll){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar parentNode = ele;\r\n\t\t\tvar maxnumber = 100;\t//最大循环次数,避免死循环\r\n\t\t\twhile(maxnumber-- > 0){\r\n\t\t\t\tif(parentNode == null || typeof(parentNode) == 'undefined'){\r\n\t\t\t\t\t//没有父元素了\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断Tag\r\n\t\t\t\t//var tagName = parentNode.nodeName.toLowerCase(); //tag名字,小写\r\n\t\t\t\tvar nodename = translate.element.getNodeName(parentNode).toLowerCase(); //tag名字,小写\r\n\t\t\t\tif(nodename.length > 0){\r\n\t\t\t\t\t//有nodename\r\n\t\t\t\t\tif(nodename == 'html' || nodename == '#document'){\r\n\t\t\t\t\t\t//上层元素已经是顶级元素了,那肯定就不是了\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(translate.whole.tag.indexOf(nodename) > -1){\r\n\t\t\t\t\t\t//发现ignore.tag 当前是处于被忽略的 tag\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\t\t\t\t//判断class name\r\n\t\t\t\tif(parentNode.className != null){\r\n\t\t\t\t\tvar classNames = parentNode.className;\r\n\t\t\t\t\tif(classNames == null || typeof(classNames) != 'string'){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('className:'+typeof(classNames));\r\n\t\t\t\t\t//console.log(classNames);\r\n\t\t\t\t\tclassNames = classNames.trim().split(' ');\r\n\t\t\t\t\tfor(var c_index = 0; c_index < classNames.length; c_index++){\r\n\t\t\t\t\t\tif(classNames[c_index] != null && classNames[c_index].trim().length > 0){\r\n\t\t\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\t\t\tif(translate.whole.class.indexOf(classNames[c_index]) > -1){\r\n\t\t\t\t\t\t\t\t//发现ignore.class 当前是处于被忽略的 class\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断id\r\n\t\t\t\tif(parentNode.id != null && typeof(parentNode.id) != 'undefined'){\r\n\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\tif(translate.whole.id.indexOf(parentNode.id) > -1){\r\n\t\t\t\t\t\t//发现ignore.id 当前是处于被忽略的 id\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//赋予判断的元素向上一级\r\n\t\t\t\tparentNode = parentNode.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tlanguage:{\r\n\t\t/*\t\r\n\t\t\t英语的变种语种,也就是在英语26个字母的基础上加了点别的特殊字母另成的一种语言,而这些语言是没法直接通过识别字符来判断出是哪种语种的\r\n\t\t\tv3.4.2 增加\r\n\t\t\t当前先只加上:\r\n\t\t\t法语、意大利语、德语\r\n\t\t*/\r\n\t\tenglishVarietys : ['french','italian','deutsch'],\r\n\r\n\t\t//当前本地语种,本地语言,默认是简体中文。设置请使用 translate.language.setLocal(...)。不可直接使用,使用需用 getLocal()\r\n\t\tlocal:'',\r\n\r\n\t\t/*\r\n\t\t * v3.12增加, 是否会翻译本地语种,默认是false,不会翻译。\r\n\t\t * 比如当前设置的本地语种是简体中文, 但是网页中也有一段英文, 如果设置了translate.to 为中文,也就是要以中文显示 默认是false的情况下,整个页面是不会被任何翻译的,也就是有的那段英文也不会进行任何翻译,依旧是显示英文。\r\n\t\t * 如果这里设置为 true, 则英文也会被翻译,只要不是中文的,都会被翻译为要显示的语种,也就是都会被翻译为中文。\r\n\t\t */\r\n\t\ttranslateLocal:false,\r\n\r\n\t\t/*\r\n\t\t\t翻译语种范围\r\n\t\t\t比如传入 ['chinese_simplified','chinese_traditional','english'] 则表示仅对网页中的简体中文、繁体中文、英文 进行翻译,而网页中出现的其他的像是法语、韩语则不会进行翻译\r\n\t\t\t如果为空 [],则是翻译时,翻译网页中的所有语种\t\t\t\r\n\t\t\t设置方式为: translate.language.translateLanguagesRange = ['chinese_simplified','chinese_traditional']\r\n\t\t*/\r\n\t\ttranslateLanguagesRange: [], \r\n\t\t//传入语种。具体可传入哪些参考: http://api.translate.zvo.cn/doc/language.json.html\r\n\t\tsetLocal:function(languageName){\r\n\t\t\t//translate.setUseVersion2(); //Set to use v2.x version\r\n\t\t\ttranslate.useVersion = 'v2';\r\n\t\t\ttranslate.language.local = languageName;\r\n\t\t},\r\n\t\t//获取当前本地语种,本地语言,默认是简体中文。设置请使用 translate.language.setLocal(...)\r\n\t\tgetLocal:function(){\r\n\t\t\t//判断是否设置了本地语种,如果没设置,自动给其设置\r\n\t\t\tif(translate.language.local == null || translate.language.local.length < 1){\r\n\t\t\t\ttranslate.language.autoRecognitionLocalLanguage();\r\n\t\t\t}\r\n\t\t\treturn translate.language.local;\r\n\t\t},\r\n\t\t/*\r\n\t\t\t获取当前语种。\r\n\t\t\t比如当前设置的本地语种是简体中文,用户并未切换其他语种,那么这个方法将返回本地当前的语种,也就是等同于 translate.language.getLocal()\r\n\t\t\t如果用户切换为英语进行浏览,那么这个方法将返回翻译的目标语种,也就是 english\r\n\t\t*/\r\n\t\tgetCurrent:function(){\r\n\t\t\tvar to_storage = translate.storage.get('to');\r\n\t\t\tif(to_storage != null && typeof(to_storage) != 'undefined' && to_storage.length > 0){\r\n\t\t\t\t//之前有过使用,并且主动设置过目标语种\r\n\t\t\t\treturn to_storage;\r\n\t\t\t}\r\n\t\t\treturn translate.language.getLocal();\r\n\t\t},\r\n\t\t//如果第一次用,默认以什么语种显示。\r\n\t\t//比如本地当前语种是简体中文,这里设置为english,那么用户第一次使用时,会自动翻译为english进行显示。如果用户手动切换为其他语种比如韩语,那么就遵循用户手动切换的为主,显示韩语。\r\n\t\tsetDefaultTo:function(languageName){\r\n\t\t\tvar to_storage = translate.storage.get('to');\r\n\t\t\tif(to_storage != null && typeof(to_storage) != 'undefined' && to_storage.length > 0){\r\n\t\t\t\t//之前有过使用,并且主动设置过目标语种,那么不进行处理\r\n\t\t\t}else{\r\n\t\t\t\t//没有设置过,进行处理\r\n\t\t\t\ttranslate.storage.set('to', languageName);\r\n\t\t\t\ttranslate.to = languageName;\r\n\t\t\t}\r\n\t\t},\r\n\t\t/*\r\n\t\t\t清除历史翻译语种的缓存\r\n\t\t*/\r\n\t\tclearCacheLanguage:function(){\r\n\t\t\ttranslate.to = '';\r\n\t\t\ttranslate.storage.set('to','');\r\n\t\t},\r\n\t\t//根据URL传参控制以何种语种显示\r\n\t\t//设置可以根据当前访问url的某个get参数来控制使用哪种语言显示。\r\n\t\t//比如当前语种是简体中文,网页url是http://translate.zvo.cn/index.html ,那么可以通过在url后面增加 language 参数指定翻译语种,来使网页内容以英文形态显示 http://translate.zvo.cn/index.html?language=english\r\n\t\tsetUrlParamControl:function(paramName){\r\n\t\t\tif(typeof(paramName) == 'undefined' || paramName.length < 1){\r\n\t\t\t\tparamName = 'language';\r\n\t\t\t}\r\n\t\t\tvar paramValue = translate.util.getUrlParam(paramName);\r\n\t\t\tif(typeof(paramValue) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(paramValue == '' || paramValue == 'null' || paramValue == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttranslate.storage.set('to', paramValue);\r\n\t\t\ttranslate.to = paramValue;\r\n\t\t},\r\n\t\t//自动识别当前页面是什么语种\r\n\t\tautoRecognitionLocalLanguage:function(){\r\n\t\t\tif(translate.language.local != null && translate.language.local.length > 2){\r\n\t\t\t\t//已设置过了,不需要再设置\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar bodyText = document.body.outerText;\r\n\t\t\tif(bodyText == null || typeof(bodyText) == 'undefined' || bodyText.length < 1){\r\n\t\t\t\t//未取到,默认赋予简体中文\r\n\t\t\t\ttranslate.language.local = 'chinese_simplified';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tbodyText = bodyText.replace(/\\n|\\t|\\r/g,''); //将回车换行等去掉\r\n\r\n\t\t\t//默认赋予简体中文\r\n\t\t\ttranslate.language.local = 'chinese_simplified';\r\n\t\t\tvar recognition = translate.language.recognition(bodyText);\r\n\t\t\ttranslate.language.local = recognition.languageName;\r\n\t\t\treturn translate.language.local;\r\n\t\t\t/* v3.1优化\r\n\t\t\tvar langs = new Array(); //上一个字符的语种是什么,当前字符向上数第一个字符。格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。 \r\n\t\t\tfor(var i=0; i -1){\r\n\t\t\t\tnewLangs.splice(index,1); //移除数组中的特殊字符\r\n\t\t\t}\r\n\r\n\t\t\tif(newLangs.length > 0){\r\n\t\t\t\t//找到排序出现频率最多的\r\n\t\t\t\ttranslate.language.local = newLangs[0];\r\n\t\t\t}else{\r\n\t\t\t\t//没有,默认赋予简体中文\r\n\t\t\t\ttranslate.language.local = 'chinese_simplified';\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t},\r\n\t\t\r\n\t\t/*\r\n\t\t * 获取当前字符是什么语种。返回值是一个语言标识,有 chinese_simplified简体中文、japanese日语、korean韩语、\r\n\t\t * str : node.nodeValue 或 图片的 node.alt 等\r\n\t\t * 如果语句长,会全句翻译,以保证翻译的准确性,提高可读性。\r\n\t\t * 如果语句短,会自动将特殊字符、要翻译的目标语种给过滤掉,只取出具体的要翻译的目标语种文本\r\n\t\t *\r\n\t\t * 返回 存放不同语言的数组,格式如\r\n\t\t * \t[\r\n\t\t\t\t\t\"english\":[\r\n\t\t\t\t\t\t{beforeText: '', afterText: '', text: 'emoambue hag'},\r\n\t\t\t\t\t\t......\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"japanese\":[\r\n\t\t\t\t\t\t{beforeText: ' ', afterText: ' ', text: 'ẽ '},\r\n\t\t\t\t\t\t......\r\n\t\t\t\t\t]\r\n\t\t \t\t]\r\n\t\t * \t\t\r\n\t\t */\r\n\t\tget:function(str){\r\n\t\t\t//将str拆分为单个char进行判断\r\n\r\n\t\t\tvar langs = new Array(); //当前字符串包含哪些语言的数组,其内如 english\r\n\t\t\tvar langStrs = new Array();\t//存放不同语言的文本,格式如 ['english'][0] = 'hello'\r\n\t\t\tvar upLangs = []; //上一个字符的语种是什么,当前字符向上数第一个字符。格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。 \r\n\t\t\tvar upLangsTwo = []; //上二个字符的语种是什么 ,当前字符向上数第二个字符。 格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。\r\n\t\t\t\r\n\t\t\t//var upLangs = ''; //上一个字符的语种是什么,格式如 english\r\n\t\t\tfor(var i=0; i -1){\r\n\t\t\t\tnewLangs.splice(index,1); //移除\r\n\t\t\t}\r\n\r\n\t\t\t//移除特殊字符\r\n\t\t\tvar index = newLangs.indexOf('specialCharacter');\r\n\t\t\tif(index > -1){\r\n\t\t\t\tnewLangs.splice(index,1); //移除数组中的特殊字符\r\n\t\t\t}\r\n\r\n\t\t\tif(newLangs.length > 0){\r\n\t\t\t\t//还剩一个或多个,(如果是多个,那应该是这几个出现的频率一样,所以取频率最高的时返回了多个)\r\n\t\t\t\treturn newLangs[0];\r\n\t\t\t}else{\r\n\t\t\t\t//没找到,直接返回空字符串\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t//去除特殊符号\r\n\t\t\t//for(var i = 0; i 0.01){\r\n\t\t\t\t\tlangkeys[langkeys.length] = lang+'';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(langkeys.length > 1 && langkeys.indexOf('english') > -1){\r\n\t\t\t\t//console.log('出现了english, 并且english跟其他语种一起出现那么删除english,因为什么法语德语乱七八糟的都有英语。而且中文跟英文一起,如果认为是英文的话,有时候中文会不被翻译');\r\n\t\t\t\t//这里先判断一下是否有发现了 罗曼语族\r\n\t\t\t\tif(langkeys.indexOf('romance') > -1){\r\n\t\t\t\t\t//发现了,那么判断一下到底是 法语、西班牙语、葡萄牙语、意大利语 中的哪一种呢\r\n\t\t\t\t\tvar romanceSentenceLanguage = translate.language.romanceSentenceAnaly(str);\r\n\t\t\t\t\tif(romanceSentenceLanguage.length == 0){\r\n\t\t\t\t\t\tconsole.log('语种识别异常,应该是 法语、西班牙语、葡萄牙语、意大利语 中的一种才是,除非是除了这四种语种之外的别的 罗曼语族 中的语种,当前已将 '+ str +'识别为英语。 你可以联系我们求助 https://translate.zvo.cn/4030.html');\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//console.log(langsNumber);\r\n\t\t\t\t\t\tlangsNumber[romanceSentenceLanguage] = langsNumber['romance']+langsNumber['english'];\r\n\t\t\t\t\t\t//console.log('set romance to '+romanceSentenceLanguage+' : \\t'+str);\r\n\t\t\t\t\t\tlangsNumber['english'] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tlangsNumber['english'] = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(langkeys.indexOf('chinese_simplified') > -1 && langkeys.indexOf('chinese_traditional') > -1){\r\n\t\t\t\t//如果简体中文跟繁体中文一起出现,那么会判断当前句子为繁体中文。\r\n\t\t\t\t//langkeys.splice(langkeys.indexOf('chinese_simplified'), 1); \r\n\t\t\t\tlangsNumber['chinese_simplified'] = 0;\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//从 langsNumber 中找出字数最多的来\r\n\t\t\tvar maxLang = ''; //字数最多的语种\r\n\t\t\tvar maxNumber = 0;\r\n\t\t\tfor(var lang in langsNumber){\r\n\t\t\t\tif(langsNumber[lang] > maxNumber){\r\n\t\t\t\t\tmaxLang = lang;\r\n\t\t\t\t\tmaxNumber = langsNumber[lang];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//重新组合返回值的 languageArray\r\n\t\t\tvar languageArray = {};\r\n\t\t\tfor(var lang in langs){\r\n\t\t\t\tlanguageArray[lang] = {};\r\n\t\t\t\tlanguageArray[lang].number = langsNumberOriginal[lang];\r\n\t\t\t\tlanguageArray[lang].list = langs[lang];\r\n\t\t\t}\r\n\r\n\t\t\tvar result = {\r\n\t\t\t\tlanguageName: maxLang,\r\n\t\t\t\tlanguageArray: languageArray\r\n\t\t\t};\r\n\r\n\t\t\t//v3.4.2 增加,增加对法语等英文变种的小语种的识别\r\n\t\t\tif(result.languageName == 'english'){\r\n\t\t\t\t//如果识别的语种是英语,那便不仅仅是英语,因为法语、德语、意大利语也是在英语里面,还要判断一下是否用户自己设置了具体语种是否是英语延伸的小语种\r\n\r\n\t\t\t\tvar localLang = translate.language.getLocal(); //本地语种\r\n\t\t\t\tif(translate.language.englishVarietys.indexOf(localLang) > -1){\r\n\t\t\t\t\t//发现当前设置的是小语种,那么将当前识别的语种识别为 本地设置的这个小语种。\r\n\t\t\t\t\tresult.languageName = localLang;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t/*\r\n\t\t\t传入一个char,返回这个char属于什么语种,返回如 如果返回空字符串,那么表示未获取到是什么语种\r\n\t\t\tchinese_simplified 简体中文\r\n\t\t\tchinese_traditional 繁体中文\r\n\t\t\trussian 俄罗斯语\r\n\t\t\tenglish 英语\r\n\t\t\tromance 罗曼语族,它是 法语、西班牙语、意大利语、葡萄牙語 的集合,并不是单个语言\r\n\t\t\tspecialCharacter 特殊字符,符号\r\n\t\t\tnumber 阿拉伯数字\r\n\t\t\tjapanese 日语\r\n\t\t\tkorean 韩语\r\n\t\t*/\r\n\t\tgetCharLanguage:function(charstr){\r\n\t\t\tif(charstr == null || typeof(charstr) == 'undefined'){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(this.russian(charstr)){\r\n\t\t\t\treturn 'russian';\r\n\t\t\t}\r\n\t\t\tif(this.english(charstr)){\r\n\t\t\t\treturn 'english';\r\n\t\t\t}\r\n\t\t\tif(this.romance(charstr)){\r\n\t\t\t\treturn 'romance';\r\n\t\t\t}\r\n\t\t\tif(this.specialCharacter(charstr)){\r\n\t\t\t\treturn 'specialCharacter';\r\n\t\t\t}\r\n\t\t\tif(this.number(charstr)){\r\n\t\t\t\treturn 'number';\t\r\n\t\t\t}\r\n\r\n\t\t\t//中文的判断包含两种,简体跟繁体\r\n\t\t\tvar chinesetype = this.chinese(charstr);\r\n\t\t\tif(chinesetype == 'simplified'){\r\n\t\t\t\treturn 'chinese_simplified';\r\n\t\t\t}else if(chinesetype == 'traditional'){\r\n\t\t\t\treturn 'chinese_traditional';\r\n\t\t\t}\r\n\r\n\t\t\tif(this.japanese(charstr)){\r\n\t\t\t\treturn 'japanese';\r\n\t\t\t}\r\n\t\t\tif(this.korean(charstr)){\r\n\t\t\t\treturn 'korean';\r\n\t\t\t}\r\n\r\n\t\t\t//未识别是什么语种\r\n\t\t\t//console.log('not find is language , char : '+charstr+', unicode: '+charstr.charCodeAt(0).toString(16));\r\n\t\t\treturn '';\r\n\t\t\t\r\n\t\t},\r\n\t\t/*\r\n\t\t * 对字符串进行分析,分析字符串是有哪几种语言组成。\r\n\t\t * language : 当前字符的语种,传入如 english\r\n\t\t * langStrs : 操作的,如 langStrs['english'][0] = '你好'\r\n\t\t * upLangs : 当前字符之前的上一个字符的语种是什么,当前字符向上数第一个字符。格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。\r\n\t\t * upLangsTwo : 当前字符之前的上二个字符的语种是什么 ,当前字符向上数第二个字符。 格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。\r\n\t\t * chatstr : 当前字符,如 h\r\n\t\t */\r\n\t\tanalyse:function(language, langStrs, upLangs, upLangsTwo, charstr){\r\n\t\t\tif(typeof(langStrs[language]) == 'undefined'){\r\n\t\t\t\tlangStrs[language] = new Array();\r\n\t\t\t}\r\n\t\t\tvar index = 0; //当前要存入的数组下标\r\n\t\t\tif(typeof(upLangs['storage_language']) == 'undefined'){\r\n\t\t\t\t//第一次,那么还没存入值,index肯定为0\r\n\t\t\t\t//console.log('第一次,那么还没存入值,index肯定为0')\r\n\t\t\t\t//console.log(upLangs['language'])\r\n\t\t\t}else{\r\n\t\t\t\t//console.log('analyse, charstr : '+charstr+', upLangs :');\r\n\t\t\t\t//console.log(upLangs);\r\n\t\t\t\t//var isEqual = upLangs['storage_language'] == language; //上次跟当前字符是否都是同一个语种(这个字符跟这个字符前一个字符)\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t英语每个单词之间都会有空格分割. 如果是英文的话,英文跟特殊字符还要单独判断一下,避免拆开,造成翻译不准,单个单词翻译的情况\r\n\t\t\t\t\t所以如果上次的字符是英文或特殊符号,当前字符是特殊符号(逗号、句号、空格,然后直接笼统就吧特殊符号都算上吧),那么也将当次的特殊符号变为英文来进行适配\r\n\t\t\t\t\t示例 \r\n\t\t\t\t\t\thello word 的 \"o w\"\r\n\t\t\t\t\t\thello word 的 \" w\"\r\n\t\t\t\t\t\thello word 的 \"w \"\r\n\t\t\t\t\t\tthis is a dog 的 \" a \"\r\n\t\t\t\t*/\r\n\t\t\t\t//console.log(language == 'specialCharacter');\r\n\t\t\t\t//如果两个字符类型不一致,但当前字符是英文或连接符时,进行判断\r\n\t\t\t\t/*\r\n\t\t\t\tif(!isEqual){\r\n\t\t\t\t\tif(language == 'english' || translate.language.connector(charstr)){\r\n\t\t\t\t\t\tconsole.log('1.'+(language == 'english' || translate.language.connector(charstr))+', upLangs str:'+upLangs['charstr']);\r\n\t\t\t\t\t\t//上一个字符是英文或连接符\r\n\t\t\t\t\t\t//console.log('teshu:'+translate.language.connector(upLangs['charstr'])+', str:'+upLangs['charstr']);\r\n\t\t\t\t\t\tif(upLangs['language'] == 'english' || translate.language.connector(upLangs['charstr'])) {\r\n\t\t\t\t\t\t\tconsole.log('2');\r\n\t\t\t\t\t\t\t//如果上二个字符不存在,那么刚开始,不再上面几种情况之中,直接不用考虑\r\n\t\t\t\t\t\t\tif(typeof(upLangsTwo['language']) != 'undefined'){\r\n\t\t\t\t\t\t\t\tconsole.log('3')\r\n\t\t\t\t\t\t\t\t//上二个字符是空(字符串刚开始),或者是英文\r\n\t\t\t\t\t\t\t\tif(upLangsTwo['language'] == 'english' || translate.language.connector(upLangsTwo['charstr'])){\r\n\t\t\t\t\t\t\t\t\t//满足这三个条件,那就将这三个拼接到一起\r\n\t\t\t\t\t\t\t\t\tconsole.log('4/5: '+', two lang:'+upLangsTwo['language']+', str:'+upLangsTwo['charstr'])\r\n\t\t\t\t\t\t\t\t\tisEqual = true;\r\n\t\t\t\t\t\t\t\t\tif(language == 'specialCharacter' && upLangs['language'] == 'specialCharacter' && upLangsTwo['language'] == 'specialCharacter'){\r\n\t\t\t\t\t\t\t\t\t\t//如果三个都是特殊字符,或后两个是特殊字符,第一个是空(刚开始),那就归入特殊字符\r\n\t\t\t\t\t\t\t\t\t\tlanguage = 'specialCharacter';\r\n\t\t\t\t\t\t\t\t\t\t//console.log('4')\r\n\t\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\t\t//不然就都归于英文中。\r\n\t\t\t\t\t\t\t\t\t\t//这里更改是为了让下面能将特殊字符(像是空格逗号等)也一起存入数组\r\n\t\t\t\t\t\t\t\t\t\tlanguage = 'english';\r\n\t\t\t\t\t\t\t\t\t\tconsole.log(5)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t不判断当前字符,而判断上个字符,是因为当前字符没法获取未知的下个字符。\r\n\t\t\t\t*/\r\n\t\t\t\t//if(!isEqual){\r\n\r\n\t\t\t\t\t//如果当前字符是连接符\r\n\t\t\t\t\tif(translate.language.connector(charstr)){\r\n\t\t\t\t\t\tlanguage = upLangs['storage_language'];\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t//判断上个字符是否存入了待翻译字符,如要将中文翻译为英文,而上个字符是中文,待翻译,那将连接符一并加入待翻译字符中去,保持句子完整性\r\n\t\t\t\t\t\t//判断依据是上个字符存储至的翻译字符语种序列,不是特殊字符,而且也不是要翻译的目标语种,那肯定就是待翻译的,将连接符加入待翻译中一起进行翻译\r\n\t\t\t\t\t\tif(upLangs['storage_language'] != 'specialCharacter' && upLangs['storage_language'] != translate.to){\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tlanguage = upLangs['storage_language'];\r\n\t\t\t\t\t\t\tconsole.log('teshu:'+charstr+', 当前字符并入上个字符存储翻译语种:'+upLangs['storage_language']);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t}\r\n\t\t\t\t//}\r\n\r\n\t\t\t\t//console.log('isEqual:'+isEqual);\r\n\t\t\t\t/*\r\n\t\t\t\tif(isEqual){\r\n\t\t\t\t\t//跟上次语言一样,那么直接拼接\r\n\t\t\t\t\tindex = langStrs[language].length-1; \r\n\t\t\t\t\t//但是还有别的特殊情况,v2.1针对英文翻译准确度的适配,会有特殊字符的问题\r\n\t\t\t\t\tif(typeof(upLangs['storage_language']) != 'undefined' && upLangs['storage_language'] != language){\r\n\t\t\t\t\t\t//如果上个字符存入的翻译队列跟当前这个要存入的队列不一个的话,那应该是特殊字符像是逗号句号等导致的,那样还要额外一个数组,不能在存入之前的数组了\r\n\t\t\t\t\t\tindex = langStrs[language].length; \r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//console.log('新开');\r\n\t\t\t\t\t//当前字符跟上次语言不样,那么新开一个数组\r\n\t\t\t\t\tindex = langStrs[language].length;\r\n\t\t\t\t\t//console.log('++, inde:'+index+',lang:'+language+', length:'+langStrs[language].length)\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\r\n\t\t\t\t//当前要翻译的语种跟上个字符要翻译的语种一样,那么直接拼接\r\n\t\t\t\tif(upLangs['storage_language'] == language){\r\n\t\t\t\t\tindex = langStrs[language].length-1; \r\n\t\t\t\t}else{\r\n\t\t\t\t\t//console.log('新开');\r\n\t\t\t\t\t//当前字符跟上次语言不样,那么新开一个数组\r\n\t\t\t\t\tindex = langStrs[language].length;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(typeof(langStrs[language][index]) == 'undefined'){\r\n\t\t\t\tlangStrs[language][index] = new Array();\r\n\t\t\t\tlangStrs[language][index]['beforeText'] = '';\r\n\t\t\t\tlangStrs[language][index]['afterText'] = '';\r\n\t\t\t\tlangStrs[language][index]['text'] = '';\r\n\t\t\t}\r\n\t\t\tlangStrs[language][index]['text'] = langStrs[language][index]['text'] + charstr;\r\n\t\t\t/*\r\n\t\t\t\t中文英文混合时,当中文+英文并没有空格间隔,翻译为英文时,会使中文翻译英文的结果跟原本的英文单词连到一块。这里就是解决这种情况\r\n\t\t\t\t针对当前非英文(不需要空格分隔符,像是中文、韩语),但要翻译为英文(需要空格作为分割符号,像是法语等)时的情况进行判断\r\n\t\t\t*/\r\n\t\t\t//if(translate.language.getLocal() != 'english' && translate.to == 'english'){\r\n\t\t\t//当前本地语种的语言是连续的,但翻译的目标语言不是连续的(空格间隔)\r\n\t\t\tif( translate.language.wordBlankConnector(translate.language.getLocal()) == false && translate.language.wordBlankConnector(translate.to)){\t\r\n\t\t\t\tif((upLangs['storage_language'] != null && typeof(upLangs['storage_language']) != 'undefined' && upLangs['storage_language'].length > 0)){\r\n\t\t\t\t\t//上个字符存在\r\n\t\t\t\t\t//console.log(upLangs['storage_language']);\r\n\t\t\t\t\tif(upLangs['storage_language'] != 'specialCharacter'){\r\n\t\t\t\t\t\t//上个字符不是特殊字符 (是正常语种。且不会是连接符,连接符都并入了正常语种)\r\n\r\n\t\t\t\t\t\t//if( upLangs['storage_language'] != 'english' && language == 'english'){\r\n\t\t\t\t\t\t//上个字符的语言是连续的,但当前字符的语言不是连续的(空格间隔)\r\n\t\t\t\t\t\tif( translate.language.wordBlankConnector(upLangs['storage_language']) == false && translate.language.wordBlankConnector(language) ){\r\n\t\t\t\t\t\t\t//上个字符不是英语,当前字符是英语,这种情况要在上个字符后面追加空格,因为当前字符是英文,就不会在执行翻译操作了\r\n\t\t\t\t\t\t\t//console.log(upLangs['language']);\r\n\t\t\t\t\t\t\tlangStrs[upLangs['storage_language']][langStrs[upLangs['storage_language']].length-1]['afterText'] = ' ';\r\n\t\t\t\t\t\t}else if(upLangs['storage_language'] == 'english' && language != 'english'){\r\n\t\t\t\t\t\t\t//上个字符是英语,当前字符不是英语,直接在当前字符前面追加空格\r\n\t\t\t\t\t\t\tlangStrs[language][index]['beforeText'] = ' ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar result = new Array();\r\n\t\t\tresult['langStrs'] = langStrs;\r\n\t\t\tresult['storage_language'] = language;\t//实际存入了哪种语种队列\r\n\t\t\t//console.log(result);\r\n\t\t\t//console.log(langStrs)\r\n\t\t\t//console.log(charstr);\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t\r\n\t\t/*\r\n\t\t * 不同于语言,这个只是单纯的连接符。比如英文单词之间有逗号、句号、空格, 汉字之间有逗号句号书名号的。避免一行完整的句子被分割,导致翻译不准确\r\n\t\t * 单独拿他出来,目的是为了更好的判断计算,提高翻译的准确率\r\n\t\t */\r\n\t\tconnector:function(str){\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t\t通用的有 空格、阿拉伯数字\r\n\t\t\t\t1.不间断空格\\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ;\r\n\t\t\t\t2.半角空格(英文符号)\\u0020,代码中常用的;\r\n\t\t\t\t3.全角空格(中文符号)\\u3000,中文文章中使用; \r\n\t\t\t*/\t\r\n\t\t\tif(/.*[\\u0020\\u00A0\\u202F\\u205F\\u3000]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t/*\r\n\t\t\t\tU+0030 0 数字 0\r\n\t\t\t\tU+0031 1 数字 1\r\n\t\t\t\tU+0032 2 数字 2\r\n\t\t\t\tU+0033 3 数字 3\r\n\t\t\t\tU+0034 4 数字 4\r\n\t\t\t\tU+0035 5 数字 5\r\n\t\t\t\tU+0036 6 数字 6\r\n\t\t\t\tU+0037 7 数字 7\r\n\t\t\t\tU+0038 8 数字 8\r\n\t\t\t\tU+0039 9 数字 9\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u0030-\\u0039]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t\t\t/*\r\n\t\t\t\t英文场景\r\n\t\t\t\t英文逗号、句号\r\n\t\t\t\t这里不包括() 因为这里面的基本属于补充,对语句前后并无强依赖关系\r\n\t\t\t\t\r\n\t\t\t\tU+0021 ! 叹号\r\n\t\t\t\tU+0022 \" 双引号\r\n\t\t\t\tU+0023 # 井号\r\n\t\t\t\tU+0024 $ 价钱/货币符号\r\n\t\t\t\tU+0025 % 百分比符号\r\n\t\t\t\tU+0026 & 英文“and”的简写符号\r\n\t\t\t\tU+0027 ' 引号\r\n\t\t\t\tU+002C , 逗号\r\n\t\t\t\tU+002D - 连字号/减号\r\n\t\t\t\tU+002E . 句号\r\n\t\t\t\tU+003A : 冒号\r\n\t\t\t\tU+003B ; 分号\r\n\t\t\t\tU+003F ? 问号\r\n\t\t\t\tU+0040 @ 英文“at”的简写符号\r\n\r\n\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u0021\\u0022\\u0023\\u0024\\u0025\\u0026\\u0027\\u002C\\u002D\\u002E\\u003A\\u003B\\u003F\\u0040]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t\t中文标点符号\r\n\t\t\t\t名称\tUnicode\t符号\r\n\t\t\t\t句号\t3002\t。\r\n\t\t\t\t问号\tFF1F\t?\r\n\t\t\t\t叹号\tFF01\t!\r\n\t\t\t\t逗号\tFF0C\t,\r\n\t\t\t\t顿号\t3001\t、\r\n\t\t\t\t分号\tFF1B\t;\r\n\t\t\t\t冒号\tFF1A\t:\r\n\t\t\t\t引号\t300C\t「\r\n\t\t\t\t \t300D\t」\r\n\t\t\t\t引号\t300E\t『\r\n\t\t\t\t \t300F\t』\r\n\t\t\t\t引号\t2018\t‘\r\n\t\t\t\t \t2019\t’\r\n\t\t\t\t引号\t201C\t“\r\n\t\t\t\t \t201D\t”\r\n\t\t\t\t括号\tFF08\t(\r\n\t\t\t\t \tFF09\t)\r\n\t\t\t\t括号\t3014\t〔\r\n\t\t\t\t \t3015\t〕\r\n\t\t\t\t括号\t3010\t【\r\n\t\t\t\t \t3011\t】\r\n\t\t\t\t破折号\t2014\t—\r\n\t\t\t\t省略号\t2026\t…\r\n\t\t\t\t连接号\t2013\t–\r\n\t\t\t\t间隔号\tFF0E\t.\r\n\t\t\t\t书名号\t300A\t《\r\n\t\t\t\t \t300B\t》\r\n\t\t\t\t书名号\t3008\t〈\r\n\t\t\t\t \t3009\t〉\r\n\t\t\t\t键盘123前面的那个符号 · 00b7\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u3002\\uFF1F\\uFF01\\uFF0C\\u3001\\uFF1B\\uFF1A\\u300C\\u300D\\u300E\\u300F\\u2018\\u2019\\u201C\\u201D\\uFF08\\uFF09\\u3014\\u3015\\u3010\\u3011\\u2014\\u2026\\u2013\\uFF0E\\u300A\\u300B\\u3008\\u3009\\u00b7]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\r\n\t\t\t//不是,返回false\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t//语种的单词连接符是否需要空格,比如中文简体、繁体、韩文、日语都不需要空格,则返回false, 但是像是英文的单词间需要空格进行隔开,则返回true\r\n\t\t//如果未匹配到,默认返回true\r\n\t\t//language:语种,传入如 english\r\n\t\twordBlankConnector:function(language){\r\n\t\t\tif(language == null || typeof(language) == 'undefined'){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tswitch (language.trim().toLowerCase()){\r\n\t\t \t\tcase 'chinese_simplified':\r\n\t\t \t\t\treturn false;\r\n\t\t \t\tcase 'chinese_traditional':\r\n\t\t \t\t\treturn false;\r\n\t\t \t\tcase 'korean':\r\n\t\t \t\t\treturn false;\r\n\t\t \t\tcase 'japanese':\r\n\t\t \t\t\treturn false;\r\n\t\t \t}\r\n\t\t \t//其他情况则返回true\r\n\t\t \treturn true;\r\n\t\t},\r\n\t\t//繁体中文的字典,判断繁体中文就是通过此判断\r\n\t\tchinese_traditional_dict: '皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊',\r\n\t\t/*\r\n\t\t\t中文判断\r\n\t\t\t返回:\r\n\t\t\t\tsimplified:简体中文\r\n\t\t\t\ttraditional:繁体中文\r\n\t\t\t\t空字符串:不是中文\r\n\t\t*/ \r\n\t\tchinese:function(str){\r\n\t\t\tif(/.*[\\u4e00-\\u9fa5]+.*$/.test(str)){ \r\n\t\t\t\tif(this.chinese_traditional_dict.indexOf(str) > -1){ \r\n\t\t\t\t\treturn 'traditional';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn 'simplified';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含日语,true:包含\r\n\t\tjapanese:function(str){\r\n\t\t\tif(/.*[\\u3040-\\u309F\\u30A0-\\u30FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含韩语,true:包含\r\n\t\tkorean:function(str){\r\n\t\t\tif(/.*[\\uAC00-\\uD7AF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含俄语\r\n\t\trussian:function(str){\r\n\t\t\t//判断字符有 БВДЖЗИЙЛМНОПСТУФХЦЧШЩЪЫЬЮЯЇІ\r\n\t\t\tif(/.*[\\u0411\\u0412\\u0414\\u0416\\u0417\\u0418\\u0419\\u041B\\u041C\\u041D\\u041E\\u041F\\u0421\\u0422\\u0423\\u0424\\u0425\\u0426\\u0427\\u0428\\u0429\\u042A\\u042B\\u042C\\u042E\\u042F\\u0407\\u0406]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//0-9 阿拉伯数字\r\n\t\tnumber:function(str){\r\n\t\t\tif(/.*[\\u0030-\\u0039]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t//是否包含英文,true:包含\r\n\t\tenglish:function(str){\r\n\t\t\tif(/.*[\\u0041-\\u005a]+.*$/.test(str)){ \r\n\t\t\t\treturn true;\r\n\t\t\t} else if(/.*[\\u0061-\\u007a]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含 罗曼语族 的特殊字符,因为 法语、西班牙语、意大利语、葡萄牙語 都属于这个语族,单纯判断特殊字符已经不能判断出到底属于哪个语种了\r\n\t\tromance_dict:['é','è','ê','à','ç','œ','ñ','á','ó','ò','ì','ã','õ'],\r\n\t\tromance:function(str){\r\n\t\t\tif(this.romance_dict.indexOf(str) > -1){ \r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//对 罗曼语族 的句子进行分析,看它是属于 法语、西班牙语、意大利语、葡萄牙語 的哪个。注意这个是传入的整体的句子,不是传入的单个字符\r\n\t\t//返回识别的语种: french、spanish、italian、portuguese 如果都没有识别出来,则返回空字符串\r\n\t\tromanceSentenceAnaly:function(text) {\r\n\t\t // 定义各语言的典型字母/符号权重 (可调整)\r\n\t\t const langFeatures = {\r\n\t\t 'french': { score:0 , chars: ['é','è','ê','à','ç','œ'] },\r\n\t\t 'spanish': { score:0 , chars: ['ñ','á','ó'], pairs: ['ll'] },\r\n\t\t 'italian': { score:0 , chars: ['ò','ì'], pairs: ['cc', 'ss'] },\r\n\t\t 'portuguese': { score:0 , chars: ['ã', 'õ'] }\r\n\t\t };\r\n\r\n\t\t // 逐字扫描 + 相邻配对检测\r\n\t\t for (let i=0; i {\r\n\t\t if (langFeatures[lang].chars.includes(char)) {\r\n\t\t langFeatures[lang].score +=1;\r\n\t\t }\r\n\t\t });\r\n\r\n\t\t // 双字配对检测 (如 ll)\r\n\t\t if(i < text.length -1) {\r\n\t\t const pair = text.slice(i,i+2).toLowerCase();\r\n\t\t Object.keys(langFeatures).forEach(lang => {\r\n\t\t \tconst pairs = langFeatures[lang].pairs;\r\n\t\t\t\t if (pairs && pairs.includes(pair)) {\r\n\t\t\t\t langFeatures[lang].score += 2; // pair权重大于单字\r\n\t\t\t\t }\r\n\t\t });\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t // 结果判定 (取最高分)\r\n\t\t let maxLang = '';\r\n\t\t let maxScore = -1;\r\n\t\t \r\n\t\t Object.keys(langFeatures).forEach(lang =>{\r\n\t\t if(langFeatures[lang].score > maxScore){\r\n\t\t maxScore = langFeatures[lang].score;\r\n\t\t maxLang = lang;\r\n\t\t } \r\n\t\t });\r\n\r\n\t\t return maxLang || ''; \r\n\t\t},\r\n\r\n\t\t//是否包含特殊字符,包含,则是true\r\n\t\tspecialCharacter:function(str){\r\n\t\t\t//如:① ⑴ ⒈ \r\n\t\t\tif(/.*[\\u2460-\\u24E9]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t//如:┊┌┍ ▃ ▄ ▅\r\n\t\t\tif(/.*[\\u2500-\\u25FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t//如:㈠ ㎎ ㎏ ㎡\r\n\t\t\tif(/.*[\\u3200-\\u33FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//如:与ANSI对应的全角字符\r\n\t\t\tif(/.*[\\uFF00-\\uFF5E]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t//其它特殊符号\r\n\t\t\tif(/.*[\\u2000-\\u22FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t// 、><等符号\r\n\t\t\tif(/.*[\\u3001-\\u3036]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\t//阿拉伯数字 0-9\r\n\t\t\tif(/.*[\\u0030-\\u0039]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\tU+0020 空格\r\n\t\t\tU+0021 ! 叹号\r\n\t\t\tU+0022 \" 双引号\r\n\t\t\tU+0023 # 井号\r\n\t\t\tU+0024 $ 价钱/货币符号\r\n\t\t\tU+0025 % 百分比符号\r\n\t\t\tU+0026 & 英文“and”的简写符号\r\n\t\t\tU+0027 ' 引号\r\n\t\t\tU+0028 ( 开 左圆括号\r\n\t\t\tU+0029 ) 关 右圆括号\r\n\t\t\tU+002A * 星号\r\n\t\t\tU+002B + 加号\r\n\t\t\tU+002C , 逗号\r\n\t\t\tU+002D - 连字号/减号\r\n\t\t\tU+002E . 句号\r\n\t\t\tU+002F / 左斜杠\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u0020-\\u002F]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\t\tU+003A : 冒号\r\n\t\t\t\tU+003B ; 分号\r\n\t\t\t\tU+003C < 小于符号\r\n\t\t\t\tU+003D = 等于号\r\n\t\t\t\tU+003E > 大于符号\r\n\t\t\t\tU+003F ? 问号\r\n\t\t\t\tU+005B [ 开 方括号\r\n\t\t\t\tU+005C \\ 右斜杠\r\n\t\t\t\tU+005D ] 关 方括号\r\n\t\t\t\tU+005E ^ 抑扬(重音)符号\r\n\t\t\t\tU+005F _ 底线\r\n\t\t\t\tU+0060 ` 重音符\r\n\t\t\t\tU+007B { 开 左花括号\r\n\t\t\t\tU+007C | 直线\r\n\t\t\t\tU+007D } 关 右花括号\r\n\t\t\t\tU+007E ~ 波浪纹\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u003B\\u003B\\u003C\\u003D\\u003E\\u003F\\u005B\\u005C\\u005D\\u005E\\u005F\\u0060\\u007B\\u007C\\u007D\\u007E]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//空白字符,\\u0009\\u000a + https://cloud.tencent.com/developer/article/2128593\r\n\t\t\tif(/.*[\\u0009\\u000a\\u0020\\u00A0\\u1680\\u180E\\u202F\\u205F\\u3000\\uFEFF]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif(/.*[\\u2000-\\u200B]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t拉丁字母\r\n\t\t\t代码 显示 描述\r\n\t\t\tU+00A1 ¡ 倒转的叹号\r\n\t\t\tU+00A2 ¢ (货币单位)分钱、毫子\r\n\t\t\tU+00A3 £ (货币)英镑\r\n\t\t\tU+00A4 ¤ (货币)当货币未有符号时以此替代\r\n\t\t\tU+00A5 ¥ (货币)日元\r\n\t\t\tU+00A6 ¦ 两条断开的直线\r\n\t\t\tU+00A7 § 文件分不同部分\r\n\t\t\tU+00A8 ¨ (语言)分音\r\n\t\t\tU+00A9 © 版权符\r\n\t\t\tU+00AA ª (意大利文、葡萄牙文、西班牙文)阴性序数\r\n\t\t\tU+00AB « 双重角形引号\r\n\t\t\tU+00AC ¬ 逻辑非\r\n\t\t\tU+00AE ® 商标\r\n\t\t\tU+00AF ¯ 长音\r\n\t\t\tU+00B0 ° 角度\r\n\t\t\tU+00B1 ± 正负号\r\n\t\t\tU+00B2 ² 二次方\r\n\t\t\tU+00B3 ³ 三次方\r\n\t\t\tU+00B4 ´ 锐音符\r\n\t\t\tU+00B5 µ 百万分之一,10?6\r\n\t\t\tU+00B6 ¶ 文章分段\r\n\t\t\tU+00B7 · 间隔号\r\n\t\t\tU+00B8 ¸ 软音符\r\n\t\t\tU+00B9 ¹ 一次方\r\n\t\t\tU+00BA º (意大利文、葡萄牙文、西班牙文)阳性序数\r\n\t\t\tU+00BB » 指向右的双箭头\r\n\t\t\tU+00BC ¼ 四分之一\r\n\t\t\tU+00BD ½ 二分之一\r\n\t\t\tU+00BE ¾ 四分之三\r\n\t\t\tU+00BF ¿ 倒转的问号\r\n\t\t\tU+00C1 Á 在拉丁字母 A 上加锐音符\r\n\t\t\tU+00C2  在拉丁字母 A 上加抑扬符“^”\r\n\t\t\tU+00C3 à 在拉丁字母 A 上加“~”\r\n\t\t\tU+00C4 Ä 在拉丁字母 A 上加分音符“..”\r\n\t\t\tU+00C5 Å 在拉丁字母 A 上加角度符“°”\r\n\t\t\tU+00C6 Æ 拉丁字母 A、E 的混合\r\n\t\t\tU+00C7 Ç 在拉丁字母 C 下加软音符\r\n\t\t\tU+00C8 È 在拉丁字母 E 上加重音符\r\n\t\t\tU+00C9 É 在拉丁字母 E 上加锐音符\r\n\t\t\tU+00CA Ê 在拉丁字母 E 上加抑扬符\r\n\t\t\tU+00CB Ë 在拉丁字母 E 上加分音符\r\n\t\t\tU+00CC Ì 在拉丁字母 I 上加重音符\r\n\t\t\tU+00CD Í 在拉丁字母 I 上加锐音符\r\n\t\t\tU+00CE Î 在拉丁字母 I 上加抑扬符\r\n\t\t\tU+00CF Ï 在拉丁字母 I 上加分音符\r\n\t\t\tU+00D0 Ð 古拉丁字母,现只有法罗文和冰岛文和越南语使用\r\n\t\t\tU+00D1 Ñ 在拉丁字母 N 上加波浪纹“~”\r\n\t\t\tU+00D2 Ò 在拉丁字母 O 上加重音符\r\n\t\t\tU+00D3 Ó 在拉丁字母 O 上加锐音符\r\n\t\t\tU+00D4 Ô 在拉丁字母 O 上加抑扬符\r\n\t\t\tU+00D5 Õ 在拉丁字母 O 上加波浪纹“~”\r\n\t\t\tU+00D6 Ö 在拉丁字母 O 上加分音符\r\n\t\t\tU+00D7 × 乘号,亦可拖按“Alt”键,同时按“41425”五键\r\n\t\t\tU+00D8 Ø 在拉丁字母 O 由右上至左下加对角斜线“/”\r\n\t\t\tU+00D9 Ù 在拉丁字母 U 上加重音符\r\n\t\t\tU+00DA Ú 在拉丁字母 U 上加锐音符\r\n\t\t\tU+00DB Û 在拉丁字母 U 上加抑扬符\r\n\t\t\tU+00DC Ü 在拉丁字母 U 上加分音符\r\n\t\t\tU+00DD Ý 在拉丁字母 Y 上加锐音符\r\n\t\t\tU+00DE Þ 古拉丁字母,现已被“Th”取替\r\n\t\t\tU+00DF ß 德文字母\r\n\t\t\tU+00E0 à 在拉丁字母 a 上加重音符\r\n\t\t\tU+00E1 á 在拉丁字母 a 上加锐音符\r\n\t\t\tU+00E2 â 在拉丁字母 a 上加抑扬符\r\n\t\t\tU+00E3 ã 在拉丁字母 a 上加波浪纹“~”\r\n\t\t\tU+00E4 ä 在拉丁字母 a 上加分音符\r\n\t\t\tU+00E5 å 在拉丁字母 a 上加角度符“°”\r\n\t\t\tU+00E6 æ 拉丁字母 a、e 的混合\r\n\t\t\tU+00E7 ç 在拉丁字母 c 下加软音符\r\n\t\t\tU+00E8 è 在拉丁字母 e 上加锐音符\r\n\t\t\tU+00E9 é 在拉丁字母 e 上加重音符\r\n\t\t\tU+00EA ê 在拉丁字母 e 上加抑扬符\r\n\t\t\tU+00EB ë 在拉丁字母 e 上加分音符\r\n\t\t\tU+00EC ì 在拉丁字母 i 上加重音符\r\n\t\t\tU+00ED í 在拉丁字母 i 上加锐音符\r\n\t\t\tU+00EE î 在拉丁字母 i 上加抑扬符\r\n\t\t\tU+00EF ï 在拉丁字母 i 上加分音符\r\n\t\t\tU+00F0 ð 古拉丁字母\r\n\t\t\tU+00F1 ñ 在拉丁字母 n 上加波浪纹“~”\r\n\t\t\tU+00F2 ò 在拉丁字母 o 上加重音符\r\n\t\t\tU+00F3 ó 在拉丁字母 o 上加锐音符\r\n\t\t\tU+00F4 ô 在拉丁字母 o 上加抑扬符\r\n\t\t\tU+00F5 õ 在拉丁字母 o 上加波浪纹“~”\r\n\t\t\tU+00F6 ö 在拉丁字母 o 上加分音符\r\n\t\t\tU+00F7 ÷ 除号,亦可拖按“Alt”键,同时按“41426”五键\r\n\t\t\tU+00F8 ø 在拉丁字母 o 由右上至左下加对角斜线“/”\r\n\t\t\tU+00F9 ù 在拉丁字母 u 上加重音符\r\n\t\t\tU+00FA ú 在拉丁字母 u 上加锐音符\r\n\t\t\tU+00FB ? 在拉丁字母 u 上加抑扬符\r\n\t\t\tU+00FC ü 在拉丁字母 u 上加分音符\r\n\t\t\tU+00FD ý 在拉丁字母 y 上加锐音符\r\n\t\t\tU+00FE þ 古拉丁字母,现已被“th”取替\r\n\t\t\tU+00FF ü 在拉丁字母 u 上加分音符\r\n\t\t\t拉丁字母(扩展 A)\r\n\t\t\t代码 显示 描述\r\n\t\t\tU+0100 Ā 在拉丁字母 A 上加长音符\r\n\t\t\tU+0101 ā 在拉丁字母 a 上加长音符\r\n\t\t\tU+0102 Ă 在拉丁字母 A 上加短音符\r\n\t\t\tU+0103 ă 在拉丁字母 a 上加短音符\r\n\t\t\tU+0104 Ą 在拉丁字母 A 上加反尾形符\r\n\t\t\tU+0105 ą 在拉丁字母 a 上加反尾形符\r\n\t\t\t拉丁字母(扩展 C)\r\n\t\t\t代码 显示 描述\r\n\t\t\tU+2C60 Ⱡ 在拉丁字母“L”中间加两条横线“=”\r\n\t\t\tU+2C61 ⱡ 在拉丁字母“l”(L 的小写)中间加两条横线“=”\r\n\t\t\tU+2C62 Ɫ 在拉丁字母“L”(大写)中间加一条波浪线“~”\r\n\t\t\tU+2C63 Ᵽ 在拉丁字母“P”中间加一条横线“-”\r\n\t\t\tU+2C64 Ɽ 在拉丁字母“R”下加一条尾巴\r\n\t\t\tU+2C65 ⱥ 在拉丁字母“a”上加一条对角斜线“/”\r\n\t\t\tU+2C66 ⱦ 在拉丁字母“t”上加一条对角斜线“/”\r\n\t\t\tU+2C67 Ⱨ 在拉丁字母“H”下加一条尾巴\r\n\t\t\tU+2C68 ⱨ 在拉丁字母“h”下加一条尾巴\r\n\t\t\tU+2C69 Ⱪ 在拉丁字母“K”下加一条尾巴\r\n\t\t\tU+2C6A ⱪ 在拉丁字母“k”下加一条尾巴\r\n\t\t\tU+2C6B Ⱬ 在拉丁字母“Z”下加一条尾巴\r\n\t\t\tU+2C6C ⱬ 在拉丁字母“z”下加一条尾巴\r\n\t\t\tU+2C74 ⱴ 在拉丁字母“v”的起笔加一个弯勾\r\n\t\t\tU+2C75 Ⱶ 拉丁字母“H”的左半部\r\n\t\t\tU+2C76 ⱶ 拉丁字母“h”的左半部\r\n\t\t\tU+2C77 ⱷ 希腊字母“φ”的上半部\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u00A1-\\u0105]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif(/.*[\\u2C60-\\u2C77]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\t//用户第一次打开网页时,自动判断当前用户所在国家使用的是哪种语言,来自动进行切换为用户所在国家的语种。\r\n\t//如果使用后,第二次在用,那就优先以用户所选择的为主\r\n\texecuteByLocalLanguage:function(){\r\n\t\t//先读用户自己浏览器的默认语言\r\n\t\tvar browserDefaultLanguage = translate.util.browserDefaultLanguage();\r\n\t\tif(typeof(browserDefaultLanguage) != 'undefined' && browserDefaultLanguage.length > 0){\r\n\t\t\ttranslate.changeLanguage(browserDefaultLanguage);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//如果用户浏览器没读到默认语言,或者默认语言没有对应到translate.js支持的语种,那么在采用ip识别的方式\r\n\t\ttranslate.request.post(translate.request.api.ip, {}, function(data){\r\n\t\t\t//console.log(data); \r\n\t\t\tif(data.result == 0){\r\n\t\t\t\tconsole.log('==== ERROR 获取当前用户所在区域异常 ====');\r\n\t\t\t\tconsole.log(data.info);\r\n\t\t\t\tconsole.log('==== ERROR END ====');\r\n\t\t\t}else{\r\n\t\t\t\ttranslate.storage.set('to',data.language);\t//设置目标翻译语言\r\n\t\t\t\ttranslate.to = data.language; //设置目标语言\r\n\t\t\t\ttranslate.selectLanguageTag\r\n\t\t\t\ttranslate.execute(); //执行翻译\r\n\t\t\t}\r\n\t\t}, null);\r\n\t},\r\n\t\r\n\tutil:{\r\n\t\t/* 生成一个随机UUID,复制于 https://gitee.com/mail_osc/kefu.js */\r\n\t\tuuid:function() {\r\n\t\t var d = new Date().getTime();\r\n\t\t if (window.performance && typeof window.performance.now === \"function\") {\r\n\t\t d += performance.now(); //use high-precision timer if available\r\n\t\t }\r\n\t\t var uuid = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\t var r = (d + Math.random() * 16) % 16 | 0;\r\n\t\t d = Math.floor(d / 16);\r\n\t\t return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n\t\t });\r\n\t\t return uuid;\r\n\t\t},\r\n\r\n\t\t//判断字符串中是否存在tag标签。 true存在\r\n\t\tfindTag:function(str) {\r\n\t\t\tvar reg = /<[^>]+>/g;\r\n\t\t\treturn reg.test(str);\r\n\t\t},\r\n\t\t//传入一个数组,从数组中找出现频率最多的一个返回。 如果多个频率出现的次数一样,那会返回多个\r\n\t\tarrayFindMaxNumber:function(arr){\r\n\r\n\t\t\t// 储存每个元素出现的次数\r\n\t\t\tvar numbers = {}\r\n\r\n\t\t\t// 储存出现最多次的元素\r\n\t\t\tvar maxStr = []\r\n\r\n\t\t\t// 储存最多出现的元素次数\r\n\t\t\tvar maxNum = 0\r\n\r\n\t\t\tfor(var i =0,len=arr.length;imaxNum){\r\n\t\t\t maxNum = numbers[arr[i]]\r\n\t\t\t }\r\n\t\t\t}\r\n\r\n\t\t\tfor(var item in numbers){\r\n\t\t\t if(numbers[item]===maxNum){\r\n\t\t\t maxStr.push(item)\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn maxStr;\r\n\t\t},\r\n\t\t//对字符串进行hash化,目的取唯一值进行标识\r\n\t\thash:function(str){\r\n\t\t\tif(str == null || typeof(str) == 'undefined'){\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t\tvar hash = 0, i, chr;\r\n\t\t\tif (str.length === 0){\r\n\t\t\t\treturn hash;\r\n\t\t\t}\r\n\r\n\t\t\tfor (i = 0; i < str.length; i++) {\r\n\t\t\t\tchr = str.charCodeAt(i);\r\n\t\t\t\thash = ((hash << 5) - hash) + chr;\r\n\t\t\t\thash |= 0; // Convert to 32bit integer\r\n\t\t\t}\r\n\t\t\treturn hash+'';\r\n\t\t},\r\n\t\t//去除一些指定字符,如换行符。 如果传入的是null,则返回空字符串\r\n\t\tcharReplace:function(str){\r\n\r\n\t\t\tif(str == null){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\tstr = str.trim();\r\n\t\t\tstr = str.replace(/\\t|\\n|\\v|\\r|\\f/g,'');\t//去除换行符等\r\n\t\t\t//str = str.replace(/&/g, \"%26\"); //因为在提交时已经进行了url编码了\r\n\t\t\treturn str;\r\n\t\t},\r\n\t\t//RegExp相关\r\n\t\tregExp:{\r\n\t\t\t// new RegExp(pattern, resultText); 中的 pattern 字符串的预处理\r\n\t\t\tpattern:function(str){\r\n\t\t\t\tstr = str.replace(/\\\\/g,'\\\\\\\\'); //这个一定要放在第一个,不然会被下面的影响\r\n\t\t\t\t//str = str.replace(/'/g,'\\\\\\'');\r\n\t\t\t\tstr = str.replace(/\\\"/g,'\\\\\\\"');\r\n\t\t\t\t//str = str.replace(/./g,'\\\\\\.');\r\n\t\t\t\tstr = str.replace(/\\?/g,'\\\\\\?');\r\n\t\t\t\tstr = str.replace(/\\$/g,'\\\\\\$');\r\n\t\t\t\tstr = str.replace(/\\(/g,'\\\\\\(');\r\n\t\t\t\tstr = str.replace(/\\)/g,'\\\\\\)');\r\n\t\t\t\tstr = str.replace(/\\|/g,'\\\\\\|');\r\n\t\t\t\tstr = str.replace(/\\+/g,'\\\\\\+');\r\n\t\t\t\tstr = str.replace(/\\*/g,'\\\\\\*');\r\n\t\t\t\tstr = str.replace(/\\[/g,'\\\\\\[');\r\n\t\t\t\tstr = str.replace(/\\]/g,'\\\\\\]');\r\n\t\t\t\tstr = str.replace(/\\^/g,'\\\\\\^');\r\n\t\t\t\tstr = str.replace(/\\{/g,'\\\\\\{');\r\n\t\t\t\tstr = str.replace(/\\}/g,'\\\\\\}');\r\n\t\t\t\treturn str;\r\n\t\t\t},\r\n\t\t\t// new RegExp(pattern, resultText); 中的 resultText 字符串的预处理\r\n\t\t\tresultText:function(str){\r\n\t\t\t\t//str = str.replace(/"/g,\"\\\"\");\r\n\t\t\t\t//str = str.replace(/'/g,\"\\\\\\'\");\r\n\t\t\t\t//str = str.replace(/\"/g,\"\\\\\\\"\");\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//获取URL的GET参数。若没有,返回\"\"\r\n\t\tgetUrlParam:function (name){\r\n\t\t var reg = new RegExp(\"(^|&)\"+ name +\"=([^&]*)(&|$)\");\r\n\t\t var r = window.location.search.substr(1).match(reg);\r\n\t\t if(r!=null)return unescape(r[2]); return \"\";\r\n\t\t},\r\n\t\t/**\r\n\t\t * 同步加载JS,加载过程中会阻塞,加载完毕后继续执行后面的。\r\n\t\t * url: 要加载的js的url\r\n\t\t */\r\n\t\tsynchronizesLoadJs:function(url){\r\n\t\t\tvar xmlHttp = null; \r\n\t\t\tif(window.ActiveXObject){//IE \r\n\t\t\t\ttry { \r\n\t\t\t\t\t//IE6以及以后版本中可以使用 \r\n\t\t\t\t\txmlHttp = new ActiveXObject(\"Msxml2.XMLHTTP\"); \r\n\t\t\t\t} catch (e) { \r\n\t\t\t\t\t//IE5.5以及以后版本可以使用 \r\n\t\t\t\t\txmlHttp = new ActiveXObject(\"Microsoft.XMLHTTP\"); \r\n\t\t\t\t} \r\n\t\t\t}else if(window.XMLHttpRequest){ \r\n\t\t\t\t//Firefox,Opera 8.0+,Safari,Chrome \r\n\t\t\t\txmlHttp = new XMLHttpRequest(); \r\n\t\t\t} \r\n\t\t\t//采用同步加载 \r\n\t\t\txmlHttp.open(\"GET\",url,false); \r\n\t\t\t//发送同步请求,如果浏览器为Chrome或Opera,必须发布后才能运行,不然会报错 \r\n\t\t\txmlHttp.send(null); \r\n\t\t\t//4代表数据发送完毕 \r\n\t\t\tif( xmlHttp.readyState == 4 ){ \r\n\t\t\t\t//0为访问的本地,200到300代表访问服务器成功,304代表没做修改访问的是缓存 \r\n\t\t\t\tif((xmlHttp.status >= 200 && xmlHttp.status <300) || xmlHttp.status == 0 || xmlHttp.status == 304){ \r\n\t\t\t\t\tvar myBody = document.getElementsByTagName(\"HTML\")[0]; \r\n\t\t\t\t\tvar myScript = document.createElement( \"script\" ); \r\n\t\t\t\t\tmyScript.language = \"javascript\"; \r\n\t\t\t\t\tmyScript.type = \"text/javascript\"; \r\n\t\t\t\t\ttry{ \r\n\t\t\t\t\t\t//IE8以及以下不支持这种方式,需要通过text属性来设置 \r\n\t\t\t\t\t\tmyScript.appendChild(document.createTextNode(xmlHttp.responseText)); \r\n\t\t\t\t\t}catch (ex){ \r\n\t\t\t\t\t\tmyScript.text = xmlHttp.responseText; \r\n\t\t\t\t\t} \r\n\t\t\t\t\tmyBody.appendChild(myScript); \r\n\t\t\t\t\treturn true; \r\n\t\t\t\t}else{ \r\n\t\t\t\t\treturn false; \r\n\t\t\t\t} \r\n\t\t\t}else{ \r\n\t\t\t\treturn false; \r\n\t\t\t} \r\n\t\t},\r\n\t\t//加载 msg.js\r\n\t\tloadMsgJs:function(){\r\n\t\t\tif(typeof(msg) != 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\ttranslate.util.synchronizesLoadJs('https://res.zvo.cn/msg/msg.js');\r\n\t\t},\r\n\t\t/*\r\n\t\t\t对一个对象,按照对象的key的长度进行排序,越长越在前面\r\n\t\t*/\r\n\t\tobjSort:function(obj){\r\n\t\t\t// 获取对象数组的所有 key,并转换为普通数组\r\n\t\t\tvar keys = Array.from(Object.keys(obj));\r\n\r\n\t\t\t// 对 key 数组进行排序\r\n\t\t\tkeys.sort(function(a, b){\r\n\t\t\t return b.length - a.length;\r\n\t\t\t});\r\n\r\n\t\t\t// 定义一个新的对象数组,用来存储排序后的结果\r\n\t\t\tvar sortedObj = new Array();\r\n\r\n\t\t\t// 遍历排序后的 key 数组,将对应的值复制到新的对象数组中,并删除原来的对象数组中的键值对\r\n\t\t\tfor (var key of keys) {\r\n\t\t\t sortedObj[key] = obj[key];\r\n\t\t\t}\r\n\t\t\treturn sortedObj;\r\n\t\t},\r\n\t\t/*\r\n\t\t\t将 2.11.3.20231232 转化为 2011003\r\n\t\t\t转化时会去掉最后一个日期的字符\r\n\t\t*/\r\n\t\tversionStringToInt:function(versionString){\r\n\t\t\tvar vs = versionString.split('\\.');\r\n\t\t\tvar result = 0;\r\n\t\t\tresult = parseInt(vs[0])*1000*1000 + result;\r\n\t\t\tresult = parseInt(vs[1])*1000 + result;\r\n\t\t\tresult = parseInt(vs[2]) + result;\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t/**\r\n\t\t * 将一个 JSONArray 数组,按照文字长度进行拆分。\r\n\t\t * 比如传入的 array 数组的文字长度是6200,传入的 stringLength 是2000,那么就是将 array 数组拆分为多个长度不超出2000的数组返回。\r\n\t\t * \t\t如果传入了 maxSize = 5 那么会对拆分后的数组的长度进行判断,如果数组内元素超过5,那么还要进行缩短,拆分后的数组不允许超过这个数\r\n\t\t * \t\t也就是拆分后的数组有两重限制,一是限制转化为文本形式的长度、再就是拆分后本身数组的大小。\r\n\t\t * \t\t\r\n\t\t * 注意,这个长度是指 array.toString() 后的长度,也就是包含了 [\"\"] 这种符号的长度\r\n\t\t * @param array 要被拆分的数组,其内都是String类型,传入格式如 [\"你好\",\"世界\"]\r\n\t\t * @param stringLength 要被拆分的数组转化为字符串之后的长度\r\n\t\t * @param maxSize 被拆分的数组最大包含多少个,数组大小最大允许多大,要小于等于这个数。 如果设置为0则是不启用这个,不对拆分后的数组进行判断。\r\n\t\t * @return 被拆分后的数组列表\r\n\t\t * @author 刘晓腾\r\n\t\t */\r\n\t\t split:function(array, size, maxSize) {\r\n\t\t \tlet orgsize = size;\r\n\t\t let list = [];\r\n\t\t // 数组长度小于size,直接进行返回\r\n\t\t if(JSON.stringify(array).length <= size) {\r\n\t\t list.push(array);\r\n\t\t } else {\r\n\t\t // 转换成String\r\n\t\t let arrayStr = JSON.stringify(array).trim().substring(1, JSON.stringify(array).length - 1);\r\n\r\n\t\t // 判断size和字符串长度的差值,如果为1或者2,就直接拆成两段\r\n\t\t if (JSON.stringify(array).length - size <= 2) {\r\n\t\t size = size - 4;\r\n\t\t // 拆两段\r\n\t\t let str1 = arrayStr.substring(0, arrayStr.lastIndexOf(\"\\\",\\\"\")+1);\r\n\t\t let str2 = arrayStr.substring(arrayStr.lastIndexOf(\"\\\",\\\"\")+2);\r\n\t\t list.push(JSON.parse(\"[\" + str1 + \"]\"));\r\n\t\t list.push(JSON.parse(\"[\" + str2 + \"]\"));\r\n\t\t } else {\r\n\t\t size = size - 2;\r\n\t\t // 拆多段\r\n\t\t let index = 0;\r\n\t\t while (index - arrayStr.length < 0) {\r\n\t\t // 按照指定大小拆一段\r\n\t\t let s = \"\";\r\n\t\t if ((index+size) - arrayStr.length >= 0) {\r\n\t\t s = arrayStr.substring(index);\r\n\t\t } else {\r\n\t\t s = arrayStr.substring(index, (index+size));\r\n\t\t }\r\n\t\t // 结尾长度默认为字符串长度\r\n\t\t let endIndex = s.length;\r\n\t\t // 因为下次开始的第一个字符可能会是逗号,所以下次开始需要+1\r\n\t\t let startNeedAdd = 1;\r\n\t\t // 判断最后一个字符是否为双引号\r\n\t\t if (s.endsWith(\"\\\"\")) {\r\n\t\t // 判断倒数第二个是否为逗号\r\n\t\t if (s.endsWith(\"\\\",\\\"\")) {\r\n\t\t // 删除两个字符\r\n\t\t endIndex-=2;\r\n\t\t } else if (!s.startsWith(\"\\\"\")) {\r\n\t\t // 如果开头不是引号,需要补一个引号,这就导致会超长,所以结尾就要找指定字符的\r\n\t\t // 找出最后一个指定字符的位置\r\n\t\t let la = s.lastIndexOf(\"\\\",\\\"\");\r\n\t\t endIndex = la + 1;\r\n\t\t }\r\n\t\t } else if (s.endsWith(\"\\\",\")) {\r\n\t\t // 判断是否为逗号,是的话删除一个字符\r\n\t\t endIndex-=1;\r\n\t\t } else {\r\n\t\t // 都不是,那就是内容结尾\r\n\t\t // 找出最后一个指定字符的位置\r\n\t\t let la = s.lastIndexOf(\"\\\",\\\"\");\r\n\t\t endIndex = la + 1;\r\n\t\t // 内容超长,endIndex就会变成0,这时需要手动赋值\r\n\t\t if (endIndex <= 0) {\r\n\t\t // 看看是否以引号开头,如果不是,需要拼两个引号\r\n\t\t if (s.startsWith(\"\\\"\")) {\r\n\t\t // 拼一个引号,-1\r\n\t\t endIndex = s.length - 1;\r\n\t\t } else {\r\n\t\t // 拼两个引号,-2\r\n\t\t endIndex = s.length - 2;\r\n\t\t }\r\n\t\t if (!s.endsWith(\"\\\"\")) {\r\n\t\t // 开始不是逗号了,不能-1\r\n\t\t startNeedAdd = 0;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t // 根据处理的结尾长度进行第二次拆分\r\n\t\t let s2 = \"\";\r\n\t\t if (endIndex - s.length > 0 || endIndex - 0 == 0) {\r\n\t\t s2 = s;\r\n\t\t endIndex = endIndex + s2.length;\r\n\t\t } else {\r\n\t\t s2 = s.substring(0, endIndex);\r\n\t\t }\r\n\t\t if (!s2.startsWith(\"\\\"\") && !s2.startsWith(\",\\\"\")) {\r\n\t\t // 拼一个引号\r\n\t\t s2 = \"\\\"\" + s2;\r\n\t\t }\r\n\t\t if (!s2.endsWith(\"\\\"\")) {\r\n\t\t // 拼一个引号\r\n\t\t s2 = s2 +\"\\\"\";\r\n\t\t }\r\n\t\t // 计算下次循环开始的长度\r\n\t\t index += (endIndex + startNeedAdd);\r\n\t\t // 加到list\r\n\t\t s2 = \"[\" + s2 + \"]\";\r\n\t\t try {\r\n\t\t list.push(JSON.parse(s2));\r\n\t\t } catch (e) {\r\n\t\t // 遇到错误,略过一个字符\r\n\t\t index = index - (endIndex + startNeedAdd) + 1;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t\t// 设置了maxSize,进行处理\r\n\t\t\tif (maxSize && maxSize > 0) {\r\n\t\t\t\tlist = translate.util._splitMaxSize(list, orgsize, maxSize);\r\n\t\t\t}\r\n\t\t return list;\r\n\t\t},\r\n\t\t/**\r\n\t\t * 针对split函数中maxSize的处理\r\n\t\t * \tprivate\r\n\t\t * @param array 已拆分的二维数组\r\n\t\t * @param size 拆分的长度\r\n\t\t * @param maxSize 元素数量\r\n\t\t * @author 刘晓腾\r\n\t\t */\r\n\t\t_splitMaxSize:function(array, size, maxSize) {\r\n\t\t\t// console.log(\"------ splitMaxSize run ------\")\r\n\r\n\t\t\t// 返回的数据\r\n\t\t\tlet list = [];\r\n\t\t\t// 暂存的数组,用来存储每次遍历时超出的数据\r\n\t\t\tlet tmp = [];\r\n\r\n\t\t \t// 遍历二维数组\r\n\t\t\tarray.forEach(function(arr, index) {\r\n\t\t\t\t// 累加数组\r\n\t\t\t\tarr = tmp.concat(arr);\r\n\t\t\t\t// 计算元素数量\r\n\t\t\t\tlet length = arr.length;\r\n\t\t\t\t// 数组中元素数量大于maxSize,对多余的元素进行移除\r\n\t\t\t\tif (length > maxSize) {\r\n\t\t\t\t\t// 第一个数组,包含前N个元素\r\n\t\t\t\t\tlet firstArray = arr.slice(0, maxSize);\r\n\t\t\t\t\t// 第二个数组,包含剩下的元素\r\n\t\t\t\t\tlet secondArray = arr.slice(maxSize);\r\n\r\n\t\t\t\t\t// 处理长度\r\n\t\t\t\t\tlet len = 1;\r\n\t\t\t\t\twhile (JSON.stringify(firstArray).length > size) {\r\n\t\t\t\t\t\t// 长度超过限制,进行处理\r\n\t\t\t\t\t\tfirstArray = arr.slice(0, maxSize - len);\r\n\t\t\t\t\t\tsecondArray = arr.slice(maxSize - len);\r\n\t\t\t\t\t\tlen++;\r\n\t\t\t\t\t\tif (len >= arr.length+1) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// 第一个数组记录\r\n\t\t\t\t\tlist.push(firstArray);\r\n\t\t\t\t\t// 第二个数组暂存\r\n\t\t\t\t\ttmp.length = 0;\r\n\t\t\t\t\ttmp = secondArray;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 没超,只处理长度\r\n\t\t\t\t\t// 处理长度\r\n\t\t\t\t\tlet firstArray = arr;\r\n\t\t\t\t\tlet secondArray = [];\r\n\t\t\t\t\tlet len = 1;\r\n\t\t\t\t\twhile (JSON.stringify(firstArray).length > size) {\r\n\t\t\t\t\t\t// 长度超过限制,进行处理\r\n\t\t\t\t\t\tfirstArray = arr.slice(0, maxSize - len);\r\n\t\t\t\t\t\tsecondArray = arr.slice(maxSize - len);\r\n\t\t\t\t\t\tlen++;\r\n\t\t\t\t\t\tif (len >= arr.length+1) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// 第一个数组记录\r\n\t\t\t\t\tlist.push(firstArray);\r\n\t\t\t\t\t// 第二个数组暂存\r\n\t\t\t\t\ttmp.length = 0;\r\n\t\t\t\t\ttmp = secondArray;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// 临时数组中还有元素,也要进行处理\r\n\t\t\tif (tmp.length > 0) {\r\n\t\t\t\tlet tmpl = [];\r\n\t\t\t\ttmpl.push(tmp);\r\n\t\t\t\t// 递归处理\r\n\t\t\t\tlet l = translate.util._splitMaxSize(tmpl, size, maxSize);\r\n\t\t\t\tlist = list.concat(l);\r\n\t\t\t}\r\n\r\n\t\t\treturn list;\r\n\t\t},\r\n\t\t/* \r\n\t\t\t浏览器的语种标识跟translate.js的语种标识的对应\r\n\t\t\tkey: 浏览器的语种标识\r\n\t\t\tvalue: translate.js 的语种标识\r\n\t\t */\r\n\t\tbrowserLanguage:{\r\n\t\t\t'zh-CN':'chinese_simplified',\r\n\t\t\t'zh-TW':'chinese_traditional',\r\n\t\t\t'zh-HK':'chinese_traditional',\r\n\t\t\t'co':'corsican',\r\n\t\t\t'gn':'guarani',\r\n\t\t\t'rw':'kinyarwanda',\r\n\t\t\t'ha':'hausa',\r\n\t\t\t'no':'norwegian',\r\n\t\t\t'nl':'dutch',\r\n\t\t\t'yo':'yoruba',\r\n\t\t\t'en':'english',\r\n\t\t\t'en-US':'english',\r\n\t\t\t'kok':'gongen',\r\n\t\t\t'la':'latin',\r\n\t\t\t'ne':'nepali',\r\n\t\t\t'fr':'french',\r\n\t\t\t'cs':'czech',\r\n\t\t\t'haw':'hawaiian',\r\n\t\t\t'ka':'georgian',\r\n\t\t\t'ru':'russian',\r\n\t\t\t'fa':'persian',\r\n\t\t\t'bho':'bhojpuri',\r\n\t\t\t'hi':'hindi',\r\n\t\t\t'be':'belarusian',\r\n\t\t\t'sw':'swahili',\r\n\t\t\t'is':'icelandic',\r\n\t\t\t'yi':'yiddish',\r\n\t\t\t'tw':'twi',\r\n\t\t\t'ga':'irish',\r\n\t\t\t'gu':'gujarati',\r\n\t\t\t'km':'khmer',\r\n\t\t\t'sk':'slovak',\r\n\t\t\t'he':'hebrew',\r\n\t\t\t'kn':'kannada',\r\n\t\t\t'hu':'hungarian',\r\n\t\t\t'ta':'tamil',\r\n\t\t\t'ar':'arabic',\r\n\t\t\t'bn':'bengali',\r\n\t\t\t'az':'azerbaijani',\r\n\t\t\t'sm':'samoan',\r\n\t\t\t'af':'afrikaans',\r\n\t\t\t'id':'indonesian',\r\n\t\t\t'da':'danish',\r\n\t\t\t'sn':'shona',\r\n\t\t\t'bm':'bambara',\r\n\t\t\t'lt':'lithuanian',\r\n\t\t\t'vi':'vietnamese',\r\n\t\t\t'mt':'maltese',\r\n\t\t\t'tk':'turkmen',\r\n\t\t\t'as':'assamese',\r\n\t\t\t'ca':'catalan',\r\n\t\t\t'si':'singapore',\r\n\t\t\t'ceb':'cebuano',\r\n\t\t\t'gd':'scottish-gaelic',\r\n\t\t\t'sa':'sanskrit',\r\n\t\t\t'pl':'polish',\r\n\t\t\t'gl':'galician',\r\n\t\t\t'lv':'latvian',\r\n\t\t\t'uk':'ukrainian',\r\n\t\t\t'tt':'tatar',\r\n\t\t\t'cy':'welsh',\r\n\t\t\t'ja':'japanese',\r\n\t\t\t'fil':'filipino',\r\n\t\t\t'ay':'aymara',\r\n\t\t\t'lo':'lao',\r\n\t\t\t'te':'telugu',\r\n\t\t\t'ro':'romanian',\r\n\t\t\t'ht':'haitian_creole',\r\n\t\t\t'doi':'dogrid',\r\n\t\t\t'sv':'swedish',\r\n\t\t\t'mai':'maithili',\r\n\t\t\t'th':'thai',\r\n\t\t\t'hy':'armenian',\r\n\t\t\t'my':'burmese',\r\n\t\t\t'ps':'pashto',\r\n\t\t\t'hmn':'hmong',\r\n\t\t\t'dv':'dhivehi',\r\n\t\t\t'lb':'luxembourgish',\r\n\t\t\t'sd':'sindhi',\r\n\t\t\t'ku':'kurdish',\r\n\t\t\t'tr':'turkish',\r\n\t\t\t'mk':'macedonian',\r\n\t\t\t'bg':'bulgarian',\r\n\t\t\t'ms':'malay',\r\n\t\t\t'lg':'luganda',\r\n\t\t\t'mr':'marathi',\r\n\t\t\t'et':'estonian',\r\n\t\t\t'ml':'malayalam',\r\n\t\t\t'de':'deutsch',\r\n\t\t\t'sl':'slovene',\r\n\t\t\t'ur':'urdu',\r\n\t\t\t'pt':'portuguese',\r\n\t\t\t'ig':'igbo',\r\n\t\t\t'ckb':'kurdish_sorani',\r\n\t\t\t'om':'oromo',\r\n\t\t\t'el':'greek',\r\n\t\t\t'es':'spanish',\r\n\t\t\t'fy':'frisian',\r\n\t\t\t'so':'somali',\r\n\t\t\t'am':'amharic',\r\n\t\t\t'ny':'nyanja',\r\n\t\t\t'pa':'punjabi',\r\n\t\t\t'eu':'basque',\r\n\t\t\t'it':'italian',\r\n\t\t\t'sq':'albanian',\r\n\t\t\t'ko':'korean',\r\n\t\t\t'tg':'tajik',\r\n\t\t\t'fi':'finnish',\r\n\t\t\t'ky':'kyrgyz',\r\n\t\t\t'ee':'ewe',\r\n\t\t\t'hr':'croatian',\r\n\t\t\t'kri':'creole',\r\n\t\t\t'qu':'quechua',\r\n\t\t\t'bs':'bosnian',\r\n\t\t\t'mi':'maori'\r\n\t\t},\r\n\t\t/*\r\n\t\t\t获取浏览器中设置的默认使用语言\r\n\t\t\t返回的是 translate.js 的语言唯一标识\r\n\t\t\t如果返回的是空字符串,则是没有匹配到(可能是没有获取到本地语言,也可能是本地语言跟translate.js 翻译通道没有对应上)\r\n\t\t*/\r\n\t\tbrowserDefaultLanguage:function(){\r\n\t\t\tvar language = navigator.language || navigator.userLanguage;\r\n\t\t\tif(typeof(language) == 'string' && language.length > 0){\r\n\t\t\t\tvar tLang = translate.util.browserLanguage[language];\r\n\t\t\t\tif(typeof(tLang) == 'undefined'){\r\n\t\t\t\t\t//没有在里面\r\n\t\t\t\t\tconsole.log('browser default language : '+language +', translate.js current translate channel not support this language ');\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn tLang;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//将其转化为 translate.js 的语言id,比如简体中文是 chinese_simplified 、 英语是 english\r\n\t\t\treturn '';\r\n\t\t}\r\n\t},\r\n\t//机器翻译采用哪种翻译服务\r\n\tservice:{ \r\n\t\t/*\r\n\t\t\tname填写的值有\r\n\t\t\ttranslate.service 有 http://translate.zvo.cn/41160.html 提供机器翻译服务\r\n\t\t\tclient.edge 有edge浏览器接口提供翻译服务 ,也就是执行翻译时直接是\r\n\r\n\t\t*/\r\n\t\tname:'translate.service', \r\n\r\n\t\t/*\r\n\t\t\t其实就是设置 translate.service.name\r\n\t\r\n\t\t*/\r\n\t\tuse: function(serviceName){\r\n\t\t\tif(translate.enterprise.isUse == true){\r\n\t\t\t\tconsole.log('您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use(\\''+serviceName+'\\'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(typeof(serviceName) == 'string' && serviceName == 'client.edge'){\r\n\t\t\t\ttranslate.service.name = serviceName;\r\n\r\n\t\t\t\t//增加元素整体翻译能力\r\n\t\t\t\ttranslate.whole.enableAll();\r\n\t\t\t}\r\n\t\t},\r\n\t\t//客户端方式的edge提供机器翻译服务\r\n\t\tedge:{\r\n\t\t\tapi:{ //edge浏览器的翻译功能\r\n\t\t\t\tauth:'https://edge.microsoft.com/translate/auth', //auth授权拉取\r\n\t\t\t\ttranslate:'https://api.cognitive.microsofttranslator.com/translate?from={from}&to={to}&api-version=3.0&includeSentenceLength=true' //翻译接口\r\n\t\t\t},\r\n\r\n\t\t\tlanguage:{\r\n\t\t\t\tjson:[{\"id\":\"ukrainian\",\"name\":\"Україна\",\"serviceId\":\"uk\"},{\"id\":\"norwegian\",\"name\":\"Norge\",\"serviceId\":\"no\"},{\"id\":\"welsh\",\"name\":\"Iaith Weleg\",\"serviceId\":\"cy\"},{\"id\":\"dutch\",\"name\":\"nederlands\",\"serviceId\":\"nl\"},{\"id\":\"japanese\",\"name\":\"日本語\",\"serviceId\":\"ja\"},{\"id\":\"filipino\",\"name\":\"Pilipino\",\"serviceId\":\"fil\"},{\"id\":\"english\",\"name\":\"English\",\"serviceId\":\"en\"},{\"id\":\"lao\",\"name\":\"ກະຣຸນາ\",\"serviceId\":\"lo\"},{\"id\":\"telugu\",\"name\":\"తెలుగుName\",\"serviceId\":\"te\"},{\"id\":\"romanian\",\"name\":\"Română\",\"serviceId\":\"ro\"},{\"id\":\"nepali\",\"name\":\"नेपालीName\",\"serviceId\":\"ne\"},{\"id\":\"french\",\"name\":\"Français\",\"serviceId\":\"fr\"},{\"id\":\"haitian_creole\",\"name\":\"Kreyòl ayisyen\",\"serviceId\":\"ht\"},{\"id\":\"czech\",\"name\":\"český\",\"serviceId\":\"cs\"},{\"id\":\"swedish\",\"name\":\"Svenska\",\"serviceId\":\"sv\"},{\"id\":\"russian\",\"name\":\"Русский язык\",\"serviceId\":\"ru\"},{\"id\":\"malagasy\",\"name\":\"Malagasy\",\"serviceId\":\"mg\"},{\"id\":\"burmese\",\"name\":\"ဗာရမ်\",\"serviceId\":\"my\"},{\"id\":\"pashto\",\"name\":\"پښتوName\",\"serviceId\":\"ps\"},{\"id\":\"thai\",\"name\":\"คนไทย\",\"serviceId\":\"th\"},{\"id\":\"armenian\",\"name\":\"Արմենյան\",\"serviceId\":\"hy\"},{\"id\":\"chinese_simplified\",\"name\":\"简体中文\",\"serviceId\":\"zh-CHS\"},{\"id\":\"persian\",\"name\":\"Persian\",\"serviceId\":\"fa\"},{\"id\":\"chinese_traditional\",\"name\":\"繁體中文\",\"serviceId\":\"zh-CHT\"},{\"id\":\"kurdish\",\"name\":\"Kurdî\",\"serviceId\":\"ku\"},{\"id\":\"turkish\",\"name\":\"Türkçe\",\"serviceId\":\"tr\"},{\"id\":\"hindi\",\"name\":\"हिन्दी\",\"serviceId\":\"hi\"},{\"id\":\"bulgarian\",\"name\":\"български\",\"serviceId\":\"bg\"},{\"id\":\"malay\",\"name\":\"Malay\",\"serviceId\":\"ms\"},{\"id\":\"swahili\",\"name\":\"Kiswahili\",\"serviceId\":\"sw\"},{\"id\":\"oriya\",\"name\":\"ଓଡିଆ\",\"serviceId\":\"or\"},{\"id\":\"icelandic\",\"name\":\"ÍslandName\",\"serviceId\":\"is\"},{\"id\":\"irish\",\"name\":\"Íris\",\"serviceId\":\"ga\"},{\"id\":\"khmer\",\"name\":\"ភាសា​ខ្មែរName\",\"serviceId\":\"km\"},{\"id\":\"gujarati\",\"name\":\"ગુજરાતી\",\"serviceId\":\"gu\"},{\"id\":\"slovak\",\"name\":\"Slovenská\",\"serviceId\":\"sk\"},{\"id\":\"kannada\",\"name\":\"ಕನ್ನಡ್Name\",\"serviceId\":\"kn\"},{\"id\":\"hebrew\",\"name\":\"היברית\",\"serviceId\":\"he\"},{\"id\":\"hungarian\",\"name\":\"magyar\",\"serviceId\":\"hu\"},{\"id\":\"marathi\",\"name\":\"मराठीName\",\"serviceId\":\"mr\"},{\"id\":\"tamil\",\"name\":\"தாமில்\",\"serviceId\":\"ta\"},{\"id\":\"estonian\",\"name\":\"eesti keel\",\"serviceId\":\"et\"},{\"id\":\"malayalam\",\"name\":\"മലമാലം\",\"serviceId\":\"ml\"},{\"id\":\"inuktitut\",\"name\":\"ᐃᓄᒃᑎᑐᑦ\",\"serviceId\":\"iu\"},{\"id\":\"arabic\",\"name\":\"بالعربية\",\"serviceId\":\"ar\"},{\"id\":\"deutsch\",\"name\":\"Deutsch\",\"serviceId\":\"de\"},{\"id\":\"slovene\",\"name\":\"slovenščina\",\"serviceId\":\"sl\"},{\"id\":\"bengali\",\"name\":\"বেঙ্গালী\",\"serviceId\":\"bn\"},{\"id\":\"urdu\",\"name\":\"اوردو\",\"serviceId\":\"ur\"},{\"id\":\"azerbaijani\",\"name\":\"azerbaijani\",\"serviceId\":\"az\"},{\"id\":\"portuguese\",\"name\":\"português\",\"serviceId\":\"pt\"},{\"id\":\"samoan\",\"name\":\"lifiava\",\"serviceId\":\"sm\"},{\"id\":\"afrikaans\",\"name\":\"afrikaans\",\"serviceId\":\"af\"},{\"id\":\"tongan\",\"name\":\"汤加语\",\"serviceId\":\"to\"},{\"id\":\"greek\",\"name\":\"ελληνικά\",\"serviceId\":\"el\"},{\"id\":\"indonesian\",\"name\":\"IndonesiaName\",\"serviceId\":\"id\"},{\"id\":\"spanish\",\"name\":\"Español\",\"serviceId\":\"es\"},{\"id\":\"danish\",\"name\":\"dansk\",\"serviceId\":\"da\"},{\"id\":\"amharic\",\"name\":\"amharic\",\"serviceId\":\"am\"},{\"id\":\"punjabi\",\"name\":\"ਪੰਜਾਬੀName\",\"serviceId\":\"pa\"},{\"id\":\"albanian\",\"name\":\"albanian\",\"serviceId\":\"sq\"},{\"id\":\"lithuanian\",\"name\":\"Lietuva\",\"serviceId\":\"lt\"},{\"id\":\"italian\",\"name\":\"italiano\",\"serviceId\":\"it\"},{\"id\":\"vietnamese\",\"name\":\"Tiếng Việt\",\"serviceId\":\"vi\"},{\"id\":\"korean\",\"name\":\"한국어\",\"serviceId\":\"ko\"},{\"id\":\"maltese\",\"name\":\"Malti\",\"serviceId\":\"mt\"},{\"id\":\"finnish\",\"name\":\"suomi\",\"serviceId\":\"fi\"},{\"id\":\"catalan\",\"name\":\"català\",\"serviceId\":\"ca\"},{\"id\":\"croatian\",\"name\":\"hrvatski\",\"serviceId\":\"hr\"},{\"id\":\"bosnian\",\"name\":\"bosnian\",\"serviceId\":\"bs-Latn\"},{\"id\":\"polish\",\"name\":\"Polski\",\"serviceId\":\"pl\"},{\"id\":\"latvian\",\"name\":\"latviešu\",\"serviceId\":\"lv\"},{\"id\":\"maori\",\"name\":\"Maori\",\"serviceId\":\"mi\"}],\r\n\t\t\t\t/*\r\n\t\t\t\t\t获取map形式的语言列表 \r\n\t\t\t\t\tkey为 translate.service 的 name \r\n\t\t\t\t\tvalue为serviceId\r\n\r\n\t\t\t\t*/\r\n\t\t\t\tgetMap:function(){\r\n\t\t\t\t\tif(typeof(translate.service.edge.language.map) == 'undefined'){\r\n\t\t\t\t\t\ttranslate.service.edge.language.map = new Array();\r\n\t\t\t\t\t\tfor(var i = 0; i < translate.service.edge.language.json.length; i++){\r\n\t\t\t\t\t\t\tvar item = translate.service.edge.language.json[i];\r\n\t\t\t\t\t\t\ttranslate.service.edge.language.map[item.id] = item.serviceId;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn translate.service.edge.language.map;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * edge 进行翻译。 这个传入参数跟 translate.request.post 是一样的\r\n\t\t\t * @param path 请求的path(path,传入的是translate.request.api.translate 这种的,需要使用 getUrl 来组合真正请求的url )\r\n\t\t\t * @param data 请求的参数数据\r\n\t\t\t * @param func 请求完成的回调,传入如 function(data){ console.log(data); }\r\n\t\t\t */\r\n\t\t\ttranslate:function(path, data, func, abnormalFunc){\r\n\t\t\t\tvar textArray = JSON.parse(decodeURIComponent(data.text));\r\n\t\t\t\tlet translateTextArray = translate.util.split(textArray, 40000, 900);\r\n\t\t\t\t\r\n\t\t\t\ttranslate.request.send(translate.service.edge.api.auth, {}, function(auth){\r\n\t\t\t\t\tvar from = translate.service.edge.language.getMap()[data.from];\r\n\t\t\t\t\tvar to = translate.service.edge.language.getMap()[data.to];\r\n\t\t\t\t\tvar transUrl = translate.service.edge.api.translate.replace('{from}',from).replace('{to}',to);\r\n\r\n\t\t\t\t\t//如果翻译量大,要拆分成多次翻译请求\r\n\t\t\t\t\tfor(var tai = 0; tai 1){\r\n\t\t\t\t\t\t\t\t//这一次翻译呗拆分了多次请求,那么要进行补全数组,使数组个数能一致\r\n\r\n\t\t\t\t\t\t\t\t/*\r\n\r\n\t\t\t\t\t\t\t\t\t注意这里根据数组的长度来判断当前属于第几个数组,\r\n\t\t\t\t\t\t\t\t\t有几率会是拆分的数组,其中有两组的长度是一样的,\r\n\t\t\t\t\t\t\t\t\t这样的话是有问题的,只不过几率很小,就先这样了\r\n\t\t\t\t\t\t\t\t\t但终归还是留了个坑 -- 记录\r\n\r\n\t\t\t\t\t\t\t\t*/\r\n\r\n\t\t\t\t\t\t\t\tvar currentIndex = -1;\t//当前翻译请求属于被拆分的第几个的数组下标,从0开始的\r\n\t\t\t\t\t\t\t\tfor(var cri = 0; cri < translateTextArray.length; cri++){\r\n\t\t\t\t\t\t\t\t\tif(translateTextArray[cri].length - d.text.length == 0){\r\n\t\t\t\t\t\t\t\t\t\tcurrentIndex = cri;\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t//进行对前后进行补齐数组\r\n\t\t\t\t\t\t\t\tif(currentIndex < 0){\r\n\t\t\t\t\t\t\t\t\tconsole.log('------ERROR--------');\r\n\t\t\t\t\t\t\t\t\tconsole.log('翻译内容过多,进行拆分,但拆分判断出现异常,currentIndex:-1 请联系 http://translate.zvo.cn/43006.html 说明');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t//前插入空数组填充\r\n\t\t\t\t\t\t\t\tfor(var addbeforei = 0; addbeforeicurrentIndex; addafteri--){\r\n\t\t\t\t\t\t\t\t\tvar afterItemArrayLength = translateTextArray[addafteri].length;\r\n\t\t\t\t\t\t\t\t\tfor(var bi = 0; bi < afterItemArrayLength; bi++){\r\n\t\t\t\t\t\t\t\t\t\td.text.push(null);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tfunc(d);\r\n\t\t\t\t\t\t}, 'post', true, {'Authorization':'Bearer '+auth, 'Content-Type':'application/json'}, abnormalFunc, true);\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('translateResultArray')\r\n\t\t\t\t\t//console.log(translateResultArray);\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t}, 'get', true, {'content-type':'application/x-www-form-urlencoded'}, function(xhr){\r\n\t\t\t\t\tconsole.log('---------error--------');\r\n\t\t\t\t\tconsole.log('edge translate service error, http code : '+xhr.status + ', response text : '+xhr.responseText);\r\n\t\t\t\t}, true);\r\n\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t//request请求来源于 https://github.com/xnx3/request\r\n\trequest:{\r\n\t\t \r\n\t\t//相关API接口方面\r\n\t\tapi:{\r\n\t\t\t/**\r\n\t\t\t * 翻译接口请求的域名主机 host\r\n\t\t\t * 格式注意前面要带上协议如 https:// 域名后要加 /\r\n\t\t\t * v2.8.2 增加数组形态,如 ['https://api.translate.zvo.cn/','xxxxx'] \r\n\t\t\t */\r\n\t\t\t//host:'https://api.translate.zvo.cn/',\r\n\t\t\thost:['https://api.translate.zvo.cn/','https://america.api.translate.zvo.cn/'],\r\n\t\t\t//host的备用接口,格式同host,可以填写多个,只不过这里是数组格式。只有当主 host 无法连通时,才会采用备host来提供访问。如果为空也就是 [] 则是不采用备方案。\r\n\t\t\t//backupHost:['',''],\r\n\t\t\tlanguage:'language.json', //获取支持的语种列表接口\r\n\t\t\ttranslate:'translate.json', //翻译接口\r\n\t\t\tip:'ip.json', //根据用户当前ip获取其所在地的语种\r\n\t\t\tconnectTest:'connectTest.json',\t//用于 translate.js 多节点翻译自动检测网络连通情况\r\n\t\t\tinit:'init.json', //获取最新版本号,跟当前版本进行比对,用于提醒版本升级等使用\r\n\r\n\t\t},\r\n\t\t/*\r\n\t\t\t请求后端接口的响应。无论是否成功,都会触发此处。\r\n\t\t\t另外当 xhr.readyState==4 的状态时才会触发。\r\n\t\t\t此处会在接口请求响应后、且在translate.js处理前就会触发\r\n\t\t\t@param xhr XMLHttpRequest 接口请求\r\n\t\t\t\r\n\t\t*/\r\n\t\tresponse:function(xhr){\r\n\t\t\t//console.log('response------');\r\n\t\t\t//console.log(xhr);\r\n\t\t},\r\n\t\t/*\r\n\t\t\t速度检测控制中心, 检测主备翻译接口的响应速度进行排列,真正请求时,按照排列的顺序进行请求\r\n\t\t\tv2.8.2增加\t\r\n\t\t\t\r\n\t\t\tstorage存储方面\r\n\t\t\tstorage存储的key \t\t\t\t\t\t存的什么\r\n\t\t\tspeedDetectionControl_hostQueue\t\t\thostQueue\r\n\t\t\tspeedDetectionControl_hostQueueIndex\t当前要使用的是 hostQueue 中的数组下标。如果没有,这里默认视为0\r\n\t\t\tspeedDetectionControl_lasttime\t\t\t最后一次执行速度检测的时间戳,13位时间戳\r\n\r\n\r\n\t\t\t\r\n\t\t*/\r\n\t\tspeedDetectionControl:{\r\n\t\t\t/*\r\n\t\t\t\t\r\n\t\t\t\t进行 connect主节点缩减的时间,单位是毫秒.\r\n\t\t\t\t这个是进行 translate.request.speedDetectionControl.checkResponseSpeed() 节点测速时,translate.request.api.host 第一个元素是默认的主节点。\r\n\t\t\t\t主节点在实际测速完后,会减去一定的时间,以便让用户大部分时间可以使用主节点,而不必走分节点。\r\n\t\t\t\t例如主节点实际响应速度 3500 毫秒,那么会减去这里设置的2000毫秒,记为 1500 毫秒\r\n\t\t\t\t当然如果是小于这里设置的2000毫秒,那么会记为0毫秒。\r\n\t\t\t\t这样再跟其他分节点的响应时间进行对比,主节点只要不是响应超时,就会有更大的几率被选中为实际使用的翻译的节点\r\n\t\t\t\t\r\n\t\t\t\t这里的单位是毫秒。\r\n\t\t\t\tv2.10.2.20231225 增加\r\n\t\t\t*/\r\n\t\t\thostMasterNodeCutTime:2000,\t\r\n\r\n\t\t\t/*\r\n\t\t\t\t翻译的队列,这是根据网络相应的速度排列的,0下标为请求最快,1次之...\r\n\t\t\t\t其格式为:\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"host\":\"xxxxxxxx\",\r\n\t\t\t\t\t\t\t\"time\":123 \t\t\t//这里的单位是毫秒\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"host\":\"xxxxxxxx\",\r\n\t\t\t\t\t\t\t\"time\":123 \t\t\t//这里的单位是毫秒\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t*/\r\n\t\t\thostQueue:[],\t\r\n\t\t\thostQueueIndex:-1,\t//当前使用的 hostQueue的数组下标, -1表示还未初始化赋予值,不可直接使用,通过 getHostQueueIndex() 使用\r\n\t\t\tdisableTime:1000000,\t//不可用的时间,storage中存储的 speedDetectionControl_hostQueue 其中 time 这里,如果值是 这个,便是代表这个host处于不可用状态\r\n\r\n\r\n\t\t\t//获取 host queue 队列\r\n\t\t\tgetHostQueue:function(){\r\n\t\t\t\tif(translate.request.speedDetectionControl.hostQueue.length == 0){\r\n\t\t\t\t\t//还没有,先从本地存储中取,看之前是否已经设置过了\r\n\t\t\t\t\t// 只有经过真正的网络测速后,才会加入 storage 的 hostQueue\r\n\t\t\t\t\tvar storage_hostQueue = translate.storage.get('speedDetectionControl_hostQueue');\r\n\t\t\t\t\tif(storage_hostQueue == null || typeof(storage_hostQueue) == 'undefined'){\r\n\t\t\t\t\t\t//本地存储中没有,也就是之前没设置过,是第一次用,那么直接讲 translate.request.api.host 赋予之\r\n\t\t\t\t\t\t//translate.request.api.host\r\n\t\t\t\t\r\n\t\t\t\t\t\tif(typeof(translate.request.api.host) == 'string'){\r\n\t\t\t\t\t\t\t//单个,那么赋予数组形式\r\n\t\t\t\t\t\t\t//translate.request.speedDetectionControl.hostQueue = [{\"host\":translate.request.api.host, time:0 }];\r\n\t\t\t\t\t\t\ttranslate.request.api.host = [''+translate.request.api.host];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//数组形态,多个,v2.8.2 增加多个,根据优先级返回\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueue = [];\r\n\t\t\t\t\t\tfor(var i = 0; i updateTime){\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkResponseSpeed();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\t\t\t\treturn translate.request.speedDetectionControl.hostQueue;\r\n\t\t\t},\r\n\r\n\t\t\t/*\r\n\t\t\t\t服务于 checkResponseSpeed 用于将测试结果存入 storage\r\n\t\t\t\ttime: 当前接口请求的耗时,单位是毫秒。如果是 1000000 那么表示这个接口不可用\r\n\t\t\t*/\r\n\t\t\tcheckResponseSpeed_Storage:function(host, time){\r\n\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.push({\"host\":host, \"time\":time });\r\n\t\t\t\t//按照time进行排序\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.sort((a, b) => a.time - b.time);\r\n\r\n\t\t\t\t//存储到 storage 持久化\r\n\t\t\t\ttranslate.storage.set('speedDetectionControl_hostQueue',JSON.stringify(translate.request.speedDetectionControl.checkHostQueue));\r\n\t\t\t\ttranslate.storage.set('speedDetectionControl_lasttime', new Date().getTime());\r\n\r\n\t\t\t\ttranslate.request.speedDetectionControl.hostQueue = translate.request.speedDetectionControl.checkHostQueue;\r\n\t\t\t},\r\n\r\n\t\t\t//测试响应速度\r\n\t\t\tcheckResponseSpeed:function(){\r\n\t\t\t\tvar headers = {\r\n\t\t\t\t\t'content-type':'application/x-www-form-urlencoded',\r\n\t\t\t\t};\r\n\r\n\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue = []; //用于实际存储\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueueMap = []; //只是map,通过key取值,无其他作用\r\n\r\n\t\t\t\tif(typeof(translate.request.api.host) == 'string'){\r\n\t\t\t\t\t//单个,那么赋予数组形式\r\n\t\t\t\t\ttranslate.request.api.host = [''+translate.request.api.host];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor(var i = 0; i < translate.request.api.host.length; i++){\r\n\t\t\t\t\tvar host = translate.request.api.host[i];\r\n\t\t\t\t\t// 获取当前时间的时间戳\r\n\t\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueueMap[host] = {\r\n\t\t\t\t\t\tstart:new Date().getTime()\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\ttry{\r\n\t\t\t\t\t\ttranslate.request.send(\r\n\t\t\t\t\t\t\thost+translate.request.api.connectTest,\r\n\t\t\t\t\t\t\t{host:host},\r\n\t\t\t\t\t\t\tfunction(data){\r\n\t\t\t\t\t\t\t\tvar host = data.info;\r\n\t\t\t\t\t\t\t\tvar map = translate.request.speedDetectionControl.checkHostQueueMap[host];\r\n\t\t\t\t\t\t\t\tvar time = new Date().getTime() - map.start;\r\n\r\n\t\t\t\t\t\t\t\tif(translate.request.api.host[0] == host){\r\n\t\t\t\t\t\t\t\t\t//console.log('如果是第一个,那么是主的,默认允许缩减2000毫秒,也就是优先使用主的');\r\n\t\t\t\t\t\t\t\t\ttime = time - translate.request.speedDetectionControl.hostMasterNodeCutTime;\r\n\t\t\t\t\t\t\t\t\tif(time < 0){\r\n\t\t\t\t\t\t\t\t\t\ttime = 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkResponseSpeed_Storage(host, time);\r\n\t\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.push({\"host\":host, \"time\":time });\r\n\t\t\t\t\t\t\t\t//按照time进行排序\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.sort((a, b) => a.time - b.time);\r\n\r\n\t\t\t\t\t\t\t\t//存储到 storage 持久化\r\n\t\t\t\t\t\t\t\ttranslate.storage.set('speedDetectionControl_hostQueue',JSON.stringify(translate.request.speedDetectionControl.checkHostQueue));\r\n\t\t\t\t\t\t\t\ttranslate.storage.set('speedDetectionControl_lasttime', new Date().getTime());\r\n\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueue = translate.request.speedDetectionControl.checkHostQueue;\r\n\t\t\t\t\t\t\t\t//console.log(translate.request.speedDetectionControl.hostQueue);\r\n\t\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t'post',\r\n\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\theaders,\r\n\t\t\t\t\t\t\tfunction(data){\r\n\t\t\t\t\t\t\t\t//translate.request.speedDetectionControl.checkResponseSpeed_Storage(host, time);\r\n\t\t\t\t\t\t\t\tvar hostUrl = data.requestURL.replace('connectTest.json','');\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkResponseSpeed_Storage(hostUrl, translate.request.speedDetectionControl.disableTime);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfalse\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}catch(e){\r\n\t\t\t\t\t\t//console.log('e0000');\r\n\t\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t\t\t//time = 300000; //无法连接的,那么赋予 300 秒吧\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t},\r\n\r\n\t\t\t//获取当前使用的host的数组下标\r\n\t\t\tgetHostQueueIndex:function(){\r\n\t\t\t\tif(translate.request.speedDetectionControl.hostQueueIndex < 0){\r\n\t\t\t\t\t//页面当前第一次使用,赋予值\r\n\t\t\t\t\t//先从 storage 中取\r\n\t\t\t\t\tvar storage_index = translate.storage.get('speedDetectionControl_hostQueueIndex');\r\n\t\t\t\t\tif(typeof(storage_index) == 'undefined' || storage_index == null){\r\n\t\t\t\t\t\t//存储中不存在,当前用户(浏览器)第一次使用,默认赋予0\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueueIndex = 0;\r\n\t\t\t\t\t\ttranslate.storage.set('speedDetectionControl_hostQueueIndex',0);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueueIndex = storage_index;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn translate.request.speedDetectionControl.hostQueueIndex;\r\n\t\t\t},\r\n\r\n\t\t\t//获取当前要使用的host\r\n\t\t\tgetHost:function(){\r\n\t\t\t\tvar queue = translate.request.speedDetectionControl.getHostQueue();\r\n\t\t\t\t//console.log(queue);\r\n\t\t\t\tvar queueIndex = translate.request.speedDetectionControl.getHostQueueIndex();\r\n\t\t\t\tif(queue.length > queueIndex){\r\n\t\t\t\t\t//正常,没有超出越界\r\n\t\t\t\t\t\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//异常,下标越界了!,固定返回最后一个\r\n\t\t\t\t\tconsole.log('异常,下标越界了!index:'+queueIndex);\r\n\t\t\t\t\tqueueIndex = queue.length-1;\r\n\t\t\t\t}\r\n\t\t\t\t//console.log(queueIndex);\r\n\t\t\t\treturn queue[queueIndex].host;\r\n\t\t\t},\r\n\r\n\t\t},\r\n\t\t//生成post请求的url\r\n\t\tgetUrl:function(path){\r\n\t\t\tvar currentHost = translate.request.speedDetectionControl.getHost();\r\n\t\t\tvar url = currentHost+path+'?v='+translate.version;\r\n\t\t\t//console.log('url: '+url);\r\n\t\t\treturn url;\r\n\t\t},\r\n\t\t/**\r\n\t\t * post请求\r\n\t\t * @param path 请求的path(path,传入的是translate.request.api.translate 这种的,需要使用 getUrl 来组合真正请求的url )\r\n\t\t * @param data 请求的参数数据,传入如 \r\n\t\t * \t\t{\r\n\t\t * \t\t\tfrom: \"chinese_simplified\",\r\n\t\t * \t\t\ttext: \"%5B%22%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91\",\r\n\t\t * \t\t\tto: \"chinese_traditional\r\n\t\t * \t\t}\r\n\t\t * \t\t\r\n\t\t * @param func 请求完成的回调,传入如 function(data){ console.log(data); }\r\n\t\t * @param abnormalFunc 响应异常所执行的方法,响应码不是200就会执行这个方法 ,传入如 function(xhr){} 另外这里的 xhr 会额外有个参数 xhr.requestURL 返回当前请求失败的url\r\n\t\t */\r\n\t\tpost:function(path, data, func, abnormalFunc){\r\n\t\t\tvar headers = {\r\n\t\t\t\t'content-type':'application/x-www-form-urlencoded',\r\n\t\t\t};\r\n\t\t\tif(typeof(data) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//企业级翻译自动检测\r\n\t\t\ttranslate.enterprise.automaticAdaptationService();\r\n\r\n\t\t\t// ------- edge start --------\r\n\t\t\tvar url = translate.request.getUrl(path);\r\n\t\t\t//if(url.indexOf('edge') > -1 && path == translate.request.api.translate){\r\n\t\t\tif(translate.service.name == 'client.edge'){\t\r\n\t\t\t\tif(path == translate.request.api.translate){\r\n\t\t\t\t\ttranslate.service.edge.translate(path, data, func, abnormalFunc);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif(path == translate.request.api.language){\r\n\t\t\t\t\tvar d = {};\r\n\t\t\t\t\td.info = 'SUCCESS';\r\n\t\t\t\t\td.result = 1;\r\n\t\t\t\t\td.list = translate.service.edge.language.json;\r\n\t\t\t\t\tfunc(d);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//return;\r\n\t\t\t}\r\n\t\t\t// ------- edge end --------\r\n\r\n\t\t\tthis.send(path, data, func, 'post', true, headers, abnormalFunc, true);\r\n\t\t},\r\n\t\t/**\r\n\t\t * 发送请求\r\n\t\t * url 请求的url或者path(path,传入的是translate.request.api.translate 这种的,需要使用 getUrl 来组合真正请求的url )\r\n\t\t * data 请求的数据,如 {\"author\":\"管雷鸣\",'site':'www.guanleiming.com'} \r\n\t\t * func 请求完成的回调,传入如 function(data){}\r\n\t\t * method 请求方式,可传入 post、get\r\n\t\t * isAsynchronize 是否是异步请求, 传入 true 是异步请求,传入false 是同步请求。 如果传入false,则本方法返回xhr\r\n\t\t * headers 设置请求的header,传入如 {'content-type':'application/x-www-form-urlencoded'};\r\n\t\t * abnormalFunc 响应异常所执行的方法,响应码不是200就会执行这个方法 ,传入如 function(xhr){} 另外这里的 xhr 会额外有个参数 xhr.requestURL 返回当前请求失败的url\r\n\t\t * showErrorLog 是否控制台打印出来错误日志,true打印, false 不打印\r\n\t\t */\r\n\t\tsend:function(url, data, func, method, isAsynchronize, headers, abnormalFunc, showErrorLog){\r\n\t\t\t//post提交的参数\r\n\t\t\tvar params = '';\r\n\r\n\t\t\tif(data == null || typeof(data) == 'undefined'){\r\n\t\t\t\tdata = {};\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(typeof(data) == 'string'){\r\n\t\t\t\tparams = data; //payload 方式\r\n\t\t\t}else{\r\n\t\t\t\t//表单提交方式\r\n\t\t\t\t\r\n\t\t\t\t//加入浏览器默认语种 v3.6.1 增加,以便更好的进行自动切换语种\r\n\t\t\t\tdata.browserDefaultLanguage = translate.util.browserDefaultLanguage();\r\n\t\t\t\t\r\n\t\t\t\t//加入key\r\n\t\t\t\tif(typeof(translate.enterprise.key) != 'undefined' && typeof(translate.enterprise.key) == 'string' && translate.enterprise.key.length > 0){\r\n\t\t\t\t\tdata.key = translate.enterprise.key;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//组合参数\r\n\t\t\t\tfor(var index in data){\r\n\t\t\t\t\tif(params.length > 0){\r\n\t\t\t\t\t\tparams = params + '&';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tparams = params + index + '=' + data[index];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(url.indexOf('https://') == 0 || url.indexOf('http://') == 0){\r\n\t\t\t\t//采用的url绝对路径\r\n\t\t\t}else{\r\n\t\t\t\t//相对路径,拼接上host\r\n\t\t\t\turl = translate.request.getUrl(url);\r\n\t\t\t}\r\n\r\n\t\t\tvar xhr=null;\r\n\t\t\ttry{\r\n\t\t\t\txhr=new XMLHttpRequest();\r\n\t\t\t}catch(e){\r\n\t\t\t\txhr=new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n\t\t\t}\r\n\t\t\t//2.调用open方法(true----异步)\r\n\t\t\txhr.open(method,url,isAsynchronize);\r\n\t\t\t//设置headers\r\n\t\t\tif(headers != null){\r\n\t\t\t\tfor(var index in headers){\r\n\t\t\t\t\txhr.setRequestHeader(index,headers[index]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(translate.service.name == 'translate.service'){\r\n\t\t\t\txhr.setRequestHeader('currentpage', window.location.href+'');\r\n\t\t\t}\r\n\t\t\txhr.send(params);\r\n\t\t\t//4.请求状态改变事件\r\n\t\t\txhr.onreadystatechange=function(){\r\n\t\t\t if(xhr.readyState==4){\r\n\t\t\t \ttranslate.request.response(xhr); //自定义响应的拦截\r\n\r\n\t\t\t if(xhr.status==200){\r\n\t\t\t \t//请求正常,响应码 200\r\n\t\t\t \tvar json = null;\r\n\t\t\t \tif(typeof(xhr.responseText) == 'undefined' || xhr.responseText == null){\r\n\t\t\t \t\t//相应内容为空\r\n\t\t\t \t}else{\r\n\t\t\t \t\t//响应内容有值\r\n\t\t\t \t\tif(xhr.responseText.indexOf('{') > -1 && xhr.responseText.indexOf('}') > -1){\r\n\t\t\t\t \t\t//应该是json格式\r\n\t\t\t\t \t\ttry{\r\n\t\t\t\t\t \t\tjson = JSON.parse(xhr.responseText);\r\n\t\t\t\t\t \t}catch(e){\r\n\t\t\t\t\t \t\tconsole.log(e);\r\n\t\t\t\t\t \t}\r\n\t\t\t\t \t}\r\n\t\t\t \t}\r\n\t\t\t \t\r\n\t\t\t \tif(json == null){\r\n\t\t\t \t\tfunc(xhr.responseText);\r\n\t\t\t \t}else{\r\n\t\t\t \t\tfunc(json);\r\n\t\t\t \t}\r\n\t\t\t }else{\r\n\t\t\t \tif(showErrorLog){\r\n\t\t\t \t\tif(url.indexOf(translate.request.api.connectTest) > -1){\r\n\t\t\t \t\t\t//测试链接速度的不在报错里面\r\n\t\t\t \t\t}else{\r\n\r\n\t\t\t \t\t\t//判断是否是v2版本的翻译,如果是 translate.service 模式并且没有使用企业级翻译,参会提示\r\n\t\t\t \t\t\t//2024.3月底开始,翻译使用量增加的太快,开源的翻译服务器有点扛不住经常出故障,所以直接把这个提示加到这里\r\n\t\t\t \t\t\tif(translate.service.name == 'translate.service' && !translate.enterprise.isUse){\r\n\t\t\t \t\t\t\tconsole.log('----- translate.js 提示 -----\\n非常抱歉,translate.service 开源免费的翻译服务器当前并发及流量太大导致阻塞!\\n这个情况是时不时发生的,大概一天24小时可能会有一二十分钟这种情况,主要是因为使用量太大了,月使用量能超四十亿次,所以在高发时会出现这种情况。\\n解决这种情况可以有两种方案:\\n【方案一】:使用采用最新版本 3.8.0及更高版本,js引用文件为 https://cdn.staticfile.net/translate.js/3.8.0/translate.js 并且使用 client.edge 模式 (增加一行设置代码就好,可参考 https://translate.zvo.cn/4081.html ),这样就不会再出现这种情况了。这个是我们的 translate.service 通道阻塞导致,更换别的通道就可以避免这样了。而且这个方案也是完全免费的。 \\n【方案二】:采用企业级稳定翻译通道 ,但是这个相比于 方案一 来说,是有一定的收费的,大概一年600,这个就是专门为了高速及高稳定准备的,而相比于这个方案二,方案一则是全免费的。 因为方案二我们是部署了两个集群,而每个集群又下分了数个网络节点,包含中国大陆、香港、美国、欧洲、 等多个州,充分保障稳定、高效,同样也产生了不少成本,所以才需要付费。更多信息说明可以参考: http://translate.zvo.cn/4087.html \\n\\n-------------');\r\n\t\t\t \t\t\t}\r\n\r\n\t\t\t \t\t\t//console.log(xhr);\r\n\t\t\t\t\t \tconsole.log('------- translate.js service api response error --------');\r\n\t\t\t\t\t \tconsole.log(' http code : '+xhr.status);\r\n\t\t\t\t\t \tconsole.log(' response : '+xhr.response);\r\n\t\t\t\t\t \tconsole.log(' request url : '+url);\r\n\t\t\t\t\t \tconsole.log(' request data : '+JSON.stringify(data));\r\n\t\t\t\t\t \tconsole.log(' request method : '+method);\r\n\t\t\t\t\t \tconsole.log('---------------------- end ----------------------');\r\n\t\t\t \t\t}\r\n\t\t\t \t\t\r\n\t\t\t \t}\r\n\t\t\t \txhr.requestURL = url;\r\n\t\t\t \tif(abnormalFunc != null){\r\n\t\t\t \t\tabnormalFunc(xhr);\r\n\t\t\t \t}\r\n\t\t\t }\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\treturn xhr;\r\n\t\t},\r\n\t\t/*\r\n\r\n\t\t\t手动进行翻译操作。参数说明:\r\n\t\t\t\ttexts: 可传入要翻译的文本、以及文本数组。 比如要一次翻译多个句子,那就可以传入数组的方式\r\n\t\t\t\tfunction: 翻译完毕后的处理函数。传入如 function(data){ console.log(data); }\r\n\t\t\t\t\t\t 注意,返回的data.result 为 1,则是翻译成功。 为0则是出错,可通过data.info 得到错误原因。 更详细说明参考: http://api.zvo.cn/translate/service/20230807/translate.json.html\r\n\r\n\t\t\t使用案例一: \r\n\t\t\ttranslate.request.translateText('你好,我是翻译的内容', function(data){\r\n\t\t\t\t//打印翻译结果\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t使用案例二:\r\n\t\t\tvar texts = ['我是翻译的第一句','我是翻译的第二句','我是翻译的第三句'];\r\n\t\t\ttranslate.request.translateText(texts, function(data){\r\n\t\t\t\t//打印翻译结果\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t});\r\n\r\n\t\t\t使用案例三:\r\n\t\t\tvar obj = {\r\n\t\t\t\tfrom:'chinese_simplified',\r\n\t\t\t\tto:'english',\r\n\t\t\t\ttexts: ['我是翻译的第一句','我是翻译的第二句','我是翻译的第三句']\r\n\t\t\t}\r\n\t\t\ttranslate.request.translateText(obj, function(data){\r\n\t\t\t\t//打印翻译结果\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t});\r\n\t\t*/\r\n\t\ttranslateText:function(obj, func){\r\n\t\t\tvar texts = new Array();\r\n\t\t\tvar from = translate.language.getLocal();\r\n\t\t\tvar to = translate.language.getCurrent();\r\n\r\n\t\t\tif(typeof(obj) == 'string'){\r\n\t\t\t\t//案例一的场景,传入单个字符串\r\n\t\t\t\ttexts[0] = obj;\r\n\t\t\t}else{\r\n\t\t\t\t//不是字符串了,而是对象了,判断是案例二还是案例三\r\n\r\n\t\t\t\tvar type = Object.prototype.toString.call(obj);\r\n\t\t\t\t//console.log(type);\r\n\t\t\t\tif(type == '[object Array]'){\r\n\t\t\t\t\t//案例二\r\n\t\t\t\t\ttexts = obj;\r\n\t\t\t\t}else if(type == '[object Object]'){\r\n\t\t\t\t\t//案例三\r\n\t\t\t\t\tif(typeof(obj.texts) == 'undefined'){\r\n\t\t\t\t\t\tconsole.log('translate.request.translateText 传入的值类型异常,因为你没有传入 obj.texts 要翻译的具体文本! 请查阅文档: https://translate.zvo.cn/4077.html');\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(obj.texts) == 'string'){\r\n\t\t\t\t\t\t//单个字符串\r\n\t\t\t\t\t\ttexts = [obj.texts];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//多个字符串,数组形态\r\n\t\t\t\t\t\ttexts = obj.texts;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(obj.from) == 'string' && obj.from.length > 0){\r\n\t\t\t\t\t\tfrom = obj.from;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(obj.to) == 'string' && obj.to.length > 0){\r\n\t\t\t\t\t\tto = obj.to;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.log('translate.request.translateText 传入的值类型错误,请查阅文档: https://translate.zvo.cn/4077.html');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\r\n\t\t\tvar url = translate.request.api.translate;\r\n\t\t\tvar data = {\r\n\t\t\t\tfrom:from,\r\n\t\t\t\tto: to,\r\n\t\t\t\ttext:encodeURIComponent(JSON.stringify(texts))\r\n\t\t\t};\r\n\t\t\t//console.log(data);\r\n\t\t\ttranslate.request.post(url, data, function(data){\r\n\t\t\t\t//console.log(data); \r\n\t\t\t\tif(data.result == 0){\r\n\t\t\t\t\tconsole.log('=======ERROR START=======');\r\n\t\t\t\t\tconsole.log('from : '+data.from);\r\n\t\t\t\t\tconsole.log('to : '+data.to);\r\n\t\t\t\t\tconsole.log('translate text array : '+texts);\r\n\t\t\t\t\tconsole.log('response : '+data.info);\r\n\t\t\t\t\tconsole.log('=======ERROR END =======');\r\n\t\t\t\t\t//return;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunc(data);\r\n\t\t\t}, null);\r\n\t\t},\r\n\t\tlistener:{\r\n\t\t\tminIntervalTime:800, // 两次触发的最小间隔时间,单位是毫秒,这里默认是800毫秒。最小填写时间为 200毫秒\r\n\t\t\tlasttime:0,// 最后一次触发执行 translate.execute() 的时间,进行执行的那一刻,而不是执行完。13位时间戳\r\n\t\t\t/*\r\n\t\t\t\t设置要在未来的某一时刻执行,单位是毫秒,13位时间戳。\r\n\t\t\t\t执行时如果当前时间大于这个数,则执行,并且将这个数置为0。\r\n\t\t\t\t会有一个循环执行函数每间隔200毫秒触发一次\r\n\t\t\t*/\r\n\t\t\texecutetime:0,\r\n\t\t\t/*\r\n\t\t\t\t进行翻译时,延迟翻译执行的时间\r\n\t\t\t\t当ajax请求结束后,延迟这里设置的时间,然后自动触发 translate.execute() 执行\r\n\t\t\t*/\r\n\t\t\tdelayExecuteTime:200, \r\n\t\t\t/*\r\n\t\t\t\t满足ajax出发条件,设置要执行翻译。\r\n\t\t\t\t注意,设置这个后并不是立马就会执行,而是加入了一个执行队列,避免1秒请求了10次会触发10次执行的情况\r\n\t\t\t*/\r\n\t\t\taddExecute:function(){\r\n\t\t\t\tvar currentTime = Date.now();\r\n\t\t\t\tif(translate.request.listener.lasttime == 0){\r\n\t\t\t\t\t//是第一次,lasttime还没设置过,那么直接设置执行时间为当前时间\r\n\t\t\t\t\ttranslate.request.listener.executetime = currentTime;\r\n\t\t\t\t\ttranslate.request.listener.lasttime = 1;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//不是第一次了\r\n\r\n\t\t\t\t\tif(translate.request.listener.executetime > 1){\r\n\t\t\t\t\t\t//当前有执行队列等待,不用再加入执行等待了\r\n\t\t\t\t\t\t//console.log('已在执行队列,不用再加入了 '+currentTime);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//执行队列中还没有,可以加入执行命令\r\n\r\n\t\t\t\t\t\tif(currentTime < translate.request.listener.lasttime + translate.request.listener.minIntervalTime){\r\n\t\t\t\t\t\t\t//如果当前时间小于最后一次执行时间+间隔时间,那么就是上次才刚刚执行过,这次执行的太快了,那么赋予未来执行翻译的时间为最后一次时间+间隔时间\r\n\t\t\t\t\t\t\ttranslate.request.listener.executetime = translate.request.listener.lasttime + translate.request.listener.minIntervalTime;\r\n\t\t\t\t\t\t\t//console.log('addexecute - < 如果当前时间小于最后一次执行时间+间隔时间,那么就是上次才刚刚执行过,这次执行的太快了,那么赋予未来执行翻译的时间为最后一次时间+间隔时间');\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\ttranslate.request.listener.executetime = currentTime;\r\n\t\t\t\t\t\t\t//console.log('addexecute -- OK ');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t\t自定义是否会被触发的方法判断\r\n\t\t\t\turl 当前ajax请求的url,注意是这个url请求完毕获取到200相应的内容时才会触发此方法\r\n\t\t\t\t返回值 return true; 默认是不管什么url,全部返回true,表示会触发翻译自动执行 translate.execute; ,如果你不想让某个url触发翻译,那么你可以自行在这个方法中用代码进行判断,然后返回false,那么这个url将不会自动触发翻译操作。\r\n\t\t\t*/\r\n\t\t\ttrigger:function(url){\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t\t启动根据ajax请求来自动触发执行翻译,避免有时候有的框架存在漏翻译的情况。\r\n\t\t\t\t这个只需要执行一次即可,如果执行多次,只有第一次会生效\r\n\t\t\t*/\r\n\t\t\tstart:function(){\r\n\t\t\t\t\r\n\t\t\t\t//确保这个方法只会触发一次,不会过多触发\r\n\t\t\t\tif(typeof(translate.request.listener.isStart) != 'undefined'){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}else{\r\n\t\t\t\t\ttranslate.request.listener.isStart = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//增加一个没100毫秒检查一次执行任务的线程\r\n\t\t\t\tsetInterval(function(){\r\n\t\t\t\t\tvar currentTime = Date.now();\r\n\t\t\t\t\tif(translate.request.listener.executetime > 1 && currentTime > translate.request.listener.executetime+translate.request.listener.delayExecuteTime){\r\n\t\t\t\t\t\ttranslate.request.listener.executetime = 0;\r\n\t\t\t\t\t\ttranslate.request.listener.lasttime = currentTime;\r\n\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\t//console.log('执行翻译 --'+currentTime);\r\n\t\t\t\t\t\t\ttranslate.execute();\r\n\t\t\t\t\t\t}catch(e){\r\n\t\t\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100);\r\n\r\n\t\t\t\tconst observer = new PerformanceObserver((list) => {\r\n\t\t\t\t\tvar translateExecute = false;\t//是否需要执行翻译 true 要执行\r\n\t\t\t\t for(var e = 0; e < list.getEntries().length; e++){\r\n\t\t\t\t \tvar entry = list.getEntries()[e];\r\n\r\n\t\t\t\t \tif (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest') {\r\n\t\t\t\t \tvar url = entry.name;\r\n\t\t\t\t \t//console.log(url);\r\n\t\t\t\t \t//判断url是否是当前translate.js本身使用的\r\n\t\t\t\t \tif(typeof(translate.request.api.host) == 'string'){\r\n\t\t\t\t \t\ttranslate.request.api.host = [translate.request.api.host];\r\n\t\t\t\t \t}\r\n\t\t\t\t \tvar ignoreUrl = false; // 是否是忽略的url true是\r\n\r\n\t\t\t\t \t//translate.service 模式判断\r\n\t\t\t\t \tfor(var i = 0; i < translate.request.api.host.length; i++){\r\n\t\t\t\t \t\tif(url.indexOf(translate.request.api.host[i]) > -1){\r\n\t\t\t\t \t\t\t//是,那么直接忽略\r\n\t\t\t\t \t\t\tignoreUrl = true;\r\n\t\t\t\t \t\t\tbreak;\r\n\t\t\t\t \t\t}\r\n\t\t\t\t \t}\r\n\t\t\t\t \t//client.edge 判断\r\n\t\t\t\t \tif(url.indexOf(translate.service.edge.api.auth) > -1){\r\n\t\t\t\t \t\tignoreUrl = true;\r\n\t\t\t\t \t}\r\n\t\t\t\t \tif(url.indexOf('.microsofttranslator.com/translate') > -1){\r\n\t\t\t\t \t\tignoreUrl = true;\r\n\t\t\t\t \t}\r\n\r\n\t\t\t\t \tif(ignoreUrl){\r\n\t\t\t\t \t\t//console.log('忽略:'+url);\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t \t}\r\n\t\t\t\t \tif(translate.request.listener.trigger()){\r\n\t\t\t\t \t\t//正常,会触发翻译,也是默认的\r\n\t\t\t\t \t}else{\r\n\t\t\t\t \t\t//不触发翻译,跳过\r\n\t\t\t\t \t\tcontinue;\r\n\t\t\t\t \t}\r\n\r\n\t\t\t\t \ttranslateExecute = true;\r\n\t\t\t\t \tbreak;\r\n\t\t\t\t }\r\n\t\t\t\t }\r\n\t\t\t\t if(translateExecute){\r\n\t\t\t\t \t//console.log('translate.request.listener.addExecute() -- '+Date.now());\r\n\t\t\t\t \ttranslate.request.listener.addExecute();\r\n\t\t\t\t }\r\n\t\t\t\t});\r\n\t\t\t\t// 配置observer观察的类型为\"resource\"\r\n\t\t\t\tobserver.observe({ type: \"resource\", buffered: true });\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t//存储,本地缓存\r\n\tstorage:{\r\n\t\tset:function(key,value){\r\n\t\t\tlocalStorage.setItem(key,value);\r\n\t\t},\r\n\t\tget:function(key){\r\n\t\t\treturn localStorage.getItem(key);\r\n\t\t}\r\n\t},\r\n\t//针对图片进行相关的语种图片替换\r\n\timages:{\r\n\t\t/* 要替换的图片队列,数组形态,其中某个数组的:\r\n\t\t\tkey:\"/uploads/allimg/160721/2-160H11URA25-lp.jpg\"; //旧图片,也就是原网站本身的图片。也可以绝对路径,会自动匹配 img src 的值,匹配时会进行完全匹配\r\n\t\t\tvalue:\"https://xxx.com/abc_{language}.jpg\" //新图片,要被替换为的新图片。新图片路径需要为绝对路径,能直接访问到的。其中 {language} 会自动替换为当前要显示的语种。比如你要将你中文网站翻译为繁体中文,那这里会自动替换为:https://xxx.com/abc_chinese_traditional.jpg 有关{language}的取值,可查阅 http://api.translate.zvo.cn/doc/language.json.html 其中的语言标识id便是\r\n\t\t*/\r\n\t\tqueues:[], \r\n\t\t\r\n\t\t/*\r\n\t\t\t向图片替换队列中追加要替换的图片\r\n\t\t\t传入格式如:\r\n\t\t\t\r\n\t\t\ttranslate.images.add({\r\n\t\t\t\t\"/uploads/a.jpg\":\"https://www.zvo.cn/a_{language}.jpg\",\r\n\t\t\t\t\"/uploads/b.jpg\":\"https://www.zvo.cn/b_{language}.jpg\",\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t参数说明:\r\n\t\t\tkey //旧图片,也就是原网站本身的图片。也可以绝对路径,会自动匹配 img src 的值,匹配时会进行完全匹配\r\n\t\t\tvalue //新图片,要被替换为的新图片。新图片路径需要为绝对路径,能直接访问到的。其中 {language} 会自动替换为当前要显示的语种。比如你要将你中文网站翻译为繁体中文,那这里会自动替换为:https://xxx.com/abc_chinese_traditional.jpg 有关{language}的取值,可查阅 http://api.translate.zvo.cn/doc/language.json.html 其中的语言标识id便是\r\n\t\t*/\r\n\t\tadd:function(queueArray){\r\n\t\t\t/*\r\n\t\t\ttranslate.images.queues[translate.images.queues.length] = {\r\n\t\t\t\told:oldImage,\r\n\t\t\t\tnew:newImage\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\tfor(var key in queueArray){\r\n\t\t\t\ttranslate.images.queues[key] = queueArray[key];\r\n\t\t\t}\r\n\t\t},\r\n\t\t//执行图片替换操作,将原本的图片替换为跟翻译语种一样的图片\r\n\t\texecute:function(){\r\n\t\t\t//console.log(translate.images.queues);\r\n\t\t\tif(Object.keys(translate.images.queues).length < 1){\r\n\t\t\t\t//如果没有,那么直接取消图片的替换扫描\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*** 寻找img标签中的图片 ***/\r\n\t\t\tvar imgs = document.getElementsByTagName('img');\r\n\t\t\tfor(var i = 0; i < imgs.length; i ++){\r\n\t\t\t\tvar img = imgs[i];\r\n\t\t\t\tif(typeof(img.src) == 'undefined' || img.src == null || img.src.length == 0){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar imgSrc = img.getAttribute('src'); //这样获取到的才是src原始的值,不然 img.src 是拿到一个绝对路径\r\n\r\n\t\t\t\tfor(var key in translate.images.queues){\r\n\t\t\t\t\tvar oldImage = key; //原本的图片src\r\n\t\t\t\t\tvar newImage = translate.images.queues[key]; //新的图片src,要替换为的\r\n\t\t\t\t\t//console.log('queue : '+oldImage + ' , img.src: '+imgSrc);\r\n\t\t\t\t\tif(oldImage == imgSrc){\r\n\t\t\t\t\t\t//console.log('发现匹配图片:'+imgSrc);\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t//判断当前元素是否在ignore忽略的tag、id、class name中\r\n\t\t\t\t\t\tif(translate.ignore.isIgnore(node)){\r\n\t\t\t\t\t\t\tconsole.log('node包含在要忽略的元素中:');\r\n\t\t\t\t\t\t\tconsole.log(node);\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//没在忽略元素里,可以替换\r\n\t\t\t\t\t\tnewImage = newImage.replace(new RegExp('{language}','g'), translate.to);\r\n\t\t\t\t\t\timg.src = newImage;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t/********** 还要替换style中的背景图 */\r\n\t\t\t// 获取当前网页中所有的元素\r\n\t\t\tvar elems = document.getElementsByTagName(\"*\");\r\n\t\t\t// 遍历每个元素,检查它们是否有背景图\r\n\t\t\tfor (var i = 0; i < elems.length; i++) {\r\n\t\t\t\tvar elem = elems[i];\r\n\t\t\t\t// 获取元素的计算后样式\r\n\t\t\t\tvar style = window.getComputedStyle(elem, null);\r\n\t\t\t\t// 获取元素的背景图URL\r\n\t\t\t\tvar bg = style.backgroundImage;\r\n\t\t\t\t// 如果背景图不为空,打印出来\r\n\t\t\t\tif (bg != \"none\") {\r\n\t\t\t\t\t//console.log(bg);\r\n\t\t\t\t\tvar old_img = translate.images.gainCssBackgroundUrl(bg);\r\n\t\t\t\t\t//console.log(\"old_img:\"+old_img);\r\n\t\t\t\t\tif(typeof(translate.images.queues[old_img]) != 'undefined'){\r\n\t\t\t\t\t\t//存在\r\n\t\t\t\t\t\tvar newImage = translate.images.queues[old_img];\r\n\t\t\t\t\t\tnewImage = newImage.replace(new RegExp('{language}','g'), translate.to);\r\n\t\t\t\t\t\t//更换翻译指定图像\r\n\t\t\t\t\t\telem.style.backgroundImage='url(\"'+newImage+'\")';\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//console.log('发现图像'+old_img+', 但未做语种适配');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\r\n\t\t},\r\n\t\t//取css中的背景图,传入 url(\"https://xxx.com/a.jpg\") 返回里面单纯的url\r\n\t\tgainCssBackgroundUrl:function(str){\r\n\t\t\t// 使用indexOf方法,找到第一个双引号的位置\r\n\t\t\tvar start = str.indexOf(\"\\\"\");\r\n\t\t\t// 使用lastIndexOf方法,找到最后一个双引号的位置\r\n\t\t\tvar end = str.lastIndexOf(\"\\\"\");\r\n\t\t\t// 如果找到了双引号,使用substring方法,截取中间的内容\r\n\t\t\tif (start != -1 && end != -1) {\r\n\t\t\t\tvar url = str.substring(start + 1, end); // +1是为了去掉双引号本身\r\n\t\t\t\t//console.log(url); // https://e-assets.gitee.com/gitee-community-web/_next/static/media/mini_app.2e6b6d93.jpg!/quality/100\r\n\t\t\t\treturn url;\r\n\t\t\t}\r\n\t\t\treturn str;\r\n\t\t}\r\n\t},\r\n\t//对翻译结果进行复原。比如当前网页是简体中文的,被翻译为了英文,执行此方法即可复原为网页本身简体中文的状态,而无需在通过刷新页面来实现\r\n\treset:function(){\r\n\t\tvar currentLanguage = translate.language.getCurrent(); //获取当前翻译至的语种\r\n\t\tfor(var queue in translate.nodeQueue){\r\n\t\t\t//console.log(queue);\r\n\t\t\tfor(var lang in translate.nodeQueue[queue].list){\r\n\t\t\t\t//console.log(lang);\r\n\t\t\t\t\r\n\t\t\t\tfor(var hash in translate.nodeQueue[queue].list[lang]){\r\n\t\t\t\t\tvar item = translate.nodeQueue[queue].list[lang][hash];\r\n\t\t\t\t\t//console.log(item);\r\n\t\t\t\t\tfor(var index in item.nodes){\r\n\t\t\t\t\t\t//console.log(item.nodes[index]);\r\n\t\t\t\t\t\t//item.nodes[index].node.nodeValue = item.original;\r\n\t\t\t\t\t\tvar currentShow = translate.storage.get('hash_'+currentLanguage+'_'+hash); //当前显示出来的文字,也就是已经翻译后的文字\r\n\t\t\t\t\t\t//console.log('hash_'+lang+'_'+hash+' -- '+currentShow);\r\n\t\t\t\t\t\tif(typeof(currentShow) == 'undefined'){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(currentShow == null){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(currentShow.length == 0){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n/*\r\n\t\t\t\t\t\tif(item.beforeText.length > 0 || item.afterText.length > 0){\r\n\t\t\t\t\t\t\tconsole.log('----'+currentShow);\r\n\t\t\t\t\t\t\tconsole.log(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(item.beforeText.length > 0){\r\n\t\t\t\t\t\t\tcurrentShow = currentShow.substring(currentShow.lastIndexOf(item.beforeText)+1, currentShow.length);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(item.afterText.length > 0){\r\n\t\t\t\t\t\t\tcurrentShow = currentShow.substring(0, currentShow.lastIndexOf(item.afterText));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(item.beforeText.length > 0 || item.afterText.length > 0){\r\n\t\t\t\t\t\t\tconsole.log(currentShow);\r\n\t\t\t\t\t\t}\r\n*/\t\t\t\t\t\t\r\n\t\t\t\t\t\ttranslate.element.nodeAnalyse.analyse(item.nodes[index].node, currentShow, item.original, item.nodes[index].node.attribute);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//清除设置storage中的翻译至的语种\r\n\t\ttranslate.storage.set('to', '');\r\n\t\ttranslate.to = null;\r\n\t\t//重新渲染select\r\n\t\ttranslate.selectLanguageTag.render();\r\n\t},\r\n\t\r\n\t/*\r\n\t\t划词翻译,鼠标在网页中选中一段文字,会自动出现对应翻译后的文本\r\n\t\t有网友 https://gitee.com/huangguishen 提供。\r\n\t\t详细使用说明参见:http://translate.zvo.cn/41557.html\r\n\t*/\r\n\tselectionTranslate:{\r\n\t\tselectionX:0,\r\n\t\tselectionY:0,\r\n\t\tcallTranslate:function (event){\r\n\t\t\tlet curSelection = window.getSelection();\r\n\t\t\t//相等认为没有划词\r\n\t\t\tif (curSelection.anchorOffset == curSelection.focusOffset) return;\r\n\t\t\tlet translateText = window.getSelection().toString();\r\n\r\n\t\t\t//简单Copy原有代码了\r\n\t\t\tvar url = translate.request.api.translate\r\n\t\t\tvar data = {\r\n\t\t\t\tfrom:translate.language.getLocal(),\r\n\t\t\t\tto:translate.to,\r\n\t\t\t\ttext:encodeURIComponent(JSON.stringify([translateText]))\r\n\t\t\t};\r\n\t\t\ttranslate.request.post(url, data, function(data) {\r\n\t\t\t\tif (data.result == 0) return;\r\n\t\t\t\tlet curTooltipEle = document.querySelector('#translateTooltip')\r\n\t\t\t\tcurTooltipEle.innerText = data.text[0];\r\n\t\t\t\tcurTooltipEle.style.top =selectionY+20+\"px\";\r\n\t\t\t\tcurTooltipEle.style.left = selectionX+50+\"px\" ;\r\n\t\t\t\tcurTooltipEle.style.display = \"\";\r\n\t\t\t}, null);\r\n\t\t},\r\n\t\tstart:function () {\r\n\t\t\t//新建一个tooltip元素节点用于显示翻译\r\n\t\t\tlet tooltipEle = document.createElement('span');\r\n\t\t\ttooltipEle.innerText = '';\r\n\t\t\ttooltipEle.setAttribute('id', 'translateTooltip');\r\n\t\t\ttooltipEle.setAttribute('style', 'background-color:black;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:999;top:150%;left:50%; ');\r\n\t\t\t//把元素节点添加到body元素节点中成为其子节点,放在body的现有子节点的最后\r\n\t\t\tdocument.body.appendChild(tooltipEle);\r\n\t\t\t//监听鼠标按下事件,点击起始点位置作为显示翻译的位置点\r\n\t\t\tdocument.addEventListener('mousedown', (event)=>{ selectionX= event.pageX;selectionY= event.pageY ;}, false);\t\t\t\r\n\t\t\t//监听鼠标弹起事件,便于判断是否处于划词\r\n\t\t\tdocument.addEventListener('mouseup', translate.selectionTranslate.callTranslate, false);\r\n\t\t\t//监听鼠标点击事件,隐藏tooltip,此处可优化\r\n\t\t\tdocument.addEventListener('click', (event)=>{ document.querySelector('#translateTooltip').style.display = \"none\"}, false);\r\n\t\t}\r\n\t},\r\n\r\n\t/*\r\n\t\t企业级翻译服务\r\n\t\t注意,这个企业级翻译中的不在开源免费之中,企业级翻译服务追求的是高稳定,这个是收费的!详情可参考:http://translate.zvo.cn/43262.html\r\n\r\n\t*/\r\n\tenterprise:{\r\n\t\t//默认不启用企业级,除非设置了 translate.enterprise.use() 这里才会变成true\r\n\t\tisUse:false,\t\r\n\t\tuse:function(){\r\n\t\t\ttranslate.enterprise.isUse = true; //设置为使用企业级翻译服务\r\n\r\n\t\t\t//主节点额外权重降低,更追求响应速度\r\n\t\t\ttranslate.request.speedDetectionControl.hostMasterNodeCutTime = 300; \r\n\t\t\ttranslate.request.api.host=['https://america-enterprise-api-translate.zvo.cn/','https://beijing.enterprise.api.translate.zvo.cn/','https://deutsch.enterprise.api.translate.zvo.cn/', 'https://america.api.translate.zvo.cn:666/', 'https://api.translate.zvo.cn:666/', 'https://api.translate.zvo.cn:888/'];\r\n\t\t\t\r\n\t\t\tif(translate.service.name == 'client.edge'){\r\n\t\t\t\ttranslate.service.name = 'translate.service';\r\n\t\t\t\tconsole.log('您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use(\\'client.edge\\'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t},\r\n\t\t/*\r\n\t\t\t自动适配翻译服务通道,如果当前所有网络节点均不可用,会自动切换到 edge.client 进行使用\r\n\t\t\t这个会在 post请求 执行前开始时进行触发\r\n\t\t*/\r\n\t\tautomaticAdaptationService:function(){\r\n\t\t\tif(!translate.enterprise.isUse){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar hosts = translate.request.speedDetectionControl.getHostQueue();\r\n\t\t\t//console.log(hosts);\r\n\t\t\tif(hosts.length > 0){\r\n\t\t\t\tif(hosts[0].time + 1 > translate.request.speedDetectionControl.disableTime){\r\n\t\t\t\t\t//所有节点都处于不可用状态,自动切换到 client.edge 模式\r\n\t\t\t\t\ttranslate.service.name = 'client.edge';\r\n\t\t\t\t} \r\n\t\t\t}\r\n\t\t},\r\n\t\t/* 企业级翻译通道的key, v3.12.3.20250107 增加,针对打包成APP的场景 */\r\n\t\tkey:'', \r\n\t},\r\n\r\n\t/*\r\n\t\t如果使用的是 translate.service 翻译通道,那么翻译后的语种会自动以小写的方式进行显示。\r\n\t\t如果你不想将翻译后的文本全部以小写显示,而是首字母大写,那么可以通过此方法设置一下\r\n\t\tv3.8.0.20240828 增加\r\n\t\t目前感觉应该用不到,所以先忽略\r\n\t*/\r\n\t/*\r\n\tnotConvertLowerCase:function(){\r\n\r\n\t},\r\n\t*/\r\n\r\n\t/*\r\n\t\t初始化,如版本检测、初始数据加载等。 v2.11.11.20240124 增加\r\n\t\t会自动在 translate.js 加载后的 200毫秒后 执行,进行初始化。同时也是节点测速\r\n\t*/\r\n\tinit:function(){\r\n\t\tif(typeof(translate.init_execute) != 'undefined'){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttranslate.init_execute = '已进行';\r\n\t\ttry{\r\n\t\t\ttranslate.request.send(\r\n\t\t\t\ttranslate.request.api.init,\r\n\t\t\t\t{},\r\n\t\t\t\tfunction(data){\r\n\t\t\t\t\tif (data.result == 0){\r\n\t\t\t\t\t\tconsole.log('translate.js init 初始化异常:'+data.info);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}else if(data.result == 1){\r\n\t\t\t\t\t\t//服务端返回的最新版本\r\n\t\t\t\t\t\tvar newVersion = translate.util.versionStringToInt(data.version);\r\n\t\t\t\t\t\t//当前translate.js的版本\r\n\t\t\t\t\t\tvar currentVersion = translate.util.versionStringToInt(translate.version.replace('v',''));\r\n\r\n\t\t\t\t\t\tif(newVersion > currentVersion){\r\n\t\t\t\t\t\t\tconsole.log('Tip : translate.js find new version : '+data.version);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\teval(data.info);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'post',\r\n\t\t\t\ttrue,\r\n\t\t\t\tnull,\r\n\t\t\t\tfunction(data){\r\n\t\t\t\t\t//console.log('eeerrr');\r\n\t\t\t\t},\r\n\t\t\t\tfalse\r\n\t\t\t);\r\n\t\t}catch(e){\r\n\t\t}\r\n\t},\r\n\r\n\t/*\r\n\t\t翻译执行的进展相关\r\n\t*/\r\n\tprogress:{\r\n\t\t/*\r\n\t\t\t通过文本翻译API进行的\r\n\t\t */\r\n\t\tapi:{\r\n\t\t\tisTip:true,//是否显示ui的提示,true显示,false不显示\r\n\t\t\tsetUITip:function(tip){\r\n\t\t\t\ttranslate.progress.api.isTip = tip;\r\n\t\t\t},\r\n\t\t\tstartUITip:function(){\r\n\t\t\t\t// 创建一个 style 元素\r\n\t\t const style = document.createElement('style');\r\n\t\t // 设置 style 元素的文本内容为要添加的 CSS 规则\r\n\t\t \tstyle.textContent = `\r\n\t\t\t\t\t/* CSS部分 */\r\n\t\t\t\t\t/* 灰色水平加载动画 */\r\n\t\t\t\t\t.translate_api_in_progress {\r\n\t\t\t\t\t position: relative;\r\n\t\t\t\t\t overflow: hidden; /* 隐藏超出部分的动画 */\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* 蒙版层 */\r\n\t\t\t\t\t.translate_api_in_progress::after {\r\n\t\t\t\t\t content: '';\r\n\t\t\t\t\t position: absolute;\r\n\t\t\t\t\t top: 0;\r\n\t\t\t\t\t left: 0;\r\n\t\t\t\t\t width: 100%;\r\n\t\t\t\t\t height: 100%;\r\n\t\t\t\t\t background: rgba(255, 255, 255, 1); /* 半透明白色遮罩 */\r\n\t\t\t\t\t z-index: 2;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* 水平加载条动画 */\r\n\t\t\t\t\t.translate_api_in_progress::before {\r\n\t\t\t\t\t content: '';\r\n\t\t\t\t\t position: absolute;\r\n\t\t\t\t\t top: 50%;\r\n\t\t\t\t\t left: 0;\r\n\t\t\t\t\t width: 100%;\r\n\t\t\t\t\t height:100%; /* 细线高度 */\r\n\t\t\t\t\t background: linear-gradient(\r\n\t\t\t\t\t 90deg,\r\n\t\t\t\t\t transparent 0%,\r\n\t\t\t\t\t #e8e8e8 25%, /* 浅灰色 */\r\n\t\t\t\t\t #d0d0d0 50%, /* 中灰色 */\r\n\t\t\t\t\t #e8e8e8 75%, /* 浅灰色 */\r\n\t\t\t\t\t transparent 100%\r\n\t\t\t\t\t );\r\n\t\t\t\t\t background-size: 200% 100%;\r\n\t\t\t\t\t animation: translate_api_in_progress_horizontal-loader 3.5s linear infinite;\r\n\t\t\t\t\t z-index: 3;\r\n\t\t\t\t\t transform: translateY(-50%);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t@keyframes translate_api_in_progress_horizontal-loader {\r\n\t\t\t\t\t 0% {\r\n\t\t\t\t\t background-position: 200% 0;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t 100% {\r\n\t\t\t\t\t background-position: -200% 0;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t}\r\n\t\t\t\t`;\r\n\t\t // 将 style 元素插入到 head 元素中\r\n\t\t document.head.appendChild(style);\r\n\r\n\r\n\t\t\t\tif(translate.progress.api.isTip){\r\n\t\t\t\t\ttranslate.listener.execute.renderStartByApi.push(function(uuid){\r\n\t\t\t\t\t for(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\t\t\t if(translate.language.getCurrent() == lang){\r\n\t\t\t\t\t\t //忽略这个语种\r\n\t\t\t\t\t\t continue;\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t for(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t\t\t \tfor(var nodeindex in translate.nodeQueue[uuid].list[lang][hash].nodes){\r\n\t\t\t\t\t\t \t\tvar node = translate.nodeQueue[uuid].list[lang][hash].nodes[nodeindex].node;\r\n\t\t\t\t\t\t \t\tvar nodeParent = node.parentNode;\r\n\t\t\t\t\t\t\t if(nodeParent == null){\r\n\t\t\t\t\t\t\t \tcontinue;\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t\tif(nodeParent.childNodes.length != 1){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif(typeof(nodeParent.className) == 'undefined' || nodeParent.className == null || nodeParent.className == ''){\r\n\t\t\t\t\t\t\t\t\t\tnodeParent.className = ' translate_api_in_progress';\r\n\t\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\t\t//这个元素本身有class了,那就追加\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(nodeParent.className.indexOf('translate_api_in_progress') > -1){\t\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tnodeParent.className = nodeParent.className+' translate_api_in_progress';\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t \t}\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\ttranslate.listener.execute.renderFinishByApi.push(function(uuid){\r\n\t\t\t\t\t for(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\t\t\t if(translate.language.getCurrent() == lang){\r\n\t\t\t\t\t\t //忽略这个语种\r\n\t\t\t\t\t\t continue;\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t for(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t\t\t \tfor(var nodeindex in translate.nodeQueue[uuid].list[lang][hash].nodes){\r\n\t\t\t\t\t\t \t\tvar node = translate.nodeQueue[uuid].list[lang][hash].nodes[nodeindex].node;\r\n\t\t\t\t\t\t \t\tvar nodeParent = node.parentNode;\r\n\t\t\t\t\t\t\t if(nodeParent == null){\r\n\t\t\t\t\t\t\t \tcontinue;\r\n\t\t\t\t\t\t\t }\r\n\r\n\t\t\t\t\t\t\t /*\r\n\t\t\t\t\t\t\t 注释这个,因为可能是给这个元素动态追加删除导致其子元素不是11\r\n\t\t\t\t\t\t\t\t\tif(nodeParent.childNodes.length != 1){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t*/\r\n\r\n\t\t\t\t\t\t\t\t\tvar parentClassName = nodeParent.className;\r\n\t\t\t\t\t\t\t\t\tif(typeof(parentClassName) == 'undefined' || parentClassName == null || parentClassName == ''){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(parentClassName.indexOf('translate_api_in_progress') < -1){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tnodeParent.className = parentClassName.replace(/translate_api_in_progress/g, '');\r\n\t\t\t\t\t\t\t\t\t//nodeParent.className = parentClassName.replace(/loading/g, '');\r\n\t\t\t\t\t\t \t}\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t/*\r\n\t\t对js对象进行翻译\r\n\t\tobj: 可以是JS定义的 对象、数组、甚至是单个具体的值\r\n\t*/\r\n\tjsObject:function (obj, parentKey = '') {\r\n\t\t/*\r\n\t\t\t存放扫描的结果\r\n\t\t\tkey 存放要被翻译的文本,也就是对象里面某个具体属性的值\r\n\t\t\tvalue 存放 obj 中的 key (的调取路径),比如 series[0].data[0].name 这个是个数组形态,因为同一个翻译的文本内容有可能会在obj中出现多次\r\n\t\t*/\r\n\t\tvar kvs = {};\t\r\n\r\n\t if (typeof obj === 'object' && obj!== null) {\r\n\t if (Array.isArray(obj)) {\r\n\t // 处理数组\r\n\t obj.forEach((item, index) => {\r\n\t const currentKey = parentKey? `${parentKey}[${index}]` : `[${index}]`;\r\n\t translate.jsObject(item, currentKey);\r\n\t });\r\n\t } else {\r\n\t // 处理普通对象\r\n\t for (const key in obj) {\r\n\t const currentKey = parentKey? `${parentKey}.${key}` : key;\r\n\t if (typeof obj[key] === 'object' && obj[key]!== null) {\r\n\t // 如果值是对象,递归调用函数\r\n\t translate.jsObject(obj[key], currentKey);\r\n\t } else {\r\n\t // 打印键值对\r\n\r\n\t if(typeof(obj[key]) == 'string'){\r\n\t \t//console.log(`${currentKey}: ${obj[key]}`);\r\n\t \t//console.log(obj[key]);\r\n\t \t//console.log(typeof(kvs[obj[key]]));\r\n\t \tif(typeof(kvs[obj[key]]) == 'undefined'){\r\n\t \t\tkvs[obj[key]] = new Array();\r\n\t \t}\r\n\t \t//kvs[obj[key].push(currentKey);\r\n\t }\r\n\t \r\n\t }\r\n\t }\r\n\t }\r\n\t } else {\r\n\t // 如果不是对象,直接打印\r\n\t if(typeof(obj) == 'string'){\r\n\r\n\t \tif(typeof(obj) == 'string'){\r\n \t//console.log(`${parentKey}: ${obj}`);\r\n \tif(typeof(kvs[obj]) == 'undefined'){\r\n \t\tkvs[obj] = new Array();\r\n \t}\r\n \tkvs[obj].push('not key');\r\n }\r\n\r\n\t \t\r\n\t }\r\n\t }\r\n\r\n\t return kvs;\r\n\t}\r\n\r\n\r\n\t\r\n}\r\n/*\r\n\t将页面中的所有node节点,生成其在当前页面的唯一标识字符串uuid\r\n\t开源仓库: https://github.com/xnx3/nodeuuid.js\r\n\t原理: 当前节点的nodeName + 当前节点在父节点下,属于第几个 tagName ,然后追个向父级进行取,将node本身+父级+父父级+.... 拼接在一起\r\n\t注意,如果动态添加一个节点到第一个,那么其他节点就会挤下去导致节点标记异常\r\n*/\r\nvar nodeuuid = {\r\n\tindex:function(node){\r\n\t\tvar parent = node.parentNode;\r\n if(parent == null){\r\n return '';\r\n }\r\n\r\n var childs;\r\n if(typeof(node.tagName) == 'undefined'){\r\n \t//console.log('undefi');\r\n \tchilds = parent.childNodes;\r\n \t//console.log(Array.prototype.indexOf.call(childs, node));\r\n }else{\r\n \t// 使用querySelectorAll()方法获取所有与node元素相同标签名的子节点\r\n\t //childs = parent.querySelectorAll(node.tagName);\r\n\r\n\t // 不使用querySelectorAll,手动遍历子节点来找到相同标签名的子节点\r\n childs = [];\r\n var allChilds = parent.childNodes;\r\n for (var i = 0; i < allChilds.length; i++) {\r\n if (allChilds[i].tagName === node.tagName) {\r\n childs.push(allChilds[i]);\r\n }\r\n }\r\n }\r\n var index = Array.prototype.indexOf.call(childs, node); \r\n //console.log('--------'+node.tagName);\r\n return node.nodeName + \"\" + (index+1);\r\n\t},\r\n\tuuid:function(node){\r\n\t\tvar uuid = '';\r\n\t\tvar n = node;\r\n\t\twhile(n != null){\r\n\t\t\tvar id = nodeuuid.index(n);\r\n\t\t\t//console.log(id);\r\n\t\t\tif(id != ''){\r\n\t\t\t\tif(uuid != ''){\r\n\t\t\t\t\tuuid = '_'+uuid;\r\n\t\t\t\t}\r\n\t\t\t\tuuid = id + uuid;\r\n\t\t\t}\r\n\t\t\t//console.log(uuid)\r\n\t\t\tn = n.parentNode;\r\n\t\t}\r\n\t\treturn uuid;\r\n\t},\r\n\t/*\r\n\t\t开启远程调试能力,当你使用中遇到问题,需要向开源作者求助时,可以在你项目中主动调用这个方法,也就是 translate.enableRemoteDebug(); 即可启动远程调试能力\r\n\t\t开源项目作者就可以对你当前出错的页面进行远程调试排查问题所在。当然前提是你的页面要保持别关闭。\r\n\r\n\t\t这个能力是通过开源项目 https://github.com/HuolalaTech/page-spy-web 来实现的\r\n\t\t\r\n\t*/\r\n\tenableRemoteDebug:function(){\r\n\r\n\t\t/*\r\n\r\n\t\t\t待同事实现\r\n\t\t*/\r\n\r\n\t},\r\n\r\n}\r\nconsole.log('------ translate.js ------\\nTwo lines of js html automatic translation, page without change, no language configuration file, no API Key, SEO friendly! Open warehouse : https://github.com/xnx3/translate \\n两行js实现html全自动翻译。 无需改动页面、无语言配置文件、无API Key、对SEO友好!完全开源,代码仓库:https://gitee.com/mail_osc/translate');\r\n\r\n/**\r\n * 兼容 AMD、CMD、CommonJS 规范\r\n * node 环境使用:`npm i i18n-jsautotranslate` 安装包\r\n */\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define([], () => factory());\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory();\r\n } else {\r\n root['translate'] = factory();\r\n }\r\n})(this, function () {\r\n return translate;\r\n});\r\n","import request from './request'\n\n// 历史记录相关接口\nexport const historyApi = {\n // 获取历史记录\n getHistory: async () => {\n return await request({\n url: '/prompt/history/get_history',\n method: 'get'\n })\n },\n\n saveHistory:async (data) => {\n return await request({\n url: '/prompt/history/add_history',\n method: 'post',\n data\n })\n },\n\n deleteHistory:async (id) => {\n return await request({\n url: '/prompt/history/delete_history',\n method: 'post',\n data: { id_index: id }\n })\n },\n\n batchDeleteHistory:async(ids) => {\n return await request({\n url: '/prompt/history/batch_delete_history',\n method: 'post',\n data: { id_index: ids }\n })\n },\n\n getFavorite:async () => {\n return await request({\n url: '/prompt/collect_history/get_collect_history',\n method: 'get',\n })\n },\n\n addFavorite: async(data) => {\n return await request({\n url: '/prompt/collect_history/add_collect_history',\n method: 'post',\n data\n })\n },\n\n editFavorite:async (data) => {\n return await request({\n url: '/prompt/collect_history/edit_collect_history',\n method: 'post',\n data\n })\n },\n\n deleteFavorite: async(id) => {\n return await request({\n url: '/prompt/collect_history/delete_collect_history',\n method: 'post',\n data: { id_index: id }\n })\n },\n\n batchDeleteFavorite: async(ids) => {\n return await request({\n url: '/prompt/collect_history/batch_delete_collect_history',\n method: 'post',\n data: { id_indices: ids }\n })\n },\n\n}","\r\n\r\n\r\n\r\n\r\n","\n\n\n","import request from './request'\n// 翻译相关接口\nexport const randomTagApi = {\n // 获取模板列表\n getTemplateList: async () => {\n return await request({\n url: '/random_template/get_template_list',\n method: 'post',\n })\n },\n\n getTemplateData: async (name) => {\n return await request({\n url: '/random_template/get_template_data',\n method: 'post',\n data: { name }\n })\n },\n\n saveTemplateData: async (data) => {\n return await request({\n url: '/random_template/save_template',\n method: 'post',\n data: { data}\n })\n },\n\n updateTemplateData: async (name,data) => {\n return await request({\n url: '/random_template/update_template',\n method: 'post',\n data: { name , data}\n })\n },\n\n deleteTemplateData: async (name) => {\n return await request({\n url: '/random_template/delete_template',\n method: 'post',\n data: { name}\n })\n },\n\n getRandomTemplateApple: async () => {\n return await request({\n url: '/get/setting/get_random_template_setting',\n method: 'post'\n })\n },\n\n updateRandomTemplateApple: async (path) => {\n return await request({\n url: '/update/setting/update_random_template_setting',\n method: 'post',\n data: {\n path\n }\n })\n },\n\n goRandomTemplate: async () => {\n return await request({\n url: '/random_template/go_random_template',\n method: 'post',\n })\n },\n\n goRandomTemplatePath: async (name) => {\n return await request({\n url: '/random_template/go_random_template_path',\n method: 'post',\n data: { name }\n })\n },\n \n}","\n\n\n","\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","import request from './request'\n\nexport const cloudApi = {\n // 获取云仓库列表\n getTreeFromCloud: async (path) => {\n return await request({\n url: '/cloud/get/tree',\n method: 'post',\n data: { path: path }\n })\n },\n getLocalInstallPackage: async () => {\n return await request({\n url: '/cloud/get/local/package',\n method: 'post',\n data: { }\n })\n },\n installSelectPackage: async (path,paths) => {\n return await request({\n url: '/cloud/download/file',\n method: 'post',\n timeout: 0,\n data: { paths: paths, path: path }\n })\n },\n}","\n\n\n\n","\r\n\r\n\r\n\r\n","import request from './request'\n\nexport const danbooruApi = {\n // 查询获取Danbooru列表\n searchDanbooru: async (search=\"\",page=1,limit=100) => {\n /* \n search: \"girl\", // 可选,搜索关键词\n page: 1, // 可选,默认1\n limit: 20 // 可选,默认100\n */\n return await request({\n url: '/danbooru/get_tags',\n method: 'post',\n data: { search,page,limit }\n })\n },\n addDanbooruTag: async (data) => {\n /*\n {\n tag: \"new_tag\",\n color_id: 1, // 可选,默认0\n translate: \"新标签\", // 可选\n hot: 0, // 可选,默认0\n aliases: 0 // 可选,默认0\n }\n */\n return await request({\n url: '/danbooru/add_tag',\n method: 'post',\n data: data\n })\n },\n updateDanbooruTag: async (data) => {\n /*\n {\n id: 123, // 标签ID\n update_data: {\n translate: \"更新后的翻译\",\n hot: 1\n }\n }\n */\n return await request({\n url: '/danbooru/update_tag',\n method: 'post',\n timeout: 0,\n data:data\n })\n },\n deleteDanbooruTag: async (id) => {\n /*\n {\n id: 123 // 要删除的标签ID\n }\n */\n return await request({\n url: '/danbooru/delete_tag',\n method: 'post',\n timeout: 0,\n data:{ id }\n })\n },\n batchDeleteDanbooruTags: async (values) => {\n return await request({\n url: '/danbooru/batch_delete_tag',\n method: 'post',\n timeout: 0,\n data:{ values }\n })\n },\n // 执行SQL数组脚本\n runSQLToServer: async (arr) => {\n return await request({\n url: '/danbooru/run_sql_text',\n method: 'post',\n timeout: 0,\n data: {\n sql: arr\n }\n })\n },\n}","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","import Clipboard from 'clipboard';\nexport default (opts) => {\n // default appendToBody true\n const appendToBody = (opts === null || opts === void 0 ? void 0 : opts.appendToBody) === undefined ? true : opts.appendToBody;\n return {\n toClipboard(text, container) {\n return new Promise((resolve, reject) => {\n // make fake element\n const fakeEl = document.createElement('button');\n // setup a new Clipboard.js\n const clipboard = new Clipboard(fakeEl, {\n text: () => text,\n action: () => 'copy',\n container: container !== undefined ? container : document.body\n });\n clipboard.on('success', (e) => {\n clipboard.destroy();\n resolve(e);\n });\n clipboard.on('error', (e) => {\n clipboard.destroy();\n reject(e);\n });\n // appendToBody fixes IE\n if (appendToBody)\n document.body.appendChild(fakeEl);\n // simulate click\n fakeEl.click();\n // remove from body if appended\n if (appendToBody)\n document.body.removeChild(fakeEl);\n });\n }\n };\n};\n//# sourceMappingURL=index.js.map","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n warnKeyDropped(key);\n return;\n }\n return value;\n}\nfunction warnKeyDropped(key) {\n console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n if (typeof value !== \"string\") {\n return value;\n }\n const _value = value.trim();\n if (\n // eslint-disable-next-line unicorn/prefer-at\n value[0] === '\"' && value.endsWith('\"') && !value.includes(\"\\\\\")\n ) {\n return _value.slice(1, -1);\n }\n if (_value.length <= 9) {\n const _lval = _value.toLowerCase();\n if (_lval === \"true\") {\n return true;\n }\n if (_lval === \"false\") {\n return false;\n }\n if (_lval === \"undefined\") {\n return void 0;\n }\n if (_lval === \"null\") {\n return null;\n }\n if (_lval === \"nan\") {\n return Number.NaN;\n }\n if (_lval === \"infinity\") {\n return Number.POSITIVE_INFINITY;\n }\n if (_lval === \"-infinity\") {\n return Number.NEGATIVE_INFINITY;\n }\n }\n if (!JsonSigRx.test(value)) {\n if (options.strict) {\n throw new SyntaxError(\"[destr] Invalid JSON\");\n }\n return value;\n }\n try {\n if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n if (options.strict) {\n throw new Error(\"[destr] Possible prototype pollution\");\n }\n return JSON.parse(value, jsonParseTransform);\n }\n return JSON.parse(value);\n } catch (error) {\n if (options.strict) {\n throw error;\n }\n return value;\n }\n}\nfunction safeDestr(value, options = {}) {\n return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","function get(obj, path) {\n if (obj == null)\n return void 0;\n let value = obj;\n for (let i = 0; i < path.length; i++) {\n if (value == null || value[path[i]] == null)\n return void 0;\n value = value[path[i]];\n }\n return value;\n}\nfunction set(obj, value, path) {\n if (path.length === 0)\n return value;\n const idx = path[0];\n if (path.length > 1) {\n value = set(\n typeof obj !== \"object\" || obj === null || !Object.prototype.hasOwnProperty.call(obj, idx) ? Number.isInteger(Number(path[1])) ? [] : {} : obj[idx],\n value,\n Array.prototype.slice.call(path, 1)\n );\n }\n if (Number.isInteger(Number(idx)) && Array.isArray(obj))\n return obj.slice()[idx];\n return Object.assign({}, obj, { [idx]: value });\n}\nfunction unset(obj, path) {\n if (obj == null || path.length === 0)\n return obj;\n if (path.length === 1) {\n if (obj == null)\n return obj;\n if (Number.isInteger(path[0]) && Array.isArray(obj))\n return Array.prototype.slice.call(obj, 0).splice(path[0], 1);\n const result = {};\n for (const p in obj)\n result[p] = obj[p];\n delete result[path[0]];\n return result;\n }\n if (obj[path[0]] == null) {\n if (Number.isInteger(path[0]) && Array.isArray(obj))\n return Array.prototype.concat.call([], obj);\n const result = {};\n for (const p in obj)\n result[p] = obj[p];\n return result;\n }\n return set(\n obj,\n unset(\n obj[path[0]],\n Array.prototype.slice.call(path, 1)\n ),\n [path[0]]\n );\n}\n\nfunction deepPickUnsafe(obj, paths) {\n return paths.map((p) => p.split(\".\")).map((p) => [p, get(obj, p)]).filter((t) => t[1] !== void 0).reduce((acc, cur) => set(acc, cur[1], cur[0]), {});\n}\nfunction deepPick(obj, paths) {\n return deepPickUnsafe(obj, paths);\n}\nfunction deepOmitUnsafe(obj, paths) {\n return paths.map((p) => p.split(\".\")).reduce((acc, cur) => unset(acc, cur), obj);\n}\nfunction deepOmit(obj, paths) {\n return deepOmitUnsafe(obj, paths);\n}\n\nexport { deepOmit, deepOmitUnsafe, deepPick, deepPickUnsafe };\n","// src/index.ts\nimport { destr } from \"destr\";\n\n// src/runtime/core.ts\nimport { deepOmitUnsafe, deepPickUnsafe } from \"deep-pick-omit\";\nfunction hydrateStore(store, {\n storage,\n serializer,\n key,\n debug,\n pick,\n omit,\n beforeHydrate,\n afterHydrate\n}, context, runHooks = true) {\n try {\n if (runHooks)\n beforeHydrate?.(context);\n const fromStorage = storage.getItem(key);\n if (fromStorage) {\n const deserialized = serializer.deserialize(fromStorage);\n const picked = pick ? deepPickUnsafe(deserialized, pick) : deserialized;\n const omitted = omit ? deepOmitUnsafe(picked, omit) : picked;\n store.$patch(omitted);\n }\n if (runHooks)\n afterHydrate?.(context);\n } catch (error) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", error);\n }\n}\nfunction persistState(state, {\n storage,\n serializer,\n key,\n debug,\n pick,\n omit\n}) {\n try {\n const picked = pick ? deepPickUnsafe(state, pick) : state;\n const omitted = omit ? deepOmitUnsafe(picked, omit) : picked;\n const toStorage = serializer.serialize(omitted);\n storage.setItem(key, toStorage);\n } catch (error) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", error);\n }\n}\nfunction createPersistence(context, optionsParser, auto) {\n const { pinia, store, options: { persist = auto } } = context;\n if (!persist)\n return;\n if (!(store.$id in pinia.state.value)) {\n const originalStore = pinia._s.get(store.$id.replace(\"__hot:\", \"\"));\n if (originalStore)\n Promise.resolve().then(() => originalStore.$persist());\n return;\n }\n const persistenceOptions = Array.isArray(persist) ? persist : persist === true ? [{}] : [persist];\n const persistences = persistenceOptions.map(optionsParser);\n store.$hydrate = ({ runHooks = true } = {}) => {\n persistences.forEach((p) => {\n hydrateStore(store, p, context, runHooks);\n });\n };\n store.$persist = () => {\n persistences.forEach((p) => {\n persistState(store.$state, p);\n });\n };\n persistences.forEach((p) => {\n hydrateStore(store, p, context);\n store.$subscribe(\n (_mutation, state) => persistState(state, p),\n { detached: true }\n );\n });\n}\n\n// src/index.ts\nfunction createPersistedState(options = {}) {\n return function(context) {\n createPersistence(\n context,\n (p) => ({\n key: (options.key ? options.key : (x) => x)(p.key ?? context.store.$id),\n debug: p.debug ?? options.debug ?? false,\n serializer: p.serializer ?? options.serializer ?? {\n serialize: (data) => JSON.stringify(data),\n deserialize: (data) => destr(data)\n },\n storage: p.storage ?? options.storage ?? window.localStorage,\n beforeHydrate: p.beforeHydrate,\n afterHydrate: p.afterHydrate,\n pick: p.pick,\n omit: p.omit\n }),\n options.auto ?? false\n );\n };\n}\nvar src_default = createPersistedState();\nexport {\n createPersistedState,\n src_default as default\n};\n","import { createApp } from 'vue'\nimport App from './App.vue'\nimport './style.css'\nimport '@/styles/theme.css'\nimport VueClipboard from 'vue-clipboard3'\nimport { createPinia } from 'pinia'; // 导入 Pinia\nimport i18n, { initI18n } from './i18n'\nimport { version } from \"./utils/version.js\"\nconst {toClipboard} = VueClipboard()\nimport piniaPluginPersistedstate from 'pinia-plugin-persistedstate';\nimport '@/styles/vue3-json-viewer.css';\n\nconst div = document.createElement('div')\ndiv.id = 'weilin_comfyui_tools_prompt_ui_div'\nconst body=document.querySelector('body')\nbody.appendChild(div)\n\nconst pinia = createPinia();\npinia.use(piniaPluginPersistedstate);\n\nconst app = createApp(App)\napp.use(pinia)\napp.use(i18n)\n// 在 pinia 初始化后调用\ninitI18n()\napp.config.globalProperties.$copyText = toClipboard\napp.mount(div)\n\nconsole.log(\"WeiLin Prompt UI is running - version \"+version)\nconsole.log(\"WeiLin 节点插件已运行 - 版本 \"+version)"],"names":["str","map","key","val","extend","arr","el","i","hasOwnProperty","hasOwn","isArray","toTypeString","isDate","isFunction","isString","isObject","isPromise","objectToString","value","isPlainObject","fn","cache","_","c","capitalize","oldValue","fns","arg","obj","writable","n","_globalThis","getGlobalThis","res","item","normalized","cssText","ret","tmp","name","a","b","equal","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","isRef","toDisplayString","_key","entries","val2","v","_a","detached","l","currentEffectScope","fromParent","last","failSilently","prevEffect","prevShouldTrack","link","sub","isComputed","e","next","error","err","head","tail","prev","computed","dep","prevSub","soft","nextSub","prevDep","nextDep","cleanup","debugInfo","currentTail","target","type","depsMap","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","object","depMap","array","raw","args","x","thisArg","apply","separator","comparer","self","method","wrapValue","iter","result","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","acc","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","isOldValueReadonly","hadKey","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","readonly","shallow","instrumentations","rawKey","has","callback","observed","get","hadItems","rawType","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","r","rawValue","useDirectValue","ref2","objectWithRefs","_object","_defaultValue","newVal","source","defaultValue","setter","isSSR","getterOrOptions","debugOptions","getter","cleanupFn","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","msg","instance","appWarnHandler","trace","_b","vnode","warnArgs","currentVNode","normalizedStack","parentInstance","logs","entry","recurseCount","postfix","isRoot","open","close","props","keys","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","throwInProd","p","id","start","end","middle","middleJob","middleJobId","jobId","lastJob","deduped","ctx","isNonScopedSlot","renderFnWithContext","prevInstance","directives","bindings","dir","modifiers","prevVNode","oldBindings","binding","hook","select","targetSelector","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","disabled","shapeFlag","children","dynamicChildren","placeholder","mainAnchor","mount","container2","anchor2","mountToTarget","targetAnchor","wasDisabled","currentContainer","currentAnchor","nextTarget","unmount","hostRemove","doRemove","targetStart","shouldRemove","child","parentAnchor","move","moveType","isReorder","node","nextSibling","parentNode","hydrateChildren","targetNode","isDisabled","enterCbKey","state","subTree","slots","rawProps","mode","innerChild","enterHooks","hooks","oldInnerChild","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","remove","vnode2","hooks2","keepComment","parentKey","keyedFragmentCount","extraOptions","rawRef","oldRawRef","isUnmount","refValue","ref","oldRef","refs","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","wrappedHook","current","keepAliveRoot","injected","prepend","reset","lifecycle","maybeSelfReference","warnMissing","Component","selfName","registry","renderItem","cached","sourceIsArray","sourceIsReactiveArray","fallback","noSlotted","slot","validSlotContent","slotKey","rendered","vnodes","isVNode","data","accessCache","appContext","normalizedProps","publicGetter","cssModule","globalProperties","propsOptions","descriptor","publicThis","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","methodHandler","opt","set","provides","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","h","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","to","from","strats","asMixin","strat","merged","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","component","directive","rootContainer","isHydrate","lastApp","parentProvides","treatDefaultAsFactory","isStateful","attrs","rawPrevProps","patchFlag","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","comp","hasExtends","extendProps","raw2","normalizedKey","prop","propType","shouldCast","shouldCastTrue","typeName","rawSlot","rawSlots","needDeletionCheck","deletionComparisonTarget","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","setScopeId","needCallTransitionHooks","scopeId","parentVNode","oldProps","newProps","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","setupRenderEffect","updateComponentPreRender","componentUpdateFn","bu","u","parent","nonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","root","isAsyncWrapperVNode","scopedInitialVNode","update","nextVNode","prevProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","nextIndex","leave","delayLeave","afterLeave","remove2","performLeave","cacheIndex","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","path","segments","modelName","event","rawArgs","isModelListener","handlerName","onceHandler","extendEmits","normalizedFromExtend","withProxy","emit","renderCache","fallthroughAttrs","proxyToUse","thisProxy","render2","prevChildren","nextProps","nextChildren","emits","dynamicProps","emitsOptions","nextKeys","suspense","disableTracking","inVOnce","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","cloned","klass","style","extraProps","mergeRef","cloneTransition","mergedProps","text","flag","asBlock","slotFlag","toMerge","incoming","g","registerGlobalSetter","setters","setupResult","setup","setupContext","isAsyncSetup","resolvedResult","skipOptions","includeInferred","match","inferFromRegistry","propsOrChildren","tag","is","selector","content","before","template","wrapper","t","h2","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","finishLeave","makeEnterHook","resolve","cls","_vtc","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","isSVG","transitionClasses","isCssString","hasControlledDisplay","prevStyle","cssVarText","prefixed","rawName","isBoolean","attrName","needRemove","prevValue","nextValue","invokers","existingInvoker","invoker","initialValue","originalStop","camelize$1","moveClass","movedChildren","cssTransitionProps","oldPos","newPos","dx","dy","clone","lazy","trim","number","castToNumber","domValue","elValue","modelValue","elementValue","checked","assign","found","filtered","isSetModel","selectedVal","o","_binding","isMultiple","isArrayValue","option","optionValue","optionType","tagName","cacheKey","guard","eventKey","k","containerOrSelector","shareable","locale","json","isNumber","isRegExp","rawText","items","src","des","stack","line","column","offset","code","loc","domain","messages","_buf","_index","_line","_column","_peekOffset","isCRLF","isLF","isPS","isLS","isLineEnd","peekOffset","charAt","currentChar","currentPeek","peek","resetPeek","skipToPeek","location","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","onError","emitError","pos","getToken","token","getEndToken","eat","scnr","ch","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","isNumberStart","isNamedIdentifierStart","currentType","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","isTextStart","isPluralStart","hasSpace","takeChar","isIdentifier","takeIdentifierChar","isNamedIdentifier","takeNamedIdentifierChar","isDigit","takeDigit","isHexDigit","takeHexDigit","getDigits","num","readText","readNamedIdentifier","readListIdentifier","isLiteral","readLiteral","literal","readEscapeSequence","readUnicodeEscapeSequence","unicode","digits","sequence","isInvalidIdentifier","readInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","startLoc","endLoc","codePoint4","codePoint6","codePoint","tokenzer","startNode","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinkedModifier","parseLinkedKey","parseLinked","linkedNode","parsed","nextContext","emptyLinkedKeyNode","parseMessage","startOffset","endOffset","parsePlural","msgNode","hasEmptyMessage","parseResource","parse","ast","nodes","transformer","body","message","resource","cases","valueNode","linked","list","named","filename","breakLineCode","_needIndent","push","_newline","withBreakLine","_breakLineCode","indent","withNewLine","level","deindent","newline","generator","helper","needIndent","length","helpers","baseCompile","assignedOptions","jit","enalbeMinify","enambeOptimize","initFeatureFlags","static_","acm","modifier","detectError","i18n","meta","payloads","startLocale","chain","block","defaults","blocks","follow","tokens","exp","trimmed","subPathDepth","newChar","action","typeMap","actions","maybeUnescapeQuote","nextChar","hit","VERSION","compiler","resolver","fallbacker","onWarn","_locale","fallbackLocale","datetimeFormats","numberFormats","pluralRules","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","processor","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","internalOptions","__datetimeFormatters","__numberFormatters","__meta","compareLocale","targetLocale","locales","overrides","part","datetimeFormat","format","formatter","arg1","arg2","arg3","arg4","matches","dateTime","numberFormat","choice","choicesLength","pluralIndex","pluralRule","orgPluralRule","_list","_named","useLinked","_modifier","normalize","interpolate","translate","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","formatScope","cacheBaseKey","occurred","ctxOptions","msgContext","messaged","resolveValue","missingRet","msgCtx","subKeys","lastIndex","currentObj","hasStringValue","__i18n","flatJson","custom","gl","componentOptions","__root","__injectWithOption","_isGlobal","_ref","_inheritLocale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","trackReactivityValues","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","rt","translateVNode","numberParts","datetimeParts","setPluralRules","rules","te","getLocaleMessage","resolveMessages","targetLocaleMessages","messageValue","tm","setLocaleMessage","_message","mergeLocaleMessage","getDateTimeFormat","setDateTimeFormat","mergeDateTimeFormat","getNumberFormat","setNumberFormat","mergeNumberFormat","composer","fallbackRoot","pluralizationRules","inheritLocale","sharedMessages","__extender","vueI18n","vuei18n","optionsI18n","_vueI18n","assignedAttrs","slotKeys","partFormatter","parts","i18nInternal","_process","parsedValue","textContent","pluginOptions","__legacyMode","__globalInjection","__instances","globalScope","__global","symbol","__getInstance","__setInstance","__deleteInstance","opts","globalReleaseHandler","unmountApp","composerOptions","legacyMode","useComponent","_composer","dispose","desc","__props","__emit","currentSize","newPosition","newSize","handleScroll","viewportWidth","viewportHeight","minLeftSpace","y","isDragging","dragOffset","startDrag","handleDrag","stopDrag","newX","newY","isResizing","resizeStartPos","resizeStartSize","startResize","handleResize","stopResize","deltaX","deltaY","setActive","handleHeaderMouseDown","pinia","MutationType","_p","toBeInstalled","noop","subscriptions","onCleanup","removeSubscription","idx","patchToApply","subPatch","targetValue","hot","getters","initialState","store","localState","computedGetters","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","wrappedAction","afterCallbackList","onErrorCallbackList","after","partialStore","stopWatcher","setupStore","actionValue","extender","setupOptions","isSetupStore","useStore","hasContext","categories","userSetting","isFirstLoading","newCategories","newUserSetting","newData","thing","prototype","kind","allOwnKeys","merge","caseless","assignValue","targetKey","constructor","superConstructor","descriptors","sourceObj","destObj","filter","propFilter","searchString","position","toArray","TypedArray","iterator","pair","regExp","p1","p2","reducer","reducedDescriptors","arrayOrString","delimiter","define","visit","reducedValue","setImmediateSupported","postMessageSupported","callbacks","AxiosError","config","request","response","utils","customProps","axiosError","dots","toFormData","formData","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","params","encoder","_encode","url","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","URLSearchParams","FormData","Blob","platform","buildPath","isNumericKey","isLast","parser","headers","contentType","hasJSONContentType","isObjectPayload","isFileList","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","rawHeaders","header","tokensRE","isHeaderNameFilter","w","char","accessorName","methodName","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","targets","asStrings","first","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","isCancel","CanceledError","reject","validateStatus","samplesCount","min","bytes","timestamps","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","freq","timestamp","threshold","lastArgs","timer","invoke","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","throttled","lengthComputable","origin","isMSIE","expires","secure","cookie","baseURL","relativeURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","xsrfValue","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","cancel","protocol","signals","controller","aborted","onabort","reason","unsubscribe","signal","chunk","chunkSize","iterable","stream","reader","onProgress","onFinish","_onFinish","loadedBytes","duplexAccessed","hasContentType","cancelToken","withCredentials","fetchOptions","composedSignal","requestContentLength","_request","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","validators","validator","formatMessage","correctSpelling","schema","allowUnknown","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","spread","isAxiosError","payload","HttpStatusCode","defaultConfig","promises","tagStore","savedLocale","_sfc_main","visible","_hoisted_1","_createElementBlock","_normalizeStyle","$setup","$props","_createElementVNode","_normalizeClass","_toDisplayString","div","translatedMessage","selectorRef","currentLang","languages","switchLanguage","setLanguage","lang","__expose","buttonRect","prefix","handleOverlayClick","ss","str_object","limit","selectedTranslatorService","sourceLanguage","targetLanguage","testTranslaterOutputText","testTranslaterInputText","aiServerSettingData","aiModelsData","updateAiServerSettingFunc","getAiServerSettingFunc","getAiModelsFunc","getTranskateBuktSetting","saveTranslaterSetting","translaterTextTest","needTranslateData","jsonString","jsonData","dialogVisible","selectedSetting","selectedTranslator","translationText","savedSourceLanguage","savedTargetLanguage","savedFloatingBallCount","savedFloatingBallSize","savedFloatingBallHeight","isFloatingBallEnabled","ballSkinType","customSkinUrl","bgType","gradientColor1","gradientColor2","ballBorderRadius","isCommaConversionEnabled","isPeriodConversionEnabled","isBracketConversionEnabled","isAngleBracketConversionEnabled","isUnderscoreToBracketEnabled","isCommaCloseAutocompleteEnabled","isBracketEscapeEnabled","selectedOpenaiIndex","openaiSettings","showOpenaiForm","currentConfig","isEditing","editingIndex","settingTranslater","installTranslater","hasTranslaterPackage","saveAutoCompleteLimit","saveAutoCompleteWidth","saveAutoCompleteHeight","selectSetting","setting","getAutoCompleteSetting","saveTranslatorSettings","handleSkinUpload","file","resetGradientColors","saveFloatingBallSettings","savePromptBoxSettings","loadOpenaiSettings","addOpenaiConfig","deleteOpenaiConfig","toggleEditForm","saveOpenaiConfig","addOpenaiNewConfig","cancelOpenaiConfig","setOpenAiSelect","sponsorMe","startPanel","getTranskatePackagesState","getTranskateSetting","applyTranslaterSetting","installCheckInterval","installTranslaterPackage","saveAutoCompleteSetting","STORAGE_PREFIX","THEME_KEY","isDark","toggleTheme","p_uuid","g_uuid","keyword","unixTsMs","randA","randBHi","randBLo","uuid","_c","_d","hex","inner","other","diff","randomNumberGenerator","rollbackAllowance","selectedCategory","selectedGroup","selectedTags","isDeleteTagAction","getTagsList","refreshTagsGoThis","group","category","getContrastColor","backgroundColor","handleMessage","selectCategory","selectGroup","selectSureThis","subject","sourceKeys","string","count","cycle","exception","compact","where","mark","buffer","lineStart","lineEnd","maxLineLength","maxHalfLength","max","re","lineStarts","lineEnds","foundLineNo","lineNoLength","alias","previousType","previousIndex","collectType","definition","implicit","explicit","type$1","hasDigits","sign","year","month","day","hour","minute","second","fraction","delta","tz_hour","tz_minute","date","bitlen","tailbits","input","bits","objectKeys","pairKey","pairHasKey","lc","major","minor","handle","checkJson","_position","_length","_character","_result","destination","overridableKeys","quantity","keyTag","keyNode","startLine","startLineStart","startPos","allowComments","checkIndent","lineBreaks","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_lineStart","_lineIndent","_kind","hexLength","hexResult","readNext","_pos","_tag","_anchor","terminator","isExplicitPair","isMapping","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","detected","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","isVerbatim","isNamed","tagHandle","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","documentStart","directiveName","directiveArgs","hasDirectives","nullpos","documents","character","spaces","ind","inblock","cIsNsCharOrWhitespace","cIsNsChar","leadingSpaceRe","singleLineOnly","indentPerLevel","lineWidth","testAmbiguousType","quotingType","forceQuotes","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","iskey","testAmbiguity","indentIndicator","clip","keep","chomp","width","lineRe","nextLF","prevMoreIndented","moreIndented","breakRe","curr","escapeSeq","objectKeyList","objectKey","objectValue","pairBuffer","explicitPair","isblockseq","tagStr","objectOrArray","duplicateIndex","duplicate","objects","duplicatesIndexes","chinese","sql","groupSql","subGroupSql","groupName","subGroupName","mainClassUUID","subGroupUUID","tagGroups","editText","editDesc","fileInput","jsonFileInput","txtFileInput","isSelectGroup","outPutName","yamlFileInput","triggerYAMLUpload","cleanAll","handleTXTUpload","lines","escapedText","escapedDesc","time","handleJSONUpload","handleYAMLUpload","yamlData","yaml","handleFileUpload","statement","lastValue","nameMatch","triggerTXTUpload","triggerJSONUpload","triggerFileUpload","exportSQL","sqlContent","blob","exportOnlyTagSQL","parseSQL","textMatch","descMatch","deleteTag","startEdit","confirmEdit","cancelEdit","generateSQL","escapedTag","escapedChinese","generateGroupSQL","escapedGroupName","generateSubGroupSQL","escapedSubGroupName","tagGroupSelectDialogItem","openSelectGroup","sureToSelectInfo","info","loading","runSQLToServer","sureToImportTags","oldVal","newPUuid","oldPUuid","newGUuid","oldGUuid","subCategories","currentTags","showCategoryDialog","showTagDialog","isEditingCategory","isEditingTag","categoryType","isSelectTagAction","showMoveGroupDialog","hoverTabsActionFrist","hoverTabsActionSecond","editGroupTabs","editGroupCategroy","highlightedTagId","isAutoAddSearchTag","showMoveDialog","moveTargetTagId","movePosition","currentMoveTagId","moveGroupPosition","currentMoveGroupId","moveTargetGroupId","isShareTagAction","showTabSizeConfig","tabSizeConfig","defaultTabSizeConfig","currentCategory","currentGroup","currentTag","rgbaToColorPickerState","rgba","alpha","getSubCategories","getTagList","updateSearchResultsStyle","handleClickOutside","handleKeydown","loadTabSizeConfig","showAddCategoryDialog","colorPickerState","editCategory","editGroup","saveCategory","closeCategoryDialog","getCategoryDialogTitle","showAddTagDialog","editTag","saveTag","closeTagDialog","previewColor","hexToRgba","updateColor","color","searchQuery","searchResults","isSearching","handleSearch","query","navigateToResult","primaryCategory","cat","tagElement","handleTagClick","showDeleteDialog","deleteType","itemToDelete","deleteConfirmMessage","deleteCategory","deleteGroup","confirmDelete","closeDeleteDialog","shareCategory","groupData","tagSqls","tagSql","shareCategorySecond","openMoveDialog","confirmMove","availableGroup","actionMoveGroup","openMoveGroupDialog","confirmMoveGroup","deleteTagAction","cancelDeleteAction","deleteSelectedTags","shareTagAction","cancelShareAction","shareSelectedTags","yamlContent","refreshTags","searchInput","searchResultsStyle","rect","showTabActions","hideTabActions","showTabActionsGroup","hideTabActionsGroup","importTagDialogItem","showImportDialog","defaultTabData","saved","saveTabSizeConfig","showTabSizeDialog","closeTabSizeDialog","resetTabSizeConfig","windowName","image","fileName","range","search","islink","domItem","isInteger","_this","ordered","_this2","evt","elements","vals","timeformat","dataType","complex","getDefaultExportFromCjs","clipboard","module","exports","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","ClipboardActionCut","selectedText","actions_cut","createFakeElement","isRTL","fakeElement","yPosition","fakeCopyAction","ClipboardActionCopy","actions_copy","_typeof","ClipboardActionDefault","_options$action","actions_default","clipboard_typeof","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_assertThisInitialized","getAttributeValue","suffix","element","attribute","Clipboard","_Emitter","_super","trigger","support","DOCUMENT_NODE_TYPE","proto","closest","__unused_webpack_exports","_delegate","useCapture","listenerFn","delegate","listenNode","listenNodeList","listenSelector","nodeList","isReadOnly","selection","E","evtArr","evts","liveEvents","__webpack_module_cache__","moduleId","func","wait","startTime","_len","_this$copyable","copyText","copiedText","align","clipBoard","keyName","copyEvent","_this3","_ctx","_cache","$data","$options","_component_json_box","createElementVNode","loraInfo","isOpen","DEFAULT_WINDOWS","windows","savedState","parsedState","mergedState","closeWindow","updatePosition","updateSize","loraRawData","loraContent","userEditFields","loraData","init","fileURL","loraRawRef","openLoraRaw","editValues","selectedWords","editableFields","addField","newKey","saveEdit","removeField","deleteInfo","_j","_k","_u","_v","_w","_x","extractFileNameFromUrl","saveLoraImg","civitaiLink","isCivitaiNotFound","trainedWords","refreshLoraInfo","scrollPosition","toggleEdit","field","fieldKey","saveInfo","param","toggleWordSelection","word","isWordSelected","copySelectedWords","isCollapsed","toggleCollapse","handleCardLeave","handleCardEnter","copyToClipboard","showCard","hoveFileName","paddingLeftValue","paddingTopValue","loraStackItemRef","isEnterCatd","isHovering","loraCardItem","handleMouseHover","cardRect","handleMouseLeave","handEnterCard","handleEnterLeave","openLoraManager","toggleHideLora","lora","addLora","removeLora","loraDetailLoraStackRef","lookOnLora","dragIndex","handleDragStart","handleDrop","internalSelectedId","sortTimeDesc","sortNameAsc","sortMode","draggingId","dragOverId","save","load","loadedItems","settings","genId","getById","q","sortedList","ao","bo","cmpName","na","nb","cmp","cmpTime","groupWeight","gw","selectItem","createNew","ensureManualOrderSeed","minOrder","renameSelected","deleteSelected","toggleTimeSort","toggleNameSort","togglePin","toggleHighlight","updateSelectedContent","newContent","updateTimer","formatTime","ts","it","onDragStart","ev","onDragEnter","onDrop","targetItem","fromId","toId","onDragEnd","language","languageList","onchange","selectLanguage","langs_indexof","findBody","body_trans","selectId","cookieString","strCookie","arrCookie","cookieValue","languageName","v1","googtrans","fanDomain","isReload","iframes","iframeWindow","ele","maxnumber","nodename","classNames","c_index","properties","line_index","kvs","originalText","translateText","beforeChar","afterChar","hash","panel","button","textdiv","doms","expireTime","nodeid","currentTime","mutationsList","observer","mutation","addNodes","isFind","di","translateNodes","find","ini","docs","docs_index","doc","renderTask","resultText","nodeAnaly","tasks","task","node_index","task_index","ipnode","nodeindex","analyse","intervalId","to_storage","all","translateTextArray","translateHashArray","twoScanNodes","cacheScanNodes","originalWord","cacheHash","translateResultText","twoScanIndex","twoScanIndex_cache","arrayIndex","arrayIndex_cache","firstScan","firstScan_lang_langth","ci","ai","textArray","tai","twoScan","twoScan_lang_langth","ti","twoHash","fanyiLangs","hai","thhash","ipni","lang_index","xhr","htmlAttributeValue","parentNodename","input_value_node","nodeAttributeName","nodeAttributePropertyOri","nodeAttributeProperty","nodeNameLowerCase","attributeName_index","attributeName","attributeValue","childNodes","parentNodeName","nomenclatureKeyArray","nomenclatureKey","nomenclatureValue","deleteTextArray","wordKeyIndex","substringStart","substringEnd","nomenclatureValueJudgement","wordSplits","subWord","textRecognition","langs","isWhole","word_index","beforeText","afterText","isEquals","nodesIndex","paramName","paramValue","bodyText","recognition","langStrs","upLangs","upLangsTwo","charstr","langsNumber","langsNumberOriginal","allNumber","langStrLength","ls","langkeys","romanceSentenceLanguage","maxLang","maxNumber","languageArray","localLang","chinesetype","langFeatures","pairs","maxScore","browserDefaultLanguage","reg","numbers","maxStr","maxNum","chr","xmlHttp","myBody","myScript","sortedObj","versionString","vs","size","maxSize","orgsize","arrayStr","str1","str2","endIndex","startNeedAdd","firstArray","secondArray","tmpl","tLang","serviceName","abnormalFunc","transUrl","currentIndex","cri","addbeforei","beforeItemArrayLength","bi","addafteri","afterItemArrayLength","storage_hostQueue","lasttime","updateTime","host","hostUrl","storage_index","queue","queueIndex","currentHost","isAsynchronize","showErrorLog","texts","translateExecute","ignoreUrl","queueArray","imgs","img","imgSrc","oldImage","newImage","elems","elem","bg","old_img","currentLanguage","currentShow","curSelection","curTooltipEle","tooltipEle","hosts","tip","nodeParent","parentClassName","currentKey","childs","allChilds","this","ids","isRefreshing","isLoading","isLoadingMore","hasLoadedAll","currentSubCategory","scrollContainer","loraCardRef","showHoverInfo","clickAddTag","currentPage","pageSize","totalPages","rootFolder","selectFolder","valuesArray","cardWidth","folderList","seed","actionAct","openSetSeed","newSeed","getFolderList","loadMoreData","isSearch","searchTimeout","debouncedSearch","searchLoraList","refreshList","retLoraName","loraDetailRef","openLoraDetail","selectLora","addLoraTag","startIndex","pageData","getRangeLoraList","paginatedLoraList","selectSecondCategory","subCategory","getAllLoraList","getAllLoraStatus","resetLoadingState","_e","_f","_g","_h","_i","selectGroupsData","selectActionIndex","primaryCategories","getPrimaryIndex","getSubIndex","isGroupDisabled","selectCategoryOnly","existingIndex","selectGroupWithCategory","categoryOnlyIndex","removeSelected","clearAllSelected","tagGroupSelectItem","loadingFinish","promptMode","nodeLocalTemplateId","DEFAULT_SETTINGS","loadSettings","resData","selectedTemplate","saveSettings","templateData","rule","addRule","deleteRule","addTag","removeTag","tagIndex","generateRandomTags","loadTemplates","getNodeTagTemplateIdAndReGet","selectTagGroup","getRandomTags","sureSelectThis","templates","newTemplateName","showTemplateNameInput","isEditingTemplate","loadSetting","saveAsNewTemplate","cancelSaveTemplate","applyTemplate","deleteTemplate","editTemplateName","confirmSaveTemplate","changeSelectTemplate","__","randomSettingItem","autocompleteContainerRef","inputAreaRef","autocompletePosition","tokenCount","parentCneterBox","inputText","tokenInputRefs","activeControls","isOverControls","controlsPosition","showLanguageSelector","settingDialog","langBtnRef","languageSwitcherRef","selectedLoras","loraOpen","showAutocomplete","autocompleteResults","selectedAutocompleteIndex","selectedItemRef","isSelecting","selectionStart","selectionEnd","selectedTokens","tokensContainerRef","isBoxSelectMode","isPotentialBoxSelection","showSelectionActions","selectionActionsPosition","isUpdatingSelectionBox","isUpdatingSelectedTokens","lastUpdateTime","showTagTipsBox","tagTipsPosition","debounceTimeout","proceTimeout","lastInputValue","tokenIdCounter","isLabelManagerVisible","toggleLabelManager","generateUniqueId","toggleLora","closeLora","mainLabelManagerRef","selectedMainLabelId","unsavedChanges","LAST_LABEL_KEY","mainContentWidth","labelManagerWidth","suppressUnsavedOnce","onSelectMainLabel","handleInput","restoreLastSelectedMainLabel","lastId","saveLast","updateSelectedLabel","showUpdatedToast","toastVisible","toastTimer","openSettings","weightValue","applyWeight","isBracketComplete","hasOnlySingleParentheses","newText","hasTrailingWeight","weightedFormatMatch","underscoreBracketMatch","bracketContent","updateInputText","loraModelWeight","loraTextWeight","applyLoraWeights","wrapWith","bracketType","bracketPair","finishPromptPutItHistory","removeLayer","bracketMap","isTextTranslatable","extractText","debounceTimer","calculateAutocompletePosition","textarea","cursorPos","mirror","textNode","cursorNode","cursorRect","parentRect","top","left","autocompleteWidth","textareaWidth","textareaLeft","historyTimer","originalValue","cursorPosition","cursorEnd","formatConversions","beforeCursor","processedValue","conversion","pattern","replace","newCursorPosition","selectionDiff","newCursorEnd","textBeforeCursor","lastChar","currentCursorPos","wordStart","currentWord","triggerAutocomplete","postMessageToWindowsPrompt","calculateTokens","processInput","hiddenTokensWithOriginalIndex","originalIndex","bracketStack","existingTokensMap","segment","trimmedSegment","isLoraTag","matched","processedHiddenTokenIds","insertIndex","prevNonHiddenIndex","findPrevNonHiddenIndex","nextNonHiddenIndex","isLastToken","shouldAddComma","batchSize","cleanedTrSegment","oneClickTranslatePrompt","textToTranslate","tokenIndex","tempInputText","trimmedInput","tempLora","putJson","jsonStr","showControls","hideTimeout","findInnerWeight","bracketPairs","weightMatch","hideControls","handleControlsLeave","handleDelete","deleteToken","handelLineToken","targetToken","tokenPos","replacement","handleTokenEdit","oldText","startEditing","adjustInputWidth","span","computedStyle","finishEditing","newTokens","newLoras","toggleLanguageSelector","btnRect","closeLanguageSelector","openTagManager","openHistoryBox","showTagManager","toggleTagManager","showLoraManager","toggleLoraManager","setupCursorTracking","updateAutocompletePosition","saveTextareaHeight","height","restoreTextareaHeight","savedHeight","initTranslate","handleMouseDown","handleMouseMove","handleMouseUp","removeSelectionBox","tokenItem","tokensContainer","closeSelectionActions","containerRect","createSelectionBox","minSize","updateSelectionBox","updateSelectedTokens","selectedCount","showSelectionActionsMenu","selectionBox","effectiveWidth","effectiveHeight","right","bottom","box","applySelectedStyle","tokenBoxes","toSelect","toDeselect","closeSelectionActionsOnClickOutside","copySelectedTokens","combinedText","tempMessage","disableSelectedTokens","enableSelectedTokens","deleteSelectedTokens","bulkDeleteSelectedTokens","clearSelectedTokens","actionsMenu","handleClickToClearSelection","currentText","tagText","setPromptText","onClickLocalTemplateRandomTag","translateFunction","translatedText","finishTranslateEnter","onBlur","inputValue","lowerInput","scrollToSelectedItem","selectAutocomplete","closeAutocomplete","selectedItem","selectedRect","isAbove","isBelow","adjustedAutocompletePosition","parentWidth","replaceStart","replaceEnd","separatorAdded","tempDataJson","isOldVersion","dragStartIndex","draggedTokens","dragUpdateTimer","dragTempState","initializeDragState","useMultipleSelection","calculateInsertPosition","originalTokens","draggedIndexes","targetIndex","elementsBeforeIndex","validRange","performDragUpdate","draggedElements","newSelectedTokens","dragged","handleDragOver","openAIChat","openGitHub","shareCloudData","openDanbooruManager","openSponsor","toggleHidden","openBilibili","oneClickRandomTag","favourItemRef","openFavourTag","tokenInfo","openRandomTagSettings","history","filteredHistory","favorites","filteredFavorites","currentTab","isDeleteBatch","selectAllTags","retPromptInfo","strJson","parseRgba","initColorPicker","deleteHistory","deleteFavorite","favorite","sureDelete","sureDeleteFavorite","fetchHistory","fetchFavorites","selectAllTagsChange","filterHistory","filterFavorites","refreshHistory","refreshFavorites","addToFavorites","useItem","bulkDelete","cancelDelete","htmlContent","imageData","processImageFile","handlePaste","originalData","encryptedData","generateHtml","downloadHtml","clearContent","handleClick","handleFileChange","ballPosition","showMenu","ballStyle","computedBallStyle","newStyle","ballSize","ballHeight","spacing","ballsPerRow","row","onDrag","handleMenuItemClick","openTranToWebDialog","tranToWebRef","handleMouseEnter","chatHistory","currentChatIndex","inputMessage","openAiSetting","isRenaming","renameInput","startRename","confirmRename","saveChatHistory","cancelRename","getOpenAiSetting","currentChat","switchChat","startNewChat","newChat","loadChatHistory","savedHistory","sendMessage","userMessage","assistantMessage","streamResponse","lastMessage","deleteChat","onMessage","onComplete","decoder","nodeLists","openPromptUI","paths","fileList","currentPath","mainPath","installedPackages","getTree","getInstalledPackages","isPackageInstalled","pkg","installPackage","goBack","pathParts","refreshTree","openDirectory","openTagDatabase","openDanbooruDatabase","initLoraStack","updateLoraStackInfoToWindows","page","danbooruTxtFileInput","aliases","handleDanbooruTXTUpload","escapedTranslate","triggerDanbooruTXTUpload","isDanbooruFormat","parseDanbooruSQL","editHot","editAliases","generateDanbooruSQL","hotValue","aliasesValue","tagList","showDialog","showDeleteConfirm","showBatchDeleteConfirm","selectedTag","colorOptions","getColorById","searchTags","selectedItems","changePage","changePageSize","openAddDialog","openEditDialog","closeDialog","submitForm","isAllSelected","toggleSelectAll","confirmBatchDelete","batchDeleteTags","importDanbooruDialog","openImportDialog","thisEditPromptId","loraManager","tagManager","promptManager","hasPromptLoraStack","globalPrompt","showVersionUpdate","versionUpdateMessage","versionUpdateTimer","VERSION_UPDATE_REMIND_KEY","closeVersionUpdate","goToGitHub","noRemindUpdate","getInitialWindowState","initTheme","checkForUpdates","savedTheme","restoreWindowsToDefault","LORA_DETAIL_WINDOWS","DEFAULT_GOL_WINDOWS","promptBoxRef","loraStackRef","loraManagerRef","danbooruManagerRef","versionMatch","remoteVersion","localVersion","fakeEl","_lval","storage","serializer","debug","pick","omit","beforeHydrate","afterHydrate","runHooks","fromStorage","deserialized","picked","omitted","toStorage","optionsParser","auto","persist","originalStore","persistences","_mutation","piniaPluginPersistedstate"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,80,82,87,93,99,114,115,116,117,118]} \ No newline at end of file +{"version":3,"file":"main.entry.js","sources":["../../weilin-comfyui-tools/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../weilin-comfyui-tools/node_modules/@intlify/shared/dist/shared.mjs","../../weilin-comfyui-tools/node_modules/@intlify/message-compiler/dist/message-compiler.mjs","../../weilin-comfyui-tools/node_modules/@intlify/core-base/dist/core-base.mjs","../../weilin-comfyui-tools/node_modules/vue-i18n/dist/vue-i18n.mjs","../../weilin-comfyui-tools/src/components/DraggableWindow.vue","../../weilin-comfyui-tools/src/utils/version.js","../../weilin-comfyui-tools/src/i18n/locales/zh_CN.js","../../weilin-comfyui-tools/src/i18n/locales/en_US.js","../../weilin-comfyui-tools/node_modules/pinia/dist/pinia.mjs","../../weilin-comfyui-tools/src/stores/tagStore.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/bind.js","../../weilin-comfyui-tools/node_modules/axios/lib/utils.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/AxiosError.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/null.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/toFormData.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/buildURL.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/InterceptorManager.js","../../weilin-comfyui-tools/node_modules/axios/lib/defaults/transitional.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/classes/FormData.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/classes/Blob.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/browser/index.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/common/utils.js","../../weilin-comfyui-tools/node_modules/axios/lib/platform/index.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/formDataToJSON.js","../../weilin-comfyui-tools/node_modules/axios/lib/defaults/index.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/parseHeaders.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/AxiosHeaders.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/transformData.js","../../weilin-comfyui-tools/node_modules/axios/lib/cancel/isCancel.js","../../weilin-comfyui-tools/node_modules/axios/lib/cancel/CanceledError.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/settle.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/parseProtocol.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/speedometer.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/throttle.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/progressEventReducer.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/cookies.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/combineURLs.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/buildFullPath.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/mergeConfig.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/resolveConfig.js","../../weilin-comfyui-tools/node_modules/axios/lib/adapters/xhr.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/composeSignals.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/trackStream.js","../../weilin-comfyui-tools/node_modules/axios/lib/adapters/fetch.js","../../weilin-comfyui-tools/node_modules/axios/lib/adapters/adapters.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/dispatchRequest.js","../../weilin-comfyui-tools/node_modules/axios/lib/env/data.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/validator.js","../../weilin-comfyui-tools/node_modules/axios/lib/core/Axios.js","../../weilin-comfyui-tools/node_modules/axios/lib/cancel/CancelToken.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/spread.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/isAxiosError.js","../../weilin-comfyui-tools/node_modules/axios/lib/helpers/HttpStatusCode.js","../../weilin-comfyui-tools/node_modules/axios/lib/axios.js","../../weilin-comfyui-tools/node_modules/axios/index.js","../../weilin-comfyui-tools/src/api/request.js","../../weilin-comfyui-tools/src/api/language.js","../../weilin-comfyui-tools/src/i18n/index.js","../../weilin-comfyui-tools/src/utils/message.vue","../../weilin-comfyui-tools/src/utils/message.js","../../weilin-comfyui-tools/src/components/LanguageSwitcher.vue","../../weilin-comfyui-tools/src/components/Dialog.vue","../../weilin-comfyui-tools/src/api/translator.js","../../weilin-comfyui-tools/src/api/autocomplete.js","../../weilin-comfyui-tools/src/api/openai.js","../../weilin-comfyui-tools/src/view/prompt_box/components/translater.ts","../../weilin-comfyui-tools/src/api/ai_server.js","../../weilin-comfyui-tools/src/view/prompt_box/components/setting_dilaog_components/ai_server_setting.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/setting_dialog.vue","../../weilin-comfyui-tools/src/components/ThemeSwitch.vue","../../weilin-comfyui-tools/src/api/tags.js","../../weilin-comfyui-tools/node_modules/uuidv7/dist/index.js","../../weilin-comfyui-tools/src/view/tag_manager/tag_group_select.vue","../../weilin-comfyui-tools/node_modules/js-yaml/dist/js-yaml.mjs","../../weilin-comfyui-tools/src/view/tag_manager/import_tag.vue","../../weilin-comfyui-tools/src/view/tag_manager/tag_index.vue","../../weilin-comfyui-tools/src/utils/windowManager.js","../../weilin-comfyui-tools/src/api/lora.js","../../weilin-comfyui-tools/node_modules/vue3-json-viewer/dist/bundle.esm.js","../../weilin-comfyui-tools/src/view/lora_manager/lora_raw.vue","../../weilin-comfyui-tools/src/view/lora_manager/lora_detail.vue","../../weilin-comfyui-tools/src/view/lora_manager/lora_card.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/lora_stack.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/main_label_manager.vue","../../weilin-comfyui-tools/node_modules/i18n-jsautotranslate/index.js","../../weilin-comfyui-tools/src/api/history.js","../../weilin-comfyui-tools/src/view/lora_manager/lora_index.vue","../../weilin-comfyui-tools/src/view/prompt_box/components/tag_group_select.vue","../../weilin-comfyui-tools/src/api/random_tag.js","../../weilin-comfyui-tools/src/view/prompt_box/components/random_setting.vue","../../weilin-comfyui-tools/node_modules/pako/dist/pako.esm.mjs","../../weilin-comfyui-tools/src/view/prompt_box/components/favour.vue","../../weilin-comfyui-tools/src/view/prompt_box/prompt_index.vue","../../weilin-comfyui-tools/src/view/history_manager/history_index.vue","../../weilin-comfyui-tools/src/components/tranToWeb.vue","../../weilin-comfyui-tools/src/components/FloatingBall.vue","../../weilin-comfyui-tools/src/view/ai_window/ai_window.vue","../../weilin-comfyui-tools/src/view/node_list/index.vue","../../weilin-comfyui-tools/src/api/cloud.js","../../weilin-comfyui-tools/src/view/cloud/index.vue","../../weilin-comfyui-tools/src/view/lora_manager/lora_stack.vue","../../weilin-comfyui-tools/src/api/danbooru.js","../../weilin-comfyui-tools/src/view/danbooru/import_danbooru.vue","../../weilin-comfyui-tools/src/view/danbooru/danbooru_manager.vue","../../weilin-comfyui-tools/src/App.vue","../../weilin-comfyui-tools/node_modules/clipboard/dist/clipboard.js","../../weilin-comfyui-tools/node_modules/vue-clipboard3/dist/esm/index.js","../../weilin-comfyui-tools/node_modules/destr/dist/index.mjs","../../weilin-comfyui-tools/node_modules/deep-pick-omit/dist/index.mjs","../../weilin-comfyui-tools/node_modules/pinia-plugin-persistedstate/dist/index.js","../../weilin-comfyui-tools/src/main.js"],"sourcesContent":["/**\n* @vue/shared v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, toRawType, capitalize, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isSymbol, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= ~1;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(() => {\n mountToTarget();\n n2.el.__isMounted = true;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n delete n1.el.__isMounted;\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const disabled = isTeleportDisabled(vnode.props);\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= ~256;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n","export const version = \"v0.0.67\";","import { version } from \"../../utils/version.js\"\r\nexport default {\r\n promptBox: {\r\n placeholder: '请输入文本...',\r\n delete: '删除',\r\n newline: '换行',\r\n tab: '制表符',\r\n windowTitle: \"WeiLin提示词UI窗口 \" + version,\r\n windowTitleGlobal: \"WeiLin全局提示词UI窗口 \" + version,\r\n translate: '翻译',\r\n translatePlaceholder: '请输入要翻译的文本,回车即可',\r\n weight: '权重',\r\n weightPlaceholder: '请输入权重',\r\n addBracket: '添加括号',\r\n removeLayer: '减去括号',\r\n\r\n hiddenHint: \"双击显示提示词\",\r\n tagTips: \"鼠标左键双击屏蔽Tag
鼠标左键单击Tag可以编辑
鼠标左键拖动可以拖动Tag\",\r\n oneClickRandomTag: '一键随机Tag',\r\n randomTagSettings: '设置随机Tag规则',\r\n oneClickTranslate: \"一键翻译Tag\",\r\n modelWeight: \"模型权重\",\r\n textWeight: \"文本权重\",\r\n favour: \"收藏\",\r\n lineToken: \"换行\",\r\n addLineToken: \"添加换行符\",\r\n settings: {\r\n title: '设置',\r\n cancel: '取消',\r\n save: '保存',\r\n translator: '翻译设置',\r\n sourceLanguage: '源语言',\r\n targetLanguage: '目标语言',\r\n chinese_simplified: '简体中文',\r\n english: '英语',\r\n close: '关闭',\r\n auto_detect: '自动检测',\r\n setting_floating_ball: '悬浮球设置',\r\n setting_prompt_box: '提示词设置',\r\n enablePromptCommaShow: '显示提示词逗号',\r\n floatingBallCount: '悬浮球数量',\r\n floatingBallCountPlaceholder: '请输入悬浮球数量',\r\n floatingBallSize: '悬浮球宽度',\r\n floatingBallSizePlaceholder: '请输入悬浮球宽度',\r\n floatingBallHeight: '悬浮球高度',\r\n floatingBallHeightPlaceholder: '请输入悬浮球高度',\r\n enableFloatingBall: '启用悬浮球',\r\n enableCommaConversion: '启用逗号转换,全角逗号转为半角逗号',\r\n enablePeriodConversion: '启用句号转换,全角句号转为半角句号',\r\n enableBracketConversion: '启用括号转换,全角括号转为半角括号',\r\n enableAngleBracketConversion: '启用尖括号转换,全角尖括号转为半角尖括号',\r\n enableUnderscoreToBracket: '启用下划线转换,下划线转换为空格',\r\n enableBracketEscape: '启用括号转义,自动添加\\\\转义括号',\r\n enableCommaCloseAutocomplete: '启动逗号关闭补全,输入逗号立即关闭补全列表',\r\n setting_openai_box: 'OpenAI设置',\r\n openai_api_key: 'API Key',\r\n openai_api_key_placeholder: '请输入API Key',\r\n openai_api_key_save: '保存',\r\n openaiSettings: 'OpenAI设置',\r\n openai_base_url: 'Base URL',\r\n openai_base_url_placeholder: '请输入Base URL',\r\n openai_model: '模型',\r\n openai_model_placeholder: '请输入模型',\r\n not_set: '未设置',\r\n edit: '编辑',\r\n delete: '删除',\r\n selectedOpenaiConfig: '当前选择的OpenAI配置',\r\n addNewConfig: '添加OpenAI配置',\r\n setting_sponsor_me: '赞助我',\r\n sponsorMe: '赞助我',\r\n sponsorMeTip: '赞助我,支持我继续开发',\r\n sponsorMeLink: '唯一赞助链接 https://afdian.com/a/weilin9999',\r\n setting_start_panel: '启动面板',\r\n startPanel: '启动面板',\r\n startPanelTip: '点击启动面板,启动成功后会自动打开面板页面',\r\n selectTranslater: '选择翻译器',\r\n selectOptionNetworkTranslater: '三方网络翻译',\r\n selectOptionPythonTranslater: '翻译库翻译',\r\n apply: '应用',\r\n selectOptionNetworkTranslaterTitle: '三方网络翻译设置',\r\n selectOptionPythonTranslaterTitle: '翻译库设置',\r\n selectOptionNetworkTranslaterInfo: '使用的三方工具是(仅网络翻译)',\r\n selectOptionPythonTranslaterInfo: '使用的翻译包为translators',\r\n install: '安装',\r\n nowTranlaterPackageState: '当前翻译包状态:',\r\n tranlaterPackageStateTrue: '已安装',\r\n tranlaterPackageStateFlase: '未安装',\r\n installed: '正在安装中...',\r\n installTranslaterPackageInfo: '当前正在安装翻译库中,请不要关闭窗口!等待安装完成',\r\n translaterSetting: \"翻译设置\",\r\n chooseTranslaterSetting: \"选择翻译服务:\",\r\n translaterLangSourceSetting: \"翻译语言:\",\r\n translaterLangTargeSetting: \"翻译目标语言:\",\r\n saveTranslaterSetting: \"保存设置\",\r\n testTranslaterTitle: \"测试翻译\",\r\n inputTestTranslater: \"输入翻译内容:\",\r\n outPutTestTranslater: \"翻译结果:\",\r\n testingTranslater: \"测试翻译\",\r\n inputTestTranslaterPlaceholder: \"请输入要翻译的内容\",\r\n outPutTestTranslaterPlaceholder: \"翻译结果将显示在这里\",\r\n errorPrompt: \"读取节点提示词失败!\",\r\n setting_auto_complete_limit: \"补全提示设置\",\r\n show_auto_limit: \"显示补全提示数量\",\r\n showAutoLimitPlaceholder: \"请输入要显示的数量\",\r\n settingAutoCompleteWidth: \"设置补全提示框宽度\",\r\n settingAutoCompleteWidthPlaceholder: \"请输入宽度\",\r\n settingAutoCompleteHeight: \"设置补全提示框最大高度\",\r\n settingAutoCompleteHeightPlaceholder: \"请输入最大高度\",\r\n skinSetting: '皮肤设置',\r\n defaultSkin: '默认皮肤',\r\n customSkin: '自定义皮肤',\r\n uploadSkin: '上传皮肤',\r\n bgSetting: '背景设置',\r\n gradientBg: '渐变颜色',\r\n transparentBg: '透明',\r\n gradientColor: '渐变颜色选择',\r\n borderRadius: '圆角设置',\r\n resetToDefault: '恢复默认',\r\n },\r\n },\r\n controls: {\r\n language: '语言',\r\n settings: '设置',\r\n switchTheme: '切换主题',\r\n darkMode: '夜间模式',\r\n lightMode: '日间模式',\r\n tagManager: '标签管理',\r\n loraStack: 'Lora堆',\r\n loraManager: 'Lora管理',\r\n history: '历史记录',\r\n addLora: '添加Lora',\r\n removeLora: '移除Lora',\r\n lookOnLora: '查看Lora',\r\n aiChat: 'AI对话',\r\n github: \"Github主页\",\r\n shareCloudData: '共享云数据',\r\n tutorialVideo: \"教程视频\",\r\n sponsor: \"赞助我\",\r\n danbooruManager: \"Danbooru管理器\",\r\n },\r\n theme: {\r\n toggle: '切换主题'\r\n },\r\n common: {\r\n \"confirmDelete\": \"确认删除\",\r\n \"delete\": \"删除\",\r\n \"cancel\": \"取消\",\r\n \"confirm\": \"确定\",\r\n \"edit\": \"编辑\",\r\n \"save\": \"保存\",\r\n \"refresh\": \"刷新\",\r\n \"copy\": \"复制\",\r\n \"copySuccess\": \"复制成功\",\r\n \"copyFailed\": \"复制失败\",\r\n \"windowSize\": \"调节窗口大小\",\r\n \"showMore\": \"显示更多\",\r\n \"showLess\": \"收起\"\r\n },\r\n cloudWindow: {\r\n \"windowTitle\": \"共享云仓库\",\r\n back: '返回上一级',\r\n currentPath: '当前路径',\r\n tagDatabase: 'Tag 数据库',\r\n danbooruDatabase: 'Danbooru 数据库',\r\n open: \"打开文件夹\",\r\n installed: '已安装',\r\n install: '安装',\r\n installing: '正在安装...'\r\n },\r\n nodeListWindow: {\r\n \"windowTitle\": \"节点列表\",\r\n \"openPromptUI\": \"打开提示词编辑器\",\r\n },\r\n lora: {\r\n \"title\": \"Lora 信息\",\r\n rawTitle: \"LoraRaw\",\r\n \"file\": \"文件\",\r\n \"hash\": \"Hash值\",\r\n \"civitai\": \"Civitai\",\r\n \"viewOnCivitai\": \"在 Civitai 上查看\",\r\n \"fetchFromCivitai\": \"从 Civitai 获取信息\",\r\n \"modelNotFound\": \"模型未找到\",\r\n \"modelNotFoundTip\": \"该模型在 Civitai 上未找到,可能是私有模型或已被删除\",\r\n \"name\": \"名称\",\r\n \"nameTip\": \"模型的显示名称\",\r\n \"type\": \"类型\",\r\n \"baseModel\": \"基础模型\",\r\n \"trainedWords\": \"训练词\",\r\n \"trainedWordsTip\": \"模型训练时使用的关键词,点击可选择复制\",\r\n \"selectedWords\": \"已选择 {count} 个词\",\r\n \"strengthMin\": \"最小强度\",\r\n \"strengthMinTip\": \"推荐的最小强度值\",\r\n \"strengthMax\": \"最大强度\",\r\n \"strengthMaxTip\": \"推荐的最大强度值\",\r\n \"promptWords\": \"提示词\",\r\n \"promptWordsTip\": \"使用该模型时的推荐提示词\",\r\n \"loraWorks\": \"Lora提示词\",\r\n \"strWeight\": \"文本强度权重\",\r\n hideLora: \"禁用Lora\",\r\n showLora: \"启用Lora\",\r\n baseModel: \"基础模型\",\r\n skipClip: \"跳过层\",\r\n seeLoraRaw: \"查看LoraRaw\",\r\n addDiyFiled: \"添加自定义字段\",\r\n getCivitData: \"获取Civitai信息\",\r\n copy: \"复制\",\r\n },\r\n tagManager: {\r\n \"deletePrimaryCategoryConfirm\": \"确定要删除分类 {name} 吗?\",\r\n \"deleteGroupConfirm\": \"确定要删除分组 {name} 吗?\",\r\n \"deleteTagConfirm\": \"确定要删除标签 {name} 吗?\",\r\n \"windowTitle\": \"标签管理器\",\r\n \"categories\": \"分类管理\",\r\n \"groups\": \"分组管理\",\r\n \"selectCategory\": \"请选择分类\",\r\n \"selectGroup\": \"请选择分组\",\r\n \"addPrimaryCategory\": \"添加分类\",\r\n \"addGroup\": \"添加分组\",\r\n \"editPrimaryCategory\": \"编辑分类\",\r\n \"editGroup\": \"编辑分组\",\r\n \"editTag\": \"编辑标签\",\r\n \"categoryName\": \"分类名称\",\r\n \"categoryNamePlaceholder\": \"请输入分类名称\",\r\n \"categoryNameRequired\": \"分类名称不能为空\",\r\n \"groupName\": \"分组名称\",\r\n \"groupNamePlaceholder\": \"请输入分组名称\",\r\n \"groupNameRequired\": \"分组名称不能为空\",\r\n \"addTag\": \"添加Tag\",\r\n \"text\": \"Tag描述\",\r\n \"textPlaceholder\": \"请输入Tag描述\",\r\n \"description\": \"Tag\",\r\n \"descriptionPlaceholder\": \"请输入Tag\",\r\n \"textRequired\": \"Tag和Tag描述不能为空\",\r\n \"favourRequired\": \"Tag和Tag描述不能为空,且必须选择分组\",\r\n \"backgroundColor\": \"背景颜色\",\r\n \"colorPickerTitle\": \"选择颜色\",\r\n \"opacity\": \"透明度\",\r\n \"searchPlaceholder\": \"搜索Tag...\",\r\n \"noResults\": \"未找到相关结果\",\r\n \"searchInCategory\": \"在分类中\",\r\n \"searchInTag\": \"在Tag中\",\r\n \"save\": \"保存\",\r\n \"cancel\": \"取消\",\r\n \"confirm\": \"确定\",\r\n \"delete\": \"删除\",\r\n \"addSubCategory\": \"添加子分类\",\r\n \"editSubCategory\": \"编辑子分类\",\r\n \"subCategoryName\": \"子分类名称\",\r\n \"subCategoryNamePlaceholder\": \"请输入子分类名称\",\r\n \"subCategoryNameRequired\": \"子分类名称不能为空\",\r\n \"deleteConfirmTitle\": \"确认删除\",\r\n \"deleteConfirmMessage\": \"此操作将永久删除该{type},是否继续?\",\r\n \"deleteSuccess\": \"删除成功\",\r\n \"deleteFailed\": \"删除失败\",\r\n \"saveSuccess\": \"保存成功\",\r\n \"saveFailed\": \"保存失败\",\r\n \"colorPickerAlpha\": \"透明度\",\r\n \"colorPickerHex\": \"十六进制颜色值\",\r\n \"colorPreview\": \"颜色预览\",\r\n \"dragToSort\": \"拖动排序\",\r\n \"searchTags\": \"搜索标签\",\r\n \"noTagsFound\": \"未找到标签\",\r\n \"noGroupsFound\": \"未找到分组\",\r\n \"noCategoriesFound\": \"未找到分类\",\r\n \"refresh\": \"刷新\",\r\n \"refreshing\": \"刷新中...\",\r\n \"refreshSuccess\": \"刷新成功\",\r\n \"refreshFailed\": \"刷新失败\",\r\n \"search\": \"搜索\",\r\n \"searching\": \"搜索中...\",\r\n \"searchResult\": \"搜索结果\",\r\n \"searchInPath\": \"位于: {path}\",\r\n \"category\": \"分类\",\r\n \"group\": \"分组\",\r\n \"tag\": \"标签\",\r\n \"resultType\": {\r\n \"category\": \"分类\",\r\n \"group\": \"分组\",\r\n \"tag\": \"标签\"\r\n },\r\n \"hasDeleteAction\": \"批量删除\",\r\n \"deleteSelected\": \"删除选中\",\r\n \"confirmDeleteSelected\": \"确定要删除选中标签吗?\",\r\n \"cancelDelete\": \"取消删除\",\r\n \"moveTag\": \"移动标签\",\r\n \"targetTag\": \"目标标签\",\r\n \"movePosition\": \"移动位置\",\r\n \"moveBefore\": \"移动到目标标签之前\",\r\n \"moveAfter\": \"移动到目标标签之后\",\r\n \"editTag\": \"编辑标签\",\r\n \"deleteTag\": \"删除标签\",\r\n \"editGroupMode\": \"编辑模式\",\r\n \"exitEditMode\": \"退出编辑模式\",\r\n \"autoAddSearchTag\": \"搜索的Tag自动添加到提示词中\",\r\n \"importTags\": \"批量导入Tag\",\r\n share: \"分享\",\r\n delete: \"删除\",\r\n edit: \"编辑\",\r\n outputSuccess: \"分享成功\",\r\n noTagsSelected: \"没有选择要分享的Tag\",\r\n shareSelected: \"分享选择的Tag\",\r\n batchShare: \"批量分享Tag\",\r\n cancelShare: \"取消分享\",\r\n moveGroup: \"移动分组\",\r\n \"targetGroup\": \"目标分组\",\r\n \"moveGroupBefore\": \"移动到目标分组之前\",\r\n \"moveGroupAfter\": \"移动到目标分组之后\",\r\n importDanbooru: \"批量导入\",\r\n // 标签尺寸相关\r\n modifyTabSize: '修改标签尺寸',\r\n tabSizeConfig: '标签尺寸配置',\r\n primaryTabConfig: '一级分类标签配置',\r\n groupTabConfig: '二级分类标签配置',\r\n tabWidth: '标签宽度',\r\n tabHeight: '标签高度',\r\n fontSize: '字体大小',\r\n fitContent: '自适应内容',\r\n customWidth: '自定义宽度',\r\n resetDefault: '重置为默认值',\r\n tabSizeConfigSaved: '标签尺寸配置已保存',\r\n tabSizeConfigSaveFailed: '标签尺寸配置保存失败',\r\n },\r\n loraManager: {\r\n windowTitle: \"Lora管理\",\r\n modelWeight: \"模型权重\",\r\n textEncoderWeight: \"文本权重\",\r\n all: \"全部\",\r\n root: \"根目录\",\r\n refresh: \"刷新\",\r\n cacheAll: \"缓存全部Lora信息\",\r\n searchPlaceholder: \"搜索Lora...\",\r\n prevPage: \"上一页\",\r\n nextPage: \"下一页\",\r\n noResults: \"未找到相关结果\",\r\n loadingMore: \"正在加载更多...\",\r\n noMoreData: \"没有更多结果了\",\r\n },\r\n \"message\": {\r\n \"copySuccess\": \"复制成功\",\r\n \"copyFailed\": \"复制失败\",\r\n \"saveSuccess\": \"保存成功\",\r\n \"saveFailed\": \"保存失败\",\r\n \"deleteSuccess\": \"删除成功\",\r\n \"deleteFailed\": \"删除失败\",\r\n \"operationSuccess\": \"操作成功\",\r\n \"operationFailed\": \"操作失败\",\r\n \"networkError\": \"网络错误\",\r\n \"unknownError\": \"未知错误\",\r\n \"refreshSuccess\": \"刷新成功\",\r\n \"refreshFailed\": \"刷新失败\",\r\n \"loadingData\": \"加载数据中...\",\r\n \"dataLoaded\": \"数据加载完成\",\r\n \"editSuccess\": \"编辑成功\",\r\n \"editFailed\": \"编辑失败\",\r\n \"addSuccess\": \"添加成功\",\r\n \"addFailed\": \"添加失败\",\r\n \"addFavoriteSuccess\": \"已添加到收藏夹\",\r\n \"addFavoriteIsExist\": \"已添加到收藏夹\",\r\n \"error\": \"错误\",\r\n \"editNameExist\": \"名称已存在\",\r\n \"moveSuccess\": \"移动成功\",\r\n \"moveFailed\": \"移动失败\",\r\n \"setLanguageSuccess\": \"设置语言成功\",\r\n \"setLanguageFailed\": \"设置语言失败\",\r\n \"startPanelSuccess\": \"启动面板成功\",\r\n \"startPanelFailed\": \"启动面板失败\",\r\n \"isLoading\": \"已在执行中请等待\",\r\n \"loaddingPrc\": \"执行进度 {name}%\",\r\n \"loaddingSuccess\": \"已全部加载成功\",\r\n \"noFinishKuo\": \"括号不完整,请检查输入\",\r\n \"getTranslaterFail\": \"获取翻译设置失败\",\r\n \"applyTranslaterFail\": \"应用翻译设置失败\",\r\n \"applyToTranslaterFail\": \"切换翻译库翻译需要安装翻译库,请先安装翻译库再应用设置\",\r\n \"applyTranslaterSuccess\": \"应用翻译设置成功\",\r\n tranlaterPackageInstallFail: '等待安装超时,请查看后台安装情况,若安装成功再次点击安装即可验证',\r\n tranlaterPackageInstallSuccess: '安装翻译包成功',\r\n translaterTestFail: \"翻译失败,请使用其它的翻译服务进行尝试\",\r\n \"installPackageSuccess\": \"安装共享数据成功!\",\r\n \"installPackageFail\": \"安装共享数据失败,请查看后台错误\",\r\n loadFailed: \"加载失败\",\r\n jsonErrorMesg: \"JSON文件格式错误\",\r\n pleaseAddSub: \"请先添加二级分类\",\r\n pleaseAddMainCeb: \"请先添加一级分类\",\r\n pleaseSelectGroup: \"请选择完整的分组路径\",\r\n isLoadingPleaseWait: \"正在执行中,请查看后台进度\",\r\n shareGroupError: \"分享失败,获取分组信息失败\",\r\n shareTagError: \"分享失败,获取组Tag信息失败\",\r\n },\r\n history: {\r\n \"title\": \"历史记录\",\r\n \"search_placeholder\": \"搜索历史记录...\",\r\n \"search\": \"搜索\",\r\n \"windowTitle\": \"历史记录\",\r\n \"favorites\": \"收藏夹\",\r\n \"history\": \"历史记录\",\r\n \"refresh\": \"刷新\",\r\n \"refresh_history\": \"刷新历史记录\",\r\n \"refresh_favorites\": \"刷新收藏夹\",\r\n \"add_to_favorites\": \"添加到收藏夹\",\r\n \"delete_history\": \"删除历史记录\",\r\n \"use_item\": \"使用\",\r\n \"add_new\": \"添加收藏\",\r\n \"bulk_delete\": \"批量删除\",\r\n \"deleteHistoryConfirm\": \"确定要删除历史记录 {name} 吗?\",\r\n \"deleteFavoriteConfirm\": \"确定要删除收藏夹 {name} 吗?\",\r\n \"confirmDeleteSelected\": \"确定要删除选中的信息吗?\",\r\n \"cancel_delete\": \"取消删除\",\r\n \"sure_delete\": \"确定删除\",\r\n \"deleteSelected\": \"删除选中\",\r\n \"dialog\": {\r\n \"add_tag\": \"添加收藏\",\r\n \"edit_tag\": \"编辑收藏\",\r\n \"name\": \"名称\",\r\n \"name_placeholder\": \"请输入名称\",\r\n \"tag\": \"标签\",\r\n \"tag_placeholder\": \"请输入标签\",\r\n \"background_color\": \"背景颜色\",\r\n \"background_color_placeholder\": \"请选择背景颜色\",\r\n \"edit_favorite\": \"编辑收藏\",\r\n \"delete_favorite\": \"删除收藏\",\r\n },\r\n \"edit_favorite\": \"编辑收藏\",\r\n \"delete_favorite\": \"删除收藏\",\r\n \"use_favorite\": \"使用收藏\"\r\n },\r\n floatingBall: {\r\n \"promptBox\": \"打开全局提示词\",\r\n \"tagManager\": \"打开标签管理\",\r\n \"loraManager\": \"打开Lora管理\",\r\n \"aiWindow\": \"打开AI对话\",\r\n \"restoreWindow\": \"重置所有窗口\",\r\n \"openNodeListWindow\": \"打开节点列表\",\r\n tranToWeb: \"图片转换工具\",\r\n openSetting: \"打开设置\",\r\n },\r\n aiWindow: {\r\n \"windowTitle\": \"AI对话窗口\",\r\n \"newChat\": \"新建对话\",\r\n \"chatName\": \"对话\",\r\n \"thinking\": \"思考中...\",\r\n \"send\": \"发送\",\r\n \"inputMessage\": \"输入你的消息...\"\r\n },\r\n translaterService: {\r\n \"niutrans\": \"小牛翻译\",\r\n \"mymemory\": \"MyMemory\",\r\n \"alibaba\": \"阿里巴巴翻译\",\r\n \"baidu\": \"百度翻译\",\r\n \"modernmt\": \"ModernMT\",\r\n \"volcengine\": \"火山翻译\",\r\n \"iciba\": \"金山词霸\",\r\n \"iflytek\": \"科大讯飞翻译\",\r\n \"google\": \"谷歌翻译\",\r\n \"bing\": \"必应翻译\",\r\n \"lingvanex\": \"Lingvanex\",\r\n \"yandex\": \"Yandex翻译\",\r\n \"itranslate\": \"iTranslate\",\r\n \"systran\": \"SYSTRAN\",\r\n \"argos\": \"Argos翻译\",\r\n \"apertium\": \"Apertium\",\r\n \"reverso\": \"Reverso翻译\",\r\n \"deepl\": \"DeepL翻译\",\r\n \"cloudtranslation\": \"云翻译\",\r\n \"qqtransmart\": \"腾讯翻译君\",\r\n \"translatecom\": \"Translate.com\",\r\n \"sogou\": \"搜狗翻译\",\r\n \"tilde\": \"Tilde翻译\",\r\n \"caiyun\": \"彩云小译\",\r\n \"qqfanyi\": \"腾讯翻译\",\r\n \"translateme\": \"TranslateMe\",\r\n \"papago\": \"Papago翻译\",\r\n \"mirai\": \"未来翻译\",\r\n \"youdao\": \"有道翻译\",\r\n \"iflyrec\": \"讯飞听见翻译\",\r\n \"hujiang\": \"沪江翻译\",\r\n \"yeekit\": \"译库翻译\",\r\n \"languagewire\": \"LanguageWire\",\r\n \"elia\": \"Elia翻译\",\r\n \"judic\": \"Judic翻译\",\r\n \"mglip\": \"蒙古语翻译\",\r\n \"utibet\": \"藏语翻译\"\r\n },\r\n translaterLanguage: {\r\n \"english\": \"英语\",\r\n \"chinese\": \"中文\",\r\n \"arabic\": \"阿拉伯语\",\r\n \"russian\": \"俄语\",\r\n \"french\": \"法语\",\r\n \"german\": \"德语\",\r\n \"spanish\": \"西班牙语\",\r\n \"portuguese\": \"葡萄牙语\",\r\n \"italian\": \"意大利语\",\r\n \"japanese\": \"日语\",\r\n \"korean\": \"韩语\",\r\n \"greek\": \"希腊语\",\r\n \"dutch\": \"荷兰语\",\r\n \"hindi\": \"印地语\",\r\n \"turkish\": \"土耳其语\",\r\n \"malay\": \"马来语\",\r\n \"thai\": \"泰语\",\r\n \"vietnamese\": \"越南语\",\r\n \"indonesian\": \"印度尼西亚语\",\r\n \"hebrew\": \"希伯来语\",\r\n \"polish\": \"波兰语\",\r\n \"mongolian\": \"蒙古语\",\r\n \"czech\": \"捷克语\",\r\n \"hungarian\": \"匈牙利语\",\r\n \"estonian\": \"爱沙尼亚语\",\r\n \"bulgarian\": \"保加利亚语\",\r\n \"danish\": \"丹麦语\",\r\n \"finnish\": \"芬兰语\",\r\n \"romanian\": \"罗马尼亚语\",\r\n \"swedish\": \"瑞典语\",\r\n \"slovenian\": \"斯洛文尼亚语\",\r\n \"persian/farsi\": \"波斯语/波斯语\",\r\n \"bosnian\": \"波斯尼亚语\",\r\n \"serbian\": \"塞尔维亚语\",\r\n \"fijian\": \"斐济语\",\r\n \"filipino\": \"菲律宾语\",\r\n \"haitiancreole\": \"海地克里奥尔语\",\r\n \"catalan\": \"加泰罗尼亚语\",\r\n \"croatian\": \"克罗地亚语\",\r\n \"latvian\": \"拉脱维亚语\",\r\n \"lithuanian\": \"立陶宛语\",\r\n \"urdu\": \"乌尔都语\",\r\n \"ukrainian\": \"乌克兰语\",\r\n \"welsh\": \"威尔士语\",\r\n \"tahiti\": \"塔希提语\",\r\n \"tongan\": \"汤加语\",\r\n \"swahili\": \"斯瓦希里语\",\r\n \"samoan\": \"萨摩亚语\",\r\n \"slovak\": \"斯洛伐克语\",\r\n \"afrikaans\": \"南非荷兰语\",\r\n \"norwegian\": \"挪威语\",\r\n \"bengali\": \"孟加拉语\",\r\n \"malagasy\": \"马达加斯加语\",\r\n \"maltese\": \"马耳他语\",\r\n \"queretaro otomi\": \"克雷塔罗奥托米语\",\r\n \"klingon/tlhingan hol\": \"克林贡语\",\r\n \"gujarati\": \"古吉拉特语\",\r\n \"tamil\": \"泰米尔语\",\r\n \"telugu\": \"泰卢固语\",\r\n \"punjabi\": \"旁遮普语\",\r\n \"amharic\": \"阿姆哈拉语\",\r\n \"azerbaijani\": \"阿塞拜疆语\",\r\n \"bashkir\": \"巴什基尔语\",\r\n \"belarusian\": \"白俄罗斯语\",\r\n \"cebuano\": \"宿务语\",\r\n \"chuvash\": \"楚瓦什语\",\r\n \"esperanto\": \"世界语\",\r\n \"basque\": \"巴斯克语\",\r\n \"irish\": \"爱尔兰语\"\r\n },\r\n utils: {\r\n tranToWeb: '转换图片为HTML',\r\n dropOrPasteImage: '点击本区域可以上传文件也可以拖动图片或粘贴图片到此处',\r\n downloadHtml: '下载HTML',\r\n copyHtml: '复制HTML',\r\n copySuccess: 'HTML已复制',\r\n copyFailed: '复制HTML失败',\r\n clear: '清空内容'\r\n },\r\n importDialog: {\r\n title: '批量导入Tag',\r\n sure: \"确认并导入\",\r\n cleanAll: \"清空所有\",\r\n dumpSQL: \"导出所有SQL\",\r\n uploadSQL: \"上传原始SQL文件\",\r\n setMainCeb: \"设置一级分类\",\r\n setSubCeb: \"设置二级分类\",\r\n addTag: \"添加Tag\",\r\n fromJSONImput: \"从JSON文件批量导入Tag\",\r\n fromTxtInput: \"从TXT文件批量导入Tag\",\r\n fromYmalInput: \"从YAML文件批量导入Tag\",\r\n selectMainCeb: \"选择一级分类\",\r\n selectSubCeb: \"选择二级分类\",\r\n selectGroup: \"选择已有分类\",\r\n sureSelect: \"确认选择\",\r\n pleaseAddGroupName: \"请填写一级分类名称\",\r\n pleaseAddSubGroupName: \"请填写二级分类名称\",\r\n pleaseFullRequest: \"请填写完整一级分类和二级分类信息\",\r\n successImport: \"导入成功\",\r\n importFail: \"导入失败\",\r\n dumpOnlySQL: \"仅导出Tag的SQL\",\r\n settingOutputName: \"设置导出文件名称\",\r\n sureYes: \"确认\",\r\n cancel: \"取消\",\r\n edit: \"编辑\",\r\n delete: \"删除\",\r\n add: \"添加Tag\",\r\n pleaseMainCebUuid: \"一级分原UUID,增量更新才需要\",\r\n pleaseSubGroupUuid: \"二级分原UUID,增量更新才需要\",\r\n pleaseSubGroup: \"二级分类名称\",\r\n pleaseMainCeb: \"一级分类名称\",\r\n translater: \"描述\",\r\n tips1: \"使用教程:\",\r\n tips1text: \"B站视频教程\",\r\n tips2: \"Tag云仓库:\",\r\n tips2text: \"GitHub仓库\",\r\n tips3: \"在线批量编辑:\",\r\n tips3text: \"在线编辑器\",\r\n selectTitle: \"选择分类\",\r\n selectedCategories: \"已选择的分类\",\r\n clearAll: \"清除全部\",\r\n primaryCategories: \"一级分类\",\r\n subCategories: \"二级分类\",\r\n noSelectedCategories: \"暂无选择的分类\",\r\n selectCategory: \"选择此分类\",\r\n selectSubcategory: \"选择此子分类\",\r\n sureSelect: \"确认选择\",\r\n },\r\n randomUtils: {\r\n title: \"随机Tag规则设置\",\r\n \"generalSettings\": \"通用设置\",\r\n \"totalTags\": \"随机Tag总数量(规则范围超过总数量按总数量算最大范围)\",\r\n \"rules\": \"规则\",\r\n \"addRule\": \"添加规则\",\r\n \"rule\": \"规则\",\r\n \"range\": \"范围\",\r\n \"tagType\": \"标签类型\",\r\n \"category\": \"Tag数据\",\r\n \"specificTags\": \"特定标签\",\r\n \"selectCategory\": \"选择分类\",\r\n \"addTagPlaceholder\": \"输入标签并按回车\",\r\n \"addTag\": \"添加标签\",\r\n \"testRandom\": \"测试随机\",\r\n \"generatedTags\": \"生成的标签\",\r\n selectTagGroup: \"选择Tag分组\",\r\n \"ruleTemplates\": \"规则模板\",\r\n \"saveAsTemplate\": \"保存为模板\",\r\n \"selectTemplate\": \"选择模板\",\r\n \"applyTemplate\": \"应用模板\",\r\n \"templateNamePlaceholder\": \"输入模板名称\",\r\n \"templateNameRequired\": \"请输入模板名称\",\r\n \"templateSaved\": \"模板已保存\",\r\n \"templateApplied\": \"模板已应用\",\r\n \"errorSavingTemplates\": \"保存模板时出错\",\r\n \"save\": \"保存\",\r\n \"cancel\": \"取消\",\r\n \"editTemplate\": \"修改名称\",\r\n \"deleteTemplate\": \"删除模板\",\r\n \"confirmDeleteTemplate\": \"确定要删除此模板吗?\",\r\n \"templateDeleted\": \"模板已删除\",\r\n \"templateUpdated\": \"模板名称已更新\",\r\n errorUpdatingTemplate: \"更新模板失败\",\r\n errorLoadingTemplate: \"加载模板失败\",\r\n errorDeletingTemplate: \"删除模板失败\",\r\n errorApplyingTemplate: \"应用模板失败\",\r\n pleaseChooseTemplate: \"请选择模板\",\r\n errorSavingTemplate: \"保存模板失败\",\r\n newTemplate: \"新建模板\",\r\n rulesReminder: \"提醒:第一个规则的范围必须从1开始!如果范围区间超过了随机的总数则直接显示全部不会随机!\",\r\n },\r\n danbooruManager:{\r\n title: \"Danbooru管理器\",\r\n controle: \"操作\",\r\n translatePlaceholder: \"请输入对应的翻译文本\",\r\n searchPlaceholder: \"输入需要搜索的Danbooru标签...\",\r\n pageShow: \"每页显示:\",\r\n pageLimit: \"条\",\r\n hot: \"热度\",\r\n aliases: \"分区\",\r\n sureBatchDelete: \"批量删除确认\",\r\n sureBatchDeleteTips1: \"您确定要删除选中的\",\r\n sureBatchDeleteTips2: \"个标签吗?此操作不可撤销。\",\r\n sureDelete: \"确认删除\",\r\n import: \"Danbooru格式导入\",\r\n importBatchTitle: \"批量导入Danbooru数据\",\r\n importTitle: \"Danbooru 导入数据展示\",\r\n add: \"添加Danbooru标签\",\r\n edit: \"编辑Danbooru标签\",\r\n }\r\n}","import { version } from \"../../utils/version.js\"\r\nexport default {\r\n promptBox: {\r\n placeholder: 'Please enter text...',\r\n delete: 'Delete',\r\n newline: 'New Line',\r\n tab: 'Tab',\r\n windowTitle: \"WeiLin Prompt UI Window \" + version,\r\n windowTitleGlobal: \"WeiLin Global Prompt UI Window \" + version,\r\n translate: 'Translate',\r\n translatePlaceholder: 'Please enter the text to be translated',\r\n weight: 'Weight',\r\n weightPlaceholder: 'Please enter the weight',\r\n addBracket: 'Add Bracket',\r\n removeLayer: 'Remove Bracket',\r\n\r\n hiddenHint: \"Double-click to show\",\r\n tagTips: \"Double-click the left mouse button to mask the Tag
click the Tag to edit
and drag the Tag to drag\",\r\n oneClickRandomTag: 'one Click Random Tag',\r\n randomTagSettings: 'setting Random Tag',\r\n oneClickTranslate: \"one Click Translate Tag\",\r\n modelWeight: \"Model Weight\",\r\n textWeight: \"Text Weight\",\r\n favour: \"Favour\",\r\n lineToken: \"Line Break\",\r\n addLineToken: \"Add Line Break Token\",\r\n settings: {\r\n title: 'Settings',\r\n cancel: 'Cancel',\r\n save: 'Save',\r\n translator: 'Translator',\r\n sourceLanguage: 'Source Language',\r\n targetLanguage: 'Target Language',\r\n chinese_simplified: 'Chinese Simplified',\r\n english: 'English',\r\n close: 'Close',\r\n auto_detect: 'Auto Detect',\r\n setting_floating_ball: 'Setting Floating Ball',\r\n setting_prompt_box: 'Setting Prompt Box',\r\n enablePromptCommaShow: 'Show Prompt Comma',\r\n floatingBallCount: 'Floating Ball Count',\r\n floatingBallCountPlaceholder: 'Please enter the number of floating balls',\r\n floatingBallSize: 'Width of suspended ball',\r\n floatingBallSizePlaceholder: 'Please enter the width of the suspension ball',\r\n floatingBallHeight: 'Height of suspended ball',\r\n floatingBallHeightPlaceholder: 'Please input the height of the suspension ball',\r\n enableFloatingBall: 'Enable Floating Ball',\r\n enableCommaConversion: 'Enable Comma Conversion',\r\n enablePeriodConversion: 'Enable Period Conversion',\r\n enableBracketConversion: 'Enable Bracket Conversion',\r\n enableAngleBracketConversion: 'Enable Angle Bracket Conversion',\r\n enableUnderscoreToBracket: 'Enable Underscore to Bracket',\r\n setting_openai_box: 'OpenAI Settings',\r\n openai_api_key: 'API Key',\r\n openai_api_key_placeholder: 'Please enter API Key',\r\n openai_api_key_save: 'Save',\r\n openaiSettings: 'OpenAI Settings',\r\n openaiSettings_api_key: 'API Key',\r\n openaiSettings_api_key_placeholder: 'Please enter API Key',\r\n openaiSettings_api_key_save: 'Save',\r\n openai_base_url: 'Base URL',\r\n openai_base_url_placeholder: 'Please enter Base URL',\r\n openai_model: 'Model',\r\n openai_model_placeholder: 'Please enter Model',\r\n not_set: 'Not Set',\r\n edit: 'Edit',\r\n delete: 'Delete',\r\n selectedOpenaiConfig: 'Selected OpenAI Config',\r\n addNewConfig: 'Add New Config',\r\n setting_sponsor_me: 'Sponsor Me',\r\n sponsorMe: 'Sponsor Me',\r\n sponsorMeTip: 'Sponsor Me, Support Me to Continue Development',\r\n sponsorMeLink: 'Unique Sponsor Link https://afdian.com/a/weilin9999',\r\n setting_start_panel: 'Start Panel',\r\n startPanel: 'Start Panel',\r\n startPanelTip: 'Click Start Panel, after successful startup, the panel page will be automatically opened',\r\n selectTranslater: 'select translater',\r\n selectOptionNetworkTranslater: 'Three party online translation',\r\n selectOptionPythonTranslater: 'Translation Library Translation',\r\n apply: 'Apply',\r\n selectOptionNetworkTranslaterTitle: 'Three party network translation settings',\r\n selectOptionPythonTranslaterTitle: 'Translation library settings',\r\n selectOptionNetworkTranslaterInfo: 'The third-party tool used is (only for online translation)',\r\n selectOptionPythonTranslaterInfo: 'The translation package used is translators',\r\n install: 'Install',\r\n nowTranlaterPackageState: 'now transtler package state:',\r\n tranlaterPackageStateTrue: 'installed',\r\n tranlaterPackageStateFlase: 'not installed',\r\n installed: 'is installed ....',\r\n installTranslaterPackageInfo: 'Currently installing translation library, please do not close the window! Wait for installation to complete',\r\n translaterSetting: \"Translation Settings\",\r\n chooseTranslaterSetting: \"Choose a translation service:\",\r\n translaterLangSourceSetting: \"Translation language:\",\r\n translaterLangTargeSetting: \"Translation target language:\",\r\n saveTranslaterSetting: \"Save Settings\",\r\n testTranslaterTitle: \"Test translation\",\r\n inputTestTranslater: \"Enter translation content:\",\r\n outPutTestTranslater: \"Translation result:\",\r\n testingTranslater: \"Test translation\",\r\n inputTestTranslaterPlaceholder: \"Please enter the content to be translated\",\r\n outPutTestTranslaterPlaceholder: \"The translation result will be displayed here\",\r\n errorPrompt: \"Read the prompt node failed\",\r\n skinSetting: 'skin setting',\r\n defaultSkin: 'default skin',\r\n customSkin: 'custom skin',\r\n uploadSkin: 'upload skin',\r\n bgSetting: 'background setting',\r\n gradientBg: 'gradient color',\r\n transparentBg: 'transparent',\r\n gradientColor: 'gradient color select',\r\n borderRadius: 'border radius',\r\n resetToDefault: 'reset to default',\r\n },\r\n },\r\n controls: {\r\n language: 'Language',\r\n settings: 'Settings',\r\n switchTheme: 'Switch Theme',\r\n darkMode: 'Dark Mode',\r\n lightMode: 'Light Mode',\r\n tagManager: 'Tag Manager',\r\n loraStack: 'Lora Stack',\r\n loraManager: 'Lora Manager',\r\n history: 'History',\r\n addLora: 'Add Lora',\r\n removeLora: 'Remove Lora',\r\n lookOnLora: 'Look On Lora',\r\n aiChat: 'AI Chat',\r\n github: \"Github Home\",\r\n shareCloudData: 'Share Cloud Data',\r\n tutorialVideo: \"Tutorial Video\",\r\n sponsor: \"Sponsor Me\",\r\n danbooruManager: \"danbooru Manager\",\r\n },\r\n theme: {\r\n toggle: 'Switch Theme'\r\n },\r\n lora: {\r\n \"title\": \"Lora Information\",\r\n rawTitle: \"LoraRaw\",\r\n \"file\": \"File\",\r\n \"hash\": \"Hash\",\r\n \"civitai\": \"Civitai\",\r\n \"viewOnCivitai\": \"View on Civitai\",\r\n \"fetchFromCivitai\": \"Fetch from Civitai\",\r\n \"modelNotFound\": \"Model not found\",\r\n \"modelNotFoundTip\": \"The model was not found on Civitai. It might be private or deleted\",\r\n \"name\": \"Name\",\r\n \"nameTip\": \"Display name of the model\",\r\n \"type\": \"Type\",\r\n \"baseModel\": \"Base Model\",\r\n \"trainedWords\": \"Trained Words\",\r\n \"trainedWordsTip\": \"Keywords used in model training, click to select for copying\",\r\n \"selectedWords\": \"{count} words selected\",\r\n \"strengthMin\": \"Min Strength\",\r\n \"strengthMinTip\": \"Recommended minimum strength value\",\r\n \"strengthMax\": \"Max Strength\",\r\n \"strengthMaxTip\": \"Recommended maximum strength value\",\r\n \"promptWords\": \"Prompt Words\",\r\n \"promptWordsTip\": \"Recommended prompt words when using this model\",\r\n \"loraWorks\": \"Lora Prompt Words\",\r\n \"strWeight\": \"Text Strength Weight\",\r\n hideLora: \"Disable Lora\",\r\n showLora: \"Enable Lora\",\r\n baseModel: \"Base Model\",\r\n skipClip: \"Clip Skip\",\r\n seeLoraRaw: \"LoraRaw\",\r\n addDiyFiled: \"Add DIY Filed\",\r\n getCivitData: \"Get Civitai Data\",\r\n copy: \"Copy\",\r\n },\r\n common: {\r\n confirmDelete: \"Confirm Delete\",\r\n delete: \"Delete\",\r\n cancel: \"Cancel\",\r\n confirm: \"Confirm\",\r\n edit: \"Edit\",\r\n save: \"Save\",\r\n \"refresh\": \"Refresh\",\r\n \"copy\": \"Copy\",\r\n \"copySuccess\": \"Copied successfully\",\r\n \"copyFailed\": \"Copy failed\",\r\n \"windowSize\": \"Adjust window size\",\r\n \"showMore\": \"show more\",\r\n \"showLess\": \"show less\",\r\n },\r\n nodeListWindow: {\r\n \"windowTitle\": \"Node List\",\r\n \"openPromptUI\": \"Open Prompt UI\",\r\n },\r\n tagManager: {\r\n \"deletePrimaryCategoryConfirm\": \"Are you sure you want to delete category {name}?\",\r\n \"deleteGroupConfirm\": \"Are you sure you want to delete group {name}?\",\r\n \"deleteTagConfirm\": \"Are you sure you want to delete tag {name}?\",\r\n \"windowTitle\": \"Tag Manager\",\r\n \"categories\": \"Categories\",\r\n \"groups\": \"Groups\",\r\n \"selectCategory\": \"Please select a category\",\r\n \"selectGroup\": \"Please select a group\",\r\n \"addPrimaryCategory\": \"Add Category\",\r\n \"addGroup\": \"Add Group\",\r\n \"editPrimaryCategory\": \"Edit Category\",\r\n \"editGroup\": \"Edit Group\",\r\n \"editTag\": \"Edit Tag\",\r\n \"categoryName\": \"Category Name\",\r\n \"categoryNamePlaceholder\": \"Enter category name\",\r\n \"categoryNameRequired\": \"Category name is required\",\r\n \"groupName\": \"Group Name\",\r\n \"groupNamePlaceholder\": \"Enter group name\",\r\n \"groupNameRequired\": \"Group name is required\",\r\n \"addTag\": \"Add Tag\",\r\n \"text\": \"Tag Description\",\r\n \"textPlaceholder\": \"Enter tag Description\",\r\n \"description\": \"Tag\",\r\n \"descriptionPlaceholder\": \"Enter tag\",\r\n \"textRequired\": \"Tag and Tag description cannot be empty\",\r\n \"favourRequired\": \"Tag and Tag description cannot be empty, and a group must be selected\",\r\n \"backgroundColor\": \"Background Color\",\r\n \"colorPickerTitle\": \"Select Color\",\r\n \"opacity\": \"Opacity\",\r\n \"searchPlaceholder\": \"Search tags...\",\r\n \"noResults\": \"No results found\",\r\n \"searchInCategory\": \"in category\",\r\n \"searchInTag\": \"in tag\",\r\n \"save\": \"Save\",\r\n \"cancel\": \"Cancel\",\r\n \"confirm\": \"Confirm\",\r\n \"delete\": \"Delete\",\r\n \"addSubCategory\": \"Add Sub-category\",\r\n \"editSubCategory\": \"Edit Sub-category\",\r\n \"subCategoryName\": \"Sub-category Name\",\r\n \"subCategoryNamePlaceholder\": \"Enter sub-category name\",\r\n \"subCategoryNameRequired\": \"Sub-category name is required\",\r\n \"deleteConfirmTitle\": \"Confirm Delete\",\r\n \"deleteConfirmMessage\": \"This action will permanently delete this {type}. Continue?\",\r\n \"deleteSuccess\": \"Deleted successfully\",\r\n \"deleteFailed\": \"Delete failed\",\r\n \"saveSuccess\": \"Saved successfully\",\r\n \"saveFailed\": \"Save failed\",\r\n \"colorPickerAlpha\": \"Opacity\",\r\n \"colorPickerHex\": \"Hex Color Value\",\r\n \"colorPreview\": \"Color Preview\",\r\n \"dragToSort\": \"Drag to Sort\",\r\n \"searchTags\": \"Search Tags\",\r\n \"noTagsFound\": \"No tags found\",\r\n \"noGroupsFound\": \"No groups found\",\r\n \"noCategoriesFound\": \"No categories found\",\r\n \"refresh\": \"Refresh\",\r\n \"refreshing\": \"Refreshing...\",\r\n \"refreshSuccess\": \"Refresh successful\",\r\n \"refreshFailed\": \"Refresh failed\",\r\n \"search\": \"Search\",\r\n \"searching\": \"Searching...\",\r\n \"searchResult\": \"Search Result\",\r\n \"searchInPath\": \"Located in: {path}\",\r\n \"category\": \"Category\",\r\n \"group\": \"Group\",\r\n \"tag\": \"Tag\",\r\n \"resultType\": {\r\n \"category\": \"Category\",\r\n \"group\": \"Group\",\r\n \"tag\": \"Tag\"\r\n },\r\n \"hasDeleteAction\": \"Batch Delete\",\r\n \"deleteSelected\": \"Delete Selected\",\r\n \"confirmDeleteSelected\": \"Are you sure you want to delete the selected tags?\",\r\n \"cancelDelete\": \"Cancel Delete\",\r\n \"moveTag\": \"Move Tag\",\r\n \"targetTag\": \"Target Tag\",\r\n \"movePosition\": \"Move Position\",\r\n \"moveBefore\": \"Move Before\",\r\n \"moveAfter\": \"Move After\",\r\n \"editTag\": \"Edit Tag\",\r\n \"deleteTag\": \"Delete Tag\",\r\n \"editGroupMode\": \"Edit Group Mode\",\r\n \"exitEditMode\": \"Exit Edit Mode\",\r\n \"autoAddSearchTag\": \"Auto Add Search Tag With Prompt\",\r\n \"importTags\": \"Import Tags\",\r\n share: \"Share\",\r\n delete: \"Delete\",\r\n edit: \"Edit\",\r\n outputSuccess: \"Share successfully\",\r\n noTagsSelected: \"No share tags selected\",\r\n shareSelected: \"Share selected Tag\",\r\n batchShare: \"Batch Share Tag\",\r\n cancelShare: \"Cancel Share\",\r\n moveGroup: \"Move Group\",\r\n \"targetGroup\": \"Target Group\",\r\n \"moveGroupBefore\": \"Move Before\",\r\n \"moveGroupAfter\": \"Move After\",\r\n importDanbooru: \"Batch import\",\r\n // Tag size related\r\n modifyTabSize: 'Modify Tag Size',\r\n tabSizeConfig: 'Tag Size Configuration',\r\n primaryTabConfig: 'Primary Category Tab Configuration',\r\n groupTabConfig: 'Group Category Tab Configuration',\r\n tabWidth: 'Tab Width',\r\n tabHeight: 'Tab Height',\r\n fontSize: 'Font Size',\r\n fitContent: 'Fit Content',\r\n customWidth: 'Custom Width',\r\n resetDefault: 'Reset to Default',\r\n tabSizeConfigSaved: 'Tag size configuration saved',\r\n tabSizeConfigSaveFailed: 'Failed to save tag size configuration',\r\n \r\n },\r\n loraManager: {\r\n windowTitle: \"Lora Manager\",\r\n modelWeight: \"Model Weight\",\r\n textEncoderWeight: \"Text Encoder Weight\",\r\n all: \"All\",\r\n root: \"Root\",\r\n refresh: \"Refresh\",\r\n cacheAll: \"Cache all Lora information\",\r\n searchPlaceholder: \"Search Lora...\",\r\n noResults: \"No results found\",\r\n prevPage: \"prev page\",\r\n nextPage: \"next page\",\r\n loadingMore: \"Loadding more ...\",\r\n noMoreData: \"No more data\",\r\n },\r\n \"message\": {\r\n \"copySuccess\": \"Copy successful\",\r\n \"copyFailed\": \"Copy failed\",\r\n \"saveSuccess\": \"Save successful\",\r\n \"saveFailed\": \"Save failed\",\r\n \"deleteSuccess\": \"Delete successful\",\r\n \"deleteFailed\": \"Delete failed\",\r\n \"operationSuccess\": \"Operation successful\",\r\n \"operationFailed\": \"Operation failed\",\r\n \"networkError\": \"Network error\",\r\n \"unknownError\": \"Unknown error\",\r\n \"refreshSuccess\": \"Refresh successful\",\r\n \"refreshFailed\": \"Refresh failed\",\r\n \"loadingData\": \"Loading data...\",\r\n \"dataLoaded\": \"Data loaded\",\r\n \"editSuccess\": \"Edit successful\",\r\n \"editFailed\": \"Edit failed\",\r\n \"addSuccess\": \"Add successful\",\r\n \"addFailed\": \"Add failed\",\r\n \"addFavoriteSuccess\": \"Added to favorites\",\r\n \"addFavoriteIsExist\": \"Added to favorites\",\r\n \"error\": \"Error\",\r\n \"moveSuccess\": \"Move successful\",\r\n \"moveFailed\": \"Move failed\",\r\n \"setLanguageSuccess\": \"Set language successful\",\r\n \"setLanguageFailed\": \"Set language failed\",\r\n \"startPanelSuccess\": \"Start panel successful\",\r\n \"startPanelFailed\": \"Start panel failed\",\r\n \"isLoading\": \"Loading...\",\r\n \"loaddingPrc\": \"Execution progress {name}%\",\r\n \"loaddingSuccess\": \"All loaded successfully\",\r\n \"noFinishKuo\": \"The parentheses are incomplete. Please check the input\",\r\n \"getTranslaterFail\": \"Get translator failed\",\r\n \"applyTranslaterFail\": \"Apply translator failed\",\r\n \"applyToTranslaterFail\": \"Switching to a translation library requires installing a translation library. Please install the translation library first and then apply the settings\",\r\n \"applyTranslaterSuccess\": \"Apply translator successful\",\r\n tranlaterPackageInstallFail: 'Waiting for installation timeout, please check the background installation status. If the installation is successful, click install again to verify',\r\n tranlaterPackageInstallSuccess: 'Successfully installed translation package',\r\n translaterTestFail: \"Translation failed, please try using another translation service\",\r\n \"installPackageSuccess\": \"Successfully installed translation package\",\r\n \"installPackageFail\": \"Failed to install translation package, please check the background installation status\",\r\n loadFailed: \"load failed\",\r\n jsonErrorMesg: \"The format of the JSON file is incorrect\",\r\n pleaseAddSub: \"Please add the secondary classification first\",\r\n pleaseAddMainCeb: \"Please add the first-level category first\",\r\n pleaseSelectGroup: \"Please select the complete grouping path\",\r\n isLoadingPleaseWait: \"It is being executed. Please check the progress in the background\",\r\n shareGroupError: \"Failed to share and failed to obtain group information\",\r\n shareTagError: \"Failed to share and failed to obtain group tag information\",\r\n },\r\n cloudWindow: {\r\n \"windowTitle\": \"Share Cloud Window\",\r\n back: 'Back',\r\n currentPath: 'Current Path',\r\n tagDatabase: 'Tag Database',\r\n danbooruDatabase: 'Danbooru Database',\r\n open: \"Open Folder\",\r\n installed: 'Installed',\r\n install: 'Install',\r\n installing: 'Installing...'\r\n },\r\n history: {\r\n \"title\": \"History\",\r\n \"search_placeholder\": \"Search history...\",\r\n \"windowTitle\": \"History\",\r\n \"search\": \"Search\",\r\n \"favorites\": \"Favorites\",\r\n \"history\": \"History\",\r\n \"refresh\": \"Refresh\",\r\n \"refresh_history\": \"Refresh history\",\r\n \"refresh_favorites\": \"Refresh favorites\",\r\n \"add_to_favorites\": \"Add to favorites\",\r\n \"delete_history\": \"Delete history\",\r\n \"use_item\": \"Use\",\r\n \"add_new\": \"Add new\",\r\n \"bulk_delete\": \"Bulk delete\",\r\n \"deleteHistoryConfirm\": \"Are you sure you want to delete history {name}?\",\r\n \"deleteFavoriteConfirm\": \"Are you sure you want to delete favorite {name}?\",\r\n \"confirmDeleteSelected\": \"Are you sure you want to delete selected information?\",\r\n \"cancel_delete\": \"Cancel delete\",\r\n \"sure_delete\": \"Sure delete\",\r\n \"deleteSelected\": \"Delete selected\",\r\n \"dialog\": {\r\n \"add_tag\": \"Add favorite\",\r\n \"edit_tag\": \"Edit favorite\",\r\n \"name\": \"Name\",\r\n \"name_placeholder\": \"Please enter name\",\r\n \"tag\": \"Tag\",\r\n \"tag_placeholder\": \"Please enter tag\",\r\n \"background_color\": \"Background color\",\r\n \"background_color_placeholder\": \"Please select background color\",\r\n \"edit_favorite\": \"Edit favorite\",\r\n \"delete_favorite\": \"Delete favorite\",\r\n },\r\n \"edit_favorite\": \"Edit favorite\",\r\n \"delete_favorite\": \"Delete favorite\",\r\n \"use_favorite\": \"Use favorite\"\r\n },\r\n floatingBall: {\r\n \"promptBox\": \"open Global Prompt Box\",\r\n \"tagManager\": \"open Tag Manager\",\r\n \"loraManager\": \"open Lora Manager\",\r\n \"aiWindow\": \"open AI Chat\",\r\n \"restoreWindow\": \"reset all windows\",\r\n \"openNodeListWindow\": \"open Node List\",\r\n tranToWeb: \"Image to Web Utils\",\r\n openSetting: \"open Setting\",\r\n },\r\n aiWindow: {\r\n \"windowTitle\": \"AI Chat Window\",\r\n \"newChat\": \"New Chat\",\r\n \"chatName\": \"Chat\",\r\n \"thinking\": \"Thinking...\",\r\n \"send\": \"Send\",\r\n \"inputMessage\": \"Enter your message...\"\r\n },\r\n translaterService: {\r\n \"niutrans\": \"niutrans\",\r\n \"mymemory\": \"mymemory\",\r\n \"alibaba\": \"alibaba\",\r\n \"baidu\": \"baidu\",\r\n \"modernmt\": \"modernmt\",\r\n \"volcengine\": \"volcengine\",\r\n \"iciba\": \"iciba\",\r\n \"iflytek\": \"iflytek\",\r\n \"google\": \"google\",\r\n \"bing\": \"bing\",\r\n \"lingvanex\": \"lingvanex\",\r\n \"yandex\": \"yandex\",\r\n \"itranslate\": \"itranslate\",\r\n \"systran\": \"systran\",\r\n \"argos\": \"argos\",\r\n \"apertium\": \"apertium\",\r\n \"reverso\": \"reverso\",\r\n \"deepl\": \"deepl\",\r\n \"cloudtranslation\": \"cloudtranslation\",\r\n \"qqtransmart\": \"qqtransmart\",\r\n \"translatecom\": \"translatecom\",\r\n \"sogou\": \"sogou\",\r\n \"tilde\": \"tilde\",\r\n \"caiyun\": \"caiyun\",\r\n \"qqfanyi\": \"qqfanyi\",\r\n \"translateme\": \"translateme\",\r\n \"papago\": \"papago\",\r\n \"mirai\": \"mirai\",\r\n \"youdao\": \"youdao\",\r\n \"iflyrec\": \"iflyrec\",\r\n \"hujiang\": \"hujiang\",\r\n \"yeekit\": \"yeekit\",\r\n \"languagewire\": \"languagewire\",\r\n \"elia\": \"elia\",\r\n \"judic\": \"judic\",\r\n \"mglip\": \"mglip\",\r\n \"utibet\": \"utibet\"\r\n },\r\n translaterLanguage: {\r\n \"english\": \"english\",\r\n \"chinese\": \"chinese\",\r\n \"arabic\": \"arabic\",\r\n \"russian\": \"russian\",\r\n \"french\": \"french\",\r\n \"german\": \"german\",\r\n \"spanish\": \"spanish\",\r\n \"portuguese\": \"portuguese\",\r\n \"italian\": \"italian\",\r\n \"japanese\": \"japanese\",\r\n \"korean\": \"korean\",\r\n \"greek\": \"greek\",\r\n \"dutch\": \"dutch\",\r\n \"hindi\": \"hindi\",\r\n \"turkish\": \"turkish\",\r\n \"malay\": \"malay\",\r\n \"thai\": \"thai\",\r\n \"vietnamese\": \"vietnamese\",\r\n \"indonesian\": \"indonesian\",\r\n \"hebrew\": \"hebrew\",\r\n \"polish\": \"polish\",\r\n \"mongolian\": \"mongolian\",\r\n \"czech\": \"czech\",\r\n \"hungarian\": \"hungarian\",\r\n \"estonian\": \"estonian\",\r\n \"bulgarian\": \"bulgarian\",\r\n \"danish\": \"danish\",\r\n \"finnish\": \"finnish\",\r\n \"romanian\": \"romanian\",\r\n \"swedish\": \"swedish\",\r\n \"slovenian\": \"slovenian\",\r\n \"persian/farsi\": \"persian/farsi\",\r\n \"bosnian\": \"bosnian\",\r\n \"serbian\": \"serbian\",\r\n \"fijian\": \"fijian\",\r\n \"filipino\": \"filipino\",\r\n \"haitiancreole\": \"haitiancreole\",\r\n \"catalan\": \"catalan\",\r\n \"croatian\": \"croatian\",\r\n \"latvian\": \"latvian\",\r\n \"lithuanian\": \"lithuanian\",\r\n \"urdu\": \"urdu\",\r\n \"ukrainian\": \"ukrainian\",\r\n \"welsh\": \"welsh\",\r\n \"tahiti\": \"tahiti\",\r\n \"tongan\": \"tongan\",\r\n \"swahili\": \"swahili\",\r\n \"samoan\": \"samoan\",\r\n \"slovak\": \"slovak\",\r\n \"afrikaans\": \"afrikaans\",\r\n \"norwegian\": \"norwegian\",\r\n \"bengali\": \"bengali\",\r\n \"malagasy\": \"malagasy\",\r\n \"maltese\": \"maltese\",\r\n \"queretaro otomi\": \"queretaro otomi\",\r\n \"klingon/tlhingan hol\": \"klingon/tlhingan hol\",\r\n \"gujarati\": \"gujarati\",\r\n \"tamil\": \"tamil\",\r\n \"telugu\": \"telugu\",\r\n \"punjabi\": \"punjabi\",\r\n \"amharic\": \"amharic\",\r\n \"azerbaijani\": \"azerbaijani\",\r\n \"bashkir\": \"bashkir\",\r\n \"belarusian\": \"belarusian\",\r\n \"cebuano\": \"cebuano\",\r\n \"chuvash\": \"chuvash\",\r\n \"esperanto\": \"esperanto\",\r\n \"basque\": \"basque\",\r\n \"irish\": \"irish\"\r\n },\r\n utils: {\r\n tranToWeb: 'Image to HTML',\r\n dropOrPasteImage: 'Drop or paste image here',\r\n downloadHtml: 'Download HTML',\r\n copyHtml: 'Copy HTML',\r\n copySuccess: 'HTML copied to clipboard',\r\n copyFailed: 'Failed to copy HTML',\r\n clear: 'Clear'\r\n },\r\n importDialog: {\r\n title: 'Batch import of Tags',\r\n sure: \"Confirm and import\",\r\n cleanAll: \"Empty all\",\r\n dumpSQL: \"Export All SQL\",\r\n uploadSQL: \"Upload the original SQL file\",\r\n setMainCeb: \"Set up a first-level classification\",\r\n setSubCeb: \"Set up secondary classification\",\r\n addTag: \"Add Tag\",\r\n fromJSONImput: \"Import tags from the JSON file\",\r\n fromTxtInput: \"Batch import tags from TXT files\",\r\n fromYmalInput: \"Batch import tags from YMAL files\",\r\n selectMainCeb: \"Select the first-level classification\",\r\n selectSubCeb: \"Select the secondary classification\",\r\n selectGroup: \"Select the existing classification\",\r\n sureSelect: \"Confirm the selection\",\r\n pleaseAddGroupName: \"Please fill in the name of the first-level classification\",\r\n pleaseAddSubGroupName: \"Please fill in the name of the secondary classification\",\r\n pleaseFullRequest: \"Please fill in the information of the first-level and second-level classifications completely\",\r\n successImport: \"Import successful\",\r\n importFail: \"Import failed\",\r\n dumpOnlySQL: \"Only export the SQL of the Tag\",\r\n settingOutputName: \"Set the name of the export file\",\r\n sureYes: \"Sure\",\r\n cancel: \"Cancel\",\r\n edit: \"Edit\",\r\n delete: \"Delete\",\r\n add: \"Add Tag\",\r\n pleaseMainCebUuid: \"The original UUID of the first-level division is only required for incremental updates and cannot be modified\",\r\n pleaseSubGroupUuid: \"The secondary division of the original UUID is only required for incremental updates and cannot be modified\",\r\n pleaseSubGroup: \"Secondary classification name\",\r\n pleaseMainCeb: \"First-level classification name\",\r\n translater: \"Description\",\r\n tips1: \"Usage Tutorial:\",\r\n tips1text: \"Bilibili video tutorial\",\r\n tips2: \"Tag Cloud Warehouse:\",\r\n tips2text: \"GitHub repository\",\r\n tips3: \"Online batch editing:\",\r\n tips3text: \"Online editor\",\r\n selectTitle: \"Select Category\",\r\n selectedCategories: \"Selected Categories\",\r\n clearAll: \"Clear All\",\r\n primaryCategories: \"Primary Categories\",\r\n subCategories: \"Sub Categories\",\r\n noSelectedCategories: \"No categories selected\",\r\n selectCategory: \"Select this category\",\r\n selectSubcategory: \"Select this subcategory\",\r\n sureSelect: \"Confirm Selection\",\r\n },\r\n randomUtils: {\r\n title: \"Random Tag Rules Settings\",\r\n generalSettings: \"General Settings\",\r\n totalTags: \"Random Tag Total Number (If the rule range exceeds the total quantity, the maximum range is calculated by the total quantity)\",\r\n rules: \"Rules\",\r\n addRule: \"Add Rule\",\r\n rule: \"Rule\",\r\n range: \"Range\",\r\n tagType: \"Tag Type\",\r\n category: \"Tag Category\",\r\n specificTags: \"Specific Tags\",\r\n selectCategory: \"Select Category\",\r\n addTagPlaceholder: \"Enter tag and press Enter\",\r\n addTag: \"Add Tag\",\r\n testRandom: \"Test Random\",\r\n generatedTags: \"Generated Tags\",\r\n selectTagGroup: \"Select Tag Group\",\r\n \"ruleTemplates\": \"Rule Templates\",\r\n \"saveAsTemplate\": \"Save as Template\",\r\n \"selectTemplate\": \"Select Template\",\r\n \"applyTemplate\": \"Apply Template\",\r\n \"templateNamePlaceholder\": \"Enter template name\",\r\n \"templateNameRequired\": \"Template name is required\",\r\n \"templateSaved\": \"Template saved\",\r\n \"templateApplied\": \"Template applied\",\r\n \"errorSavingTemplates\": \"Error saving templates\",\r\n \"save\": \"Save\",\r\n \"cancel\": \"Cancel\",\r\n \"editTemplate\": \"Edit Name\",\r\n \"deleteTemplate\": \"Delete\",\r\n \"confirmDeleteTemplate\": \"Are you sure you want to delete this template?\",\r\n \"templateDeleted\": \"Template deleted\",\r\n \"templateUpdated\": \"Template name updated\",\r\n errorUpdatingTemplate: \"Update template failed\",\r\n errorLoadingTemplate: \"Load template failed\",\r\n errorDeletingTemplate: \"Delete template failed\",\r\n pleaseChooseTemplate: \"Please choose a template\",\r\n errorApplyingTemplate: \"Apply template failed\",\r\n errorSavingTemplate: \"Save template failed\",\r\n newTemplate: \"New Template\",\r\n rulesReminder: \"Reminder: The range of the first rule must start at 1! If the range exceeds the total number of random, it will simply display all not random!\"\r\n },\r\n danbooruManager:{\r\n title: \"Danbooru Manager\",\r\n controle: 'Controle',\r\n translatePlaceholder: \"Please enter the tag to be translated\",\r\n searchPlaceholder: \"Input need search danbooru tag\",\r\n pageShow: \"Display per page:\",\r\n pageLimit: \"article\",\r\n hot: \"hot\",\r\n aliases: \"aliases\",\r\n sureBatchDelete: \"Batch deletion confirmation\",\r\n sureBatchDeleteTips1: \"You are sure you want to delete the selected one\",\r\n sureBatchDeleteTips2: \"A label? This operation is irrevocable.\",\r\n sureDelete: \"Confirm deletion\",\r\n import: \"Import in Danbooru format\",\r\n importBatchTitle: \"Batch import Danbooru data\",\r\n importTitle: \"Danbooru Import data display\",\r\n add: \"Add Danbooru Tag\",\r\n edit: \"Edit Danbooru Tag\",\r\n }\r\n}","/*!\n * pinia v3.0.1\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isRef, isReactive, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, nextTick, computed, toRefs } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n // Expose pinia instance as $pinia to window\n globalThis.$pinia = pinia;\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n // Expose selected store as $store to window\n if (payload.nodeId !== PINIA_ROOT_ID)\n globalThis.$store = toRaw(inspectedStore);\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n // Do not overwrite actions mocked by @pinia/testing (#2298)\n if (!store._p._testing) {\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n },\n use(plugin) {\n if (!this._a) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n/**\n * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly\n * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.\n * Once disposed, the pinia instance cannot be used anymore.\n *\n * @param pinia - pinia instance\n */\nfunction disposePinia(pinia) {\n pinia._e.stop();\n pinia._s.clear();\n pinia._p.splice(0);\n pinia.state.value = {};\n // @ts-expect-error: non valid\n pinia._a = null;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n newState[key] = subPatch;\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\n/**\n * Marks a function as an action for `$onAction`\n * @internal\n */\nconst ACTION_MARKER = Symbol();\n/**\n * Action name symbol. Allows to add a name to an action after defining it\n * @internal\n */\nconst ACTION_NAME = Symbol();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n else if (target instanceof Set && patchToApply instanceof Set) {\n // Handle Set instances\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[id] = state ? state() : {};\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = { deep: true };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = [];\n let actionSubscriptions = [];\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[$id] = {};\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Helper that wraps function so it can be tracked with $onAction\n * @param fn - action to wrap\n * @param name - name of the action\n */\n const action = (fn, name = '') => {\n if (ACTION_MARKER in fn) {\n fn[ACTION_NAME] = name;\n return fn;\n }\n const wrappedAction = function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name: wrappedAction[ACTION_NAME],\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = fn.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n wrappedAction[ACTION_MARKER] = true;\n wrappedAction[ACTION_NAME] = name; // will be set later\n // @ts-expect-error: we are intentionally limiting the returned type to just Fn\n // because all the added properties are internals that are exposed through `$onAction()` only\n return wrappedAction;\n };\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n const store = reactive((process.env.NODE_ENV !== 'production') || ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT)\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(() => setup({ action }))));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n hotState.value[key] = toRef(setupStore, key);\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n pinia.state.value[$id][key] = prop;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : action(prop, key);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n // @ts-expect-error\n setupStore[key] = actionValue;\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n // @ts-expect-error: any type\n store[stateKey] = toRef(newStore.$state, stateKey);\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[stateKey];\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const actionFn = newStore[actionName];\n // @ts-expect-error: actionName is a string\n store[actionName] =\n //\n action(actionFn, actionName);\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n // @ts-expect-error: getterName is a string\n store[getterName] =\n //\n getterValue;\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const extensions = scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\n// allows unused stores to be tree shaken\n/*! #__NO_SIDE_EFFECTS__ */\nfunction defineStore(\n// TODO: add proper types from above\nid, setup, setupOptions) {\n let options;\n const isSetupStore = typeof setup === 'function';\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : // @ts-expect-error: FIXME: should work?\n store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n const rawStore = toRaw(store);\n const refs = {};\n for (const key in rawStore) {\n const value = rawStore[key];\n // There is no native method to check for a computed\n // https://github.com/vuejs/core/pull/4165\n if (value.effect) {\n // @ts-expect-error: too hard to type correctly\n refs[key] =\n // ...\n computed({\n get: () => store[key],\n set(value) {\n store[key] = value;\n },\n });\n }\n else if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n}\n\nexport { MutationType, acceptHMRUpdate, createPinia, defineStore, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs };\n","// src/stores/tagStore.js\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\n\nexport const useTagStore = defineStore('tag', () => {\n // 定义 categories 变量\n const categories = ref([]);\n const userSetting = ref({user_lang: 'zh_CN'})\n const isFirstLoading = ref(0)\n\n // 更新 categories 的方法\n const setCategories = (newCategories) => {\n categories.value = newCategories;\n };\n\n // 更新 categories 的方法\n const setisFirstLoading = (newData) => {\n isFirstLoading.value = newData;\n };\n\n const setUserSetting = (newUserSetting) => {\n userSetting.value = newUserSetting;\n };\n\n return {\n categories,\n setCategories,\n userSetting,\n setUserSetting,\n isFirstLoading,\n setisFirstLoading,\n };\n});","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.8.3\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","import axios from 'axios'\n\nexport const baseUrl = '/weilin/prompt_ui/api'\n\n// 创建 axios 实例\nconst request = axios.create({\n baseURL: baseUrl, // 基础URL,根据实际情况修改\n timeout: 30000, // 请求超时时间\n headers: {\n 'Content-Type': 'application/json'\n }\n})\n\n// 请求拦截器\nrequest.interceptors.request.use(\n config => {\n // 在这里可以添加token等认证信息\n return config\n },\n error => {\n return Promise.reject(error)\n }\n)\n\n// 响应拦截器\nrequest.interceptors.response.use(\n response => {\n return response.data\n },\n error => {\n return Promise.reject(error)\n }\n)\n\nexport default request ","import request from './request'\n// 语言相关接口\nexport const languageApi = {\n // 获取用户设置\n getUserSetting: async () => {\n return await request({\n url: '/user_init/get_settings',\n method: 'get',\n })\n },\n\n // 设置用户语言\n setUserLanguage: async (data) => {\n return await request({\n url: '/user_init/set_user_lang',\n method: 'post',\n data: {user_lang: data}\n })\n },\n\n // 启动面板\n startPanel: async () => {\n return await request({\n url: '/panel/start',\n method: 'post'\n })\n }\n}","import { createI18n } from 'vue-i18n'\r\nimport zh_CN from './locales/zh_CN'\r\nimport en_US from './locales/en_US'\r\nimport { useTagStore } from '@/stores/tagStore'\r\nimport { languageApi } from '@/api/language'\r\n\r\n// 延迟获取 pinia 实例\r\nconst getTagStore = () => {\r\n return useTagStore()\r\n}\r\n\r\n// 创建 i18n 实例\r\nconst i18n = createI18n({\r\n legacy: false,\r\n locale: 'zh_CN', // 默认语言\r\n fallbackLocale: 'zh_CN',\r\n messages: {\r\n zh_CN,\r\n en_US\r\n }\r\n})\r\n\r\n// 延迟初始化语言设置\r\nconst initLocale = () => {\r\n const tagStore = getTagStore()\r\n languageApi.getUserSetting().then(res => {\r\n tagStore.setUserSetting(res.data)\r\n const savedLocale = tagStore.userSetting?.user_lang || 'zh_CN'\r\n i18n.global.locale.value = savedLocale\r\n })\r\n}\r\n\r\n// 导出设置语言的方法\r\nexport const setLocale = (locale) => {\r\n i18n.global.locale.value = locale\r\n const tagStore = getTagStore()\r\n tagStore.setUserSetting({ user_lang: locale })\r\n}\r\n\r\n// 导出初始化方法\r\nexport const initI18n = () => {\r\n initLocale()\r\n}\r\n\r\nexport default i18n","\n\n\n\n","// 引入创建虚拟节点和渲染方法\nimport { createVNode, render } from \"vue\";\nimport tip from \"./message.vue\";\nimport i18n from '@/i18n'\n\n// 定义一个div容器\nconst div = document.createElement(\"div\");\n// 将定义的容器添加到dom上\ndocument.body.appendChild(div);\n// 定义定时器:一定时间后清除\nlet timer = null;\n\nconst message = ({ str, type, name = \"\" }) => {\n // 调用创建虚拟节点方法\n // 第一个参数为要创建的虚拟节点即编写好的vue组件\n // 第二个参数为props的参数\n\n let translatedMessage = i18n.global.t(str)\n if (name.length > 0) {\n translatedMessage = i18n.global.t(str, { name })\n }\n const vnode = createVNode(tip, { str: translatedMessage, type });\n // 调用渲染方法:将虚拟节点渲染到dom中\n render(vnode, div);\n // 开启定时器,若原先存在则先进行清除\n timer&&clearTimeout(timer);\n timer = setTimeout(() => {\n render(null, div);\n }, 2000);\n};\n\nexport default message","\n\n\n\n","\r\n\r\n\r\n\r\n","import request from './request'\n// 翻译相关接口\nexport const translatorApi = {\n // 离线翻译\n getTranslateLocal: async (text) => {\n return await request({\n url: '/prompt/local/translate',\n method: 'post',\n data: { phrase: text }\n })\n },\n // 获取翻译包信息\n getTranslatePackagesState: async () => {\n return await request({\n url: '/translate/get/packages/state',\n method: 'post',\n data: { }\n })\n },\n // 获取翻译设置\n getTranslateSetting: async () => {\n return await request({\n url: '/translate/get/setting',\n method: 'post',\n data: { }\n })\n },\n // 应用翻译设置\n applyTranslateSetting: async (ss) => {\n return await request({\n url: '/translate/apply_setting',\n method: 'post',\n data: { setting: ss }\n })\n },\n // 安装翻译包\n installTranslatePackage: async () => {\n return await request({\n url: '/translate/install/translaterpackage',\n method: 'post',\n timeout: 0,\n data: { }\n })\n },\n // 获取翻译库设置\n getTranslateBuktSetting: async () => {\n return await request({\n url: '/translate/get/tran_setting',\n method: 'post',\n data: { }\n })\n },\n // 应用翻译库设置\n saveTranslateSetting: async (a,b,c) => {\n return await request({\n url: '/translate/save_tran/setting',\n method: 'post',\n data: { service: a,source_lang:b,target_lang:c }\n })\n },\n // 翻译文本\n translaterText: async (str_object, text) => {\n return await request({\n url: '/translate/tran/text',\n method: 'post',\n timeout: 0,\n data: { str_object, text }\n })\n },\n // 翻译输入的文本\n translaterInputText: async (str_object, text) => {\n return await request({\n url: '/translate/tran/input',\n method: 'post',\n timeout: 0,\n data: { str_object, text }\n })\n },\n}","import request from './request'\n// 自动补全相关接口\nexport const autocompleteApi = {\n // 自动补全获取\n getAutocomplete: async (text) => {\n return await request({\n url: '/prompt/fast/autocomplete',\n method: 'post',\n data: { query: text }\n })\n },\n\n getAutocompleteLimit: async () => {\n return await request({\n url: '/get/setting/get_auto_limit_setting',\n method: 'post'\n })\n },\n\n updateAutocompleteLimit: async (limit) => {\n return await request({\n url: '/update/setting/update_auto_limit_setting',\n method: 'post',\n data: {\n limit: limit\n }\n })\n },\n}","import request from './request'\n// OpenAI 相关接口\nexport const openaiApi = {\n // 更新设置\n updateOpenAiSetting: async (data) => {\n return await request({\n url: '/prompt/openai/update_settings',\n method: 'post',\n data\n })\n },\n\n // 添加设置\n addOpenAiSetting: async (data) => {\n return await request({\n url: '/prompt/openai/add_setting',\n method: 'post',\n data\n })\n },\n\n // 删除设置\n deleteOpenAiSetting: async (data) => {\n return await request({\n url: '/prompt/openai/delete_setting',\n method: 'post',\n data\n })\n },\n\n // 设置选中\n setOpenAiSelect: async (data) => {\n return await request({\n url: '/prompt/openai/set_select',\n method: 'post',\n data\n })\n },\n\n getOpenAiSetting: async () => {\n return await request({\n url: '/prompt/openai/get_settings',\n method: 'get'\n })\n }\n\n}","// 翻译服务列表\nexport const translaterSerives = \n[\n \"alibaba\",\n \"baidu\",\n \"bing\",\n \"deepl\",\n \"youdao\",\n \"qqtransmart\",\n \"sogou\",\n \"niutrans\",\n \"mymemory\",\n \"modernmt\",\n \"volcengine\",\n \"iciba\",\n \"iflytek\",\n \"google\",\n \"lingvanex\",\n \"yandex\",\n \"itranslate\",\n \"systran\",\n \"argos\",\n \"apertium\",\n \"reverso\",\n \"cloudtranslation\",\n \"translatecom\",\n \"tilde\",\n \"caiyun\",\n \"qqfanyi\",\n \"translateme\",\n \"papago\",\n \"mirai\",\n \"iflyrec\",\n \"hujiang\",\n \"yeekit\",\n \"languagewire\",\n \"elia\",\n \"judic\",\n \"mglip\",\n \"utibet\"\n]\n\nexport const language = \n[\n {\"language\": \"chinese\", \"translator\": \"zh\"},\n {\"language\": \"english\", \"translator\": \"en\"},\n {\"language\": \"arabic\", \"translator\": \"ar\"},\n {\"language\": \"russian\", \"translator\": \"ru\"},\n {\"language\": \"french\", \"translator\": \"fr\"},\n {\"language\": \"german\", \"translator\": \"de\"},\n {\"language\": \"spanish\", \"translator\": \"es\"},\n {\"language\": \"portuguese\", \"translator\": \"pt\"},\n {\"language\": \"italian\", \"translator\": \"it\"},\n {\"language\": \"japanese\", \"translator\": \"ja\"},\n {\"language\": \"korean\", \"translator\": \"ko\"},\n {\"language\": \"greek\", \"translator\": \"el\"},\n {\"language\": \"dutch\", \"translator\": \"nl\"},\n {\"language\": \"hindi\", \"translator\": \"hi\"},\n {\"language\": \"turkish\", \"translator\": \"tr\"},\n {\"language\": \"malay\", \"translator\": \"ms\"},\n {\"language\": \"thai\", \"translator\": \"th\"},\n {\"language\": \"vietnamese\", \"translator\": \"vi\"},\n {\"language\": \"indonesian\", \"translator\": \"id\"},\n {\"language\": \"hebrew\", \"translator\": \"he\"},\n {\"language\": \"polish\", \"translator\": \"pl\"},\n {\"language\": \"mongolian\", \"translator\": \"mn\"},\n {\"language\": \"czech\", \"translator\": \"cs\"},\n {\"language\": \"hungarian\", \"translator\": \"hu\"},\n {\"language\": \"estonian\", \"translator\": \"et\"},\n {\"language\": \"bulgarian\", \"translator\": \"bg\"},\n {\"language\": \"danish\", \"translator\": \"da\"},\n {\"language\": \"finnish\", \"translator\": \"fi\"},\n {\"language\": \"romanian\", \"translator\": \"ro\"},\n {\"language\": \"swedish\", \"translator\": \"sv\"},\n {\"language\": \"slovenian\", \"translator\": \"sl\"},\n {\"language\": \"persian/farsi\", \"translator\": \"fa\"},\n {\"language\": \"bosnian\", \"translator\": \"bs\"},\n {\"language\": \"serbian\", \"translator\": \"sr\"},\n {\"language\": \"fijian\", \"translator\": \"fj\"},\n {\"language\": \"filipino\", \"translator\": \"tl\"},\n {\"language\": \"haitiancreole\", \"translator\": \"ht\"},\n {\"language\": \"catalan\", \"translator\": \"ca\"},\n {\"language\": \"croatian\", \"translator\": \"hr\"},\n {\"language\": \"latvian\", \"translator\": \"lv\"},\n {\"language\": \"lithuanian\", \"translator\": \"lt\"},\n {\"language\": \"urdu\", \"translator\": \"ur\"},\n {\"language\": \"ukrainian\", \"translator\": \"uk\"},\n {\"language\": \"welsh\", \"translator\": \"cy\"},\n {\"language\": \"tahiti\", \"translator\": \"ty\"},\n {\"language\": \"tongan\", \"translator\": \"to\"},\n {\"language\": \"swahili\", \"translator\": \"sw\"},\n {\"language\": \"samoan\", \"translator\": \"sm\"},\n {\"language\": \"slovak\", \"translator\": \"sk\"},\n {\"language\": \"afrikaans\", \"translator\": \"af\"},\n {\"language\": \"norwegian\", \"translator\": \"no\"},\n {\"language\": \"bengali\", \"translator\": \"bn\"},\n {\"language\": \"malagasy\", \"translator\": \"mg\"},\n {\"language\": \"maltese\", \"translator\": \"mt\"},\n {\"language\": \"queretaro otomi\", \"translator\": \"otq\"},\n {\"language\": \"klingon/tlhingan hol\", \"translator\": \"tlh\"},\n {\"language\": \"gujarati\", \"translator\": \"gu\"},\n {\"language\": \"tamil\", \"translator\": \"ta\"},\n {\"language\": \"telugu\", \"translator\": \"te\"},\n {\"language\": \"punjabi\", \"translator\": \"pa\"},\n {\"language\": \"amharic\", \"translator\": \"am\"},\n {\"language\": \"azerbaijani\", \"translator\": \"az\"},\n {\"language\": \"bashkir\", \"translator\": \"ba\"},\n {\"language\": \"belarusian\", \"translator\": \"be\"},\n {\"language\": \"cebuano\", \"translator\": \"ceb\"},\n {\"language\": \"chuvash\", \"translator\": \"cv\"},\n {\"language\": \"esperanto\", \"translator\": \"eo\"},\n {\"language\": \"basque\", \"translator\": \"eu\"},\n {\"language\": \"irish\", \"translator\": \"ga\"}\n]","import request from './request'\r\n\r\nexport const aiServerApi = {\r\n\r\n getAiServerSetting: async (path) => {\r\n return await request({\r\n url: '/ai_server/get_settings',\r\n method: 'post',\r\n data: { }\r\n })\r\n },\r\n\r\n updateAiServerSetting: async (data) => {\r\n return await request({\r\n url: '/ai_server/update_settings',\r\n method: 'post',\r\n data\r\n })\r\n },\r\n\r\n getAiModels: async () => {\r\n return await request({\r\n url: '/ai_server/get_ai_models',\r\n method: 'post',\r\n data: { }\r\n })\r\n },\r\n}","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","\n\n\n\n ","import request from './request'\n// 添加前缀常量\nconst STORAGE_PREFIX = 'weilin_tools_'\n// 提示词相关接口\nexport const tagsApi = {\n\n // 获取提示词列表\n getTagsList: async (params) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/get_group_tags',\n method: 'get',\n params: {...params,lang:savedLocale}\n })\n },\n\n // 添加主分类\n addPrimaryCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/add_new_f_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 编辑主分类\n editPrimaryCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/edit_f_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 删除主分类\n deletePrimaryCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/delete_f_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 添加子分类\n addSubCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/add_new_s_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 编辑子分类\n editSubCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/edit_s_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 删除子分类\n deleteSubCategory: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: `/prompt/delete_s_group`,\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 添加提示词\n addNewTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/new_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 编辑提示词\n editTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/edit_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 删除提示词\n deleteTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/delete_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 批量删除提示词\n batchDeleteTags: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/batch_delete_tags',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 移动标签\n moveTag: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/move_tag',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 获取选择的标签列表\n getTagsGroupList: async () => {\n return await request({\n url: '/prompt/get_groups_list',\n method: 'post',\n })\n },\n\n // 执行SQL数组脚本\n runSQLToServer: async (arr) => {\n return await request({\n url: '/prompt/run_sql_text',\n method: 'post',\n timeout: 0,\n data: {\n sql: arr\n }\n })\n },\n\n // 移动主分组\n moveMainGroup: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/move_group',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n // 移动子分组\n moveSubGroup: async (data) => {\n // 从 localStorage 获取保存的语言设置\n const savedLocale = localStorage.getItem(`${STORAGE_PREFIX}userLocale`) || 'zh_CN'\n return await request({\n url: '/prompt/move_subgroup',\n method: 'post',\n data: {...data,lang:savedLocale}\n })\n },\n\n getTagMainGroup: async () => {\n return await request({\n url: '/prompt/get_tag_groups',\n method: 'post',\n })\n },\n\n getTagSubGroup: async (p_uuid) => {\n return await request({\n url: '/prompt/get_tag_subgroups',\n method: 'post',\n data: {p_uuid}\n })\n },\n\n getTagList: async (g_uuid) => {\n return await request({\n url: '/prompt/get_tag_tags',\n method: 'post',\n data: {g_uuid}\n })\n },\n\n searchTag: async (keyword) => {\n return await request({\n url: '/prompt/search_tags',\n method: 'post',\n data: {keyword}\n })\n },\n}","/**\n * uuidv7: A JavaScript implementation of UUID version 7\n *\n * Copyright 2021-2024 LiosK\n *\n * @license Apache-2.0\n * @packageDocumentation\n */\nconst DIGITS = \"0123456789abcdef\";\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(bytes) {\n this.bytes = bytes;\n }\n /**\n * Creates an object from the internal representation, a 16-byte byte array\n * containing the binary UUID representation in the big-endian byte order.\n *\n * This method does NOT shallow-copy the argument, and thus the created object\n * holds the reference to the underlying buffer.\n *\n * @throws TypeError if the length of the argument is not 16.\n */\n static ofInner(bytes) {\n if (bytes.length !== 16) {\n throw new TypeError(\"not 128-bit length\");\n }\n else {\n return new UUID(bytes);\n }\n }\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n * @throws RangeError if any field value is out of the specified range.\n */\n static fromFieldsV7(unixTsMs, randA, randBHi, randBLo) {\n if (!Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 281474976710655 ||\n randA > 0xfff ||\n randBHi > 1073741823 ||\n randBLo > 4294967295) {\n throw new RangeError(\"invalid field value\");\n }\n const bytes = new Uint8Array(16);\n bytes[0] = unixTsMs / 2 ** 40;\n bytes[1] = unixTsMs / 2 ** 32;\n bytes[2] = unixTsMs / 2 ** 24;\n bytes[3] = unixTsMs / 2 ** 16;\n bytes[4] = unixTsMs / 2 ** 8;\n bytes[5] = unixTsMs;\n bytes[6] = 0x70 | (randA >>> 8);\n bytes[7] = randA;\n bytes[8] = 0x80 | (randBHi >>> 24);\n bytes[9] = randBHi >>> 16;\n bytes[10] = randBHi >>> 8;\n bytes[11] = randBHi;\n bytes[12] = randBLo >>> 24;\n bytes[13] = randBLo >>> 16;\n bytes[14] = randBLo >>> 8;\n bytes[15] = randBLo;\n return new UUID(bytes);\n }\n /**\n * Builds a byte array from a string representation.\n *\n * This method accepts the following formats:\n *\n * - 32-digit hexadecimal format without hyphens: `0189dcd553117d408db09496a2eef37b`\n * - 8-4-4-4-12 hyphenated format: `0189dcd5-5311-7d40-8db0-9496a2eef37b`\n * - Hyphenated format with surrounding braces: `{0189dcd5-5311-7d40-8db0-9496a2eef37b}`\n * - RFC 9562 URN format: `urn:uuid:0189dcd5-5311-7d40-8db0-9496a2eef37b`\n *\n * Leading and trailing whitespaces represents an error.\n *\n * @throws SyntaxError if the argument could not parse as a valid UUID string.\n */\n static parse(uuid) {\n var _a, _b, _c, _d;\n let hex = undefined;\n switch (uuid.length) {\n case 32:\n hex = (_a = /^[0-9a-f]{32}$/i.exec(uuid)) === null || _a === void 0 ? void 0 : _a[0];\n break;\n case 36:\n hex =\n (_b = /^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i\n .exec(uuid)) === null || _b === void 0 ? void 0 : _b.slice(1, 6).join(\"\");\n break;\n case 38:\n hex =\n (_c = /^\\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\\}$/i\n .exec(uuid)) === null || _c === void 0 ? void 0 : _c.slice(1, 6).join(\"\");\n break;\n case 45:\n hex =\n (_d = /^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i\n .exec(uuid)) === null || _d === void 0 ? void 0 : _d.slice(1, 6).join(\"\");\n break;\n default:\n break;\n }\n if (hex) {\n const inner = new Uint8Array(16);\n for (let i = 0; i < 16; i += 4) {\n const n = parseInt(hex.substring(2 * i, 2 * i + 8), 16);\n inner[i + 0] = n >>> 24;\n inner[i + 1] = n >>> 16;\n inner[i + 2] = n >>> 8;\n inner[i + 3] = n;\n }\n return new UUID(inner);\n }\n else {\n throw new SyntaxError(\"could not parse UUID string\");\n }\n }\n /**\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (`0189dcd5-5311-7d40-8db0-9496a2eef37b`).\n */\n toString() {\n let text = \"\";\n for (let i = 0; i < this.bytes.length; i++) {\n text += DIGITS.charAt(this.bytes[i] >>> 4);\n text += DIGITS.charAt(this.bytes[i] & 0xf);\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += \"-\";\n }\n }\n return text;\n }\n /**\n * @returns The 32-digit hexadecimal representation without hyphens\n * (`0189dcd553117d408db09496a2eef37b`).\n */\n toHex() {\n let text = \"\";\n for (let i = 0; i < this.bytes.length; i++) {\n text += DIGITS.charAt(this.bytes[i] >>> 4);\n text += DIGITS.charAt(this.bytes[i] & 0xf);\n }\n return text;\n }\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toJSON() {\n return this.toString();\n }\n /**\n * Reports the variant field value of the UUID or, if appropriate, \"NIL\" or\n * \"MAX\".\n *\n * For convenience, this method reports \"NIL\" or \"MAX\" if `this` represents\n * the Nil or Max UUID, although the Nil and Max UUIDs are technically\n * subsumed under the variants `0b0` and `0b111`, respectively.\n */\n getVariant() {\n const n = this.bytes[8] >>> 4;\n if (n < 0) {\n throw new Error(\"unreachable\");\n }\n else if (n <= 0b0111) {\n return this.bytes.every((e) => e === 0) ? \"NIL\" : \"VAR_0\";\n }\n else if (n <= 0b1011) {\n return \"VAR_10\";\n }\n else if (n <= 0b1101) {\n return \"VAR_110\";\n }\n else if (n <= 0b1111) {\n return this.bytes.every((e) => e === 0xff) ? \"MAX\" : \"VAR_RESERVED\";\n }\n else {\n throw new Error(\"unreachable\");\n }\n }\n /**\n * Returns the version field value of the UUID or `undefined` if the UUID does\n * not have the variant field value of `0b10`.\n */\n getVersion() {\n return this.getVariant() === \"VAR_10\" ? this.bytes[6] >>> 4 : undefined;\n }\n /** Creates an object from `this`. */\n clone() {\n return new UUID(this.bytes.slice(0));\n }\n /** Returns true if `this` is equivalent to `other`. */\n equals(other) {\n return this.compareTo(other) === 0;\n }\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other) {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i];\n if (diff !== 0) {\n return Math.sign(diff);\n }\n }\n return 0;\n }\n}\n/**\n * Encapsulates the monotonic counter state.\n *\n * This class provides APIs to utilize a separate counter state from that of the\n * global generator used by {@link uuidv7} and {@link uuidv7obj}. In addition to\n * the default {@link generate} method, this class has {@link generateOrAbort}\n * that is useful to absolutely guarantee the monotonically increasing order of\n * generated UUIDs. See their respective documentation for details.\n */\nexport class V7Generator {\n /**\n * Creates a generator object with the default random number generator, or\n * with the specified one if passed as an argument. The specified random\n * number generator should be cryptographically strong and securely seeded.\n */\n constructor(randomNumberGenerator) {\n this.timestamp = 0;\n this.counter = 0;\n this.random = randomNumberGenerator !== null && randomNumberGenerator !== void 0 ? randomNumberGenerator : getDefaultRandom();\n }\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns a monotonically increasing UUID by reusing the previous\n * timestamp even if the up-to-date timestamp is smaller than the immediately\n * preceding UUID's. However, when such a clock rollback is considered\n * significant (i.e., by more than ten seconds), this method resets the\n * generator and returns a new UUID based on the given timestamp, breaking the\n * increasing order of UUIDs.\n *\n * See {@link generateOrAbort} for the other mode of generation and\n * {@link generateOrResetCore} for the low-level primitive.\n */\n generate() {\n return this.generateOrResetCore(Date.now(), 10000);\n }\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns a monotonically increasing UUID by reusing the previous\n * timestamp even if the up-to-date timestamp is smaller than the immediately\n * preceding UUID's. However, when such a clock rollback is considered\n * significant (i.e., by more than ten seconds), this method aborts and\n * returns `undefined` immediately.\n *\n * See {@link generate} for the other mode of generation and\n * {@link generateOrAbortCore} for the low-level primitive.\n */\n generateOrAbort() {\n return this.generateOrAbortCore(Date.now(), 10000);\n }\n /**\n * Generates a new UUIDv7 object from the `unixTsMs` passed, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method is equivalent to {@link generate} except that it takes a custom\n * timestamp and clock rollback allowance.\n *\n * @param rollbackAllowance - The amount of `unixTsMs` rollback that is\n * considered significant. A suggested value is `10_000` (milliseconds).\n * @throws RangeError if `unixTsMs` is not a 48-bit positive integer.\n */\n generateOrResetCore(unixTsMs, rollbackAllowance) {\n let value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);\n if (value === undefined) {\n // reset state and resume\n this.timestamp = 0;\n value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);\n }\n return value;\n }\n /**\n * Generates a new UUIDv7 object from the `unixTsMs` passed, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method is equivalent to {@link generateOrAbort} except that it takes a\n * custom timestamp and clock rollback allowance.\n *\n * @param rollbackAllowance - The amount of `unixTsMs` rollback that is\n * considered significant. A suggested value is `10_000` (milliseconds).\n * @throws RangeError if `unixTsMs` is not a 48-bit positive integer.\n */\n generateOrAbortCore(unixTsMs, rollbackAllowance) {\n const MAX_COUNTER = 4398046511103;\n if (!Number.isInteger(unixTsMs) ||\n unixTsMs < 1 ||\n unixTsMs > 281474976710655) {\n throw new RangeError(\"`unixTsMs` must be a 48-bit positive integer\");\n }\n else if (rollbackAllowance < 0 || rollbackAllowance > 281474976710655) {\n throw new RangeError(\"`rollbackAllowance` out of reasonable range\");\n }\n if (unixTsMs > this.timestamp) {\n this.timestamp = unixTsMs;\n this.resetCounter();\n }\n else if (unixTsMs + rollbackAllowance >= this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++;\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++;\n this.resetCounter();\n }\n }\n else {\n // abort if clock went backwards to unbearable extent\n return undefined;\n }\n return UUID.fromFieldsV7(this.timestamp, Math.trunc(this.counter / 2 ** 30), this.counter & (2 ** 30 - 1), this.random.nextUint32());\n }\n /** Initializes the counter at a 42-bit random integer. */\n resetCounter() {\n this.counter =\n this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff);\n }\n /**\n * Generates a new UUIDv4 object utilizing the random number generator inside.\n *\n * @internal\n */\n generateV4() {\n const bytes = new Uint8Array(Uint32Array.of(this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32()).buffer);\n bytes[6] = 0x40 | (bytes[6] >>> 4);\n bytes[8] = 0x80 | (bytes[8] >>> 2);\n return UUID.ofInner(bytes);\n }\n}\n/** Returns the default random number generator available in the environment. */\nconst getDefaultRandom = () => {\n // detect Web Crypto API\n if (typeof crypto !== \"undefined\" &&\n typeof crypto.getRandomValues !== \"undefined\") {\n return new BufferedCryptoRandom();\n }\n else {\n // fall back on Math.random() unless the flag is set to true\n if (typeof UUIDV7_DENY_WEAK_RNG !== \"undefined\" && UUIDV7_DENY_WEAK_RNG) {\n throw new Error(\"no cryptographically strong RNG available\");\n }\n return {\n nextUint32: () => Math.trunc(Math.random() * 65536) * 65536 +\n Math.trunc(Math.random() * 65536),\n };\n }\n};\n/**\n * Wraps `crypto.getRandomValues()` to enable buffering; this uses a small\n * buffer by default to avoid both unbearable throughput decline in some\n * environments and the waste of time and space for unused values.\n */\nclass BufferedCryptoRandom {\n constructor() {\n this.buffer = new Uint32Array(8);\n this.cursor = 0xffff;\n }\n nextUint32() {\n if (this.cursor >= this.buffer.length) {\n crypto.getRandomValues(this.buffer);\n this.cursor = 0;\n }\n return this.buffer[this.cursor++];\n }\n}\nlet defaultGenerator;\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = () => uuidv7obj().toString();\n/** Generates a UUIDv7 object. */\nexport const uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator())).generate();\n/**\n * Generates a UUIDv4 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv4 = () => uuidv4obj().toString();\n/** Generates a UUIDv4 object. */\nexport const uuidv4obj = () => (defaultGenerator || (defaultGenerator = new V7Generator())).generateV4();\n","\n\n\n\n\n","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","\n\n\n\n","\r\n\r\n\r\n\r\n\r\n","import { ref } from 'vue'\n\nconst baseZIndex = 100\nconst activeWindow = ref('')\nconst windowZIndexes = ref({})\n\nexport const windowManager = {\n // 设置活动窗口\n setActiveWindow(windowName) {\n if (activeWindow.value !== windowName) {\n activeWindow.value = windowName\n // 更新所有窗口的 z-index\n Object.keys(windowZIndexes.value).forEach(key => {\n windowZIndexes.value[key] = baseZIndex\n })\n // 设置当前窗口为最高层\n windowZIndexes.value[windowName] = baseZIndex + 10\n }\n },\n\n // 获取窗口的 z-index\n getZIndex(windowName) {\n if (!windowZIndexes.value[windowName]) {\n windowZIndexes.value[windowName] = baseZIndex\n }\n return windowZIndexes.value[windowName]\n },\n\n // 注册窗口\n registerWindow(windowName) {\n if (!windowZIndexes.value[windowName]) {\n windowZIndexes.value[windowName] = baseZIndex\n }\n },\n\n // 注销窗口\n unregisterWindow(windowName) {\n delete windowZIndexes.value[windowName]\n }\n} ","import request from './request'\n\n// Lora相关接口\nexport const loraApi = {\n // 获取Lora列表\n getLoraList: async (params) => {\n return await request({\n url: '/get_lora_list',\n method: 'get',\n params\n })\n },\n\n // 获取Lora全部列表\n getAllLoraList: async (params) => {\n return await request({\n url: '/get_lora_load_all',\n method: 'get',\n params\n })\n },\n\n // 获取执行进度\n getAllLoraStatus: async (params) => {\n return await request({\n url: '/get_lora_load_status',\n method: 'get',\n params\n })\n },\n\n // 获取Lora详情\n getLoraDetail: async (params) => {\n return await request({\n url: '/lorainfo/api/loras/info',\n method: 'get',\n params\n })\n },\n\n // 获取Lora信息C站获取\n getLoraRefresh: async (params) => {\n return await request({\n url: '/lorainfo/api/loras/info/refresh',\n method: 'get',\n params\n })\n },\n\n // 上传Lora图片\n postUplaodImg: async (image,path,fileName) => {\n const body = new FormData();\n body.append(\"image\", image);\n body.append(\"path\", path);\n body.append(\"fileName\", fileName);\n return await request({\n url: \"/lorainfo/api/loras/set/img\",\n method: 'post',\n data: body,\n headers: {'Content-Type': 'multipart/form-data'}\n })\n },\n\n // 保存Lora信息\n postLoraSave: async (file,json) => {\n const body = new FormData();\n body.append(\"json\", JSON.stringify(json));\n return await request({\n url: \"/lorainfo/api/loras/info?file=\"+file,\n method: 'post',\n data: body,\n headers: {'Content-Type': 'multipart/form-data'}\n })\n },\n\n // 删除Lora信息字段\n postLoraDelet: async (file,json) => {\n return await request({\n url: \"/lorainfo/api/delete/loras/info/filed?file=\"+file,\n method: 'post',\n data: {\n json: json,\n },\n })\n },\n\n // 获取Lora文件夹列表\n getLoraFolderList: async () => {\n return await request({\n url: '/get_lora_folder_list',\n method: 'post',\n })\n },\n // 根据数组获取Lora具体信息\n getLoraRangeList: async (range) => {\n return await request({\n url: '/get_lora_list_by_range',\n method: 'post',\n data:{ range }\n })\n },\n // 查询Lora返回相关信息\n searchLoraGetFolderList: async (search) => {\n return await request({\n url: '/get_lora_list_by_search',\n method: 'post',\n data:{ search }\n })\n },\n} ","import { h, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createVNode } from 'vue';\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nvar REG_LINK$1 = /^([hH][tT]{2}[pP]:\\/\\/|[hH][tT]{2}[pP][sS]:\\/\\/)(([A-Za-z0-9-~]+)\\.)+([A-Za-z0-9-~\\/])+$/;\nvar script$a = {\n name: 'JsonString',\n props: {\n jsonValue: {\n type: String,\n required: true\n }\n },\n data: function data() {\n return {\n expand: true,\n canExtend: false\n };\n },\n mounted: function mounted() {\n if (this.$refs.itemRef.offsetHeight > this.$refs.holderRef.offsetHeight) {\n this.canExtend = true;\n }\n },\n methods: {\n toggle: function toggle() {\n this.expand = !this.expand;\n }\n },\n render: function render() {\n var value = this.jsonValue;\n var islink = REG_LINK$1.test(value);\n var domItem;\n if (!this.expand) {\n domItem = {\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n innerText: '...'\n };\n } else {\n domItem = {\n 'class': {\n 'jv-item': true,\n 'jv-string': true\n },\n ref: 'itemRef'\n };\n if (islink) {\n value = '').concat(value, '');\n domItem.innerHTML = '\"'.concat(value.toString(), '\"');\n } else {\n domItem.innerText = '\"'.concat(value.toString(), '\"');\n }\n }\n return h('span', {}, [\n this.canExtend && h('span', {\n 'class': {\n 'jv-toggle': true,\n open: this.expand\n },\n onClick: this.toggle\n }),\n h('span', {\n 'class': { 'jv-holder-node': true },\n ref: 'holderRef'\n }),\n h('span', domItem)\n ]);\n }\n};\n\nscript$a.__file = \"src/Components/types/json-string.vue\";\n\nvar script$9 = {\n name: 'JsonUndefined',\n functional: true,\n props: {\n jsonValue: {\n type: Object,\n 'default': null\n }\n },\n render: function render() {\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-undefined': true\n },\n innerText: this.jsonValue === null ? 'null' : 'undefined'\n });\n }\n};\n\nscript$9.__file = \"src/Components/types/json-undefined.vue\";\n\nvar script$8 = {\n name: 'JsonNumber',\n functional: true,\n props: {\n jsonValue: {\n type: Number,\n required: true\n }\n },\n render: function render() {\n var isInteger = Number.isInteger(this.jsonValue);\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-number': true,\n 'jv-number-integer': isInteger,\n 'jv-number-float': !isInteger\n },\n innerText: this.jsonValue.toString()\n });\n }\n};\n\nscript$8.__file = \"src/Components/types/json-number.vue\";\n\nvar script$7 = {\n name: 'JsonBoolean',\n functional: true,\n props: { jsonValue: Boolean },\n render: function render() {\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-boolean': true\n },\n innerText: this.jsonValue.toString()\n });\n }\n};\n\nscript$7.__file = \"src/Components/types/json-boolean.vue\";\n\nvar script$6 = {\n name: 'JsonObject',\n props: {\n jsonValue: {\n type: Object,\n required: true\n },\n keyName: {\n type: String,\n 'default': ''\n },\n depth: {\n type: Number,\n 'default': 0\n },\n expand: Boolean,\n sort: Boolean,\n previewMode: Boolean\n },\n data: function data() {\n return { value: {} };\n },\n computed: {\n ordered: function ordered() {\n var _this = this;\n if (!this.sort) {\n return this.value;\n }\n var ordered = {};\n Object.keys(this.value).sort().forEach(function (key) {\n ordered[key] = _this.value[key];\n });\n return ordered;\n }\n },\n watch: {\n jsonValue: function jsonValue(newVal) {\n this.setValue(newVal);\n }\n },\n mounted: function mounted() {\n this.setValue(this.jsonValue);\n },\n methods: {\n setValue: function setValue(val) {\n var _this2 = this;\n setTimeout(function () {\n _this2.value = val;\n }, 0);\n },\n toggle: function toggle() {\n this.$emit('update:expand', !this.expand);\n this.dispatchEvent();\n },\n dispatchEvent: function dispatchEvent() {\n try {\n this.$el.dispatchEvent(new Event('resized'));\n } catch (e) {\n var evt = document.createEvent('Event');\n evt.initEvent('resized', true, false);\n this.$el.dispatchEvent(evt);\n }\n }\n },\n render: function render() {\n var elements = [];\n if (!this.previewMode && !this.keyName) {\n elements.push(h('span', {\n 'class': {\n 'jv-toggle': true,\n 'open': !!this.expand\n },\n onClick: this.toggle\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-object': true\n },\n innerText: '{'\n }));\n if (this.expand) {\n for (var key in this.ordered) {\n if (this.ordered.hasOwnProperty(key)) {\n var value = this.ordered[key];\n elements.push(h(script$1, {\n key: key,\n style: { display: !this.expand ? 'none' : undefined },\n sort: this.sort,\n keyName: key,\n depth: this.depth + 1,\n value: value,\n previewMode: this.previewMode\n }));\n }\n }\n }\n if (!this.expand && Object.keys(this.value).length) {\n elements.push(h('span', {\n style: { display: this.expand ? 'none' : undefined },\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n title: 'click to reveal object content (keys: '.concat(Object.keys(this.ordered).join(', '), ')'),\n innerText: '...'\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-object': true\n },\n innerText: '}'\n }));\n return h('span', elements);\n }\n};\n\nscript$6.__file = \"src/Components/types/json-object.vue\";\n\nvar script$5 = {\n name: 'JsonArray',\n props: {\n jsonValue: {\n type: Array,\n required: true\n },\n keyName: {\n type: String,\n 'default': ''\n },\n depth: {\n type: Number,\n 'default': 0\n },\n sort: Boolean,\n expand: Boolean,\n previewMode: Boolean\n },\n data: function data() {\n return { value: [] };\n },\n watch: {\n jsonValue: function jsonValue(newVal) {\n this.setValue(newVal);\n }\n },\n mounted: function mounted() {\n this.setValue(this.jsonValue);\n },\n methods: {\n setValue: function setValue(vals) {\n var _this = this;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (index === 0) {\n this.value = [];\n }\n setTimeout(function () {\n if (vals.length > index) {\n _this.value.push(vals[index]);\n _this.setValue(vals, index + 1);\n }\n }, 0);\n },\n toggle: function toggle() {\n this.$emit('update:expand', !this.expand);\n try {\n this.$el.dispatchEvent(new Event('resized'));\n } catch (e) {\n var evt = document.createEvent('Event');\n evt.initEvent('resized', true, false);\n this.$el.dispatchEvent(evt);\n }\n }\n },\n render: function render() {\n var _this2 = this;\n var elements = [];\n if (!this.previewMode && !this.keyName) {\n elements.push(h('span', {\n 'class': {\n 'jv-toggle': true,\n 'open': !!this.expand\n },\n onClick: this.toggle\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-array': true\n },\n innerText: '['\n }));\n if (this.expand) {\n this.value.forEach(function (value, key) {\n elements.push(h(script$1, {\n key: key,\n style: { display: _this2.expand ? undefined : 'none' },\n sort: _this2.sort,\n depth: _this2.depth + 1,\n value: value,\n previewMode: _this2.previewMode\n }));\n });\n }\n if (!this.expand && this.value.length) {\n elements.push(h('span', {\n style: { display: undefined },\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n title: 'click to reveal '.concat(this.value.length, ' hidden items'),\n innerText: '...'\n }));\n }\n elements.push(h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-array': true\n },\n innerText: ']'\n }));\n return h('span', elements);\n }\n};\n\nscript$5.__file = \"src/Components/types/json-array.vue\";\n\nvar script$4 = {\n name: 'JsonFunction',\n functional: true,\n props: {\n jsonValue: {\n type: Function,\n required: true\n }\n },\n render: function render() {\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-function': true\n },\n attrs: { title: this.jsonValue.toString() },\n innerHTML: '<function>'\n });\n }\n};\n\nscript$4.__file = \"src/Components/types/json-function.vue\";\n\nvar script$3 = {\n name: 'JsonDate',\n inject: ['timeformat'],\n functional: true,\n props: {\n jsonValue: {\n type: Date,\n required: true\n }\n },\n render: function render() {\n var value = this.jsonValue;\n var timeformat = this.timeformat;\n return h('span', {\n 'class': {\n 'jv-item': true,\n 'jv-string': true\n },\n innerText: '\"'.concat(timeformat(value), '\"')\n });\n }\n};\n\nscript$3.__file = \"src/Components/types/json-date.vue\";\n\nvar REG_LINK = /^([hH][tT]{2}[pP]:\\/\\/|[hH][tT]{2}[pP][sS]:\\/\\/)(([A-Za-z0-9-~]+)\\.)+([A-Za-z0-9-~\\/])+$/;\nvar script$2 = {\n name: 'JsonString',\n props: {\n jsonValue: {\n type: RegExp,\n required: true\n }\n },\n data: function data() {\n return {\n expand: true,\n canExtend: false\n };\n },\n mounted: function mounted() {\n if (this.$refs.itemRef.offsetHeight > this.$refs.holderRef.offsetHeight) {\n this.canExtend = true;\n }\n },\n methods: {\n toggle: function toggle() {\n this.expand = !this.expand;\n }\n },\n render: function render() {\n var value = this.jsonValue;\n var islink = REG_LINK.test(value);\n var domItem;\n if (!this.expand) {\n domItem = {\n 'class': { 'jv-ellipsis': true },\n onClick: this.toggle,\n innerText: '...'\n };\n } else {\n domItem = {\n 'class': {\n 'jv-item': true,\n 'jv-string': true\n },\n ref: 'itemRef'\n };\n if (islink) {\n value = '').concat(value, '');\n domItem.innerHTML = ''.concat(value.toString());\n } else {\n domItem.innerText = ''.concat(value.toString());\n }\n }\n return h('span', {}, [\n this.canExtend && h('span', {\n 'class': {\n 'jv-toggle': true,\n open: this.expand\n },\n onClick: this.toggle\n }),\n h('span', {\n 'class': { 'jv-holder-node': true },\n ref: 'holderRef'\n }),\n h('span', domItem)\n ]);\n }\n};\n\nscript$2.__file = \"src/Components/types/json-regexp.vue\";\n\nvar script$1 = {\n name: 'JsonBox',\n inject: [\n 'expandDepth',\n 'keyClick'\n ],\n props: {\n value: {\n type: [\n Object,\n Array,\n String,\n Number,\n Boolean,\n Function,\n Date\n ],\n 'default': null\n },\n keyName: {\n type: String,\n 'default': ''\n },\n sort: Boolean,\n depth: {\n type: Number,\n 'default': 0\n },\n previewMode: Boolean\n },\n data: function data() {\n return { expand: true };\n },\n mounted: function mounted() {\n this.expand = this.previewMode || (this.depth >= this.expandDepth ? false : true);\n },\n methods: {\n toggle: function toggle() {\n this.expand = !this.expand;\n try {\n this.$el.dispatchEvent(new Event('resized'));\n } catch (e) {\n var evt = document.createEvent('Event');\n evt.initEvent('resized', true, false);\n this.$el.dispatchEvent(evt);\n }\n }\n },\n render: function render() {\n var _this = this;\n var elements = [];\n var dataType;\n if (this.value === null || this.value === undefined) {\n dataType = script$9;\n } else if (Array.isArray(this.value)) {\n dataType = script$5;\n } else if (Object.prototype.toString.call(this.value) === '[object Date]') {\n dataType = script$3;\n } else if (_typeof(this.value) === 'object') {\n dataType = script$6;\n } else if (typeof this.value === 'number') {\n dataType = script$8;\n } else if (typeof this.value === 'string') {\n dataType = script$a;\n } else if (typeof this.value === 'boolean') {\n dataType = script$7;\n } else if (typeof this.value === 'function') {\n dataType = script$4;\n }\n if (this.value.constructor === RegExp) {\n dataType = script$2;\n }\n var complex = this.keyName && this.value && (Array.isArray(this.value) || _typeof(this.value) === 'object' && Object.prototype.toString.call(this.value) !== '[object Date]');\n if (!this.previewMode && complex) {\n elements.push(h('span', {\n 'class': {\n 'jv-toggle': true,\n open: !!this.expand\n },\n onClick: this.toggle\n }));\n }\n if (this.keyName) {\n elements.push(h('span', {\n 'class': { 'jv-key': true },\n onClick: function onClick() {\n _this.keyClick(_this.keyName);\n },\n innerText: ''.concat(this.keyName, ':')\n }));\n }\n elements.push(h(dataType, {\n 'class': { 'jv-push': true },\n jsonValue: this.value,\n keyName: this.keyName,\n sort: this.sort,\n depth: this.depth,\n expand: this.expand,\n previewMode: this.previewMode,\n 'onUpdate:expand': function onUpdateExpand(value) {\n _this.expand = value;\n }\n }));\n return h('div', {\n 'class': {\n 'jv-node': true,\n 'jv-key-node': Boolean(this.keyName) && !complex,\n toggle: !this.previewMode && complex\n }\n }, elements);\n }\n};\n\nscript$1.__file = \"src/Components/json-box.vue\";\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar clipboard = {exports: {}};\n\n(function (module, exports) {\n (function webpackUniversalModuleDefinition(root, factory) {\n module.exports = factory();\n }(commonjsGlobal, function () {\n return function () {\n var __webpack_modules__ = {\n 686: function (__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n __webpack_require__.d(__webpack_exports__, {\n 'default': function () {\n return clipboard;\n }\n });\n var tiny_emitter = __webpack_require__(279);\n var tiny_emitter_default = __webpack_require__.n(tiny_emitter);\n var listen = __webpack_require__(370);\n var listen_default = __webpack_require__.n(listen);\n var src_select = __webpack_require__(817);\n var select_default = __webpack_require__.n(src_select);\n function command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n }\n var ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n };\n var actions_cut = ClipboardActionCut;\n function createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea');\n fakeElement.style.fontSize = '12pt';\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0';\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px';\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = ''.concat(yPosition, 'px');\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n }\n var fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n };\n var ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { container: document.body };\n var selectedText = '';\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && ![\n 'text',\n 'search',\n 'url',\n 'tel',\n 'password'\n ].includes(target === null || target === void 0 ? void 0 : target.type)) {\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n return selectedText;\n };\n var actions_copy = ClipboardActionCopy;\n function _typeof(obj) {\n '@babel/helpers - typeof';\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n return _typeof(obj);\n }\n var ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$action = options.action, action = _options$action === void 0 ? 'copy' : _options$action, container = options.container, target = options.target, text = options.text;\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n if (text) {\n return actions_copy(text, { container: container });\n }\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, { container: container });\n }\n };\n var actions_default = ClipboardActionDefault;\n function clipboard_typeof(obj) {\n '@babel/helpers - typeof';\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n clipboard_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n clipboard_typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n return clipboard_typeof(obj);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function');\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass)\n _setPrototypeOf(subClass, superClass);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self, call) {\n if (call && (clipboard_typeof(call) === 'object' || typeof call === 'function')) {\n return call;\n }\n return _assertThisInitialized(self);\n }\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError('this hasn\\'t been initialised - super() hasn\\'t been called');\n }\n return self;\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === 'undefined' || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === 'function')\n return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n }));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n function getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-'.concat(suffix);\n if (!element.hasAttribute(attribute)) {\n return;\n }\n return element.getAttribute(attribute);\n }\n var Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n var _super = _createSuper(Clipboard);\n function Clipboard(trigger, options) {\n var _this;\n _classCallCheck(this, Clipboard);\n _this = _super.call(this);\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n _createClass(Clipboard, [\n {\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n },\n {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n },\n {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n });\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n window.getSelection().removeAllRanges();\n }\n });\n }\n },\n {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n },\n {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n if (selector) {\n return document.querySelector(selector);\n }\n }\n },\n {\n key: 'defaultText',\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n }\n }\n ], [\n {\n key: 'copy',\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { container: document.body };\n return actions_copy(target, options);\n }\n },\n {\n key: 'cut',\n value: function cut(target) {\n return actions_cut(target);\n }\n },\n {\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [\n 'copy',\n 'cut'\n ];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }\n ]);\n return Clipboard;\n }(tiny_emitter_default());\n var clipboard = Clipboard;\n },\n 828: function (module) {\n var DOCUMENT_NODE_TYPE = 9;\n if (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector;\n }\n function closest(element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' && element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n }\n module.exports = closest;\n },\n 438: function (module, __unused_webpack_exports, __webpack_require__) {\n var closest = __webpack_require__(828);\n function _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n element.addEventListener(type, listenerFn, useCapture);\n return {\n destroy: function () {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n };\n }\n function delegate(elements, selector, type, callback, useCapture) {\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n if (typeof type === 'function') {\n return _delegate.bind(null, document).apply(null, arguments);\n }\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n }\n function listener(element, selector, type, callback) {\n return function (e) {\n e.delegateTarget = closest(e.target, selector);\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n };\n }\n module.exports = delegate;\n },\n 879: function (__unused_webpack_module, exports) {\n exports.node = function (value) {\n return value !== undefined && value instanceof HTMLElement && value.nodeType === 1;\n };\n exports.nodeList = function (value) {\n var type = Object.prototype.toString.call(value);\n return value !== undefined && (type === '[object NodeList]' || type === '[object HTMLCollection]') && 'length' in value && (value.length === 0 || exports.node(value[0]));\n };\n exports.string = function (value) {\n return typeof value === 'string' || value instanceof String;\n };\n exports.fn = function (value) {\n var type = Object.prototype.toString.call(value);\n return type === '[object Function]';\n };\n },\n 370: function (module, __unused_webpack_exports, __webpack_require__) {\n var is = __webpack_require__(879);\n var delegate = __webpack_require__(438);\n function listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n if (is.node(target)) {\n return listenNode(target, type, callback);\n } else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n } else if (is.string(target)) {\n return listenSelector(target, type, callback);\n } else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n }\n function listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n return {\n destroy: function () {\n node.removeEventListener(type, callback);\n }\n };\n }\n function listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function (node) {\n node.addEventListener(type, callback);\n });\n return {\n destroy: function () {\n Array.prototype.forEach.call(nodeList, function (node) {\n node.removeEventListener(type, callback);\n });\n }\n };\n }\n function listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n }\n module.exports = listen;\n },\n 817: function (module) {\n function select(element) {\n var selectedText;\n if (element.nodeName === 'SELECT') {\n element.focus();\n selectedText = element.value;\n } else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n element.select();\n element.setSelectionRange(0, element.value.length);\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n selectedText = element.value;\n } else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n var selection = window.getSelection();\n var range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n selectedText = selection.toString();\n }\n return selectedText;\n }\n module.exports = select;\n },\n 279: function (module) {\n function E() {\n }\n E.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n return this;\n },\n once: function (name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n },\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n liveEvents.length ? e[name] = liveEvents : delete e[name];\n return this;\n }\n };\n module.exports = E;\n module.exports.TinyEmitter = E;\n }\n };\n var __webpack_module_cache__ = {};\n function __webpack_require__(moduleId) {\n if (__webpack_module_cache__[moduleId]) {\n return __webpack_module_cache__[moduleId].exports;\n }\n var module = __webpack_module_cache__[moduleId] = { exports: {} };\n __webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n return module.exports;\n }\n !function () {\n __webpack_require__.n = function (module) {\n var getter = module && module.__esModule ? function () {\n return module['default'];\n } : function () {\n return module;\n };\n __webpack_require__.d(getter, { a: getter });\n return getter;\n };\n }();\n !function () {\n __webpack_require__.d = function (exports, definition) {\n for (var key in definition) {\n if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: definition[key]\n });\n }\n }\n };\n }();\n !function () {\n __webpack_require__.o = function (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n }();\n return __webpack_require__(686);\n }().default;\n }));\n}(clipboard));\nvar Clipboard = getDefaultExportFromCjs(clipboard.exports);\n\nvar debounce = function debounce(func, wait) {\n var startTime = Date.now();\n var timer;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (Date.now() - startTime < wait && timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(function () {\n func.apply(void 0, args);\n }, wait);\n startTime = Date.now();\n };\n};\n\nvar script = {\n name: 'JsonViewer',\n components: { JsonBox: script$1 },\n props: {\n value: {\n type: [\n Object,\n Array,\n String,\n Number,\n Boolean,\n Function\n ],\n required: true\n },\n expanded: {\n type: Boolean,\n 'default': false\n },\n expandDepth: {\n type: Number,\n 'default': 1\n },\n copyable: {\n type: [\n Boolean,\n Object\n ],\n 'default': false\n },\n sort: {\n type: Boolean,\n 'default': false\n },\n boxed: {\n type: Boolean,\n 'default': false\n },\n theme: {\n type: String,\n 'default': 'light'\n },\n timeformat: {\n type: Function,\n 'default': function _default(value) {\n return value.toLocaleString();\n }\n },\n previewMode: {\n type: Boolean,\n 'default': false\n },\n parse: {\n type: Boolean,\n 'default': false\n }\n },\n provide: function provide() {\n return {\n expandDepth: this.expandDepth,\n timeformat: this.timeformat,\n keyClick: this.keyClick\n };\n },\n data: function data() {\n return {\n copied: false,\n expandableCode: false,\n expandCode: this.expanded\n };\n },\n emits: ['onKeyClick'],\n computed: {\n jvClass: function jvClass() {\n return 'jv-container ' + 'jv-' + this.theme + (this.boxed ? ' boxed' : '');\n },\n copyText: function copyText() {\n var _this$copyable = this.copyable, copyText = _this$copyable.copyText, copiedText = _this$copyable.copiedText, timeout = _this$copyable.timeout, align = _this$copyable.align;\n return {\n copyText: copyText || 'copy',\n copiedText: copiedText || 'copied!',\n timeout: timeout || 2000,\n align: align\n };\n },\n parseValue: function parseValue() {\n if (!this.parse || typeof this.value !== 'string') {\n return this.value;\n }\n try {\n return JSON.parse(this.value);\n } catch (_unused) {\n return this.value;\n }\n }\n },\n watch: {\n value: function value() {\n this.onResized();\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.debounceResized = debounce(this.debResized.bind(this), 200);\n if (this.boxed && this.$refs.jsonBox) {\n this.onResized();\n this.$refs.jsonBox.$el.addEventListener('resized', this.onResized, true);\n }\n if (this.copyable) {\n var clipBoard = new Clipboard(this.$refs.clip, {\n text: function text() {\n return JSON.stringify(_this.value, null, 2);\n }\n });\n clipBoard.on('success', function (e) {\n _this.onCopied(e);\n });\n }\n },\n methods: {\n onResized: function onResized() {\n this.debounceResized();\n },\n debResized: function debResized() {\n var _this2 = this;\n this.$nextTick(function () {\n if (!_this2.$refs.jsonBox)\n return;\n if (_this2.$refs.jsonBox.$el.clientHeight >= 250) {\n _this2.expandableCode = true;\n } else {\n _this2.expandableCode = false;\n }\n });\n },\n keyClick: function keyClick(keyName) {\n this.$emit('onKeyClick', keyName);\n },\n onCopied: function onCopied(copyEvent) {\n var _this3 = this;\n if (this.copied) {\n return;\n }\n this.copied = true;\n setTimeout(function () {\n _this3.copied = false;\n }, this.copyText.timeout);\n this.$emit('copied', copyEvent);\n },\n toggleExpandCode: function toggleExpandCode() {\n this.expandCode = !this.expandCode;\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_json_box = resolveComponent('json-box');\n return openBlock(), createElementBlock('div', { 'class': normalizeClass($options.jvClass) }, [\n $props.copyable ? (openBlock(), createElementBlock('div', {\n key: 0,\n 'class': normalizeClass('jv-tooltip '.concat($options.copyText.align || 'right'))\n }, [createElementVNode('span', {\n ref: 'clip',\n 'class': normalizeClass([\n 'jv-button',\n { copied: $data.copied }\n ])\n }, [renderSlot(_ctx.$slots, 'copy', { copied: $data.copied }, function () {\n return [createTextVNode(toDisplayString($data.copied ? $options.copyText.copiedText : $options.copyText.copyText), 1)];\n })], 2)], 2)) : createCommentVNode('v-if', true),\n createElementVNode('div', {\n 'class': normalizeClass([\n 'jv-code',\n {\n open: $data.expandCode,\n boxed: $props.boxed\n }\n ])\n }, [createVNode(_component_json_box, {\n ref: 'jsonBox',\n value: $options.parseValue,\n sort: $props.sort,\n 'preview-mode': $props.previewMode\n }, null, 8, [\n 'value',\n 'sort',\n 'preview-mode'\n ])], 2),\n $data.expandableCode && $props.boxed ? (openBlock(), createElementBlock('div', {\n key: 1,\n 'class': 'jv-more',\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.toggleExpandCode && $options.toggleExpandCode.apply($options, arguments);\n })\n }, [createElementVNode('span', {\n 'class': normalizeClass([\n 'jv-toggle',\n { open: !!$data.expandCode }\n ])\n }, null, 2)])) : createCommentVNode('v-if', true)\n ], 2);\n}\n\nscript.render = render;\nscript.__file = \"src/Components/json-viewer.vue\";\n\nvar install = function install(app) {\n app.component(script.name, script);\n};\nvar index = { install: install };\n\nexport { script as JsonViewer, index as default };\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","/*\r\n\r\n\t国际化,网页自动翻译。\r\n\t作者:管雷鸣\r\n\t开原仓库:https://github.com/xnx3/translate\r\n */ \r\nif(typeof(translate) == 'object' && typeof(translate.version) == 'string'){\r\n\tthrow new Error('translate.js 已经加载过一次了,当前是重复加载,避免你的翻译出现异常,已帮你拦截此次加载。本信息只是给你一个提示,你可以检查一下你的项目中是否出现了重复引入 translate.js ,当然,这个异常并不会影响到你的具体使用,它已经自动帮你处理拦截了这个异常,只不过提示出来是让你知道,你的代码里出现了重复引入的情况。');\r\n}\r\nvar translate = {\r\n\t/**\r\n\t * 当前的版本\r\n\t * 由 npm 脚本自动更新,无需手动修改\r\n\t * 格式:major.minor.patch.date\r\n\t */\r\n\t// AUTO_VERSION_START\n\tversion: '3.13.12.20250307',\n\t// AUTO_VERSION_END\r\n\t/*\r\n\t\t当前使用的版本,默认使用v2. 可使用 setUseVersion2(); \r\n\t\t来设置使用v2 ,已废弃,主要是区分是否是v1版本来着,v2跟v3版本是同样的使用方式\r\n\t*/\r\n\tuseVersion:'v2',\t\r\n\tsetUseVersion2:function(){\r\n\t\ttranslate.useVersion = 'v2';\r\n\t\tconsole.log('提示:自 v2.10 之后的版本默认就是使用V2版本(当前版本为:'+translate.version+'), translate.setUseVersion2() 可以不用再加这一行了。当然加了也无所谓,只是加了跟不加是完全一样的。');\r\n\t},\r\n\t/*\r\n\t * 翻译的对象,也就是 new google.translate.TranslateElement(...)\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\ttranslate:null,\r\n\t/*\r\n\t * 支持哪些语言切换,包括:de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr\r\n\t * 已废弃,请使用 translate.selectLanguageTag.languages \r\n\t */\r\n\tincludedLanguages:'zh-CN,zh-TW,en',\r\n\t/*\r\n\t * 资源文件url的路径\r\n\t * 已废弃,v1使用的\r\n \t */\r\n\tresourcesUrl:'//res.zvo.cn/translate',\r\n\r\n\t/**\r\n\t * 默认出现的选择语言的 select 选择框,可以通过这个选择切换语言。\r\n\t */\r\n\tselectLanguageTag:{\r\n\t\t/*\r\n\t\t\tv3.1 增加,将 select切换语言的选择框赋予哪个id,这里是具体的id的名字。\r\n\t\t\t如果这个id不存在,会创建这个id的元素\r\n\t\t*/\r\n\t\tdocumentId:'translate',\r\n\t\t/* 是否显示 select选择语言的选择框,true显示; false不显示。默认为true */\r\n\t\tshow:true,\r\n\t\t/* \r\n\t\t\t支持哪些语言切换\r\n\t\t\tv1.x 版本包括:de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr \r\n\t\t\tv2.x 版本根据后端翻译服务不同,支持的语言也不同。具体支持哪些,可通过 http://api.translate.zvo.cn/doc/language.json.html 获取 (如果您私有部署的,将请求域名换为您自己私有部署的域名)\r\n\t\t*/\r\n\t\tlanguages:'',\r\n\t\talreadyRender:false, //当前是否已渲染过了 true为是 v2.2增加\r\n\t\tselectOnChange:function(event){\r\n\t\t\tvar language = event.target.value;\r\n\t\t\ttranslate.changeLanguage(language);\r\n\t\t},\r\n\t\t//重新绘制 select 语种下拉选择。比如进行二次开发过translate.js,手动进行了设置 translate.to ,但是手动改动后的,在select语种选择框中并不会自动进行改变,这是就需要手动重新绘制一下 select语种选择的下拉选择框\r\n\t\trefreshRender:function(){\r\n\t\t\t// 获取元素\r\n\t\t\tlet element = document.getElementById(translate.selectLanguageTag.documentId+\"SelectLanguage\");\r\n\r\n\t\t\t// 删除元素\r\n\t\t\tif (element) {\r\n\t\t\t\telement.parentNode.removeChild(element);\r\n\t\t\t}\r\n\r\n\t\t\t//设置为未 render 状态,允许进行 render\r\n\t\t\ttranslate.selectLanguageTag.alreadyRender = false;\t\r\n\r\n\t\t\ttranslate.selectLanguageTag.render();\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t\t自定义切换语言的样式渲染 v3.2.4 增加\r\n\t\t\t\r\n\t\t*/\r\n\t\tcustomUI:function(languageList){\r\n\t\t\t//select的onchange事件\r\n\t\t\tvar onchange = function(event){ translate.selectLanguageTag.selectOnChange(event); }\r\n\t\t\t\r\n\t\t\t//创建 select 标签\r\n\t\t\tvar selectLanguage = document.createElement(\"select\"); \r\n\t\t\tselectLanguage.id = translate.selectLanguageTag.documentId+'SelectLanguage';\r\n\t\t\tselectLanguage.className = translate.selectLanguageTag.documentId+'SelectLanguage';\r\n\t\t\tvar to = translate.language.getCurrent();\r\n\t\t\tfor(var i = 0; i 0){\r\n\t\t\t\t\t//设置了自定义显示的语言\r\n\r\n\t\t\t\t\t//都转小写判断\r\n\t\t\t\t\tvar langs_indexof = (','+translate.selectLanguageTag.languages+',').toLowerCase();\r\n\t\t\t\t\t//console.log(langs_indexof)\r\n\t\t\t\t\tif(langs_indexof.indexOf(','+languageList[i].id.toLowerCase()+',') < 0){\r\n\t\t\t\t\t\t//没发现,那不显示这个语种,调出\r\n\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*判断默认要选中哪个语言*/\r\n\r\n\t\t\t if(to != null && typeof(to) != 'undefined' && to.length > 0){\r\n\t\t\t\t\t//设置了目标语言,那就进行判断显示目标语言\r\n\t\t\t\t\tif(to == languageList[i].id){\r\n\t\t\t\t\t\toption.setAttribute(\"selected\",'selected');\r\n\t\t\t\t\t}\r\n\t\t\t }else{\r\n\t\t\t\t\t//没设置目标语言,那默认选中当前本地的语种\r\n\t\t\t\t\tif(languageList[i].id == translate.language.getLocal()){\r\n\t\t\t\t\t\toption.setAttribute(\"selected\",'selected');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t option.appendChild(document.createTextNode(languageList[i].name)); \r\n\t\t\t selectLanguage.appendChild(option);\r\n\t\t\t}\r\n\t\t\t//增加 onchange 事件\r\n\t\t\tif(window.addEventListener){ // Mozilla, Netscape, Firefox \r\n\t\t\t\tselectLanguage.addEventListener('change', onchange,false); \r\n\t\t\t}else{ // IE \r\n\t\t\t\tselectLanguage.attachEvent('onchange',onchange); \r\n\t\t\t} \r\n\r\n\t\t\t//将select加入进网页显示\r\n\t\t\tdocument.getElementById(translate.selectLanguageTag.documentId).appendChild(selectLanguage);\r\n\t\t\t\t\r\n\t\t},\r\n\t\trender:function(){ //v2增加\r\n\t\t\tif(translate.selectLanguageTag.alreadyRender){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\ttranslate.selectLanguageTag.alreadyRender = true;\r\n\t\t\t\r\n\t\t\t//判断如果不显示select选择语言,直接就隐藏掉\r\n\t\t\tif(!translate.selectLanguageTag.show){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//判断translate 的id是否存在,不存在就创建一个\r\n\t\t\tif(document.getElementById(translate.selectLanguageTag.documentId) == null){\r\n\t\t\t\tvar findBody = document.getElementsByTagName('body');\r\n\t\t\t\tif(findBody.length == 0){\r\n\t\t\t\t\tconsole.log('body tag not find, translate.selectLanguageTag.render() is not show Select Language');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar body_trans = findBody[0];\r\n\t\t\t\tvar div = document.createElement(\"div\"); //创建一个script标签\r\n\t\t\t\tdiv.id=translate.selectLanguageTag.documentId;\r\n\t\t\t\tbody_trans.appendChild(div);\r\n\t\t\t}else{\r\n\t\t\t\t//存在,那么判断一下 select是否存在,要是存在就不重复创建了\r\n\t\t\t\tif(document.getElementById(translate.selectLanguageTag.documentId+'SelectLanguage') != null){\r\n\t\t\t\t\t//select存在了,就不重复创建了\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//从服务器加载支持的语言库\r\n\t\t\ttranslate.request.post(translate.request.api.language, {}, function(data){\r\n\t\t\t\tif(data.result == 0){\r\n\t\t\t\t\tconsole.log('load language list error : '+data.info);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\ttranslate.selectLanguageTag.customUI(data.list);\r\n\r\n\t\t\t\t/*\r\n\t\t\t\ttry{\r\n\t\t\t\t\tdocument.getElementById('translateSelectLanguage').style.width = '94px';\r\n\t\t\t\t}catch(e){ console.log(e);} \r\n\t\t\t\t*/\r\n\t\t\t}, null);\r\n\t\t\t\r\n\t\t\t\r\n\t\t}\r\n\t},\r\n\t\r\n\t/*\r\n\t * 当前本地语言\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\t//localLanguage:'zh-CN',\r\n\tlocalLanguage:'zh-CN',\r\n\t\r\n\t/**\r\n\t * google翻译执行的\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\tgoogleTranslateElementInit:function(){\r\n\t\tvar selectId = '';\r\n\t\tif(document.getElementById('translate') != null){\t// && document.getElementById('translate').innerHTML.indexOf('translateSelectLanguage') > 0\r\n\t\t\t//已经创建过了,存在\r\n\t\t\tselectId = 'translate';\r\n\t\t}\r\n\t\t\r\n\t\ttranslate.translate = new google.translate.TranslateElement(\r\n\t\t\t{\r\n\t\t\t\t//这参数没用,请忽略\r\n\t\t\t\tpageLanguage: 'zh-CN',\r\n\t\t\t\t//一共80种语言选择,这个是你需要翻译的语言,比如你只需要翻译成越南和英语,这里就只写en,vi\r\n\t\t\t\t//includedLanguages: 'de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr',\r\n\t includedLanguages: translate.selectLanguageTag.languages,\r\n\t\t\t\t//选择语言的样式,这个是面板,还有下拉框的样式,具体的记不到了,找不到api~~ \r\n\t\t\t\tlayout: 0,\r\n\t\t\t\t//自动显示翻译横幅,就是翻译后顶部出现的那个,有点丑,设置这个属性不起作用的话,请看文章底部的其他方法\r\n\t\t\t\t//autoDisplay: false, \r\n\t\t\t\t//disableAutoTranslation:false,\r\n\t\t\t\t//还有些其他参数,由于原插件不再维护,找不到详细api了,将就了,实在不行直接上dom操作\r\n\t\t\t}, \r\n\t\t\tselectId //触发按钮的id\r\n\t\t);\r\n\t},\r\n\t\r\n\t/**\r\n\t * 初始化,如加载js、css资源\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\t/* v2.11.11.20240124 彻底注释掉,有新的init方法替代\r\n\tinit:function(){\r\n\t\tvar protocol = window.location.protocol;\r\n\t\tif(window.location.protocol == 'file:'){\r\n\t\t\t//本地的,那就用http\r\n\t\t\tprotocol = 'http:';\r\n\t\t}\r\n\t\tif(this.resourcesUrl.indexOf('://') == -1){\r\n\t\t\t//还没设置过,进行设置\r\n\t\t\tthis.resourcesUrl = protocol + this.resourcesUrl;\r\n\t\t}\r\n\t\t\r\n\t\t//this.resourcesUrl = 'file://G:/git/translate';\r\n\t\t\r\n\t},\r\n\t*/\r\n\t/**\r\n\t * 执行翻译操作\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\texecute_v1:function(){\r\n\t\tconsole.log('=====ERROR======');\r\n\t\tconsole.log('The v1 version has been discontinued since 2022. Please use the latest V3 version and refer to: http://translate.zvo.cn/41162.html');\r\n\t},\r\n\t\r\n\t/**\r\n\t * 设置Cookie,失效时间一年。\r\n\t * @param name\r\n\t * @param value\r\n\t * * 已废弃,v1使用的\r\n\t */\r\n\tsetCookie:function (name,value){\r\n\t\tvar cookieString=name+\"=\"+escape(value); \r\n\t\tdocument.cookie=cookieString; \r\n\t},\r\n\r\n\t//获取Cookie。若是不存再,返回空字符串\r\n\t//* 已废弃,v1使用的\r\n\tgetCookie:function (name){ \r\n\t\tvar strCookie=document.cookie; \r\n\t\tvar arrCookie=strCookie.split(\"; \"); \r\n\t\tfor(var i=0;i 0){\r\n\t\t\treturn cookieValue.substr(cookieValue.lastIndexOf('/')+1,cookieValue.length-1);\r\n\t\t}else{\r\n\t\t\treturn translate.localLanguage;\r\n\t\t}\r\n\t},\r\n\t\r\n\t/**\r\n\t * 切换语言,比如切换为英语、法语\r\n \t * @param languageName 要切换的语言语种。传入如 english\r\n\t * \t\t\t\t会自动根据传入的语言来判断使用哪种版本。比如传入 en、zh-CN 等,则会使用v1.x版本\r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t\t\t传入 chinese_simplified 、english 等,则会使用 v2.x版本\r\n\t */\r\n\tchangeLanguage:function(languageName){\r\n\t\t//判断使用的是否是v1.x\r\n\t\tvar v1 = ',en,de,hi,lt,hr,lv,ht,hu,zh-CN,hy,uk,mg,id,ur,mk,ml,mn,af,mr,uz,ms,el,mt,is,it,my,es,et,eu,ar,pt-PT,ja,ne,az,fa,ro,nl,en-GB,no,be,fi,ru,bg,fr,bs,sd,se,si,sk,sl,ga,sn,so,gd,ca,sq,sr,kk,st,km,kn,sv,ko,sw,gl,zh-TW,pt-BR,co,ta,gu,ky,cs,pa,te,tg,th,la,cy,pl,da,tr,';\r\n\t\tif(v1.indexOf(','+languageName+',') > -1){\r\n\t\t\t//用的是v1.x\r\n\t\t\tconsole.log('您使用的是v1版本的切换语种方式,v1已在2021年就以废弃,请更换为v2,参考文档: http://translate.zvo.cn/41549.html');\r\n\t\t\ttranslate.check();\r\n\t\t\t\r\n\t\t\tvar googtrans = '/'+translate.localLanguage+'/'+languageName;\r\n\t\t\t\r\n\t\t\t//先清空泛解析域名的设置\r\n\t\t\tvar s = document.location.host.split('.');\r\n\t\t\tif(s.length > 2){\r\n\t\t\t\tvar fanDomain = s[s.length-2]+'.'+s[s.length-1];\r\n\t\t\t\tdocument.cookie = 'googtrans=;expires='+(new Date(1))+';domain='+fanDomain+';path=/';\r\n\t\t\t\tdocument.cookie = 'googtrans='+googtrans+';domain='+fanDomain+';path=/';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\ttranslate.setCookie('googtrans', ''+googtrans);\r\n\t\t\ttranslate.refreshCurrentPage();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\t//用的是v2.x或更高\r\n\t\t//translate.setUseVersion2();\r\n\t\ttranslate.useVersion = 'v2';\r\n\t\t//判断是否是第一次翻译,如果是,那就不用刷新页面了。 true则是需要刷新,不是第一次翻译\r\n\t\tif(translate.to != null && translate.to.length > 0){\r\n\t\t\t//当前目标值有值,且目标语言跟当前语言不一致,那当前才是已经被翻译过的\r\n\t\t\tif(translate.to != translate.language.getLocal()){\r\n\t\t\t\tvar isReload = true; //标记要刷新页面\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\ttranslate.to = languageName;\r\n\t\ttranslate.storage.set('to',languageName);\t//设置目标翻译语言\r\n\t\t\r\n\t\tif(isReload){\r\n\t\t\tlocation.reload(); //刷新页面\r\n\t\t}else{\r\n\t\t\t//不用刷新,直接翻译\r\n\t\t\ttranslate.execute(); //翻译\r\n\r\n\t\t\t//检测是否有iframe中的子页面,如果有,也对子页面下发翻译命令。这个是针对 LayuiAdmin 框架的场景适配,它的主体区域是在 iframe 中的,不能点击切换语言后,只翻译外面的大框,而iframe中的不翻译\r\n\t\t\tconst iframes = document.querySelectorAll('iframe');\r\n\t\t\tfor (let i = 0; i < iframes.length; i++) {\r\n\t\t\t\tconst iframe = iframes[i];\r\n\t\t\t\t// 获取 iframe 的 window 对象\r\n\t\t\t\tconst iframeWindow = iframe.contentWindow; \r\n\t\t\t\tif(typeof(iframeWindow.translate) == 'object' && typeof(iframeWindow.translate.version) == 'string'){\r\n\t\t\t\t\t//iframe页面中存在 translate,那么也控制iframe中的进行翻译\r\n\t\t\t\t\tiframeWindow.translate.execute();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\r\n\t/**\r\n\t * 自检提示,适用于 v1.x, 在 v2.x中已废弃\r\n\t * english\r\n\t * 已废弃,v1使用的\r\n\t */\r\n\tcheck:function(){\r\n\t\tif(window.location.protocol == 'file:'){\r\n\t\t\tconsole.log('\\r\\n---WARNING----\\r\\ntranslate.js 主动翻译组件自检异常,当前协议是file协议,翻译组件要在正常的线上http、https协议下才能正常使用翻译功能\\r\\n------------');\r\n\t\t}\r\n\t},\r\n\t\r\n\t\r\n\t/**************************** v2.0 */\r\n\tto:'', //翻译为的目标语言,如 english 、chinese_simplified\r\n\t//用户第一次打开网页时,自动判断当前用户所在国家使用的是哪种语言,来自动进行切换为用户所在国家的语种。\r\n\t//如果使用后,第二次在用,那就优先以用户所选择的为主,这个就不管用了\r\n\t//默认是false,不使用,可设置true:使用\r\n\t//使用 setAutoDiscriminateLocalLanguage 进行设置\r\n\tautoDiscriminateLocalLanguage:false,\r\n\tdocuments:[], //指定要翻译的元素的集合,可设置多个,如设置: document.getElementsByTagName('DIV')\r\n\t/*\r\n\t\tv2.11.5增加\r\n\t\t正在进行翻译的节点,会记录到此处。\r\n\t\t这里是最底的节点了,不会再有下级了。这也就是翻译的最终节点,也就是 translate.element.findNode() 发现的节点\r\n\t\t也就是扫描到要进行翻译的节点,在翻译前,加入到这里,在这个节点翻译结束后,将这里面记录的节点删掉。\r\n\t\t\r\n\t\t格式如 \r\n\t\t\t[\r\n\t\t\t\t{\r\n\t\t\t\t\tnode: node节点的对象\r\n\t\t\t\t\tnumber: 2 (当前正在翻译进行中的次数,比如一个节点有中英文混合的文本,那么中文、英文 会同时进行两次翻译,也就是最后要进行两次替换,会导致这个node产生两次改动。每次便是+1、-1)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t......\r\n\t\t\t\t}\r\n\t\t\t]\r\n\r\n\t\t生命周期:\r\n\t\t\r\n\t\ttranslate.execute() 执行后,会扫描要翻译的字符,扫描完成后首先会判断缓存中是否有,是否会命中缓存,如果缓存中有,那么在加入 task.add 之前就会将这个进行记录 ++ \r\n\t\t在浏览器缓存没有命中后,则会通过网络api请求进行翻译,此时在发起网络请求前,会进行记录 ++\r\n\t\t当使用 translate.listener.start() 后,网页中动态渲染的部分会触发监听,触发监听后首先会判断这个节点是否存在于这里面正在被翻译,如果存在里面,那么忽略, 如果不存在里面,那么再进行 translate.execute(变动的节点) 进行翻译 (当然执行这个翻译后,自然也就又把它加入到此处进行记录 ++)\r\n\t\t【唯一的减去操作】 在task.execute() 中,翻译完成并且渲染到页面执行完成后,会触发延迟50毫秒后将这个翻译的节点从这里减去\r\n\t*/\r\n\tinProgressNodes:[], \r\n\t//翻译时忽略的一些东西,比如忽略某个tag、某个class等\r\n\tignore:{\r\n\t\ttag:['style', 'script', 'link', 'pre', 'code'],\r\n\t\tclass:['ignore','translateSelectLanguage'],\r\n\t\tid:[],\r\n\t\t/*\r\n\t\t\t传入一个元素,判断这个元素是否是被忽略的元素。 这个会找父类,看看父类中是否包含在忽略的之中。\r\n\t\t\treturn true是在忽略的之中,false不再忽略的之中\r\n\t\t*/\r\n\t\tisIgnore:function(ele){\r\n\t\t\tif(ele == null || typeof(ele) == 'undefined'){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar parentNode = ele;\r\n\t\t\tvar maxnumber = 100;\t//最大循环次数,避免死循环\r\n\t\t\twhile(maxnumber-- > 0){\r\n\t\t\t\tif(parentNode == null || typeof(parentNode) == 'undefined'){\r\n\t\t\t\t\t//没有父元素了\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断Tag\r\n\t\t\t\t//var tagName = parentNode.nodeName.toLowerCase(); //tag名字,小写\r\n\t\t\t\tvar nodename = translate.element.getNodeName(parentNode).toLowerCase(); //tag名字,小写\r\n\t\t\t\tif(nodename.length > 0){\r\n\t\t\t\t\t//有nodename\r\n\t\t\t\t\tif(nodename == 'body' || nodename == 'html' || nodename == '#document'){\r\n\t\t\t\t\t\t//上层元素已经是顶级元素了,那肯定就不是了\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(translate.ignore.tag.indexOf(nodename) > -1){\r\n\t\t\t\t\t\t//发现ignore.tag 当前是处于被忽略的 tag\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\t\t\t\t//判断class name\r\n\t\t\t\tif(parentNode.className != null){\r\n\t\t\t\t\tvar classNames = parentNode.className;\r\n\t\t\t\t\tif(classNames == null || typeof(classNames) != 'string'){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('className:'+typeof(classNames));\r\n\t\t\t\t\t//console.log(classNames);\r\n\t\t\t\t\tclassNames = classNames.trim().split(' ');\r\n\t\t\t\t\tfor(var c_index = 0; c_index < classNames.length; c_index++){\r\n\t\t\t\t\t\tif(classNames[c_index] != null && classNames[c_index].trim().length > 0){\r\n\t\t\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\t\t\tif(translate.ignore.class.indexOf(classNames[c_index]) > -1){\r\n\t\t\t\t\t\t\t\t//发现ignore.class 当前是处于被忽略的 class\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断id\r\n\t\t\t\tif(parentNode.id != null && typeof(parentNode.id) != 'undefined'){\r\n\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\tif(translate.ignore.id.indexOf(parentNode.id) > -1){\r\n\t\t\t\t\t\t//发现ignore.id 当前是处于被忽略的 id\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//赋予判断的元素向上一级\r\n\t\t\t\tparentNode = parentNode.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t * 忽略不被翻译的文本,这里出现的文本将不会被翻译。\r\n\t\t * 这个其实是借用了 自定义术语 的能力,设置了自定义术语的原字符等于翻译后的字符, 于是这个字符就不会被翻译了\r\n\t\t * 这里可以是多个,数组,如 ['你好','世界']\r\n\t\t */\r\n\t\ttext:[]\r\n\r\n\t},\r\n\t//刷新页面,你可以自定义刷新页面的方式,比如在 uniapp 打包生成 apk 时,apk中的刷新页面就不是h5的这个刷新,而是app的刷新方式,就需要自己进行重写这个刷新页面的方法了\r\n\trefreshCurrentPage:function(){\r\n\t\tlocation.reload();\r\n\t},\r\n\t//自定义翻译术语\r\n\tnomenclature:{\r\n\t\t/*\r\n\t\t\t术语表\r\n\t\t\t一维:要转换的语种,如 english\r\n\t\t\t二维:翻译至的目标语种,如 english\r\n\t\t\t三维:要转换的字符串,如 \"你好\"\r\n\t\t\t结果:自定义的翻译结果,如 “Hallo”\r\n\t\t*/\r\n\t\tdata:new Array(),\r\n\t\t\r\n\t\t/*\r\n\t\t\t原始术语表,可编辑的\r\n\t\t\t一维:要自定义目标词\r\n\t\t\t二维:针对的是哪个语种\r\n\t\t\t值:要翻译为什么内容\r\n\r\n\t\t\t其设置如 \r\n\t\t\tvar data = new Array();\r\n\t\t\tdata['版本'] = {\r\n\t\t\t\tenglish : 'banben',\r\n\t\t\t\tkorean : 'BanBen'\r\n\t\t\t};\r\n\t\t\tdata['国际化'] = {\r\n\t\t\t\tenglish : 'guojihua',\r\n\t\t\t\tkorean : 'GuoJiHua'\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\t【已过时】\r\n\t\t*/\r\n\t\told_Data:[],\r\n\t\t/*\r\n\t\tset:function(data){\r\n\t\t\ttranslate.nomenclature.data = data;\r\n\t\t},\r\n\t\t*/\r\n\t\tset:function(data){\r\n\t\t\talert('请将 translate.nomenclature.set 更换为 append,具体使用可参考: https://github.com/xnx3/translate ');\r\n\t\t},\r\n\t\t/*\r\n\t\t\t向当前术语库中追加自定义术语。如果追加的数据重复,会自动去重\r\n\t\t\t传入参数:\r\n\t\t\t\tfrom 要转换的语种\r\n\t\t\t\tto 翻译至的目标语种\r\n\t\t\t\tproperties 属于配置表,格式如:\r\n\t\t\t\t\t\t你好=Hello\r\n\t\t\t\t\t\t世界=ShiJie\r\n\r\n\t\t*/\r\n\t\tappend:function(from, to, properties){\r\n\t\t\tif(typeof(translate.nomenclature.data[from]) == 'undefined'){\r\n\t\t\t\ttranslate.nomenclature.data[from] = new Array();\r\n\t\t\t}\r\n\t\t\tif(typeof(translate.nomenclature.data[from][to]) == 'undefined'){\r\n\t\t\t\ttranslate.nomenclature.data[from][to] = new Array();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//将properties进行分析\r\n\t\t\t//按行拆分\r\n\t\t\tvar line = properties.split('\\n');\r\n\t\t\t//console.log(line)\r\n\t\t\tfor(var line_index = 0; line_index < line.length; line_index++){\r\n\t\t\t\tvar item = line[line_index].trim();\r\n\t\t\t\tif(item.length < 1){\r\n\t\t\t\t\t//空行,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar kvs = item.split('=');\r\n\t\t\t\t//console.log(kvs)\r\n\t\t\t\tif(kvs.length != 2){\r\n\t\t\t\t\t//不是key、value构成的,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar key = kvs[0].trim();\r\n\t\t\t\tvar value = kvs[1].trim();\r\n\t\t\t\t//console.log(key)\r\n\t\t\t\tif(key.length == 0 || value.length == 0){\r\n\t\t\t\t\t//其中某个有空,则忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t//加入,如果之前有加入,则会覆盖\r\n\t\t\t\ttranslate.nomenclature.data[from][to][key] = value;\r\n\t\t\t\t//console.log(local+', '+target+', key:'+key+', value:'+value);\r\n\t\t\t}\r\n\r\n\t\t\t//追加完后,对整个对象数组进行排序,key越大越在前面\r\n\t\t\ttranslate.nomenclature.data[from][to] = translate.util.objSort(translate.nomenclature.data[from][to]);\r\n\r\n\t\t},\r\n\t\t//获取当前定义的术语表\r\n\t\tget:function(){\r\n\t\t\treturn translate.nomenclature.data;\r\n\t\t},\r\n\t\t//对传入的str字符进行替换,将其中的自定义术语提前进行替换,然后将替换后的结果返回\r\n\t\t//v3.11 后此方法已废弃,不再使用\r\n\t\tdispose:function(str){\r\n\t\t\tif(str == null || str.length == 0){\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t\t//if(translate.nomenclature.data.length == 0){\r\n\t\t\t//\treturn str;\r\n\t\t\t//}\r\n\t\t\t//判断当前翻译的两种语种是否有自定义术语库\r\n\t\t\t//console.log(typeof(translate.nomenclature.data[translate.language.getLocal()][translate.to]))\r\n\t\t\tif(typeof(translate.nomenclature.data[translate.language.getLocal()]) == 'undefined' || typeof(translate.nomenclature.data[translate.language.getLocal()][translate.to]) == 'undefined'){\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t\t//console.log(str)\r\n\t\t\tfor(var originalText in translate.nomenclature.data[translate.language.getLocal()][translate.to]){\r\n\t\t\t\tvar translateText = translate.nomenclature.data[translate.language.getLocal()][translate.to][originalText];\r\n\t\t\t\tif(typeof(translateText) == 'function'){\r\n\t\t\t\t\t//进行异常的预处理调出\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar index = str.indexOf(originalText);\r\n\t\t\t\tif(index > -1){\r\n\t\t\t\t\t//console.log('find -- '+originalText+', \\t'+translateText);\r\n\t\t\t\t\tif(translate.language.getLocal() == 'english'){\r\n\t\t\t\t\t\t//如果本地语种是英文,那么还要判断它的前后,避免比如要替换 is 将 display 中的is给替换,将单词给强行拆分了\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//判断这个词前面是否符合\r\n\t\t\t\t\t\tvar beforeChar = '';\t//前面的字符\r\n\t\t\t\t\t\tif(index == 0){\r\n\t\t\t\t\t\t\t//前面没别的字符了,那前面合适\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//前面有别的字符,判断是什么字符,如果是英文,那么这个是不能被拆分的,要忽略\r\n\t\t\t\t\t\t\tbeforeChar = str.substr(index-1,1);\r\n\t\t\t\t\t\t\t//console.log('beforeChar:'+beforeChar+', str:'+str)\r\n\t\t\t\t\t\t\tvar lang = translate.language.getCharLanguage(beforeChar);\r\n\t\t\t\t\t\t\t//console.log(lang);\r\n\t\t\t\t\t\t\tif(lang == 'english' || lang == 'romance'){\r\n\t\t\t\t\t\t\t\t//调出,不能强拆\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//判断这个词的后面是否符合\r\n\t\t\t\t\t\tvar afterChar = ''; //后面的字符\r\n\t\t\t\t\t\tif(index + originalText.length == str.length ){\r\n\t\t\t\t\t\t\t//后面没别的字符了,那前面合适\r\n\t\t\t\t\t\t\t//console.log(originalText+', meile '+str)\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//后面有别的字符,判断是什么字符,如果是英文,那么这个是不能被拆分的,要忽略\r\n\t\t\t\t\t\t\tafterChar = str.substr(index+originalText.length,1);\r\n\t\t\t\t\t\t\tvar lang = translate.language.getCharLanguage(afterChar);\r\n\t\t\t\t\t\t\tif(lang == 'english' || lang == 'romance'){\r\n\t\t\t\t\t\t\t\t//跳出,不能强拆\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tstr = str.replace(new RegExp(beforeChar+originalText+afterChar,'g'), beforeChar+translateText+afterChar);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//其他情况,如汉语、汉语等语种\r\n\t\t\t\t\t\tstr = str.replace(new RegExp(originalText,'g'), translateText);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn str;\r\n\r\n\t\t\t/*\r\n\t\t\t//遍历一维\r\n\t\t\tfor(var originalText in translate.nomenclature.data){\r\n\t\t\t\tvar languageResult = translate.nomenclature.data[originalText];\r\n\t\t\t\tif(typeof(languageResult) == 'function'){\r\n\t\t\t\t\t//进行异常的预处理调出\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof(languageResult[translate.to]) == 'undefined'){\r\n\t\t\t\t\t//console.log('und');\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//var hash = translate.util.hash(originalText);\r\n\r\n\t\t\t\t//console.log(originalText+',\\t'+str);\r\n\t\t\t\tif(str.indexOf(originalText) > -1){\r\n\t\t\t\t\t//console.log('find -- '+originalText+', \\t'+languageResult[translate.to]);\r\n\t\t\t\t\tstr = str.replace(new RegExp(originalText,'g'),languageResult[translate.to]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\treturn str;\r\n\t\t\t*/\r\n\t\t},\r\n\t\t\r\n\t},\r\n\r\n\toffice:{\r\n\t\t/*\r\n\t\t\t网页上翻译之后,自动导出当前页面的术语库\r\n\t\t\t\r\n\t\t\t需要先指定本地语种,会自动将本地语种进行配置术语库\r\n\t\t\t\r\n\t\t*/\r\n\t\texport:function(){\r\n\t\t\tif(translate.language.getLocal() == translate.language.getCurrent()){\r\n\t\t\t\talert('本地语种跟要翻译的语种一致,无需导出');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar text = '';\r\n\t\t\tfor(var uuid in translate.nodeQueue){\r\n\t\t\t\tvar queueValue = translate.nodeQueue[uuid];\r\n\t\t\t\tfor(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\t\t//console.log('------'+lang)\r\n\t\t\t\t\tif(typeof(lang) != 'string' || lang.length < 1){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if(translate.language.getLocal() == lang){\r\n\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang]);\r\n\t\t\t\t\t\tfor(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].original);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].original);\r\n\t\t\t\t\t\t\ttext = text + '\\n' + translate.nodeQueue[uuid].list[lang][hash].original + '='+translate.storage.get('hash_'+translate.language.getCurrent()+'_'+hash);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t//}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tif(text.length > 0){\r\n\t\t\t\t//有内容\r\n\t\t\t\ttext = 'translate.office.append(\\''+translate.language.getCurrent()+'\\',`'+text+'\\n`);';\r\n\t\t\t\t//console.log(text);\r\n\t\t\t\ttranslate.util.loadMsgJs();\r\n\t\t\t\tmsg.popups({\r\n\t\t\t\t text:'',\r\n\t\t\t\t width:'750px',\r\n\t\t\t\t height:'600px',\r\n\t\t\t\t padding:'1px',\r\n\t\t\t\t});\t\r\n\t\t\t\tdocument.getElementById('msgPopupsTextarea').value = text;\r\n\t\t\t}else{\r\n\t\t\t\tmsg.alert('无有效内容!');\r\n\t\t\t}\r\n\r\n\r\n\t\t},\r\n\t\t//显示导出面板\r\n\t\tshowPanel:function(){\r\n\t\t\tlet panel = document.createElement('div');\r\n\t\t\tpanel.setAttribute('id', 'translate_export');\r\n\t\t\tpanel.setAttribute('class','ignore');\r\n\r\n\t\t\t//导出按钮\r\n\t\t\tlet button = document.createElement('button');\r\n\t\t\tbutton.onclick = function() {\r\n\t\t\t translate.office.export();\r\n\t\t\t};\r\n\t\t\tbutton.innerHTML = '导出配置信息';\r\n\t\t\tbutton.setAttribute('style', 'margin-left: 72px; margin-top: 30px; margin-bottom: 20px; font-size: 25px; background-color: blue; padding: 15px; padding-top: 3px; padding-bottom: 3px; border-radius: 3px;');\r\n\t\t\tpanel.appendChild(button);\r\n\r\n\t\t\t//说明文字\r\n\t\t\tlet textdiv = document.createElement('div');\r\n\t\t\ttextdiv.innerHTML = '1. 首先将当前语种切换为你要翻译的语种
2. 点击导出按钮,将翻译的配置信息导出
3. 将导出的配置信息粘贴到代码中,即可完成
点此进行查阅详细使用说明';\r\n\t\t\ttextdiv.setAttribute('style','font-size: 14px; padding: 12px;');\r\n\r\n\t\t\tpanel.appendChild(textdiv);\t\t\t\r\n\t\t\t\r\n\t\t\tpanel.setAttribute('style', 'background-color: black; color: #fff; width: 320px; height: 206px; position: fixed; bottom: 50px; right: 50px;');\r\n\t\t\t//把元素节点添加到body元素节点中成为其子节点,放在body的现有子节点的最后\r\n\t\t\tdocument.body.appendChild(panel);\r\n\r\n\t\t\ttranslate.util.loadMsgJs();\r\n\t\t},\r\n\t\t/*\r\n\t\t\t追加离线翻译数据。如果追加的数据重复,会自动去重\r\n\t\t\t传入参数:\r\n\t\t\t\tfrom 要转换的语种\r\n\t\t\t\tto 翻译至的目标语种\r\n\t\t\t\tproperties 属于配置表,格式如:\r\n\t\t\t\t\t\t你好=Hello\r\n\t\t\t\t\t\t世界=ShiJie\r\n\t\t\t这个传入参数跟 translate.nomenclature.append 的传入参数格式是一致的\t\t\t\r\n\t\t*/\r\n\t\tappend:function(to, properties){\r\n\t\t\t//console.log(properties)\r\n\t\t\t//将properties进行分析\r\n\t\t\t//按行拆分\r\n\t\t\tvar line = properties.split('\\n');\r\n\t\t\t//console.log(line)\r\n\t\t\tfor(var line_index = 0; line_index < line.length; line_index++){\r\n\t\t\t\tvar item = line[line_index].trim();\r\n\t\t\t\tif(item.length < 1){\r\n\t\t\t\t\t//空行,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar kvs = item.split('=');\r\n\t\t\t\t//console.log(kvs)\r\n\t\t\t\tif(kvs.length != 2){\r\n\t\t\t\t\t//不是key、value构成的,忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar key = kvs[0];\r\n\t\t\t\tvar value = kvs[1];\r\n\t\t\t\t//console.log(key)\r\n\t\t\t\tif(key.length == 0 || value.length == 0){\r\n\t\t\t\t\t//其中某个有空,则忽略\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\t//console.log('set---'+key);\r\n\t\t\t\t//加入 storate\r\n\t\t\t\ttranslate.storage.set('hash_'+to+'_'+translate.util.hash(key), value);\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\tsetAutoDiscriminateLocalLanguage:function(){\r\n\t\ttranslate.autoDiscriminateLocalLanguage = true;\r\n\t},\r\n\t/*\r\n\t\t待翻译的页面的node队列\r\n\t\t一维:key:uuid,也就是execute每次执行都会创建一个翻译队列,这个是翻译队列的唯一标识。 \r\n\t\t\t value:\r\n\t\t\t\tk/v \r\n\t\t二维:对象形态,具体有:\r\n\t\t\t key:expireTime 当前一维数组key的过期时间,到达过期时间会自动删除掉这个一维数组。如果<0则代表永不删除,常驻内存\r\n\t\t\t value:list 从DOM中自动识别出的语言文本及节点数据,按照语种进行了划分,每个语种便是其中的一项。\r\n\t\t三维:针对二维的value, key:english、chinese_simplified等语种,这里的key便是对value的判断,取value中的要翻译的词是什么语种,对其进行了语种分类 value: k/v\r\n\t\t四维:针对三维的value, key:要翻译的词(经过语种分割的)的hash, value: node数组\r\n\t\t五维:针对四维的value, 这是个对象, 其中\r\n\t\t\t\toriginal: 是三维的key的hash的原始文字, node 元素中的原始文字(可能是node元素整个内容,也可能是被分割出的某一块内容,比如中英文混合时单独提取中文)\r\n\t\t\t\tcacheHash: 如果翻译时匹配到了自定义术语库中的词,那么翻译完后存入到缓存中时,其缓存的翻译前字符串已经不是original,而是匹配完术语库后的文本的hash了。所以这里额外多增加了这个属性。如果匹配了术语库,那这里就是要进行缓存的翻译前文本的hash,如果未使用术语库,这里就跟其key-hash 相同。\r\n\t\t\t\ttranslateText: 针对 original 的经过加工过的文字,比如经过自定义术语、以及其他处理操作后的,待进行文本翻译的文字。\r\n\t\t\t\tnodes: 有哪些node元素中包含了这个词,都会在这里记录\r\n\t\t六维:针对五维的 nodes,将各个具体的 node 以及 其操作的 attribute 以数组形式列出\r\n\t\t七维:针对六维列出的nodes数组,其中包含:\r\n\t\t\t\tnode: 具体操作的node元素\r\n\t\t\t\tattribute: 也就是翻译文本针对的是什么,是node本身(nodeValue),还是 node 的某个属性,比如title属性,这则是设置为 \"title\"。如果这里不为空,那就是针对的属性操作的。 如果这里为空或者undefined ,那就是针对node本身,也就是 nodeValue 的字符串操作的\r\n\t\t\t\tbeforeText: node元素中进行翻译结果赋予时,额外在翻译结果的前面加上的字符串。其应用场景为,如果中英文混合场景下,避免中文跟英文挨着导致翻译为英语后,连到一块了。默认是空字符串 ''\r\n\t\t\t\tafterText: node元素中进行翻译结果赋予时,额外在翻译结果的后面加上的字符串。其应用场景为,如果中英文混合场景下,避免中文跟英文挨着导致翻译为英语后,连到一块了。默认是空字符串 ''\r\n\r\n\t\t生命周期: 当execute()执行时创建, 当execute结束(其中的所有request接收到响应并渲染完毕)时销毁(当前暂时不销毁,以方便调试)\r\n\t*/\r\n\tnodeQueue:{},\r\n\t//指定要翻译的元素的集合,可传入一个元素或多个元素\r\n\t//如设置一个元素,可传入如: document.getElementById('test')\r\n\t//如设置多个元素,可传入如: document.getElementsByTagName('DIV')\r\n\tsetDocuments:function(documents){\r\n\t\tif (documents == null || typeof(documents) == 'undefined') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif(typeof(documents.length) == 'undefined'){\r\n\t\t\t//不是数组,是单个元素\r\n\t\t\ttranslate.documents[0] = documents;\r\n\t\t}else{\r\n\t\t\t//是数组,直接赋予\r\n\t\t\ttranslate.documents = documents;\r\n\t\t}\r\n\t\t//清空翻译队列,下次翻译时重新检索\r\n\t\ttranslate.nodeQueue = {};\r\n\t\t//console.log('set documents , clear translate.nodeQueue');\r\n\t},\r\n\t//获取当前指定翻译的元素(数组形式 [document,document,...])\r\n\t//如果用户未使用setDocuments 指定的,那么返回整个网页\r\n\t//它返回的永远是个数组形式\r\n\tgetDocuments:function(){\r\n\t\tif(translate.documents != null && typeof(translate.documents) != 'undefined' && translate.documents.length > 0){\r\n\t\t\t// setDocuments 指定的\r\n\t\t\treturn translate.documents;\r\n\t\t}else{\r\n\t\t\t//未使用 setDocuments指定,那就是整个网页了\r\n\t\t\t//return document.all; //翻译所有的 这是 v3.5.0之前的\r\n\t\t\t//v3.5.0 之后采用 拿 html的最上层的demo,而不是 document.all 拿到可能几千个dom\r\n\t\t\tvar doms = new Array();\r\n\t\t\tdoms[0] = document.documentElement;\r\n\t\t\treturn doms;\r\n\t\t}\r\n\t},\r\n\t\r\n\tlistener:{\r\n\t\t//当前页面打开后,是否已经执行完execute() 方法进行翻译了,只要执行完一次,这里便是true。 (多种语言的API请求完毕并已渲染html)\r\n\t\t//isExecuteFinish:false,\r\n\t\t//是否已经使用了 translate.listener.start() 了,如果使用了,那这里为true,多次调用 translate.listener.start() 只有第一次有效\r\n\t\tisStart:false,\r\n\t\t//translate.listener.start();\t//开启html页面变化的监控,对变化部分会进行自动翻译。注意,这里变化区域,是指使用 translate.setDocuments(...) 设置的区域。如果未设置,那么为监控整个网页的变化\r\n\t\tstart:function(){\r\n\t\t\t\r\n\t\t\ttranslate.temp_linstenerStartInterval = setInterval(function(){\r\n\t\t\t\tif(document.readyState == 'complete'){\r\n\t\t\t\t\t//dom加载完成,进行启动\r\n\t\t\t\t\tclearInterval(translate.temp_linstenerStartInterval);//停止\r\n\r\n\t\t\t\t\t//如果不需要翻译的情况,是不需要进行监听的\r\n\t\t\t\t\tif(translate.language.getCurrent() == translate.language.getLocal()){\r\n\t\t\t\t\t\tif(translate.language.translateLocal){\r\n\t\t\t\t\t\t\t//本地语种也要强制翻译跟本地语种不一致的语种\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//console.log('本地语种跟目标语种一致,不进行翻译操作,无需监听。');\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//console.log('进行监听。。');\r\n\t\t\t\t\ttranslate.listener.addListener();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//if(translate.listener.isExecuteFinish){ //执行完过一次,那才能使用\r\n\t\t\t\t\t/*if(translate.listener.isStart){\r\n\t\t\t\t\t\t//已开启了\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}*/\r\n\t\t\t\t\t\r\n\t\t\t\t\t//console.log('translate.temp_linstenerStartInterval Finish!');\r\n\t\t\t\t//}\r\n\t }, 300);\r\n\t\t\t\r\n\t\t\t\r\n\t\t},\r\n\t\t/* \r\n\t\t\tkey: nodeid node的唯一标识,格式如 HTML1_BODY1_DIV2_#text1 ,它是使用 nodeuuid.uuid(node) 获得的\r\n\t\t\t\t\t注意,document.getElementById 获得的并不是,需要这样获得 document.getElementById('xx').childNodes[0] 因为它是要给监听dom改动那里用的,监听到的改动的是里面具体的node\r\n\t\t\tvalue:13位时间戳\r\n\t\t*/\r\n\t\tignoreNode:[],\r\n\t\t/*\r\n\t\t\t通过 translate.execute() 触发的翻译,来使node发生的改动,这种改动加入到 ignoreNode 的过期时间是多少。 \r\n\t\t\t单位是毫秒\r\n\t\t*/\r\n\t\ttranslateExecuteNodeIgnoreExpireTime:1000,\r\n\t\t/*\r\n\t\t \t增加一个被listener忽略的节点\r\n\t\t \t这里通常是用于被 translate.js 本身翻译更改的节点、以及像是 Layui 被翻译后触发了渲染改动了dom , 这几种场景都是翻译本身自己触发的,是不需要再被listener触发,不然就形成死循环了\r\n\t\t \tnode 是哪个节点被listener扫描到改动后忽略。\r\n\t\t \t\t可传入 node、也可以传入node的uuid字符串\r\n\t\t \texpireTime 过期时间,也就是执行当前方法将 node 加入后,过多长时间失效,这里是毫秒,比如传入 500 则这个node在当前时间往后的500毫秒内,如果被listener监听到改动,是直接被忽略的,不会触发任何翻译操作\r\n\t\t */\r\n\t\taddIgnore:function(node, expireTime){\r\n\t\t\tlet nodeid = '';\r\n\t\t\tif(typeof(node) == 'string'){\r\n\t\t\t\tnodeid = node;\r\n\t\t\t}else{\r\n\t\t\t\tnodeid = nodeuuid.uuid(node);\r\n\t\t\t}\r\n\r\n\t\t\ttranslate.listener.ignoreNode[nodeid] = Date.now()+expireTime;\r\n\r\n\t\t\t//translate.listener.renderTaskFinish();\r\n\t\t},\r\n\t\t/*\r\n\t\t\t刷新 ignoreNode 中的元素,也就是查找其中 expireTime 过期的,删掉\r\n\t\t*/\r\n\t\trefreshIgnoreNode:function(){\r\n\t\t\t//console.log('refresh ignore ,current: '+Object.keys(translate.listener.ignoreNode).length);\r\n\t\t\tvar currentTime = Date.now();\r\n\t\t\tfor (const node in translate.listener.ignoreNode) {\r\n\t\t\t\tif(translate.listener.ignoreNode[node] < currentTime){\r\n\t\t\t\t\t//console.log('delete : ');\r\n\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\tdelete translate.listener.ignoreNode[node];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//console.log('refresh ignore finish: '+Object.keys(translate.listener.ignoreNode).length);\r\n\t\t},\r\n\r\n\r\n\t\t//增加监听,开始监听。这个不要直接调用,需要使用上面的 start() 开启\r\n\t\taddListener:function(){\r\n\t\t\ttranslate.listener.isStart = true; //记录已执行过启动方法了\r\n\t\t\t\r\n\t\t\t// 观察器的配置(需要观察什么变动)\r\n\t\t\ttranslate.listener.config = { attributes: true, childList: true, subtree: true, characterData: true, attributeOldValue:true, characterDataOldValue:true };\r\n\t\t\t// 当观察到变动时执行的回调函数\r\n\t\t\ttranslate.listener.callback = function(mutationsList, observer) {\r\n\t\t\t\tvar documents = []; //有变动的元素\r\n\t\t\t\t//console.log('--------- lisetner 变动');\r\n\t\t\t // Use traditional 'for loops' for IE 11\r\n\t\t\t for(let mutation of mutationsList) {\r\n\t\t\t \tlet addNodes = [];\r\n\t\t\t\t\tif (mutation.type === 'childList') {\r\n\t\t\t\t\t\tif(mutation.addedNodes.length > 0){\r\n\t\t\t\t\t\t\t//多了组件\r\n\t\t\t\t\t\t\taddNodes = mutation.addedNodes;\r\n\t\t\t\t\t\t\t//documents.push.apply(documents, mutation.addedNodes);\r\n\t\t\t\t\t\t}else if(mutation.removedNodes.length > 0){\r\n\t\t\t\t\t\t\t//console.log('remove:');\r\n\t\t\t\t\t\t\t//console.log(mutation.removedNodes);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//console.log('not find:');\r\n\t\t\t\t\t\t\t//console.log(mutation);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else if (mutation.type === 'attributes') {\r\n\t\t\t\t\t\t//console.log('The ' + mutation.attributeName + ' attribute was modified.');\r\n\t\t\t\t\t}else if(mutation.type === 'characterData'){\r\n\t\t\t\t\t\t//内容改变\r\n\t\t\t\t\t\taddNodes = [mutation.target];\r\n\t\t\t\t\t\t//documents.push.apply(documents, [mutation.target]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//去重并加入 documents\r\n\t\t\t\t\tfor(let item of addNodes){\r\n\t\t\t\t\t\t//console.log(item);\r\n\r\n\t\t\t\t\t\t//判断是否已经加入过了,如果已经加入过了,就不重复加了\r\n\t\t\t\t\t\tvar isFind = false;\r\n\t\t\t\t\t\tfor(var di = 0; di < documents.length; di++){\r\n\t\t\t\t\t\t\tif(documents[di].isSameNode(item)){\r\n\t\t\t\t\t\t\t\tisFind = true;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(isFind){\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdocuments.push.apply(documents, [item]);\r\n\t\t\t\t\t}\r\n\t \t}\r\n\t\t\t \r\n\t\t\t\t//console.log(documents.length);\r\n\t\t\t\tif(documents.length > 0){\r\n\t\t\t\t\t//有变动,需要看看是否需要翻译,延迟10毫秒执行\r\n\t\t\t\t\t\r\n\t\t\t\t\t//判断是否属于在正在翻译的节点,重新组合出新的要翻译的node集合\r\n\t\t\t\t\tvar translateNodes = [];\r\n\t\t\t\t\t//console.log(translate.inProgressNodes.length);\r\n\t\t\t\t\tfor(let node of documents){\r\n\t\t\t\t\t\t//console.log('---type:'+node.nodeType);\r\n\r\n\t\t\t\t\t\tvar find = false;\r\n\t\t\t\t\t\tfor(var ini = 0; ini < translate.inProgressNodes.length; ini++){\r\n\t\t\t\t\t\t\tif(translate.inProgressNodes[ini].node.isSameNode(node)){\r\n\t\t\t\t\t\t\t\t//有记录了,那么忽略这个node,这个node是因为翻译才导致的变动\r\n\t\t\t\t\t\t\t\t//console.log('发现相同');\r\n\t\t\t\t\t\t\t\tfind = true;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(find){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\t\tlet nodeid = nodeuuid.uuid(node);\r\n\t\t\t\t\t\tif(typeof(translate.listener.ignoreNode[nodeid]) == 'number'){\r\n\t\t\t\t\t\t\tif(translate.listener.ignoreNode[nodeid] > Date.now()){\r\n\t\t\t\t\t\t\t\t//console.log('node 未过忽略期,listener扫描后忽略:'+nodeid);\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//不相同,才追加到新的 translateNodes\r\n\t\t\t\t\t\ttranslateNodes.push(node);\r\n\t\t\t\t\t\t//console.log('listener ++ '+node.nodeValue);\r\n\t\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(translateNodes.length < 1){\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('translateNodeslength: '+translateNodes.length);\r\n\r\n\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t//console.log(translateNodes);\r\n\t\t\t\t\t\ttranslate.execute(translateNodes); //指定要翻译的元素的集合,可传入一个或多个元素。如果不设置,默认翻译整个网页\r\n\t\t\t\t\t}, 10); //这个要比 task.execute() 中的 settimeout 延迟执行删除 translate.inpr.....nodes 的时间要小,目的是前一个发生变动后,记入 inpr...nodes 然后翻译完成后节点发生变化又触发了listener,此时 inpr....nodes 还有,那么这个变化将不做处理,然后 inp.....nodes 再删除这个标记\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t// 创建一个观察器实例并传入回调函数\r\n\t\t\ttranslate.listener.observer = new MutationObserver(translate.listener.callback);\r\n\t\t\t// 以上述配置开始观察目标节点\r\n\t\t\tvar docs = translate.getDocuments();\r\n\t\t\tfor(var docs_index = 0; docs_index < docs.length; docs_index++){\r\n\t\t\t\tvar doc = docs[docs_index];\r\n\t\t\t\tif(doc != null){\r\n\t\t\t\t\ttranslate.listener.observer.observe(doc, translate.listener.config);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/*\r\n\t\t\t每当执行完一次渲染任务(翻译)时会触发此。注意页面一次翻译会触发多个渲染任务。普通情况下,一次页面的翻译可能会触发两三次渲染任务。\r\n\t\t\t另外如果页面中有ajax交互方面的信息,时,每次ajax信息刷新后,也会进行翻译,也是一次渲染任务。\r\n\t\t\t这个是为了方便扩展使用。比如在layui中扩展,监控 select 的渲染\r\n\t\t*/\r\n\t\trenderTaskFinish:function(renderTask){\r\n\t\t\t//console.log(renderTask);\r\n\t\t},\r\n\r\n\t\t/*\r\n 翻译执行过程中,相关的监控\r\n */\r\n execute:{\r\n\r\n /*\r\n 每当触发执行 translate.execute() 时,当缓存中未发现,需要请求翻译API进行翻译时,在发送API请求前,触发此\r\n */\r\n renderStartByApi : [],\r\n renderStartByApiRun:function(uuid){\r\n //console.log(translate.nodeQueue[uuid]);\r\n for(var i = 0; i < translate.listener.execute.renderStartByApi.length; i++){\r\n try{\r\n translate.listener.execute.renderStartByApi[i](uuid);\r\n }catch(e){\r\n console.log(e);\r\n }\r\n }\r\n },\r\n\r\n /*\r\n 每当 translate.execute() 执行完毕(前提是采用API翻译的,API将翻译结果返回,并且界面上的翻译结果也已经渲染完毕)后,触发此方法。\r\n uuid:translate.nodeQueue[uuid] 这里的\r\n */\r\n renderFinishByApi : [],\r\n renderFinishByApiRun:function(uuid){\r\n //console.log(translate.nodeQueue[uuid]);\r\n for(var i = 0; i < translate.listener.execute.renderFinishByApi.length; i++){\r\n try{\r\n translate.listener.execute.renderFinishByApi[i](uuid);\r\n }catch(e){\r\n console.log(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\t},\r\n\t//对翻译结果进行替换渲染的任务,将待翻译内容替换为翻译内容的过程\r\n\trenderTask:class{\r\n\t\tconstructor(){\r\n\t\t\t/*\r\n\t\t\t * 任务列表\r\n\t\t\t * 一维数组 [hash] = tasks; tasks 是多个task的数组集合\r\n\t\t\t * 二维数组 [task,task,...],存放多个 task,每个task是一个替换。这里的数组是同一个nodeValue的多个task替换\r\n\t\t\t * 三维数组 task['originalText'] 、 task['resultText'] 存放要替换的字符串\r\n\t\t\t \t\t task['attribute'] 存放要替换的属性,比如 a标签的title属性。 如果是直接替换node.nodeValue ,那这个没有\r\n\t\t\t */\r\n\t\t\tthis.taskQueue = [];\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t * 要进行翻译的node元素,\r\n\t\t\t * 一维数组 key:node.nodeValue 的 hash , value:node的元素数组\r\n\t\t\t * 二维数组,也就是value中包含的node集合 [node,node,...]\r\n\t \t\t */\r\n\t\t\tthis.nodes = [];\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * 向替换队列中增加替换任务\r\n\t\t * node:要替换的字符属于那个node元素\r\n\t\t * originalText:待翻译的字符\r\n\t\t * resultText:翻译后的结果字符\r\n\t\t * attribute: 要替换的是哪个属性,比如 a标签的title属性,这里便是传入title。如果不是替换属性,这里不用传入,或者传入null\r\n\t\t */\r\n\t\tadd(node, originalText, resultText, attribute){\r\n\t\t\tvar nodeAnaly = translate.element.nodeAnalyse.get(node, attribute); //node解析\r\n\t\t\t//var hash = translate.util.hash(translate.element.getTextByNode(node)); \t//node中内容的hash\r\n\t\t\tvar hash = translate.util.hash(nodeAnaly['text']);\r\n\t\t\t//console.log('--------------'+hash);\r\n\t\t\t//console.log(nodeAnaly);\r\n\t\t\t//console.log(node);\r\n\t\t\t//console.log('originalText:'+originalText+', resultText:'+resultText+', attribute:'+attribute);\r\n\t\t\t/****** 加入翻译的元素队列 */\r\n\t\t\tif(typeof(this.nodes[hash]) == 'undefined'){\r\n\t\t\t\tthis.nodes[hash] = new Array();\r\n\t\t\t}\r\n\t\t\tthis.nodes[hash].push(node);\r\n\t\t\t//console.log(node)\r\n\t\t\t\r\n\t\t\t/****** 加入翻译的任务队列 */\r\n\t\t\tvar tasks = this.taskQueue[hash];\r\n\t\t\tif(tasks == null || typeof(tasks) == 'undefined'){\r\n\t\t\t\t//console.log(node.nodeValue);\r\n\t\t\t\ttasks = new Array(); //任务列表,存放多个 task,每个task是一个替换。这里的数组是同一个nodeValue的多个task替换\r\n\t\t\t}\r\n\t\t\tvar task = new Array();\r\n\t\t\t\r\n\t\t\t//v2.3.3 增加 -- 开始\r\n\t\t\t//这里要进行处理,因为有时候翻译前,它前或者后是有空格的,但是翻译后会把前或者后的空格给自动弄没了,如果是这种情况,要手动补上\r\n\t\t\tif (originalText.substr(0, 1) == ' ') {\r\n\t\t\t\t//console.log('第一个字符是空格');\r\n\t\t\t\tif(resultText.substr(0, 1) != ' '){\r\n\t\t\t\t\t//翻译结果的第一个字符不是空格,那么补上\r\n\t\t\t\t\tresultText = ' ' + resultText;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (originalText.substr(originalText.length - 1, 1) === ' ') {\r\n\t\t\t\t//console.log('最后一个字符是空格');\r\n\t\t\t\tif(resultText.substr(0, 1) != ' '){\r\n\t\t\t\t\t//翻译结果的最后一个字符不是空格,那么补上\r\n\t\t\t\t\tresultText = resultText + ' ';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//v2.3.3 增加 -- 结束\r\n\r\n\t\t\ttask['originalText'] = originalText;\r\n\t\t\ttask['resultText'] = resultText;\r\n\t\t\ttask['attribute'] = attribute;\r\n\r\n\t\t\t//console.log(task);\r\n\t\t\ttasks.push(task);\r\n\t\t\tthis.taskQueue[hash] = tasks;\r\n\t\t\t/****** 加入翻译的任务队列 end */\r\n\t\t}\r\n\t\t//进行替换渲染任务,对页面进行渲染替换翻译\r\n\t\texecute(){\r\n\t\t\t//先对tasks任务队列的替换词进行排序,将同一个node的替换词有大到小排列,避免先替换了小的,大的替换时找不到\r\n\t\t\tfor(var hash in this.taskQueue){\r\n\t\t\t\tvar tasks = this.taskQueue[hash];\r\n\t\t\t\tif(typeof(tasks) == 'function'){\r\n\t\t\t\t\t//进行异常的预处理调出\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//进行排序,将原字符串长的放前面,避免造成有部分不翻译的情况(bug是先翻译了短的,导致长的被打断而无法进行适配)\r\n\t\t\t\ttasks.sort((a, b) => b.originalText.length - a.originalText.length);\r\n\t\t\t\t\r\n\t\t\t\tthis.taskQueue[hash] = tasks;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//console.log('===========task=========');\r\n\t\t\t//console.log(this.taskQueue);\r\n\t\t\t//console.log(this.nodes);\r\n\t\t\t//console.log('===========task======end===');\r\n\r\n\t\t\t//进行翻译前,先刷新一下 dom监听的忽略node,将过期的node剔除,降低listener的压力\r\n\t\t\ttranslate.listener.refreshIgnoreNode();\r\n\r\n\t\t\t//对nodeQueue进行翻译\r\n\t\t\tfor(var hash in this.nodes){\r\n\t\t\t\tvar tasks = this.taskQueue[hash]; //取出当前node元素对应的替换任务\r\n\t\t\t\t//var tagName = this.nodes[hash][0].nodeName; //以下节点的tag name\r\n\t\t\t\t//console.log(tasks);\r\n\t\t\t\tfor(var node_index = 0; node_index < this.nodes[hash].length; node_index++){\r\n\t\t\t\t\t//对这个node元素进行替换翻译字符\r\n\t\t\t\t\tfor(var task_index=0; task_index 0){\r\n\t\t\t\t//50毫秒后执行,以便页面渲染完毕\r\n\t\t\t\tvar renderTask = this;\r\n\t\t\t\tsetTimeout(function() {\r\n\r\n\t\t\t\t\t/** 执行完成后,保存翻译的历史node **/\r\n\t\t\t\t\t//将当前翻译完成的node进行缓存记录,以node唯一标识为key, node、以及node当前翻译之后的内容为值进行缓存。方便下一次执行 translate.execute() 时,若值未变化则不进行翻译\r\n\t\t\t\t\tfor(var hash in renderTask.nodes){\r\n\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash])\r\n\t\t\t\t\t\tfor(var nodeindex in renderTask.nodes[hash]){\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].original);\r\n\t\t\t\t\t\t\t//var nodename = translate.element.getNodeName(translate.nodeQueue[uuid].list[lang][hash].nodes[0].node);\r\n\t\t\t\t\t\t\t//console.log(\"nodename:\"+nodename);\r\n\t\t\t\t\t\t\tvar analyse = translate.element.nodeAnalyse.get(renderTask.nodes[hash][0]);\r\n\t\t\t\t\t\t\t//analyse.text analyse.node\r\n\t\t\t\t\t\t\tvar nodeid = nodeuuid.uuid(analyse.node);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif(nodeid.length == 0){\r\n\t\t\t\t\t\t\t\t//像是input的placeholder 暂时没考虑进去,这种就直接忽略了\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//加入\r\n\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\tif(typeof(translate.nodeHistory[nodeid]) == 'object'){\r\n\t\t\t\t\t\t\t\t//已经加入过了,判断它的值是否有发生过变化\r\n\r\n\t\t\t\t\t\t\t\tif(translate.nodeHistory[nodeid].translateText == analyse.text){\r\n\t\t\t\t\t\t\t\t\t//值相同,就不用再加入了\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t这里就不用判断了,直接同步到最新的,因为同一个node,可能有本地缓存直接更新,这样会非常快,网络的会慢2秒,因时间导致同步不是最新的\r\n\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t//console.log(analyse);\r\n\t\t\t\t\t\t\t//console.log('add-----'+analyse.text +', uuid:'+nodeid);\r\n\t\t\t\t\t\t\t//console.log(analyse.node);\r\n\t\t\t\t\t\t\ttranslate.nodeHistory[nodeid] = {};\r\n\t\t\t\t\t\t\ttranslate.nodeHistory[nodeid].node = analyse.node;\r\n\t\t\t\t\t\t\ttranslate.nodeHistory[nodeid].translateText = analyse.text;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(translate.nodeHistory);\r\n\r\n\t\t\t\t\t/** 执行完成后,触发用户自定义的翻译完成执行函数 **/\r\n\t\t\t\t\ttranslate.listener.renderTaskFinish(renderTask);\r\n\r\n\t\t\t\t}, 50);\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\t//console.log(this.taskQueue);\r\n\t\t\t\t//console.log('---this.taskQueue is null');\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t/*\r\n\t\t当前状态,执行状态\r\n\t\t0 空闲(或者执行翻译完毕)\r\n\t\t10 扫描要翻译的node,并读取浏览器缓存的翻译内容进行渲染显示\r\n\t\t20 浏览器缓存渲染完毕,ajax通过文本翻译接口开始请求,在发起ajax请求前,状态变为20,然后再发起ajax请求\r\n\t\t至于翻译完毕后进行渲染,这个就不单独记录了,因为如果页面存在不同的语种,不同的语种是按照不同的请求来的,是多个异步同时进行的过程\r\n\t*/\r\n\tstate:0,\r\n\r\n\t/*\r\n\t\t等待翻译队列 v3.12.6 增加\r\n\t\t当前是否有需要等待翻译的任务,这个目的是为了保证同一时间 translate.execute() 只有一次在执行,免得被新手前端给造成死循环,导致edge翻译给你屏蔽,用户网页还卡死\r\n\t\t当执行 translate.execute() 时,会先判断状态 translate.state 是否是0空闲的状态,如果空闲,才会执行,如果不是空闲,则不会执行,而是进入到这里进行等待,等待执行完毕后 translate.state 变成0空闲之后,再来执行这里的\r\n\t\t\r\n\t*/\r\n\twaitingExecute:{\r\n\r\n\t\t/*\r\n\t\t\t一维数组形态,存放执行的翻译任务\r\n\t\t\t二维对象形态,存放执行传入的 docs\r\n\t\t*/\r\n\t\tqueue:[],\r\n\t\t/*\r\n\t\t\t增加一个翻译任务到翻译队列中\r\n\t\t\tdocs 同 translate.execute(docs) 的传入参数\r\n\t\t */ \r\n\t\tadd:function(docs){\r\n\t\t\t//向数组末尾追加\r\n\t\t\ttranslate.waitingExecute.queue.push(docs);\r\n\t\t\t//开启一个定时器进行触发\r\n\t\t\tlet intervalId = setInterval(function() {\r\n\t\t\t\tif(translate.state == 0){\r\n\t\t\t\t\t//清除定时器,结束循环\r\n\t\t\t\t\tclearInterval(intervalId);\r\n\t\t\t\t\tvar docs = translate.waitingExecute.get();\r\n\t\t\t\t\ttranslate.execute(docs);\r\n\t\t\t\t\t//console.log('stop waitingExecute setInterval');\r\n\t\t\t\t}\r\n\t\t\t}, 500);\r\n\t\t},\r\n\t\t/*\r\n\t\t\t从 quque 中取第一个元素,同时将其从queue中删除掉它。\r\n\t\t\t如果取的时候 quque已经没有任何元素了,会返回 null, 但是理论上不会出现null\r\n\t\t */\r\n\t\tget:function(){\r\n\t\t\t//使用 shift 方法删除数组的第一个元素,并将第一个元素的值返回\r\n\t\t\tif(translate.waitingExecute.queue.length > 0){\r\n\t\t\t\treturn translate.waitingExecute.queue.shift();\r\n\t\t\t}else{\r\n\t\t\t\tconsole.log('警告, translate.waitingExecute.get 出现异常,quque已空,但还往外取。');\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//当前 translate.translateRequest[uuid] 的是否已经全部执行完毕,这里单纯只是对 translate.translateRequest[uuid] 的进行判断,这里要在 translate.json 接口触发完并渲染完毕后触发,当然接口失败时也要触发\r\n\t\tisAllExecuteFinish:function(uuid){\r\n\t\t\tfor(var lang in translate.translateRequest[uuid]){\r\n\t\t\t\tfor(var i = 0; i 0){\r\n\t\t\t\ttranslate.to = to_storage;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t//渲染select选择语言\r\n\t\ttry{\r\n\t\t\ttranslate.selectLanguageTag.render();\t\r\n\t\t}catch(e){\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t\t\r\n\t\t//判断是否还未指定翻译的目标语言\r\n\t\tif(translate.to == null || typeof(translate.to) == 'undefined' || translate.to.length == 0){\r\n\t\t\t//未指定,判断如果指定了自动获取用户本国语种了,那么进行获取\r\n\t\t\tif(translate.autoDiscriminateLocalLanguage){\r\n\t\t\t\ttranslate.executeByLocalLanguage();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//没有指定翻译目标语言、又没自动获取用户本国语种,则不翻译\r\n\t\t\ttranslate.state = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\t//判断本地语种跟要翻译的目标语种是否一样,如果是一样,那就不需要进行任何翻译\r\n\t\tif(translate.to == translate.language.getLocal()){\r\n\t\t\tif(translate.language.translateLocal){\r\n\t\t\t\t//这是自定义设置的允许翻译本地语种中,跟本地语种不一致的语言进行翻译\r\n\r\n\t\t\t}else{\r\n\t\t\t\ttranslate.state = 0;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\r\n\t\t/********** 翻译进行 */\r\n\t\t\r\n\t\t//先进行图片的翻译替换,毕竟图片还有加载的过程\r\n\t\ttranslate.images.execute();\r\n\t\t\r\n\t\t/*\r\n\t\t\t进行翻译指定的node操作。优先级为:\r\n\t\t\t1. 这个方法已经指定的翻译 nodes\r\n\t\t\t2. setDocuments 指定的 \r\n\t\t\t3. 整个网页 \r\n\t\t\t其实2、3都是通过 getDocuments() 取,在getDocuments() 就对2、3进行了判断\r\n\t\t*/\r\n\t\tvar all;\r\n\t\tif(typeof(docs) != 'undefined' && docs != null){\r\n\t\t\t//1. 这个方法已经指定的翻译 nodes\r\n\t\t\t\r\n\t\t\t/* v3.12.6 注释,转到判断非null\r\n\t\t\tif(docs == null){\r\n\t\t\t\t//要翻译的目标区域不存在\r\n\t\t\t\tconsole.log('translate.execute(...) 中传入的要翻译的目标区域不存在。');\r\n\t\t\t\ttranslate.state = 0;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t\r\n\t\t\tif(typeof(docs.length) == 'undefined'){\r\n\t\t\t\t//不是数组,是单个元素\r\n\t\t\t\tall = new Array();\r\n\t\t\t\tall[0] = docs;\r\n\t\t\t}else{\r\n\t\t\t\t//是数组,直接赋予\r\n\t\t\t\tall = docs;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}else{\r\n\t\t\t//2、3\r\n\t\t\tall = translate.getDocuments();\r\n\t\t}\r\n\t\t//console.log('----要翻译的目标元素-----');\r\n\t\t//console.log(all)\r\n\t\t\r\n\t\tif(all.length > 500){\r\n\t\t\tconsole.log('------tip------');\r\n\t\t\tconsole.log('translate.execute( docs ) 传入的docs.length 过大,超过500,这很不正常,当前 docs.length : '+all.length+' ,如果你感觉真的没问题,请联系作者 http://translate.zvo.cn/43006.html 说明情况,根据你的情况进行分析。 当前只取前500个元素进行翻译');\r\n\t\t}\r\n\r\n\t\t//检索目标内的node元素\r\n\t\tfor(var i = 0; i< all.length & i < 500; i++){\r\n\t\t\tvar node = all[i];\r\n\t\t\ttranslate.element.whileNodes(uuid, node);\t\r\n\t\t}\r\n\r\n\t\t/***** translate.language.translateLanguagesRange 开始 *****/\r\n\t\tif(translate.language.translateLanguagesRange.length > 0){\r\n\t\t\t//如果大于0,则是有设置,那么只翻译有设置的语种,不在设置中的语种不会参与翻译\r\n\t\t\tfor(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\tif(translate.language.translateLanguagesRange.indexOf(lang) < 0){\r\n\t\t\t\t\t//删除这个语种\r\n\t\t\t\t\tdelete translate.nodeQueue[uuid].list[lang];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t/***** translate.language.translateLanguagesRange 结束 *****/\r\n\t\t\r\n\t\t//修复如果translate放在了页面最顶部,此时执行肯定扫描不到任何东西的,避免这种情况出现报错\r\n\t\tif(typeof(translate.nodeQueue[uuid]) == 'undefined'){\r\n\t\t\ttranslate.nodeQueue[uuid] = new Array();\r\n\t\t\ttranslate.nodeQueue[uuid].list = [];\r\n\t\t\tconsole.log('--- translate.js warn tip 警告!! ---');\r\n\t\t\tconsole.log('您使用translate.js时可能放的位置不对,不要吧 translate.js 放在网页最顶部,这样当 translate.js 进行执行,也就是 translate.execute() 执行时,因为网页是从上往下加载,它放在网页最顶部,那么它执行时网页后面的内容都还没加载出来,这个是不会获取到网页任何内容的,也就是它是不起任何作用的');\r\n\t\t}\r\n\t\tfor(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t//console.log('lang:'+lang)\r\n\t\t\tfor(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t//console.log(hash)\r\n\t\t\t\tif(typeof(translate.nodeQueue[uuid].list[lang][hash]) == 'function'){\r\n\t\t\t\t\t//v2.10增加,避免hash冒出个 Contains 出来导致for中的.length 出错\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tfor(var nodeindex = translate.nodeQueue[uuid].list[lang][hash].nodes.length-1; nodeindex > -1; nodeindex--){\r\n\t\t\t\t\t//console.log(translate.nodeQueue[uuid].list[lang][hash].nodes);\r\n\t\t\t\t\tvar analyse = translate.element.nodeAnalyse.get(translate.nodeQueue[uuid].list[lang][hash].nodes[nodeindex].node);\r\n\t\t\t\t\t//analyse.text analyse.node\r\n\t\t\t\t\tvar nodeid = nodeuuid.uuid(analyse.node);\r\n\t\t\t\t\t//translate.nodeQueue[uuid].list[lang][hash].nodes.splice(nodeindex, 1);\r\n\t\t\t\t\t//console.log(nodeid+'\\t'+analyse.text);\r\n\t\t\t\t\tif(typeof(translate.nodeHistory[nodeid]) != 'undefined'){\r\n\t\t\t\t\t\t//存在,判断其内容是否发生了改变\r\n\t\t\t\t\t\t//console.log('比较---------');\r\n\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].translateText);\r\n\t\t\t\t\t\t//console.log(analyse.text);\r\n\t\t\t\t\t\tif(translate.nodeHistory[nodeid].translateText == analyse.text){\r\n\t\t\t\t\t\t\t//内容未发生改变,那么不需要再翻译了,从translate.nodeQueue中删除这个node\r\n\t\t\t\t\t\t\ttranslate.nodeQueue[uuid].list[lang][hash].nodes.splice(nodeindex, 1);\r\n\t\t\t\t\t\t\t//console.log('发现相等的node,删除 '+analyse.text+'\\t'+hash);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t//console.log(\"发现变化的node =======nodeid:\"+nodeid);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].translateText == analyse.text);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].node);\r\n\t\t\t\t\t\t\t//console.log(translate.nodeHistory[nodeid].translateText);\r\n\t\t\t\t\t\t\t//console.log(analyse.text);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//console.log('未在 nodeHistory 中发现,新的node nodeid:'+nodeid);\r\n\t\t\t\t\t\t//console.log(analyse.node)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(translate.nodeQueue[uuid].list[lang][hash].nodes.length == 0){\r\n\t\t\t\t\t//如果node数组中已经没有了,那么直接把这个hash去掉\r\n\t\t\t\t\tdelete translate.nodeQueue[uuid].list[lang][hash];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(Object.keys(translate.nodeQueue[uuid].list[lang]).length == 0){\r\n\t\t\t\t//如果这个语言中没有要翻译的node了,那么删除这个语言\r\n\t\t\t\tdelete translate.nodeQueue[uuid].list[lang];\r\n\t\t\t}\r\n\t\t}\r\n\t\t//console.log('new queuq');\r\n\t\t//console.log(translate.nodeQueue[uuid])\r\n\t\t//translate.nodeHistory[nodeid]\r\n\r\n\t\t\r\n\t\t//console.log('-----待翻译:----');\r\n\t\t//console.log(translate.nodeQueue);\r\n\t\t\r\n\t\t//translateTextArray[lang][0]\r\n\t\tvar translateTextArray = {};\t//要翻译的文本的数组,格式如 [\"你好\",\"欢迎\"]\r\n\t\tvar translateHashArray = {};\t//要翻译的文本的hash,跟上面的index是一致的,只不过上面是存要翻译的文本,这个存hash值\r\n\t\t\r\n\r\n\t\t/*\r\n\t\t\t\t要进行第二次扫描的node - 2023.8.22 解决缓存会打散扫描到的翻译文本,导致翻译结束后找寻不到而导致不翻译的问题\r\n\t\t\t\t一维 key: lang\r\n\t\t\t\t二维 key: hash\r\n\t\t\t\t三维 key: \r\n\t\t\t\t\t\tnode: 当前的node元素\r\n\t\t\t\t四维\t\tarray: 当前缓存中进行翻译的文本数组:\r\n\t\t\t\t\t\t\tcacheOriginal: 已缓存被替换前的文本\r\n\t\t\t\t\t\t\tcacheTranslateText: 已缓存被替换后的翻译文本\r\n\t\t\t\t\t\r\n\t\t*/\r\n\t\tvar twoScanNodes = {};\r\n\t\tvar cacheScanNodes = []; //同上面的 twoScanNodes,只不过 twoScanNodes 是按照lang存的,而这个不再有lang区分\r\n\t\tfor(var lang in translate.nodeQueue[uuid]['list']){ //二维数组中,取语言\r\n\t\t\t//console.log('lang:'+lang); //lang为english这种语言标识\r\n\t\t\tif(lang == null || typeof(lang) == 'undefined' || lang.length == 0 || lang == 'undefined'){\r\n\t\t\t\t//console.log('lang is null : '+lang);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\ttranslateTextArray[lang] = [];\r\n\t\t\ttranslateHashArray[lang] = [];\r\n\t\t\t\r\n\t\t\tlet task = new translate.renderTask();\r\n\t\t\t//console.log(translate.nodeQueue);\r\n\t\t\t\r\n\t\t\ttwoScanNodes[lang] = [];\r\n\t\t\t//二维数组,取hash、value\r\n\t\t\tfor(var hash in translate.nodeQueue[uuid]['list'][lang]){\r\n\t\t\t\tif(typeof(translate.nodeQueue[uuid]['list'][lang][hash]) == 'function'){\r\n\t\t\t\t\t//跳出,增加容错。 正常情况下应该不会这样\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//取原始的词,还未经过翻译的,需要进行翻译的词\r\n\t\t\t\t//var originalWord = translate.nodeQueue[uuid]['list'][lang][hash]['original'];\t\r\n\r\n\t\t\t\t//原始的node中的词\r\n\t\t\t\tvar originalWord = translate.nodeQueue[uuid]['list'][lang][hash]['original'];\t\r\n\t\t\t\t//要翻译的词\r\n\t\t\t\tvar translateText = translate.nodeQueue[uuid]['list'][lang][hash]['translateText'];\r\n\t\t\t\t//console.log(originalWord);\r\n/*\r\n\t\t\t\t//自定义术语后的。如果\r\n\t\t\t\tvar nomenclatureOriginalWord = translate.nomenclature.dispose(cache);\r\n\t\t\t\tif(nomenclatureOriginalWord != originalWord){\r\n\t\t\t\t\thas\r\n\t\t\t\t}\r\n*/\t\t\t\t\r\n\t\t\t\t//console.log(originalWord == translateText ? '1':'xin:'+translateText);\r\n\t\t\t\t//根据hash,判断本地是否有缓存了\r\n\t\t\t\tvar cacheHash = originalWord == translateText ? hash:translate.util.hash(translateText); //如果匹配到了自定义术语库,那翻译前的hash是被改变了\r\n\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['cacheHash'] = cacheHash; //缓存的hash。 缓存时,其hash跟翻译的语言是完全对应的,缓存的hash就是翻译的语言转换来的\r\n\t\t\t\tvar cache = translate.storage.get('hash_'+translate.to+'_'+cacheHash);\r\n\t\t\t\t//console.log(cacheHash+', '+cache);\r\n\r\n\t\t\t\t//var twoScanNodes[] = [];\t//要进行第二次扫描的node\r\n\t\t\t\tif(cache != null && cache.length > 0){\r\n\t\t\t\t\t//有缓存了\r\n\t\t\t\t\t//console.log('find cache:'+cache);\r\n\t\t\t\t\t//直接将缓存赋予\r\n\t\t\t\t\t//for(var index = 0; index < this.nodeQueue[lang][hash].length; index++){\r\n\t\t\t\t\t\t//this.nodeQueue[lang][hash][index].nodeValue = cache;\r\n\r\n\t\t\t\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]);\r\n\r\n\r\n\t\t\t\t\t\t\t//加入 translate.inProgressNodes\r\n\t\t\t\t\t\t\t//取得这个翻译的node\r\n\t\t\t\t\t\t\tvar ipnode = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'];\r\n\r\n\t\t\t\t\t\t\t//判断这个node是否已经在 inProgressNodes 记录了\r\n\t\t\t\t\t\t\tvar isFind = false;\r\n\t\t\t\t\t\t\tfor(var ini = 0; ini < translate.inProgressNodes.length; ini++){\r\n\t\t\t\t\t\t\t\tif(translate.inProgressNodes[ini].node.isSameNode(ipnode)){\r\n\t\t\t\t\t\t\t\t\t//有记录了,那么出现次数 +1\r\n\t\t\t\t\t\t\t\t\ttranslate.inProgressNodes[ini].number++;\r\n\t\t\t\t\t\t\t\t\tisFind = true;\r\n\t\t\t\t\t\t\t\t\t//console.log('cache - find - ++ ');\r\n\t\t\t\t\t\t\t\t\t//console.log(ipnode);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t//未发现,那么还要将这个node加入进去\r\n\t\t\t\t\t\t\tif(!isFind){\r\n\t\t\t\t\t\t\t\t//console.log('cache - find - add -- lang:'+lang+', hash:'+hash+' node_index:'+node_index);\r\n\t\t\t\t\t\t\t\t//console.log(ipnode.nodeValue);\r\n\t\t\t\t\t\t\t\ttranslate.inProgressNodes.push({node: ipnode, number:1});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//console.log(translate.inProgressNodes);\r\n\t\t\t\t\t\t\t//加入 translate.inProgressNodes -- 结束\r\n\r\n\t\t\t\t\t\t\t//翻译结果的文本,包含了before 、 after 了\r\n\t\t\t\t\t\t\tvar translateResultText = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['beforeText']+cache+translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['afterText'];\r\n\t\t\t\t\t\t\ttask.add(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'], originalWord, translateResultText, translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['attribute']);\r\n\t\t\t\t\t\t\t//this.nodeQueue[lang][hash]['nodes'][node_index].nodeValue = this.nodeQueue[lang][hash]['nodes'][node_index].nodeValue.replace(new RegExp(originalWord,'g'), cache);\r\n\t\t\t\t\t\t\t//console.log(translateResultText);\r\n\r\n\t\t\t\t\t\t\t//重新扫描这个node,避免这种情况:\r\n\t\t\t\t\t\t\t//localstorage缓存中有几个词的缓存了,但是从缓存中使用时,把原本识别的要翻译的数据给打散了,导致翻译结果没法赋予,导致用户展示时有些句子没成功翻译的问题 -- 2023.8.22\r\n\t\t\t\t\t\t\t//console.log('继续扫描 + 1 - '+twoScanNodes.length);\r\n\t\t\t\t\t\t\tvar twoScanIndex = -1; //当前元素是否在 twoScan 中已经加入了,如果已经加入了,那么这里赋予当前所在的下标\r\n\t\t\t\t\t\t\tfor(var i = 0; i 0){\r\n\t\t\t\t\t//因为在这个数组中的值都是一样的,那么只需要取出第一个就行了\r\n\t\t\t\t\tvar valueStr = queueNodes[0].nodeValue;\r\n\t\t\t\t\tvalueStr = this.util.charReplace(valueStr);\r\n\r\n\t\t\t\t\ttranslateTextArray[lang].push(valueStr);\r\n\t\t\t\t\ttranslateHashArray[lang].push(hash);\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\t\t\t\t\r\n\t\t\t\t//加入待翻译数组\r\n\t\t\t\ttranslateTextArray[lang].push(translateText);\r\n\t\t\t\ttranslateHashArray[lang].push(hash); //这里存入的依旧还是用原始hash,未使用自定义术语库前的hash,目的是不破坏 nodeQueue 的 key\r\n\t\t\t}\r\n\r\n\t\t\ttask.execute(); //执行渲染任务\r\n\t\t}\r\n\t\t//console.log(twoScanNodes);\r\n\t\t//console.log('cacheScanNodes:');\r\n\t\t//console.log(cacheScanNodes);\r\n\r\n\t\t/******* 进行第二次扫描、追加入翻译队列。目的是防止缓存打散扫描的待翻译文本 ********/\r\n\t\tfor(var lang in twoScanNodes){\r\n\t\t\t//记录第一次扫描的数据,以便跟第二次扫描后的进行对比\r\n\t\t\tvar firstScan = Object.keys(translate.nodeQueue[uuid]['list'][lang]);\r\n\t\t\tvar firstScan_lang_langth = firstScan.length; //第一次扫描后的数组长度\r\n\r\n\t\t\t//console.log(twoScanNodes[lang]);\r\n\t\t\tfor(var i = 0; i -1){\r\n\t\t\t\t\t\t//发现了,那么强制赋予翻以前内容\r\n\t\t\t\t\t\ttext = translateTextArray[data.from][i];\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t//翻译前的hash对应下标\r\n\t\t\t\t\tvar hash = translateHashArray[data.from][i];\t\r\n\t\t\t\t\tvar cacheHash = translate.nodeQueue[uuid]['list'][lang][hash]['cacheHash'];\r\n\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t//取原始的词,还未经过翻译的,需要进行翻译的词\r\n\t\t\t\t\tvar originalWord = '';\r\n\t\t\t\t\ttry{\r\n\t\t\t\t\t\toriginalWord = translate.nodeQueue[uuid]['list'][lang][hash]['original'];\r\n\t\t\t\t\t\t//console.log('bef:'+translate.nodeQueue[uuid]['list'][lang][hash]['beforeText']);\r\n\t\t\t\t\t}catch(e){\r\n\t\t\t\t\t\tconsole.log('uuid:'+uuid+', originalWord:'+originalWord+', lang:'+lang+', hash:'+hash+', text:'+text+', queue:'+translate.nodeQueue[uuid]);\r\n\t\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t//for(var index = 0; index < translate.nodeQueue[lang][hash].length; index++){\r\n\t\t\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\t\t\t//translate.nodeQueue[lang][hash]['nodes'][node_index].nodeValue = translate.nodeQueue[lang][hash]['nodes'][node_index].nodeValue.replace(new RegExp(originalWord,'g'), text);\r\n\t\t\t\t\t\t//加入任务\r\n\t\t\t\t\t\ttask.add(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'], originalWord, translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['beforeText']+text+translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['afterText'], translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['attribute']);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//}\r\n\t\t\t\t\t/*\r\n\t\t\t\t\tfor(var index = 0; index < translate.nodeQueue[data.from][hash].length; index++){\r\n\t\t\t\t\t\ttranslate.nodeQueue[data.from][hash][index].nodeValue = text;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t*/\r\n\t\t\t\t\t\r\n\t\t\t\t\t//将翻译结果以 key:hash value翻译结果的形式缓存\r\n\t\t\t\t\ttranslate.storage.set('hash_'+data.to+'_'+cacheHash,text);\r\n\t\t\t\t}\r\n\t\t\t\ttask.execute(); //执行渲染任务\r\n\t\t\t\t//translate.temp_executeFinishNumber++; //记录执行完的次数\r\n\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].result = 1;\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].executeFinish = 1; //1是执行完毕\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].stoptime = Math.floor(Date.now() / 1000);\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\ttranslate.waitingExecute.isAllExecuteFinish(uuid);\r\n\t\t\t\t},10);\r\n\t\t\t}, function(xhr){\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].executeFinish = 1; //1是执行完毕\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].stoptime = Math.floor(Date.now() / 1000);\r\n\t\t\t\ttranslate.translateRequest[uuid][lang].result = 3;\r\n\t\t\t\ttranslate.waitingExecute.isAllExecuteFinish(uuid);\r\n\t\t\t});\r\n\t\t\t/*** 翻译end ***/\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * 翻译请求记录\r\n\t * 一维:key:uuid,也就是execute每次执行都会创建一个翻译队列,这个是翻译队列的唯一标识。 这个uuid跟 nodeQueue 的uuid是一样的\r\n\t * \t\tvalue:对象\r\n\t * 二维: 对象,包含:\r\n\t * \t\tfrom 存放的是要翻译的源语种,比如要讲简体中文翻译为英文,这里存放的就是 chinese_simplified\r\n\t * \t\tstate 是否执行完毕,0是执行中, 1是执行完毕(不管是失败还是成功) 而且执行完毕是指ajax请求获得响应,并且dom渲染完成之后才算完毕。当然如果ajax接口失败那也是直接算完毕\r\n\t * \t\taddtime 这条数据加入到本数组的时间,也就是进行ajax请求开始那一刻的时间,10位时间戳\r\n\t * \t\tstoptime 执行完毕的时间,也就是state转为2那一刻的时间\r\n\t * \t\tresult 执行结果, 0 是还没执行完,等待执行完, > 0 是执行完了有结果了, \r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t 1 是执行成功\r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t 2 是接口有响应,也是200响应,但是接口响应的结果返回了错误,也就是返回了 {result:0, info:'...'}\r\n\t * \t\t\t\t\t\t\t\t\t\t\t\t 3 是接口不是200响应码\r\n\t * \r\n\t */\r\n\ttranslateRequest:{\r\n\t\t/* \r\n\t\tuuid:[\r\n\t\t\t'chinese_simplified':{\r\n\t\t\t\texecuteFinish:0,\r\n\t\t\t\taddtime:150001111,\r\n\t\t\t\tstoptime:150001111,\r\n\t\t\t\tresult:0\r\n\t\t\t},\r\n\t\t\t...\r\n\t\t] \r\n\t\t*/\r\n\t},\r\n\r\n\t/*\r\n\t\t将已成功翻译并渲染的node节点进行缓存记录\r\n\t\tkey: node节点的唯一标识符,通过 nodeuuid.uuid() 生成\r\n\t\tvalue: \r\n\t\t\tnode: node节点\r\n\t\t\ttranslateText: 翻译完成后,当前node节点的内容文本(是已经翻译渲染过的)\r\n\t*/\r\n\tnodeHistory:{},\r\n\telement:{\r\n\r\n\t\t/*\r\n\t\t\t注意,里面全部的必须小写。\r\n\t\t\t第一个是tag,第二个是tag的属性。比如要翻译 input 的 value 属性,那么如下:\r\n\t\t\t\ttranslate.element.tagAttribute['input']=['value'];\r\n\t\t\t比如要翻译 input 的 value 、 data-value 这两个属性,那么如下:\r\n\t\t\t\ttranslate.element.tagAttribute['input']=['value','data-value'];\r\n\t\t\t有几个要翻译的属性,就写上几个。\r\n\t\t\t同样,有几个要额外翻译的tag,就加上几行。 \r\n\t\t\t详细文档参考: http://translate.zvo.cn/231504.html\r\n\t\t*/\r\n\t\ttagAttribute : {},\r\n\r\n\t\t//对翻译前后的node元素的分析(翻以前)及渲染(翻译后)\r\n\t\tnodeAnalyse:{\r\n\t\t\t/*\r\n\t\t\t\t获取node中的要进行翻译的文本内容、以及要操作的实际node对象(这个node对象很可能是传入的node中的某个子node)\r\n\t\t\t\tnode \r\n\t\t\t\tattribute 要获取的是某个属性的值,还是node本身的值。比如 a标签的title属性的值,则传入 title。 如果是直接获取node.nodeValue ,那这个没有\r\n\r\n\t\t\t\t返回结果是一个数组。其中:\r\n\t\t\t\t\t['text']:要进行翻译的text内容文本\r\n\t\t\t\t\t['node']:要进行翻译的目标node\r\n\r\n\t\t\t*/\r\n\t\t\tget:function(node, attribute){\r\n\t\t\t\treturn translate.element.nodeAnalyse.analyse(node,'','', attribute);\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t\t进行翻译之后的渲染显示\r\n\t\t\t\t参数:\r\n\t\t\t\t\tnode 当前翻译的node元素\r\n\t\t\t\t\toriginalText 翻译之前的内容文本\r\n\t\t\t\t\tresultText 翻译之后的内容文本\r\n\t\t\t\t\tattribute 存放要替换的属性,比如 a标签的title属性。 如果是直接替换node.nodeValue ,那这个没有\r\n\t\t\t*/\r\n\t\t\tset:function(node, originalText, resultText, attribute){\r\n\t\t\t\ttranslate.element.nodeAnalyse.analyse(node,originalText,resultText, attribute);\r\n\t\t\t},\r\n\t\t\t/*\t\r\n\t\t\t\t\r\n\t\t\t\t注意,这个不使用,只是服务于上面的get、set使用。具体使用用上面的get、set\r\n\r\n\t\t\t\t1. 只传入 node:\r\n\t\t\t\t\t获取node中的要进行翻译的文本内容、以及要操作的实际node对象(这个node对象很可能是传入的node中的某个子node)\r\n\t\t\t\t\t返回结果是一个数组。其中:\r\n\t\t\t\t\t\t['text']:要进行翻译的text内容文本\r\n\t\t\t\t\t\t['node']:要进行翻译的目标node\r\n\t\t\t\t2. 传入 node、originalText、 resultText\r\n\t\t\t\t\t则是进行翻译之后的渲染显示\r\n\r\n\t\t\t\tattribute : 进行替换渲染时使用,存放要替换的属性,比如 a标签的title属性。 如果是直接替换node.nodeValue ,那这个没有\r\n\t\t\t*/\r\n\t\t\tanalyse:function(node, originalText, resultText, attribute){\r\n\t\t\t\tvar result = new Array(); //返回的结果\r\n\t\t\t\tresult['node'] = node;\r\n\t\t\t\tresult['text'] = '';\r\n\r\n\t\t\t\tvar nodename = translate.element.getNodeName(node);\r\n\r\n\t\t\t\tif(attribute != null && typeof(attribute) == 'string' && attribute.length > 0){\r\n\t\t\t\t\t//这个node有属性,替换的是node的属性,而不是nodeValue\r\n\t\t\t\t\tresult['text'] = node[attribute];\r\n\r\n\t\t\t\t\t//替换渲染\r\n\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\tif(typeof(node[attribute]) != 'undefined'){\r\n\t\t\t\t\t\t\t//这种是主流框架,像是vue、element、react 都是用这种 DOM Property 的方式,更快\r\n\t\t\t\t\t\t\tnode[attribute] = node[attribute].replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\t\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//这种 Html Attribute 方式 是 v3.12 版本之前一直使用的方式,速度上要慢于 上面的,为了向前兼容不至于升级出问题,后面可能会优化掉\r\n\t\t\t\t\t\tvar htmlAttributeValue = node.getAttribute(attribute);\r\n\t\t\t\t\t\tif(htmlAttributeValue != null && typeof(htmlAttributeValue) != 'undefined'){\r\n\t\t\t\t\t\t\t//这个才是在v3.9.2 后要用的,上面的留着只是为了适配以前的\r\n\t\t\t\t\t\t\tnode.setAttribute(attribute, htmlAttributeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText)));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//正常的node ,typeof 都是 object\r\n\r\n\t\t\t\t//console.log(typeof(node)+node);\r\n\t\t\t\tif(nodename == '#text'){\r\n\t\t\t\t\t//如果是普通文本,判断一下上层是否是包含在textarea标签中\r\n\t\t\t\t\tif(typeof(node.parentNode) != 'undefined'){\r\n\t\t\t\t\t\tvar parentNodename = translate.element.getNodeName(node.parentNode);\r\n\t\t\t\t\t\t//console.log(parentNodename)\r\n\t\t\t\t\t\tif(parentNodename == 'TEXTAREA'){\r\n\t\t\t\t\t\t\t//是textarea标签,那将nodename 纳入 textarea的判断中,同时将判断对象交于上级,也就是textarea标签\r\n\t\t\t\t\t\t\tnodename = 'TEXTAREA';\r\n\t\t\t\t\t\t\tnode = node.parentNode;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t//console.log(nodename)\r\n\t\t\t\t//console.log(translate.element.getNodeName(node.parentNode))\r\n\t\t\t\t//console.log(node)\r\n\t\t\t\tif(nodename == 'INPUT' || nodename == 'TEXTAREA'){\r\n\t\t\t\t\t//console.log(node.attributes)\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t\t1. input、textarea 输入框,要对 placeholder 做翻译\r\n\t\t\t\t\t\t2. input 要对 type=button 的情况进行翻译\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tif(node.attributes == null || typeof(node.attributes) == 'undefined'){\r\n\t\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//input,要对 type=button、submit 的情况进行翻译\r\n\t\t\t\t\tif(nodename == 'INPUT'){\r\n\t\t\t\t\t\tif(typeof(node.attributes.type) != 'undefined' && typeof(node.attributes.type.nodeValue) != null && (node.attributes.type.nodeValue.toLowerCase() == 'button' || node.attributes.type.nodeValue.toLowerCase() == 'submit')){\r\n\t\t\t\t\t\t\t//console.log('----是 0){\r\n\t\t\t\t\t\t\t\t//替换渲染\r\n\t\t\t\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\t\t\t\tinput_value_node.nodeValue = input_value_node.nodeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tresult['text'] = input_value_node.nodeValue;\r\n\t\t\t\t\t\t\t\tresult['node'] = input_value_node;\r\n\t\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(node)\r\n\r\n\t\t\t\t\t//input textarea 的 placeholder 情况\r\n\t\t\t\t\tif(typeof(node.attributes['placeholder']) != 'undefined'){\r\n\t\t\t\t\t\t//console.log(node);\r\n\t\t\t\t\t\t//替换渲染\r\n\t\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\t\tnode.attributes['placeholder'].nodeValue = node.attributes['placeholder'].nodeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tresult['text'] = node.attributes['placeholder'].nodeValue;\r\n\t\t\t\t\t\tresult['node'] = node.attributes['placeholder'];\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t//return node.attributes['placeholder'].nodeValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(node)\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t\tif(nodename == 'META'){\r\n\t\t\t\t\t//meta标签,如是关键词、描述等\r\n\t\t\t\t\tif(typeof(node.name) != 'undefined' && node.name != null){\r\n\t\t\t\t\t\tvar nodeAttributeName = node.name.toLowerCase(); //取meta 标签的name 属性\r\n\t\t\t\t\t\tvar nodeAttributePropertyOri = node.getAttribute('property'); //取 property的值\r\n\t\t\t\t\t\tvar nodeAttributeProperty = '';\r\n\t\t\t\t\t\tif(typeof(nodeAttributePropertyOri) != 'undefined' && nodeAttributePropertyOri != null && nodeAttributePropertyOri.length > 0){\r\n\t\t\t\t\t\t\tnodeAttributeProperty = nodeAttributePropertyOri.toLowerCase();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(nodeAttributeName == 'keywords' || nodeAttributeName == 'description' || nodeAttributeName == 'sharetitle' || nodeAttributeProperty == 'og:title' || nodeAttributeProperty == 'og:description' || nodeAttributeProperty == 'og:site_name' || nodeAttributeProperty == 'og:novel:latest_chapter_name'){\r\n\t\t\t\t\t\t\t//替换渲染\r\n\t\t\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText != null && originalText.length > 0){\r\n\t\t\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\t\t\tnode.content = node.content.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tresult['text'] = node.content;\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t\tif(nodename == 'IMG'){\r\n\t\t\t\t\tif(typeof(node.alt) == 'undefined' || node.alt == null){\r\n\t\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//替换渲染\r\n\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText.length > 0){\r\n\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\tnode.alt = node.alt.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresult['text'] = node.alt;\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t//其他的\r\n\t\t\t\tif(node.nodeValue == null || typeof(node.nodeValue) == 'undefined'){\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t}else if(node.nodeValue.trim().length == 0){\r\n\t\t\t\t\t//避免就是单纯的空格或者换行\r\n\t\t\t\t\tresult['text'] = '';\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//替换渲染\r\n\t\t\t\t\tif(typeof(originalText) != 'undefined' && originalText != null && originalText.length > 0){\r\n\t\t\t\t\t\t//this.nodes[hash][task_index].nodeValue = this.nodes[hash][task_index].nodeValue.replace(new RegExp(translate.util.regExp.pattern(task.originalText),'g'), translate.util.regExp.resultText(task.resultText));\r\n\t\t\t\t\t\tnode.nodeValue = node.nodeValue.replace(new RegExp(translate.util.regExp.pattern(originalText),'g'), translate.util.regExp.resultText(resultText));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresult['text'] = node.nodeValue;\r\n\t\t\t\t}\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//获取这个node元素的node name ,如果未发现,则返回''空字符串\r\n\t\tgetNodeName:function(node){\r\n\t\t\tif(node == null || typeof(node) == 'undefined'){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tif(node.nodeName == null || typeof(node.nodeName) == 'undefined'){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tvar nodename = node.nodeName;\r\n\t\t\t//console.log('nodename:'+nodename+', node:'+node);\r\n\t\t\treturn nodename;\r\n\t\t},\r\n\t\t//向下遍历node\r\n\t\twhileNodes:function(uuid, node){\r\n\t\t\tif(node == null || typeof(node) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//如果这个uuid没有,则创建\r\n\t\t\tif(typeof(translate.nodeQueue[uuid]) == 'undefined' || translate.nodeQueue[uuid] == null){\r\n\t\t\t\ttranslate.nodeQueue[uuid] = new Array(); //创建\r\n\t\t\t\ttranslate.nodeQueue[uuid]['expireTime'] = Date.now() + 120*1000; //删除时间,10分钟后删除\r\n\t\t\t\ttranslate.nodeQueue[uuid]['list'] = new Array(); \r\n\t\t\t\t//console.log('创建 --- ');\r\n\t\t\t\t//console.log(uuid)\r\n\t\t\t}\r\n\r\n\t\t\t//console.log('---'+typeof(node)+', ');\r\n\t\t\t//判断是否是有title属性,title属性也要翻译\r\n\t\t\tif(typeof(node) == 'object' && typeof(node['title']) == 'string' && node['title'].length > 0){\r\n\t\t\t\t//将title加入翻译队列\r\n\t\t\t\t//console.log('---'+node.title+'\\t'+node.tagName);\r\n\t\t\t\t//console.log(node)\r\n\t\t\t\t//console.log('------------');\r\n\t\t\t\t\r\n\t\t\t\t//判断当前元素是否在ignore忽略的tag、id、class name中\r\n\t\t\t\tif(!translate.ignore.isIgnore(node)){\r\n\t\t\t\t\t//不在忽略的里面,才会加入翻译\r\n\t\t\t\t\ttranslate.addNodeToQueue(uuid, node, node['title'], 'title');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//v3.9.2 增加, 用户可自定义标签内 attribute 的翻译\r\n\t\t\tvar nodeNameLowerCase = translate.element.getNodeName(node).toLowerCase();\r\n\t\t\tif(typeof(translate.element.tagAttribute[nodeNameLowerCase]) != 'undefined'){\r\n\t\t\t\t//console.log('find:'+nodeNameLowerCase);\r\n\t\t\t\t//console.log(translate.element.tagAttribute[nodeNameLowerCase]);\r\n\r\n\t\t\t\tfor(var attributeName_index in translate.element.tagAttribute[nodeNameLowerCase]){\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar attributeName = translate.element.tagAttribute[nodeNameLowerCase][attributeName_index];\r\n\t\t\t\t\t//console.log(attributeName);\r\n\t\t\t\t\t//console.log(node.getAttribute(attributeName));\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * 默认是 HtmlAtrribute 也就是 HTML特性。取值有两个:\r\n\t\t\t\t\t * HTMLAtrribute : HTML特性\r\n\t\t\t\t\t * DOMProperty : DOM属性\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar DOMPropOrHTMLAttr = 'HTMLAtrribute'; \r\n\t\t\t\t\tvar attributeValue = node.getAttribute(attributeName);\r\n\t\t\t\t\tif(typeof(attributeValue) == 'undefined' || attributeValue == null){\r\n\t\t\t\t\t\t//vue、element、react 中的一些动态赋值,比如 element 中的 el-select 选中后赋予显示出来的文本,getAttribute 就取不到,因为是改动的 DOM属性,所以要用这种方式才能取出来\r\n\t\t\t\t\t\tattributeValue = node[attributeName];\r\n\t\t\t\t\t\tDOMPropOrHTMLAttr = 'DOMProperty';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(attributeValue) == 'undefined' || attributeValue == null){\r\n\t\t\t\t\t\t//这个tag标签没有这个属性,忽略\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//if(typeof(node.getAttribute(attributeName)) == 'undefined' && typeof(node[attributeName]) == 'undefined'){\r\n\t\t\t\t\t//\t//这个tag标签没有这个 attribute,忽略\r\n\t\t\t\t\t//\tcontinue\r\n\t\t\t\t\t//}\r\n\t\t\t\t\t\r\n\t\t\t\t\t//加入翻译\r\n\t\t\t\t\ttranslate.addNodeToQueue(uuid, node, attributeValue, attributeName);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t\tvar childNodes = node.childNodes;\r\n\t\t\tif(childNodes == null || typeof(childNodes) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(childNodes.length > 0){\r\n\t\t\t\tfor(var i = 0; i -1){\r\n\t\t\t\t//忽略tag\r\n\t\t\t\t//console.log('忽略tag:'+parentNodeName);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\t/****** 判断忽略的class ******/\r\n\t\t\t/*\r\n\t\t\t这段理论上不需要了,因为在 translate.ignore.isIgnore 判断了\r\n\t\t\tvar ignoreClass = false;\t//是否是被忽略的class,true是\r\n\t\t\tvar parentNode = node.parentNode;\r\n\t\t\twhile(node != parentNode && parentNode != null){\r\n\t\t\t\t//console.log('node:'+node+', parentNode:'+parentNode);\r\n\t\t\t\tif(parentNode.className != null){\r\n\t\t\t\t\tif(translate.ignore.class.indexOf(parentNode.className) > -1){\r\n\t\t\t\t\t\t//发现ignore.class 当前是处于被忽略的 class\r\n\t\t\t\t\t\tignoreClass = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tparentNode = parentNode.parentNode;\r\n\t\t\t}\r\n\t\t\tif(ignoreClass){\r\n\t\t\t\t//console.log('ignore class : node:'+node.nodeValue);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t/**** 判断忽略的class结束 ******/\r\n\r\n\r\n\r\n\t\t\t/**** 避免中途局部翻译,在判断一下 ****/\r\n\t\t\t//判断当前元素是否在ignore忽略的tag、id、class name中\r\n\t\t\tif(translate.ignore.isIgnore(node)){\r\n\t\t\t\t//console.log('node包含在要忽略的元素中:');\r\n\t\t\t\t//console.log(node);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//node分析\r\n\t\t\tvar nodeAnaly = translate.element.nodeAnalyse.get(node);\r\n\t\t\tif(nodeAnaly['text'].length > 0){\r\n\t\t\t\t//有要翻译的目标内容,加入翻译队列\r\n\t\t\t\t//console.log('addNodeToQueue -- '+nodeAnaly['node']+', text:' + nodeAnaly['text']);\r\n\t\t\t\ttranslate.addNodeToQueue(uuid, nodeAnaly['node'], nodeAnaly['text']);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//console.log(nodeAnaly);\r\n\t\t\t/*\r\n\t\t\t//console.log(node.nodeName+', type:'+node.nodeType+', '+node.nodeValue);\r\n\t\t\tvar nodename = translate.element.getNodeName(node);\r\n\t\t\tif(nodename == 'INPUT' || nodename == 'TEXTAREA'){\r\n\t\t\t\t//input 输入框,要对 placeholder 做翻译\r\n\t\t\t\tconsole.log('input---'+node.attributes);\r\n\t\t\t\tif(node.attributes == null || typeof(node.attributes) == 'undefined'){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tif(typeof(node.attributes['placeholder']) != 'undefined'){\r\n\t\t\t\t\t//console.log(node.attributes['placeholder'].nodeValue);\r\n\t\t\t\t\t//加入要翻译的node队列\r\n\t\t\t\t\t//translate.nodeQueue[translate.hash(node.nodeValue)] = node.attributes['placeholder'];\r\n\t\t\t\t\t//加入要翻译的node队列\r\n\t\t\t\t\t//translate.addNodeToQueue(translate.hash(node.attributes['placeholder'].nodeValue), node.attributes['placeholder']);\r\n\t\t\t\t\ttranslate.addNodeToQueue(uuid, node.attributes['placeholder'], node.attributes['placeholder'].nodeValue);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//console.log(node.getAttribute(\"placeholder\"));\r\n\t\t\t}else if(nodename == 'META'){\r\n\t\t\t\t//meta标签,如是关键词、描述等\r\n\t\t\t\tif(typeof(node.name) != 'undefined' && node.name != null){\r\n\t\t\t\t\tvar nodeAttributeName = node.name.toLowerCase(); //取meta 标签的name 属性\r\n\t\t\t\t\t//console.log(nodeName);\r\n\t\t\t\t\tif(nodeAttributeName == 'keywords' || nodeAttributeName == 'description'){\r\n\t\t\t\t\t\t//关键词、描述\r\n\t\t\t\t\t\ttranslate.addNodeToQueue(uuid, node, node.content);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//console.log(node.name)\r\n\t\t\t}else if(nodename == 'IMG'){\r\n\t\t\t\t//console.log('-------'+node.alt);\r\n\t\t\t\ttranslate.addNodeToQueue(uuid, node, node.alt);\r\n\t\t\t}else if(node.nodeValue != null && node.nodeValue.trim().length > 0){\r\n\t\r\n\t\t\t\t//过滤掉无效的值\r\n\t\t\t\tif(node.nodeValue != null && typeof(node.nodeValue) == 'string' && node.nodeValue.length > 0){\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t//console.log(node.nodeValue+' --- ' + translate.language.get(node.nodeValue));\r\n\t\t\t\t\r\n\t\t\t\t//console.log(node.nodeName);\r\n\t\t\t\t//console.log(node.parentNode.nodeName);\r\n\t\t\t\t//console.log(node.nodeValue);\r\n\t\t\t\t//加入要翻译的node队列\r\n\t\t\t\ttranslate.addNodeToQueue(uuid, node, node.nodeValue);\t\r\n\t\t\t\t//translate.addNodeToQueue(translate.hash(node.nodeValue), node);\r\n\t\t\t\t//translate.nodeQueue[translate.hash(node.nodeValue)] = node;\r\n\t\t\t\t//translate.nodeQueue[translate.hash(node.nodeValue)] = node.nodeValue;\r\n\t\t\t\t//node.nodeValue = node.nodeValue+'|';\r\n\t\r\n\t\t\t}\r\n\t\t\t*/\r\n\r\n\t\t},\r\n\t},\r\n\r\n\t\r\n\r\n\r\n\t\r\n\t/*\r\n\t * 将发现的元素节点加入待翻译队列\r\n\t * uuid execute方法执行的唯一id\r\n\t * node 当前text所在的node\r\n\t * text 当前要翻译的目标文本\r\n\t * attribute 是否是元素的某个属性。比如 a标签中的title属性, a.title 再以node参数传入时是string类型的,本身并不是node类型,所以就要传入这个 attribute=title 来代表这是a标签的title属性。同样第二个参数node传入的也不能是a.title,而是传入a这个node元素\r\n\t */\r\n\taddNodeToQueue:function(uuid, node, text, attribute){\r\n\t\tif(node == null || text == null || text.length == 0){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\r\n\t\t//console.log('find tag ignore : '+node.nodeValue+', '+node.nodeName+\", \"+node.nodeType+\", \"+node.tagName);\r\n\t\t//console.log('addNodeToQueue into -- node:'+node+', text:'+text+', attribute:'+attribute);\r\n\t\tvar nodename = translate.element.getNodeName(node);\r\n\t\t\r\n\t\t//判断如果是被 注释的区域,不进行翻译\r\n\t\tif(nodename.toLowerCase() == '#comment'){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t//console.log('\\t\\t'+text);\r\n\t\t//取要翻译字符的hash\r\n\t\tvar key = translate.util.hash(text);\r\n\t\t/*\r\n\t\t如果是input 的 placeholder ,就会出现这个情况\r\n\t\tif(node.parentNode == null){\r\n\t\t\tconsole.log('node.parentNode == null');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t*/\r\n\r\n\t\t//console.log(node.parentNode);\r\n\t\t//console.log(node.parentNode.nodeName);\r\n\t\t\r\n\t\t//判断其内容是否是 script、style 等编程的文本,如果是,则不进行翻译,不然翻译后还会影响页面正常使用\r\n\t\tif(translate.util.findTag(text)){\r\n\t\t\t//console.log('find tag ignore : '+node.nodeValue+', '+node.nodeName+\", \"+node.nodeType+\", \"+node.tagName);\r\n\t\t\t//console.log(node.parentNode.nodeName);\r\n\t\t\t\r\n\t\t\t//获取到当前文本是属于那个tag标签中的,如果是script、style 这样的标签中,那也会忽略掉它,不进行翻译\r\n\t\t\tif(node.parentNode == null){\r\n\t\t\t\t//没有上级了,或是没获取到上级,忽略\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t//去上级的tag name\r\n\t\t\tvar parentNodeName = translate.element.getNodeName(node.parentNode);\r\n\t\t\t//node.parentNode.nodeName;\r\n\t\t\tif(parentNodeName == 'SCRIPT' || parentNodeName == 'STYLE'){\r\n\t\t\t\t//如果是script、style中发现的,那也忽略\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t//console.log(node.nodeValue);\r\n\r\n\r\n\t\t//原本传入的text会被切割为多个小块\r\n\t\tvar textArray = new Array();\r\n\t\ttextArray.push(text); //先将主 text 赋予 ,后面如果对主text进行加工分割,分割后会将主text给删除掉\r\n\t\t//console.log(textArray);\r\n\r\n\t\t/**** v3.10.2.20241206 - 增加自定义忽略翻译的文本,忽略翻译的文本不会被翻译 - 当然这样会打乱翻译之后阅读的连贯性 ****/\r\n\t\tfor(var ti = 0; ti -1){\r\n\t\t\t\t//console.log(textArray[tai]+' 是忽略翻译的文本,不翻译');\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t//判断是否出现在自定义术语的\r\n\t\t\tif(typeof(translate.temp_nomenclature[translate.language.getLocal()]) != 'undefined'){\r\n\t\t\t\tif(translate.temp_nomenclature[translate.language.getLocal()].indexOf(textArray[tai].trim()) > -1){\r\n\t\t\t\t\t//console.log(textArray[tai]+' 是自定义术语,不翻译');\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ttranslate.addNodeToQueueAnalysis(uuid, node, textArray[tai], attribute);\r\n\t\t}\r\n\t\t\r\n\t\t//this.nodeQueue[lang][key][this.nodeQueue[lang][key].length]=node; //往数组中追加\r\n\t},\r\n\r\n\t/**\r\n\t * 服务于上面的 addNodeToQueue ,用于区分不同type情况,进行调用此加入 translate.nodeQueue\r\n\t * uuid, node, attribute 这及个参数说明见 addNodeToQueue 的参数说明,相同\r\n\t * textArray 进行处理的要翻译的文本数组。这个最开始只是一个,但是命中后分割的多了也就变成多个了\r\n\t * nomenclatureKey 替换的原始文本,也就是自定义术语的key部分\r\n\t * nomenclatureValue 替换的目标文本,也就是自定义术语的value部分 。 如果 nomenclatureKey = nomenclatureValue 则是自定义忽略翻译的文本。这个文本不被翻译\r\n\t * @return 处理过后的 textArray 如果没有命中则返回的是传入的 textArray ,命中了则是切割以及删除原本判断的text之后的 textArray\r\n\t */\r\n\taddNodeToQueueTextAnalysis:function(uuid, node,textArray, attribute, nomenclatureKey, nomenclatureValue){\r\n\t\tvar deleteTextArray = new Array();\t//记录要从 textArray 中删除的字符串\r\n\r\n\t\tfor(var tai = 0; tai -1){\r\n\t\t\t\t//出现了,那么需要将其立即进行更改,将自定义术语定义的结果渲染到页面中,并且将 word 要翻译的字符串中,自定义术语部分删除,只翻译除了自定义术语剩余的部分\r\n\t\t\t\t//console.log(text+' --> '+nomenclatureKey);\r\n\r\n\t\t\t\t\r\n\t\t\t\t/*\r\n\t\t\t\t * 判断一下这个text中,出现匹配自定义术语的部分,是否是已经被替换过了,比如要将 好 替换为 你好 ,这里的好会重复替换。这里是判断这种情况\r\n\t\t\t\t * 其中要判断一下 key 不等于value,因为key等于value,属于是指定这个key不被翻译的情况\r\n\t\t\t\t */\r\n\t\t\t\tif(nomenclatureKey != nomenclatureValue){\r\n\t\t\t\t\tvar substringStart = wordKeyIndex-nomenclatureValue.length;\r\n\t\t\t\t\tif(substringStart < 0){\r\n\t\t\t\t\t\tsubstringStart = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar substringEnd = wordKeyIndex+nomenclatureValue.length;\r\n\t\t\t\t\tif(substringEnd > text.length){\r\n\t\t\t\t\t\tsubstringEnd = text.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar nomenclatureValueJudgement = text.substring(substringStart, substringEnd);\r\n\t\t\t\t\t//console.log(text+', '+nomenclatureValueJudgement);\r\n\t\t\t\t\tif(nomenclatureValueJudgement.indexOf(nomenclatureValue) > -1){\r\n\t\t\t\t\t\t//已经替换过了,可能会重复替换,所以忽略掉\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t//判断当前是否是英语及变种,也就是单词之间需要有空格的,如果前后没有空格,要补充上空格\r\n\t\t\t\tif(translate.language.wordBlankConnector(translate.to)){\r\n\t\t\t\t\tif(wordKeyIndex > 0){\r\n\t\t\t\t\t\t//它前面还有文本,判断它前面的文本是否是空格,如果不是,那么要补充上空格\r\n\t\t\t\t\t\tvar before = text.charAt(wordKeyIndex-1);\r\n\t\t\t\t\t\t//console.log(before);\r\n\t\t\t\t\t\tif(!(/\\s/.test(before))){\r\n\t\t\t\t\t\t\t//不是空白字符,补充上一个空格,用于将两个单词隔开\r\n\t\t\t\t\t\t\tnomenclatureValue = ' '+nomenclatureValue\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(wordKeyIndex + nomenclatureKey.length < text.length){\r\n\t\t\t\t\t\t//它后面还有文本,判断它前面的文本是否是空格,如果不是,那么要补充上空格\r\n\t\t\t\t\t\tvar after = text.charAt(wordKeyIndex + nomenclatureKey.length);\r\n\t\t\t\t\t\t//console.log(after);\r\n\t\t\t\t\t\tif(!(/\\s/.test(before))){\r\n\t\t\t\t\t\t\t//不是空白字符,补充上一个空格,用于将两个单词隔开\r\n\t\t\t\t\t\t\tnomenclatureValue = nomenclatureValue+' ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//如果是自定义术语的key等于value,则是属于指定的某些文本不进行翻译的情况,所以这里要单独判断一下\r\n\t\t\t\t//console.log(nomenclatureKey+':'+nomenclatureValue);\r\n\t\t\t\tif(nomenclatureKey != nomenclatureValue){\r\n\t\t\t\t\ttranslate.element.nodeAnalyse.set(node, nomenclatureKey, nomenclatureValue, attribute);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t//从 text 中将自定义术语的部分删掉,自定义术语的不被翻译\r\n\t\t\t\tvar wordSplits = text.split(nomenclatureKey);\r\n\t\t\t\tvar isPushTextArray = false;\r\n\t\t\t\tfor(var index = 0; index < wordSplits.length; index++){\r\n\t\t\t\t\t//console.log(index);\r\n\t\t\t\t\tvar subWord = wordSplits[index]; //分割后的子字符串\r\n\t\t\t\t\tif(subWord.trim().length == 0){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(subWord);\r\n\r\n\t\t\t\t\t//将其加入 textArray 中\r\n\t\t\t\t\ttextArray.push(subWord);\r\n\t\t\t\t\tdeleteTextArray.push(text);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//console.log(wordSplits);\r\n\t\t\t\t//自定义术语适配完后就直接退出了\r\n\t\t\t\t//return wordSplits;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t//console.log(deleteTextArray)\r\n\t\t//从 textArray 中删除\r\n\t\tif(deleteTextArray.length > 0){\r\n\t\t\tfor(var di = 0; di -1) { \r\n\t\t\t\t\t//console.log(textArray);\r\n\t\t\t\t\t//console.log(deleteTextArray[di]);\r\n\t\t\t\t\ttextArray.splice(index, 1); \r\n\t\t\t\t\t//console.log(textArray);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn textArray;\r\n\t},\r\n\r\n\t/*\r\n\r\n\t\t服务于上面的 addNodeToQueue ,用于区分不同type情况,进行调用此加入 translate.nodeQueue\r\n\t\tuuid, node, attribute 这五个参数说明见 addNodeToQueue 的参数说明,相同\r\n\t\t\r\n\t\tword 要实际进行翻译的文本,也就是要把它拿来进行通过后端翻译接口进行翻译的文本\r\n\t\tlang 当前要翻译的文本的语种,如 english\r\n\t\tbeforeText 参见 translate.nodeQueue 注释中第七维的解释\r\n\t\tafterText 参见 translate.nodeQueue 注释中第七维的解释\r\n\r\n\t*/\r\n\taddNodeToQueueAnalysis:function(uuid, node, text, attribute){\r\n\t\t//获取当前是什么语种\r\n\t\t//var langs = translate.language.get(text);\r\n\t\tvar textRecognition = translate.language.recognition(text);\r\n\t\tvar langs = textRecognition.languageArray;\r\n\t\t//console.log('langs');\r\n\t\t//console.log(langs);\r\n\r\n\t\t\r\n\t\t//过滤掉要转换为的目标语种,比如要转为英语,那就将本来是英语的部分过滤掉,不用再翻译了\r\n\t\tif(typeof(langs[translate.to]) != 'undefined'){\r\n\t\t\tdelete langs[translate.to];\r\n\t\t}\r\n\t\t\r\n\t\tvar isWhole = translate.whole.isWhole(node);\r\n\t\t//console.log('isWhole:'+isWhole+', '+text);\r\n\r\n\t\tif(!isWhole){\r\n\t\t\t//常规方式,进行语种分类\r\n\r\n\r\n\t\t\t/* if(this.nodeQueue[lang] == null || typeof(this.nodeQueue[lang]) == 'undefined'){\r\n\t\t\t\tthis.nodeQueue[lang] = new Array();\r\n\t\t\t} \r\n\t\t\t//创建二维数组\r\n\t\t\tif(this.nodeQueue[lang][key] == null || typeof(this.nodeQueue[lang][key]) == 'undefined'){\r\n\t\t\t\tthis.nodeQueue[lang][key] = new Array();\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t//console.log(langs);\r\n\t\t\t\r\n\t\t\tfor(var lang in langs) {\r\n\t\t\t\t//创建二维数组, key为语种,如 english\r\n\t\t\t\t/*\r\n\t\t\t\t放到了 translate.addNodeQueueItem 进行判断\r\n\t\t\t\tif(translate.nodeQueue[uuid]['list'][lang] == null || typeof(translate.nodeQueue[uuid]['list'][lang]) == 'undefined'){\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang] = new Array();\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\t\t\t\t//console.log('|'+langs[lang].length);\r\n\t\t\t\t//遍历出该语种下有哪些词需要翻译\r\n\t\t\t\tfor(var word_index = 0; word_index < langs[lang].list.length; word_index++){\r\n\t\t\t\t\t//console.log('start:'+word_index)\r\n\t\t\t\t\t//console.log(langs[lang].list[word_index]);\r\n\t\t\t\t\tif(typeof(langs[lang].list[word_index]) == 'undefined' || typeof(langs[lang].list[word_index]['text']) == 'undefined'){\r\n\t\t\t\t\t\t//理论上应该不会,但多加个判断\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar word = langs[lang].list[word_index]['text']; //要翻译的词\r\n\t\t\t\t\tvar beforeText = langs[lang].list[word_index]['beforeText'];\r\n\t\t\t\t\tvar afterText = langs[lang].list[word_index]['afterText'];\r\n\r\n\t\t\t\t\t//console.log(lang+' - '+word);\r\n\t\t\t\t\ttranslate.addNodeQueueItem(uuid, node, word, attribute, lang, beforeText, afterText);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\tvar hash = translate.util.hash(word); \t//要翻译的词的hash\t\t\t\t\t\r\n\t\t\t\t\t//创建三维数组, key为要通过接口翻译的文本词或句子的 hash (注意并不是node的文本,而是node拆分后的文本)\r\n\t\t\t\t\tif(translate.nodeQueue[uuid]['list'][lang][hash] == null || typeof(translate.nodeQueue[uuid]['list'][lang][hash]) == 'undefined'){\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash] = new Array();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'] = new Array();\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['original'] = word;\r\n\t\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['translateText'] = translate.nomenclature.dispose(word); //自定义术语处理\r\n\t\t\t\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['beforeText'] = beforeText;\r\n\t\t\t\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['afterText'] = afterText;\r\n\t\t\t\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['attribute'] = attribute; //放入 nodes[index][attribute] 元素中\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//其中key: nodes 是第四维数组,里面存放具体的node元素对象\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t//console.log(translate.nodeQueue[uuid]['list'][lang][hash]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar isEquals = false; //queue中是否已经加入过这个node了(当然是同一hash同一node情况)\r\n\t\t\t\t\tif(typeof(node.isSameNode) != 'undefined'){\t//支持 isSameNode 方法判断对象是否相等\r\n\t\t\t\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\t\t\t\tif(node.isSameNode(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'])){\r\n\t\t\t\t\t\t\t\t//相同,那就不用在存入了\r\n\t\t\t\t\t\t\t\t//console.log('相同,那就不用在存入了')\r\n\t\t\t\t\t\t\t\tisEquals = true;\r\n\t\t\t\t\t\t\t\t//console.log(node)\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(isEquals){\r\n\t\t\t\t\t\t//相同,那就不用在存入了\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//往五维数组nodes中追加node元素\r\n\t\t\t\t\tvar nodesIndex = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length;\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex] = new Array();\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['node']=node; \r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['attribute']=attribute;\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['beforeText'] = beforeText;\r\n\t\t\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['afterText'] = afterText;\r\n\t\t\t\t\t\r\n\t\t\t\t\t*/\r\n\r\n\t\t\t\t\t//console.log('end:'+word_index)\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t}else{\r\n\t\t\t//直接翻译整个元素内的内容,不再做语种分类,首先删除英文,然后将出现次数最多的语种作为原本语种\r\n\t\t\tvar lang = textRecognition.languageName;\r\n\t\t\t//console.log(lang+' - '+text);\r\n\t\t\ttranslate.addNodeQueueItem(uuid, node, text, attribute, lang, '', '');\r\n\t\t}\r\n\r\n\r\n\t},\r\n\r\n\t/*\r\n\r\n\t\t服务于上面的 addNodeToQueue ,用于区分不同type情况,进行调用此加入 translate.nodeQueue\r\n\t\tuuid, node, attribute 这五个参数说明见 addNodeToQueue 的参数说明,相同\r\n\t\t\r\n\t\tword 要实际进行翻译的文本,也就是要把它拿来进行通过后端翻译接口进行翻译的文本\r\n\t\tlang 当前要翻译的文本的语种,如 english\r\n\t\tbeforeText 参见 translate.nodeQueue 注释中第七维的解释\r\n\t\tafterText 参见 translate.nodeQueue 注释中第七维的解释\r\n\r\n\t*/\r\n\taddNodeQueueItem:function(uuid, node, word, attribute, lang, beforeText, afterText){\r\n\t\t//创建二维数组, key为语种,如 english\r\n\t\tif(translate.nodeQueue[uuid]['list'][lang] == null || typeof(translate.nodeQueue[uuid]['list'][lang]) == 'undefined'){\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang] = new Array();\r\n\t\t}\r\n\t\t//console.log(word)\r\n\t\t//var word = text;\t//要翻译的文本\r\n\t\tvar hash = translate.util.hash(word); \t//要翻译的文本的hash\r\n\r\n\t\t//创建三维数组, key为要通过接口翻译的文本词或句子的 hash 。这里翻译的文本也就是整个node元素的内容了,不用在做拆分了\r\n\t\tif(translate.nodeQueue[uuid]['list'][lang][hash] == null || typeof(translate.nodeQueue[uuid]['list'][lang][hash]) == 'undefined'){\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash] = new Array();\r\n\r\n\t\t\t/*\r\n\t\t\t * 创建四维数组,存放具体数据\r\n\t\t\t * key: nodes 包含了这个hash的node元素的数组集合,array 多个。其中\r\n\t\t\t \t\tnodes[index]['node'] 存放当前的node元素\r\n\t\t\t \t\tnodes[index]['attribute'] 存放当前hash,也就是翻译文本针对的是什么,是node本身(nodeValue),还是 node 的某个属性,比如title属性。如果这里不为空,那就是针对的属性操作的\r\n\t\t\t * key: original 原始的要翻译的词或句子,html加载完成但还没翻译前的文本,用于支持当前页面多次语种翻译切换而无需跳转\r\n\t\t\t * beforeText、afterText:见 translate.nodeQueue 的说明\r\n\t\t\t */\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'] = new Array();\r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['original'] = word;\r\n\t\t\t//自定义术语处理在此前面已经执行过了,所以这个废弃,不需要处理自定义术语部分了\r\n\t\t\t//translate.nodeQueue[uuid]['list'][lang][hash]['translateText'] = translate.nomenclature.dispose(word); \r\n\t\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['translateText'] = word;\r\n\t\t\t//console.log(word)\r\n\r\n\r\n\r\n\t\t\t//其中key: nodes 是第四维数组,里面存放具体的node元素对象\r\n\t\t}\r\n\r\n\r\n\t\tvar isEquals = false; //queue中是否已经加入过这个node了(当然是同一hash同一node情况)\r\n\t\tif(typeof(node.isSameNode) != 'undefined'){\t//支持 isSameNode 方法判断对象是否相等\r\n\t\t\tfor(var node_index = 0; node_index < translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length; node_index++){\r\n\t\t\t\tif(node.isSameNode(translate.nodeQueue[uuid]['list'][lang][hash]['nodes'][node_index]['node'])){\r\n\t\t\t\t\t//相同,那就不用在存入了\r\n\t\t\t\t\t//console.log('相同,那就不用在存入了')\r\n\t\t\t\t\tisEquals = true;\r\n\t\t\t\t\t//console.log(node)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(isEquals){\r\n\t\t\t//相同,那就不用在存入了\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//往五维数组nodes中追加node元素\r\n\t\tvar nodesIndex = translate.nodeQueue[uuid]['list'][lang][hash]['nodes'].length;\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex] = new Array();\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['node']=node; \r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['attribute']=attribute;\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['beforeText'] = beforeText;\r\n\t\ttranslate.nodeQueue[uuid]['list'][lang][hash]['nodes'][nodesIndex]['afterText'] = afterText;\r\n\t\t\r\n\r\n\t},\r\n\r\n\t//全部翻译,node内容全部翻译,而不是进行语种提取,直接对node本身的全部内容拿出来进行直接全部翻译\r\n\twhole:{\r\n\t\tisEnableAll:false, //是否开启对整个html页面的整体翻译,也就是整个页面上所有存在的能被翻译的全部会采用整体翻译的方式。默认是 false不开启\t\t\r\n\r\n\t\tenableAll:function(){\r\n\t\t\ttranslate.whole.isEnableAll = true;\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t\t一下三个,也就是 class tag id 分别存储加入的值。使用参考:http://translate.zvo.cn/42563.html\r\n\t\t*/\r\n\t\tclass:[],\r\n\t\ttag:[],\r\n\t\tid:[],\r\n\r\n\t\t//运行时出现自检并在浏览器控制台提示性文本。 \r\n\t\t//在执行翻译,也就是 execute() 时,会调用此方法。\r\n\t\texecuteTip:function(){\r\n\t\t\tif(translate.whole.class.length == 0 && translate.whole.tag.length == 0 && translate.whole.id.length == 0){\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\tconsole.log('您开启了 translate.whole 此次行为避开了浏览器端的文本语种自动识别,而是暴力的直接对某个元素的整个文本进行翻译,很可能会产生非常大的翻译量,请谨慎!有关每日翻译字符的说明,可参考: http://translate.zvo.cn/42557.html ');\r\n\t\t\t}\r\n\r\n\t\t\tif(translate.whole.tag.indexOf('html') > -1){\r\n\t\t\t\tconsole.log('自检发现您设置了 translate.whole.tag 其中有 html ,这个是不生效的,最大只允许设置到 body ');\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t//当前元素是属于全部翻译定义的元素\r\n\t\t/*\r\n\t\t\t传入一个元素,判断这个元素是否是被包含的。 这个会找父类,看看父类中是否包含在其之中。\r\n\t\t\treturn true是在其中,false不再其中\r\n\t\t*/\r\n\t\tisWhole:function(ele){\r\n\r\n\t\t\t//如果设置了 class|tag|id 其中某个,或者 all=true ,那么就是启用,反之未启用\r\n\t\t\tif((translate.whole.class.length == 0 && translate.whole.tag.length == 0 && translate.whole.id.length == 0) && translate.whole.isEnableAll == false){\r\n\t\t\t\t//未设置,那么直接返回false\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(ele == null || typeof(ele) == 'undefined'){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(translate.whole.isEnableAll){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar parentNode = ele;\r\n\t\t\tvar maxnumber = 100;\t//最大循环次数,避免死循环\r\n\t\t\twhile(maxnumber-- > 0){\r\n\t\t\t\tif(parentNode == null || typeof(parentNode) == 'undefined'){\r\n\t\t\t\t\t//没有父元素了\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断Tag\r\n\t\t\t\t//var tagName = parentNode.nodeName.toLowerCase(); //tag名字,小写\r\n\t\t\t\tvar nodename = translate.element.getNodeName(parentNode).toLowerCase(); //tag名字,小写\r\n\t\t\t\tif(nodename.length > 0){\r\n\t\t\t\t\t//有nodename\r\n\t\t\t\t\tif(nodename == 'html' || nodename == '#document'){\r\n\t\t\t\t\t\t//上层元素已经是顶级元素了,那肯定就不是了\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(translate.whole.tag.indexOf(nodename) > -1){\r\n\t\t\t\t\t\t//发现ignore.tag 当前是处于被忽略的 tag\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\t\t\t\t//判断class name\r\n\t\t\t\tif(parentNode.className != null){\r\n\t\t\t\t\tvar classNames = parentNode.className;\r\n\t\t\t\t\tif(classNames == null || typeof(classNames) != 'string'){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('className:'+typeof(classNames));\r\n\t\t\t\t\t//console.log(classNames);\r\n\t\t\t\t\tclassNames = classNames.trim().split(' ');\r\n\t\t\t\t\tfor(var c_index = 0; c_index < classNames.length; c_index++){\r\n\t\t\t\t\t\tif(classNames[c_index] != null && classNames[c_index].trim().length > 0){\r\n\t\t\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\t\t\tif(translate.whole.class.indexOf(classNames[c_index]) > -1){\r\n\t\t\t\t\t\t\t\t//发现ignore.class 当前是处于被忽略的 class\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//判断id\r\n\t\t\t\tif(parentNode.id != null && typeof(parentNode.id) != 'undefined'){\r\n\t\t\t\t\t//有效的class name,进行判断\r\n\t\t\t\t\tif(translate.whole.id.indexOf(parentNode.id) > -1){\r\n\t\t\t\t\t\t//发现ignore.id 当前是处于被忽略的 id\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//赋予判断的元素向上一级\r\n\t\t\t\tparentNode = parentNode.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tlanguage:{\r\n\t\t/*\t\r\n\t\t\t英语的变种语种,也就是在英语26个字母的基础上加了点别的特殊字母另成的一种语言,而这些语言是没法直接通过识别字符来判断出是哪种语种的\r\n\t\t\tv3.4.2 增加\r\n\t\t\t当前先只加上:\r\n\t\t\t法语、意大利语、德语\r\n\t\t*/\r\n\t\tenglishVarietys : ['french','italian','deutsch'],\r\n\r\n\t\t//当前本地语种,本地语言,默认是简体中文。设置请使用 translate.language.setLocal(...)。不可直接使用,使用需用 getLocal()\r\n\t\tlocal:'',\r\n\r\n\t\t/*\r\n\t\t * v3.12增加, 是否会翻译本地语种,默认是false,不会翻译。\r\n\t\t * 比如当前设置的本地语种是简体中文, 但是网页中也有一段英文, 如果设置了translate.to 为中文,也就是要以中文显示 默认是false的情况下,整个页面是不会被任何翻译的,也就是有的那段英文也不会进行任何翻译,依旧是显示英文。\r\n\t\t * 如果这里设置为 true, 则英文也会被翻译,只要不是中文的,都会被翻译为要显示的语种,也就是都会被翻译为中文。\r\n\t\t */\r\n\t\ttranslateLocal:false,\r\n\r\n\t\t/*\r\n\t\t\t翻译语种范围\r\n\t\t\t比如传入 ['chinese_simplified','chinese_traditional','english'] 则表示仅对网页中的简体中文、繁体中文、英文 进行翻译,而网页中出现的其他的像是法语、韩语则不会进行翻译\r\n\t\t\t如果为空 [],则是翻译时,翻译网页中的所有语种\t\t\t\r\n\t\t\t设置方式为: translate.language.translateLanguagesRange = ['chinese_simplified','chinese_traditional']\r\n\t\t*/\r\n\t\ttranslateLanguagesRange: [], \r\n\t\t//传入语种。具体可传入哪些参考: http://api.translate.zvo.cn/doc/language.json.html\r\n\t\tsetLocal:function(languageName){\r\n\t\t\t//translate.setUseVersion2(); //Set to use v2.x version\r\n\t\t\ttranslate.useVersion = 'v2';\r\n\t\t\ttranslate.language.local = languageName;\r\n\t\t},\r\n\t\t//获取当前本地语种,本地语言,默认是简体中文。设置请使用 translate.language.setLocal(...)\r\n\t\tgetLocal:function(){\r\n\t\t\t//判断是否设置了本地语种,如果没设置,自动给其设置\r\n\t\t\tif(translate.language.local == null || translate.language.local.length < 1){\r\n\t\t\t\ttranslate.language.autoRecognitionLocalLanguage();\r\n\t\t\t}\r\n\t\t\treturn translate.language.local;\r\n\t\t},\r\n\t\t/*\r\n\t\t\t获取当前语种。\r\n\t\t\t比如当前设置的本地语种是简体中文,用户并未切换其他语种,那么这个方法将返回本地当前的语种,也就是等同于 translate.language.getLocal()\r\n\t\t\t如果用户切换为英语进行浏览,那么这个方法将返回翻译的目标语种,也就是 english\r\n\t\t*/\r\n\t\tgetCurrent:function(){\r\n\t\t\tvar to_storage = translate.storage.get('to');\r\n\t\t\tif(to_storage != null && typeof(to_storage) != 'undefined' && to_storage.length > 0){\r\n\t\t\t\t//之前有过使用,并且主动设置过目标语种\r\n\t\t\t\treturn to_storage;\r\n\t\t\t}\r\n\t\t\treturn translate.language.getLocal();\r\n\t\t},\r\n\t\t//如果第一次用,默认以什么语种显示。\r\n\t\t//比如本地当前语种是简体中文,这里设置为english,那么用户第一次使用时,会自动翻译为english进行显示。如果用户手动切换为其他语种比如韩语,那么就遵循用户手动切换的为主,显示韩语。\r\n\t\tsetDefaultTo:function(languageName){\r\n\t\t\tvar to_storage = translate.storage.get('to');\r\n\t\t\tif(to_storage != null && typeof(to_storage) != 'undefined' && to_storage.length > 0){\r\n\t\t\t\t//之前有过使用,并且主动设置过目标语种,那么不进行处理\r\n\t\t\t}else{\r\n\t\t\t\t//没有设置过,进行处理\r\n\t\t\t\ttranslate.storage.set('to', languageName);\r\n\t\t\t\ttranslate.to = languageName;\r\n\t\t\t}\r\n\t\t},\r\n\t\t/*\r\n\t\t\t清除历史翻译语种的缓存\r\n\t\t*/\r\n\t\tclearCacheLanguage:function(){\r\n\t\t\ttranslate.to = '';\r\n\t\t\ttranslate.storage.set('to','');\r\n\t\t},\r\n\t\t//根据URL传参控制以何种语种显示\r\n\t\t//设置可以根据当前访问url的某个get参数来控制使用哪种语言显示。\r\n\t\t//比如当前语种是简体中文,网页url是http://translate.zvo.cn/index.html ,那么可以通过在url后面增加 language 参数指定翻译语种,来使网页内容以英文形态显示 http://translate.zvo.cn/index.html?language=english\r\n\t\tsetUrlParamControl:function(paramName){\r\n\t\t\tif(typeof(paramName) == 'undefined' || paramName.length < 1){\r\n\t\t\t\tparamName = 'language';\r\n\t\t\t}\r\n\t\t\tvar paramValue = translate.util.getUrlParam(paramName);\r\n\t\t\tif(typeof(paramValue) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(paramValue == '' || paramValue == 'null' || paramValue == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttranslate.storage.set('to', paramValue);\r\n\t\t\ttranslate.to = paramValue;\r\n\t\t},\r\n\t\t//自动识别当前页面是什么语种\r\n\t\tautoRecognitionLocalLanguage:function(){\r\n\t\t\tif(translate.language.local != null && translate.language.local.length > 2){\r\n\t\t\t\t//已设置过了,不需要再设置\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar bodyText = document.body.outerText;\r\n\t\t\tif(bodyText == null || typeof(bodyText) == 'undefined' || bodyText.length < 1){\r\n\t\t\t\t//未取到,默认赋予简体中文\r\n\t\t\t\ttranslate.language.local = 'chinese_simplified';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tbodyText = bodyText.replace(/\\n|\\t|\\r/g,''); //将回车换行等去掉\r\n\r\n\t\t\t//默认赋予简体中文\r\n\t\t\ttranslate.language.local = 'chinese_simplified';\r\n\t\t\tvar recognition = translate.language.recognition(bodyText);\r\n\t\t\ttranslate.language.local = recognition.languageName;\r\n\t\t\treturn translate.language.local;\r\n\t\t\t/* v3.1优化\r\n\t\t\tvar langs = new Array(); //上一个字符的语种是什么,当前字符向上数第一个字符。格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。 \r\n\t\t\tfor(var i=0; i -1){\r\n\t\t\t\tnewLangs.splice(index,1); //移除数组中的特殊字符\r\n\t\t\t}\r\n\r\n\t\t\tif(newLangs.length > 0){\r\n\t\t\t\t//找到排序出现频率最多的\r\n\t\t\t\ttranslate.language.local = newLangs[0];\r\n\t\t\t}else{\r\n\t\t\t\t//没有,默认赋予简体中文\r\n\t\t\t\ttranslate.language.local = 'chinese_simplified';\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t},\r\n\t\t\r\n\t\t/*\r\n\t\t * 获取当前字符是什么语种。返回值是一个语言标识,有 chinese_simplified简体中文、japanese日语、korean韩语、\r\n\t\t * str : node.nodeValue 或 图片的 node.alt 等\r\n\t\t * 如果语句长,会全句翻译,以保证翻译的准确性,提高可读性。\r\n\t\t * 如果语句短,会自动将特殊字符、要翻译的目标语种给过滤掉,只取出具体的要翻译的目标语种文本\r\n\t\t *\r\n\t\t * 返回 存放不同语言的数组,格式如\r\n\t\t * \t[\r\n\t\t\t\t\t\"english\":[\r\n\t\t\t\t\t\t{beforeText: '', afterText: '', text: 'emoambue hag'},\r\n\t\t\t\t\t\t......\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"japanese\":[\r\n\t\t\t\t\t\t{beforeText: ' ', afterText: ' ', text: 'ẽ '},\r\n\t\t\t\t\t\t......\r\n\t\t\t\t\t]\r\n\t\t \t\t]\r\n\t\t * \t\t\r\n\t\t */\r\n\t\tget:function(str){\r\n\t\t\t//将str拆分为单个char进行判断\r\n\r\n\t\t\tvar langs = new Array(); //当前字符串包含哪些语言的数组,其内如 english\r\n\t\t\tvar langStrs = new Array();\t//存放不同语言的文本,格式如 ['english'][0] = 'hello'\r\n\t\t\tvar upLangs = []; //上一个字符的语种是什么,当前字符向上数第一个字符。格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。 \r\n\t\t\tvar upLangsTwo = []; //上二个字符的语种是什么 ,当前字符向上数第二个字符。 格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。\r\n\t\t\t\r\n\t\t\t//var upLangs = ''; //上一个字符的语种是什么,格式如 english\r\n\t\t\tfor(var i=0; i -1){\r\n\t\t\t\tnewLangs.splice(index,1); //移除\r\n\t\t\t}\r\n\r\n\t\t\t//移除特殊字符\r\n\t\t\tvar index = newLangs.indexOf('specialCharacter');\r\n\t\t\tif(index > -1){\r\n\t\t\t\tnewLangs.splice(index,1); //移除数组中的特殊字符\r\n\t\t\t}\r\n\r\n\t\t\tif(newLangs.length > 0){\r\n\t\t\t\t//还剩一个或多个,(如果是多个,那应该是这几个出现的频率一样,所以取频率最高的时返回了多个)\r\n\t\t\t\treturn newLangs[0];\r\n\t\t\t}else{\r\n\t\t\t\t//没找到,直接返回空字符串\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t//去除特殊符号\r\n\t\t\t//for(var i = 0; i 0.01){\r\n\t\t\t\t\tlangkeys[langkeys.length] = lang+'';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(langkeys.length > 1 && langkeys.indexOf('english') > -1){\r\n\t\t\t\t//console.log('出现了english, 并且english跟其他语种一起出现那么删除english,因为什么法语德语乱七八糟的都有英语。而且中文跟英文一起,如果认为是英文的话,有时候中文会不被翻译');\r\n\t\t\t\t//这里先判断一下是否有发现了 罗曼语族\r\n\t\t\t\tif(langkeys.indexOf('romance') > -1){\r\n\t\t\t\t\t//发现了,那么判断一下到底是 法语、西班牙语、葡萄牙语、意大利语 中的哪一种呢\r\n\t\t\t\t\tvar romanceSentenceLanguage = translate.language.romanceSentenceAnaly(str);\r\n\t\t\t\t\tif(romanceSentenceLanguage.length == 0){\r\n\t\t\t\t\t\tconsole.log('语种识别异常,应该是 法语、西班牙语、葡萄牙语、意大利语 中的一种才是,除非是除了这四种语种之外的别的 罗曼语族 中的语种,当前已将 '+ str +'识别为英语。 你可以联系我们求助 https://translate.zvo.cn/4030.html');\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//console.log(langsNumber);\r\n\t\t\t\t\t\tlangsNumber[romanceSentenceLanguage] = langsNumber['romance']+langsNumber['english'];\r\n\t\t\t\t\t\t//console.log('set romance to '+romanceSentenceLanguage+' : \\t'+str);\r\n\t\t\t\t\t\tlangsNumber['english'] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tlangsNumber['english'] = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(langkeys.indexOf('chinese_simplified') > -1 && langkeys.indexOf('chinese_traditional') > -1){\r\n\t\t\t\t//如果简体中文跟繁体中文一起出现,那么会判断当前句子为繁体中文。\r\n\t\t\t\t//langkeys.splice(langkeys.indexOf('chinese_simplified'), 1); \r\n\t\t\t\tlangsNumber['chinese_simplified'] = 0;\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//从 langsNumber 中找出字数最多的来\r\n\t\t\tvar maxLang = ''; //字数最多的语种\r\n\t\t\tvar maxNumber = 0;\r\n\t\t\tfor(var lang in langsNumber){\r\n\t\t\t\tif(langsNumber[lang] > maxNumber){\r\n\t\t\t\t\tmaxLang = lang;\r\n\t\t\t\t\tmaxNumber = langsNumber[lang];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//重新组合返回值的 languageArray\r\n\t\t\tvar languageArray = {};\r\n\t\t\tfor(var lang in langs){\r\n\t\t\t\tlanguageArray[lang] = {};\r\n\t\t\t\tlanguageArray[lang].number = langsNumberOriginal[lang];\r\n\t\t\t\tlanguageArray[lang].list = langs[lang];\r\n\t\t\t}\r\n\r\n\t\t\tvar result = {\r\n\t\t\t\tlanguageName: maxLang,\r\n\t\t\t\tlanguageArray: languageArray\r\n\t\t\t};\r\n\r\n\t\t\t//v3.4.2 增加,增加对法语等英文变种的小语种的识别\r\n\t\t\tif(result.languageName == 'english'){\r\n\t\t\t\t//如果识别的语种是英语,那便不仅仅是英语,因为法语、德语、意大利语也是在英语里面,还要判断一下是否用户自己设置了具体语种是否是英语延伸的小语种\r\n\r\n\t\t\t\tvar localLang = translate.language.getLocal(); //本地语种\r\n\t\t\t\tif(translate.language.englishVarietys.indexOf(localLang) > -1){\r\n\t\t\t\t\t//发现当前设置的是小语种,那么将当前识别的语种识别为 本地设置的这个小语种。\r\n\t\t\t\t\tresult.languageName = localLang;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t/*\r\n\t\t\t传入一个char,返回这个char属于什么语种,返回如 如果返回空字符串,那么表示未获取到是什么语种\r\n\t\t\tchinese_simplified 简体中文\r\n\t\t\tchinese_traditional 繁体中文\r\n\t\t\trussian 俄罗斯语\r\n\t\t\tenglish 英语\r\n\t\t\tromance 罗曼语族,它是 法语、西班牙语、意大利语、葡萄牙語 的集合,并不是单个语言\r\n\t\t\tspecialCharacter 特殊字符,符号\r\n\t\t\tnumber 阿拉伯数字\r\n\t\t\tjapanese 日语\r\n\t\t\tkorean 韩语\r\n\t\t*/\r\n\t\tgetCharLanguage:function(charstr){\r\n\t\t\tif(charstr == null || typeof(charstr) == 'undefined'){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(this.russian(charstr)){\r\n\t\t\t\treturn 'russian';\r\n\t\t\t}\r\n\t\t\tif(this.english(charstr)){\r\n\t\t\t\treturn 'english';\r\n\t\t\t}\r\n\t\t\tif(this.romance(charstr)){\r\n\t\t\t\treturn 'romance';\r\n\t\t\t}\r\n\t\t\tif(this.specialCharacter(charstr)){\r\n\t\t\t\treturn 'specialCharacter';\r\n\t\t\t}\r\n\t\t\tif(this.number(charstr)){\r\n\t\t\t\treturn 'number';\t\r\n\t\t\t}\r\n\r\n\t\t\t//中文的判断包含两种,简体跟繁体\r\n\t\t\tvar chinesetype = this.chinese(charstr);\r\n\t\t\tif(chinesetype == 'simplified'){\r\n\t\t\t\treturn 'chinese_simplified';\r\n\t\t\t}else if(chinesetype == 'traditional'){\r\n\t\t\t\treturn 'chinese_traditional';\r\n\t\t\t}\r\n\r\n\t\t\tif(this.japanese(charstr)){\r\n\t\t\t\treturn 'japanese';\r\n\t\t\t}\r\n\t\t\tif(this.korean(charstr)){\r\n\t\t\t\treturn 'korean';\r\n\t\t\t}\r\n\r\n\t\t\t//未识别是什么语种\r\n\t\t\t//console.log('not find is language , char : '+charstr+', unicode: '+charstr.charCodeAt(0).toString(16));\r\n\t\t\treturn '';\r\n\t\t\t\r\n\t\t},\r\n\t\t/*\r\n\t\t * 对字符串进行分析,分析字符串是有哪几种语言组成。\r\n\t\t * language : 当前字符的语种,传入如 english\r\n\t\t * langStrs : 操作的,如 langStrs['english'][0] = '你好'\r\n\t\t * upLangs : 当前字符之前的上一个字符的语种是什么,当前字符向上数第一个字符。格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。\r\n\t\t * upLangsTwo : 当前字符之前的上二个字符的语种是什么 ,当前字符向上数第二个字符。 格式如 ['language']='english', ['chatstr']='a', ['storage_language']='english' 这里面有3个参数,分别代表这个字符属于那个语种,其字符是什么、存入了哪种语种的队列。因为像是逗号,句号,一般是存入本身语种中,而不是存入特殊符号中。\r\n\t\t * chatstr : 当前字符,如 h\r\n\t\t */\r\n\t\tanalyse:function(language, langStrs, upLangs, upLangsTwo, charstr){\r\n\t\t\tif(typeof(langStrs[language]) == 'undefined'){\r\n\t\t\t\tlangStrs[language] = new Array();\r\n\t\t\t}\r\n\t\t\tvar index = 0; //当前要存入的数组下标\r\n\t\t\tif(typeof(upLangs['storage_language']) == 'undefined'){\r\n\t\t\t\t//第一次,那么还没存入值,index肯定为0\r\n\t\t\t\t//console.log('第一次,那么还没存入值,index肯定为0')\r\n\t\t\t\t//console.log(upLangs['language'])\r\n\t\t\t}else{\r\n\t\t\t\t//console.log('analyse, charstr : '+charstr+', upLangs :');\r\n\t\t\t\t//console.log(upLangs);\r\n\t\t\t\t//var isEqual = upLangs['storage_language'] == language; //上次跟当前字符是否都是同一个语种(这个字符跟这个字符前一个字符)\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t英语每个单词之间都会有空格分割. 如果是英文的话,英文跟特殊字符还要单独判断一下,避免拆开,造成翻译不准,单个单词翻译的情况\r\n\t\t\t\t\t所以如果上次的字符是英文或特殊符号,当前字符是特殊符号(逗号、句号、空格,然后直接笼统就吧特殊符号都算上吧),那么也将当次的特殊符号变为英文来进行适配\r\n\t\t\t\t\t示例 \r\n\t\t\t\t\t\thello word 的 \"o w\"\r\n\t\t\t\t\t\thello word 的 \" w\"\r\n\t\t\t\t\t\thello word 的 \"w \"\r\n\t\t\t\t\t\tthis is a dog 的 \" a \"\r\n\t\t\t\t*/\r\n\t\t\t\t//console.log(language == 'specialCharacter');\r\n\t\t\t\t//如果两个字符类型不一致,但当前字符是英文或连接符时,进行判断\r\n\t\t\t\t/*\r\n\t\t\t\tif(!isEqual){\r\n\t\t\t\t\tif(language == 'english' || translate.language.connector(charstr)){\r\n\t\t\t\t\t\tconsole.log('1.'+(language == 'english' || translate.language.connector(charstr))+', upLangs str:'+upLangs['charstr']);\r\n\t\t\t\t\t\t//上一个字符是英文或连接符\r\n\t\t\t\t\t\t//console.log('teshu:'+translate.language.connector(upLangs['charstr'])+', str:'+upLangs['charstr']);\r\n\t\t\t\t\t\tif(upLangs['language'] == 'english' || translate.language.connector(upLangs['charstr'])) {\r\n\t\t\t\t\t\t\tconsole.log('2');\r\n\t\t\t\t\t\t\t//如果上二个字符不存在,那么刚开始,不再上面几种情况之中,直接不用考虑\r\n\t\t\t\t\t\t\tif(typeof(upLangsTwo['language']) != 'undefined'){\r\n\t\t\t\t\t\t\t\tconsole.log('3')\r\n\t\t\t\t\t\t\t\t//上二个字符是空(字符串刚开始),或者是英文\r\n\t\t\t\t\t\t\t\tif(upLangsTwo['language'] == 'english' || translate.language.connector(upLangsTwo['charstr'])){\r\n\t\t\t\t\t\t\t\t\t//满足这三个条件,那就将这三个拼接到一起\r\n\t\t\t\t\t\t\t\t\tconsole.log('4/5: '+', two lang:'+upLangsTwo['language']+', str:'+upLangsTwo['charstr'])\r\n\t\t\t\t\t\t\t\t\tisEqual = true;\r\n\t\t\t\t\t\t\t\t\tif(language == 'specialCharacter' && upLangs['language'] == 'specialCharacter' && upLangsTwo['language'] == 'specialCharacter'){\r\n\t\t\t\t\t\t\t\t\t\t//如果三个都是特殊字符,或后两个是特殊字符,第一个是空(刚开始),那就归入特殊字符\r\n\t\t\t\t\t\t\t\t\t\tlanguage = 'specialCharacter';\r\n\t\t\t\t\t\t\t\t\t\t//console.log('4')\r\n\t\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\t\t//不然就都归于英文中。\r\n\t\t\t\t\t\t\t\t\t\t//这里更改是为了让下面能将特殊字符(像是空格逗号等)也一起存入数组\r\n\t\t\t\t\t\t\t\t\t\tlanguage = 'english';\r\n\t\t\t\t\t\t\t\t\t\tconsole.log(5)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t不判断当前字符,而判断上个字符,是因为当前字符没法获取未知的下个字符。\r\n\t\t\t\t*/\r\n\t\t\t\t//if(!isEqual){\r\n\r\n\t\t\t\t\t//如果当前字符是连接符\r\n\t\t\t\t\tif(translate.language.connector(charstr)){\r\n\t\t\t\t\t\tlanguage = upLangs['storage_language'];\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t//判断上个字符是否存入了待翻译字符,如要将中文翻译为英文,而上个字符是中文,待翻译,那将连接符一并加入待翻译字符中去,保持句子完整性\r\n\t\t\t\t\t\t//判断依据是上个字符存储至的翻译字符语种序列,不是特殊字符,而且也不是要翻译的目标语种,那肯定就是待翻译的,将连接符加入待翻译中一起进行翻译\r\n\t\t\t\t\t\tif(upLangs['storage_language'] != 'specialCharacter' && upLangs['storage_language'] != translate.to){\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tlanguage = upLangs['storage_language'];\r\n\t\t\t\t\t\t\tconsole.log('teshu:'+charstr+', 当前字符并入上个字符存储翻译语种:'+upLangs['storage_language']);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t}\r\n\t\t\t\t//}\r\n\r\n\t\t\t\t//console.log('isEqual:'+isEqual);\r\n\t\t\t\t/*\r\n\t\t\t\tif(isEqual){\r\n\t\t\t\t\t//跟上次语言一样,那么直接拼接\r\n\t\t\t\t\tindex = langStrs[language].length-1; \r\n\t\t\t\t\t//但是还有别的特殊情况,v2.1针对英文翻译准确度的适配,会有特殊字符的问题\r\n\t\t\t\t\tif(typeof(upLangs['storage_language']) != 'undefined' && upLangs['storage_language'] != language){\r\n\t\t\t\t\t\t//如果上个字符存入的翻译队列跟当前这个要存入的队列不一个的话,那应该是特殊字符像是逗号句号等导致的,那样还要额外一个数组,不能在存入之前的数组了\r\n\t\t\t\t\t\tindex = langStrs[language].length; \r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//console.log('新开');\r\n\t\t\t\t\t//当前字符跟上次语言不样,那么新开一个数组\r\n\t\t\t\t\tindex = langStrs[language].length;\r\n\t\t\t\t\t//console.log('++, inde:'+index+',lang:'+language+', length:'+langStrs[language].length)\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\r\n\t\t\t\t//当前要翻译的语种跟上个字符要翻译的语种一样,那么直接拼接\r\n\t\t\t\tif(upLangs['storage_language'] == language){\r\n\t\t\t\t\tindex = langStrs[language].length-1; \r\n\t\t\t\t}else{\r\n\t\t\t\t\t//console.log('新开');\r\n\t\t\t\t\t//当前字符跟上次语言不样,那么新开一个数组\r\n\t\t\t\t\tindex = langStrs[language].length;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(typeof(langStrs[language][index]) == 'undefined'){\r\n\t\t\t\tlangStrs[language][index] = new Array();\r\n\t\t\t\tlangStrs[language][index]['beforeText'] = '';\r\n\t\t\t\tlangStrs[language][index]['afterText'] = '';\r\n\t\t\t\tlangStrs[language][index]['text'] = '';\r\n\t\t\t}\r\n\t\t\tlangStrs[language][index]['text'] = langStrs[language][index]['text'] + charstr;\r\n\t\t\t/*\r\n\t\t\t\t中文英文混合时,当中文+英文并没有空格间隔,翻译为英文时,会使中文翻译英文的结果跟原本的英文单词连到一块。这里就是解决这种情况\r\n\t\t\t\t针对当前非英文(不需要空格分隔符,像是中文、韩语),但要翻译为英文(需要空格作为分割符号,像是法语等)时的情况进行判断\r\n\t\t\t*/\r\n\t\t\t//if(translate.language.getLocal() != 'english' && translate.to == 'english'){\r\n\t\t\t//当前本地语种的语言是连续的,但翻译的目标语言不是连续的(空格间隔)\r\n\t\t\tif( translate.language.wordBlankConnector(translate.language.getLocal()) == false && translate.language.wordBlankConnector(translate.to)){\t\r\n\t\t\t\tif((upLangs['storage_language'] != null && typeof(upLangs['storage_language']) != 'undefined' && upLangs['storage_language'].length > 0)){\r\n\t\t\t\t\t//上个字符存在\r\n\t\t\t\t\t//console.log(upLangs['storage_language']);\r\n\t\t\t\t\tif(upLangs['storage_language'] != 'specialCharacter'){\r\n\t\t\t\t\t\t//上个字符不是特殊字符 (是正常语种。且不会是连接符,连接符都并入了正常语种)\r\n\r\n\t\t\t\t\t\t//if( upLangs['storage_language'] != 'english' && language == 'english'){\r\n\t\t\t\t\t\t//上个字符的语言是连续的,但当前字符的语言不是连续的(空格间隔)\r\n\t\t\t\t\t\tif( translate.language.wordBlankConnector(upLangs['storage_language']) == false && translate.language.wordBlankConnector(language) ){\r\n\t\t\t\t\t\t\t//上个字符不是英语,当前字符是英语,这种情况要在上个字符后面追加空格,因为当前字符是英文,就不会在执行翻译操作了\r\n\t\t\t\t\t\t\t//console.log(upLangs['language']);\r\n\t\t\t\t\t\t\tlangStrs[upLangs['storage_language']][langStrs[upLangs['storage_language']].length-1]['afterText'] = ' ';\r\n\t\t\t\t\t\t}else if(upLangs['storage_language'] == 'english' && language != 'english'){\r\n\t\t\t\t\t\t\t//上个字符是英语,当前字符不是英语,直接在当前字符前面追加空格\r\n\t\t\t\t\t\t\tlangStrs[language][index]['beforeText'] = ' ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar result = new Array();\r\n\t\t\tresult['langStrs'] = langStrs;\r\n\t\t\tresult['storage_language'] = language;\t//实际存入了哪种语种队列\r\n\t\t\t//console.log(result);\r\n\t\t\t//console.log(langStrs)\r\n\t\t\t//console.log(charstr);\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t\r\n\t\t/*\r\n\t\t * 不同于语言,这个只是单纯的连接符。比如英文单词之间有逗号、句号、空格, 汉字之间有逗号句号书名号的。避免一行完整的句子被分割,导致翻译不准确\r\n\t\t * 单独拿他出来,目的是为了更好的判断计算,提高翻译的准确率\r\n\t\t */\r\n\t\tconnector:function(str){\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t\t通用的有 空格、阿拉伯数字\r\n\t\t\t\t1.不间断空格\\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ;\r\n\t\t\t\t2.半角空格(英文符号)\\u0020,代码中常用的;\r\n\t\t\t\t3.全角空格(中文符号)\\u3000,中文文章中使用; \r\n\t\t\t*/\t\r\n\t\t\tif(/.*[\\u0020\\u00A0\\u202F\\u205F\\u3000]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t/*\r\n\t\t\t\tU+0030 0 数字 0\r\n\t\t\t\tU+0031 1 数字 1\r\n\t\t\t\tU+0032 2 数字 2\r\n\t\t\t\tU+0033 3 数字 3\r\n\t\t\t\tU+0034 4 数字 4\r\n\t\t\t\tU+0035 5 数字 5\r\n\t\t\t\tU+0036 6 数字 6\r\n\t\t\t\tU+0037 7 数字 7\r\n\t\t\t\tU+0038 8 数字 8\r\n\t\t\t\tU+0039 9 数字 9\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u0030-\\u0039]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t\t\t/*\r\n\t\t\t\t英文场景\r\n\t\t\t\t英文逗号、句号\r\n\t\t\t\t这里不包括() 因为这里面的基本属于补充,对语句前后并无强依赖关系\r\n\t\t\t\t\r\n\t\t\t\tU+0021 ! 叹号\r\n\t\t\t\tU+0022 \" 双引号\r\n\t\t\t\tU+0023 # 井号\r\n\t\t\t\tU+0024 $ 价钱/货币符号\r\n\t\t\t\tU+0025 % 百分比符号\r\n\t\t\t\tU+0026 & 英文“and”的简写符号\r\n\t\t\t\tU+0027 ' 引号\r\n\t\t\t\tU+002C , 逗号\r\n\t\t\t\tU+002D - 连字号/减号\r\n\t\t\t\tU+002E . 句号\r\n\t\t\t\tU+003A : 冒号\r\n\t\t\t\tU+003B ; 分号\r\n\t\t\t\tU+003F ? 问号\r\n\t\t\t\tU+0040 @ 英文“at”的简写符号\r\n\r\n\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u0021\\u0022\\u0023\\u0024\\u0025\\u0026\\u0027\\u002C\\u002D\\u002E\\u003A\\u003B\\u003F\\u0040]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t\t中文标点符号\r\n\t\t\t\t名称\tUnicode\t符号\r\n\t\t\t\t句号\t3002\t。\r\n\t\t\t\t问号\tFF1F\t?\r\n\t\t\t\t叹号\tFF01\t!\r\n\t\t\t\t逗号\tFF0C\t,\r\n\t\t\t\t顿号\t3001\t、\r\n\t\t\t\t分号\tFF1B\t;\r\n\t\t\t\t冒号\tFF1A\t:\r\n\t\t\t\t引号\t300C\t「\r\n\t\t\t\t \t300D\t」\r\n\t\t\t\t引号\t300E\t『\r\n\t\t\t\t \t300F\t』\r\n\t\t\t\t引号\t2018\t‘\r\n\t\t\t\t \t2019\t’\r\n\t\t\t\t引号\t201C\t“\r\n\t\t\t\t \t201D\t”\r\n\t\t\t\t括号\tFF08\t(\r\n\t\t\t\t \tFF09\t)\r\n\t\t\t\t括号\t3014\t〔\r\n\t\t\t\t \t3015\t〕\r\n\t\t\t\t括号\t3010\t【\r\n\t\t\t\t \t3011\t】\r\n\t\t\t\t破折号\t2014\t—\r\n\t\t\t\t省略号\t2026\t…\r\n\t\t\t\t连接号\t2013\t–\r\n\t\t\t\t间隔号\tFF0E\t.\r\n\t\t\t\t书名号\t300A\t《\r\n\t\t\t\t \t300B\t》\r\n\t\t\t\t书名号\t3008\t〈\r\n\t\t\t\t \t3009\t〉\r\n\t\t\t\t键盘123前面的那个符号 · 00b7\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u3002\\uFF1F\\uFF01\\uFF0C\\u3001\\uFF1B\\uFF1A\\u300C\\u300D\\u300E\\u300F\\u2018\\u2019\\u201C\\u201D\\uFF08\\uFF09\\u3014\\u3015\\u3010\\u3011\\u2014\\u2026\\u2013\\uFF0E\\u300A\\u300B\\u3008\\u3009\\u00b7]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\r\n\t\t\t//不是,返回false\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t//语种的单词连接符是否需要空格,比如中文简体、繁体、韩文、日语都不需要空格,则返回false, 但是像是英文的单词间需要空格进行隔开,则返回true\r\n\t\t//如果未匹配到,默认返回true\r\n\t\t//language:语种,传入如 english\r\n\t\twordBlankConnector:function(language){\r\n\t\t\tif(language == null || typeof(language) == 'undefined'){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tswitch (language.trim().toLowerCase()){\r\n\t\t \t\tcase 'chinese_simplified':\r\n\t\t \t\t\treturn false;\r\n\t\t \t\tcase 'chinese_traditional':\r\n\t\t \t\t\treturn false;\r\n\t\t \t\tcase 'korean':\r\n\t\t \t\t\treturn false;\r\n\t\t \t\tcase 'japanese':\r\n\t\t \t\t\treturn false;\r\n\t\t \t}\r\n\t\t \t//其他情况则返回true\r\n\t\t \treturn true;\r\n\t\t},\r\n\t\t//繁体中文的字典,判断繁体中文就是通过此判断\r\n\t\tchinese_traditional_dict: '皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊',\r\n\t\t/*\r\n\t\t\t中文判断\r\n\t\t\t返回:\r\n\t\t\t\tsimplified:简体中文\r\n\t\t\t\ttraditional:繁体中文\r\n\t\t\t\t空字符串:不是中文\r\n\t\t*/ \r\n\t\tchinese:function(str){\r\n\t\t\tif(/.*[\\u4e00-\\u9fa5]+.*$/.test(str)){ \r\n\t\t\t\tif(this.chinese_traditional_dict.indexOf(str) > -1){ \r\n\t\t\t\t\treturn 'traditional';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn 'simplified';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含日语,true:包含\r\n\t\tjapanese:function(str){\r\n\t\t\tif(/.*[\\u3040-\\u309F\\u30A0-\\u30FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含韩语,true:包含\r\n\t\tkorean:function(str){\r\n\t\t\tif(/.*[\\uAC00-\\uD7AF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含俄语\r\n\t\trussian:function(str){\r\n\t\t\t//判断字符有 БВДЖЗИЙЛМНОПСТУФХЦЧШЩЪЫЬЮЯЇІ\r\n\t\t\tif(/.*[\\u0411\\u0412\\u0414\\u0416\\u0417\\u0418\\u0419\\u041B\\u041C\\u041D\\u041E\\u041F\\u0421\\u0422\\u0423\\u0424\\u0425\\u0426\\u0427\\u0428\\u0429\\u042A\\u042B\\u042C\\u042E\\u042F\\u0407\\u0406]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//0-9 阿拉伯数字\r\n\t\tnumber:function(str){\r\n\t\t\tif(/.*[\\u0030-\\u0039]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t//是否包含英文,true:包含\r\n\t\tenglish:function(str){\r\n\t\t\tif(/.*[\\u0041-\\u005a]+.*$/.test(str)){ \r\n\t\t\t\treturn true;\r\n\t\t\t} else if(/.*[\\u0061-\\u007a]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//是否包含 罗曼语族 的特殊字符,因为 法语、西班牙语、意大利语、葡萄牙語 都属于这个语族,单纯判断特殊字符已经不能判断出到底属于哪个语种了\r\n\t\tromance_dict:['é','è','ê','à','ç','œ','ñ','á','ó','ò','ì','ã','õ'],\r\n\t\tromance:function(str){\r\n\t\t\tif(this.romance_dict.indexOf(str) > -1){ \r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//对 罗曼语族 的句子进行分析,看它是属于 法语、西班牙语、意大利语、葡萄牙語 的哪个。注意这个是传入的整体的句子,不是传入的单个字符\r\n\t\t//返回识别的语种: french、spanish、italian、portuguese 如果都没有识别出来,则返回空字符串\r\n\t\tromanceSentenceAnaly:function(text) {\r\n\t\t // 定义各语言的典型字母/符号权重 (可调整)\r\n\t\t const langFeatures = {\r\n\t\t 'french': { score:0 , chars: ['é','è','ê','à','ç','œ'] },\r\n\t\t 'spanish': { score:0 , chars: ['ñ','á','ó'], pairs: ['ll'] },\r\n\t\t 'italian': { score:0 , chars: ['ò','ì'], pairs: ['cc', 'ss'] },\r\n\t\t 'portuguese': { score:0 , chars: ['ã', 'õ'] }\r\n\t\t };\r\n\r\n\t\t // 逐字扫描 + 相邻配对检测\r\n\t\t for (let i=0; i {\r\n\t\t if (langFeatures[lang].chars.includes(char)) {\r\n\t\t langFeatures[lang].score +=1;\r\n\t\t }\r\n\t\t });\r\n\r\n\t\t // 双字配对检测 (如 ll)\r\n\t\t if(i < text.length -1) {\r\n\t\t const pair = text.slice(i,i+2).toLowerCase();\r\n\t\t Object.keys(langFeatures).forEach(lang => {\r\n\t\t \tconst pairs = langFeatures[lang].pairs;\r\n\t\t\t\t if (pairs && pairs.includes(pair)) {\r\n\t\t\t\t langFeatures[lang].score += 2; // pair权重大于单字\r\n\t\t\t\t }\r\n\t\t });\r\n\t\t }\r\n\t\t }\r\n\r\n\t\t // 结果判定 (取最高分)\r\n\t\t let maxLang = '';\r\n\t\t let maxScore = -1;\r\n\t\t \r\n\t\t Object.keys(langFeatures).forEach(lang =>{\r\n\t\t if(langFeatures[lang].score > maxScore){\r\n\t\t maxScore = langFeatures[lang].score;\r\n\t\t maxLang = lang;\r\n\t\t } \r\n\t\t });\r\n\r\n\t\t return maxLang || ''; \r\n\t\t},\r\n\r\n\t\t//是否包含特殊字符,包含,则是true\r\n\t\tspecialCharacter:function(str){\r\n\t\t\t//如:① ⑴ ⒈ \r\n\t\t\tif(/.*[\\u2460-\\u24E9]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t//如:┊┌┍ ▃ ▄ ▅\r\n\t\t\tif(/.*[\\u2500-\\u25FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t//如:㈠ ㎎ ㎏ ㎡\r\n\t\t\tif(/.*[\\u3200-\\u33FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//如:与ANSI对应的全角字符\r\n\t\t\tif(/.*[\\uFF00-\\uFF5E]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t//其它特殊符号\r\n\t\t\tif(/.*[\\u2000-\\u22FF]+.*$/.test(str)){ \r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\t// 、><等符号\r\n\t\t\tif(/.*[\\u3001-\\u3036]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\t//阿拉伯数字 0-9\r\n\t\t\tif(/.*[\\u0030-\\u0039]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\tU+0020 空格\r\n\t\t\tU+0021 ! 叹号\r\n\t\t\tU+0022 \" 双引号\r\n\t\t\tU+0023 # 井号\r\n\t\t\tU+0024 $ 价钱/货币符号\r\n\t\t\tU+0025 % 百分比符号\r\n\t\t\tU+0026 & 英文“and”的简写符号\r\n\t\t\tU+0027 ' 引号\r\n\t\t\tU+0028 ( 开 左圆括号\r\n\t\t\tU+0029 ) 关 右圆括号\r\n\t\t\tU+002A * 星号\r\n\t\t\tU+002B + 加号\r\n\t\t\tU+002C , 逗号\r\n\t\t\tU+002D - 连字号/减号\r\n\t\t\tU+002E . 句号\r\n\t\t\tU+002F / 左斜杠\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u0020-\\u002F]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\t\tU+003A : 冒号\r\n\t\t\t\tU+003B ; 分号\r\n\t\t\t\tU+003C < 小于符号\r\n\t\t\t\tU+003D = 等于号\r\n\t\t\t\tU+003E > 大于符号\r\n\t\t\t\tU+003F ? 问号\r\n\t\t\t\tU+005B [ 开 方括号\r\n\t\t\t\tU+005C \\ 右斜杠\r\n\t\t\t\tU+005D ] 关 方括号\r\n\t\t\t\tU+005E ^ 抑扬(重音)符号\r\n\t\t\t\tU+005F _ 底线\r\n\t\t\t\tU+0060 ` 重音符\r\n\t\t\t\tU+007B { 开 左花括号\r\n\t\t\t\tU+007C | 直线\r\n\t\t\t\tU+007D } 关 右花括号\r\n\t\t\t\tU+007E ~ 波浪纹\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u003B\\u003B\\u003C\\u003D\\u003E\\u003F\\u005B\\u005C\\u005D\\u005E\\u005F\\u0060\\u007B\\u007C\\u007D\\u007E]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//空白字符,\\u0009\\u000a + https://cloud.tencent.com/developer/article/2128593\r\n\t\t\tif(/.*[\\u0009\\u000a\\u0020\\u00A0\\u1680\\u180E\\u202F\\u205F\\u3000\\uFEFF]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif(/.*[\\u2000-\\u200B]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t拉丁字母\r\n\t\t\t代码 显示 描述\r\n\t\t\tU+00A1 ¡ 倒转的叹号\r\n\t\t\tU+00A2 ¢ (货币单位)分钱、毫子\r\n\t\t\tU+00A3 £ (货币)英镑\r\n\t\t\tU+00A4 ¤ (货币)当货币未有符号时以此替代\r\n\t\t\tU+00A5 ¥ (货币)日元\r\n\t\t\tU+00A6 ¦ 两条断开的直线\r\n\t\t\tU+00A7 § 文件分不同部分\r\n\t\t\tU+00A8 ¨ (语言)分音\r\n\t\t\tU+00A9 © 版权符\r\n\t\t\tU+00AA ª (意大利文、葡萄牙文、西班牙文)阴性序数\r\n\t\t\tU+00AB « 双重角形引号\r\n\t\t\tU+00AC ¬ 逻辑非\r\n\t\t\tU+00AE ® 商标\r\n\t\t\tU+00AF ¯ 长音\r\n\t\t\tU+00B0 ° 角度\r\n\t\t\tU+00B1 ± 正负号\r\n\t\t\tU+00B2 ² 二次方\r\n\t\t\tU+00B3 ³ 三次方\r\n\t\t\tU+00B4 ´ 锐音符\r\n\t\t\tU+00B5 µ 百万分之一,10?6\r\n\t\t\tU+00B6 ¶ 文章分段\r\n\t\t\tU+00B7 · 间隔号\r\n\t\t\tU+00B8 ¸ 软音符\r\n\t\t\tU+00B9 ¹ 一次方\r\n\t\t\tU+00BA º (意大利文、葡萄牙文、西班牙文)阳性序数\r\n\t\t\tU+00BB » 指向右的双箭头\r\n\t\t\tU+00BC ¼ 四分之一\r\n\t\t\tU+00BD ½ 二分之一\r\n\t\t\tU+00BE ¾ 四分之三\r\n\t\t\tU+00BF ¿ 倒转的问号\r\n\t\t\tU+00C1 Á 在拉丁字母 A 上加锐音符\r\n\t\t\tU+00C2  在拉丁字母 A 上加抑扬符“^”\r\n\t\t\tU+00C3 à 在拉丁字母 A 上加“~”\r\n\t\t\tU+00C4 Ä 在拉丁字母 A 上加分音符“..”\r\n\t\t\tU+00C5 Å 在拉丁字母 A 上加角度符“°”\r\n\t\t\tU+00C6 Æ 拉丁字母 A、E 的混合\r\n\t\t\tU+00C7 Ç 在拉丁字母 C 下加软音符\r\n\t\t\tU+00C8 È 在拉丁字母 E 上加重音符\r\n\t\t\tU+00C9 É 在拉丁字母 E 上加锐音符\r\n\t\t\tU+00CA Ê 在拉丁字母 E 上加抑扬符\r\n\t\t\tU+00CB Ë 在拉丁字母 E 上加分音符\r\n\t\t\tU+00CC Ì 在拉丁字母 I 上加重音符\r\n\t\t\tU+00CD Í 在拉丁字母 I 上加锐音符\r\n\t\t\tU+00CE Î 在拉丁字母 I 上加抑扬符\r\n\t\t\tU+00CF Ï 在拉丁字母 I 上加分音符\r\n\t\t\tU+00D0 Ð 古拉丁字母,现只有法罗文和冰岛文和越南语使用\r\n\t\t\tU+00D1 Ñ 在拉丁字母 N 上加波浪纹“~”\r\n\t\t\tU+00D2 Ò 在拉丁字母 O 上加重音符\r\n\t\t\tU+00D3 Ó 在拉丁字母 O 上加锐音符\r\n\t\t\tU+00D4 Ô 在拉丁字母 O 上加抑扬符\r\n\t\t\tU+00D5 Õ 在拉丁字母 O 上加波浪纹“~”\r\n\t\t\tU+00D6 Ö 在拉丁字母 O 上加分音符\r\n\t\t\tU+00D7 × 乘号,亦可拖按“Alt”键,同时按“41425”五键\r\n\t\t\tU+00D8 Ø 在拉丁字母 O 由右上至左下加对角斜线“/”\r\n\t\t\tU+00D9 Ù 在拉丁字母 U 上加重音符\r\n\t\t\tU+00DA Ú 在拉丁字母 U 上加锐音符\r\n\t\t\tU+00DB Û 在拉丁字母 U 上加抑扬符\r\n\t\t\tU+00DC Ü 在拉丁字母 U 上加分音符\r\n\t\t\tU+00DD Ý 在拉丁字母 Y 上加锐音符\r\n\t\t\tU+00DE Þ 古拉丁字母,现已被“Th”取替\r\n\t\t\tU+00DF ß 德文字母\r\n\t\t\tU+00E0 à 在拉丁字母 a 上加重音符\r\n\t\t\tU+00E1 á 在拉丁字母 a 上加锐音符\r\n\t\t\tU+00E2 â 在拉丁字母 a 上加抑扬符\r\n\t\t\tU+00E3 ã 在拉丁字母 a 上加波浪纹“~”\r\n\t\t\tU+00E4 ä 在拉丁字母 a 上加分音符\r\n\t\t\tU+00E5 å 在拉丁字母 a 上加角度符“°”\r\n\t\t\tU+00E6 æ 拉丁字母 a、e 的混合\r\n\t\t\tU+00E7 ç 在拉丁字母 c 下加软音符\r\n\t\t\tU+00E8 è 在拉丁字母 e 上加锐音符\r\n\t\t\tU+00E9 é 在拉丁字母 e 上加重音符\r\n\t\t\tU+00EA ê 在拉丁字母 e 上加抑扬符\r\n\t\t\tU+00EB ë 在拉丁字母 e 上加分音符\r\n\t\t\tU+00EC ì 在拉丁字母 i 上加重音符\r\n\t\t\tU+00ED í 在拉丁字母 i 上加锐音符\r\n\t\t\tU+00EE î 在拉丁字母 i 上加抑扬符\r\n\t\t\tU+00EF ï 在拉丁字母 i 上加分音符\r\n\t\t\tU+00F0 ð 古拉丁字母\r\n\t\t\tU+00F1 ñ 在拉丁字母 n 上加波浪纹“~”\r\n\t\t\tU+00F2 ò 在拉丁字母 o 上加重音符\r\n\t\t\tU+00F3 ó 在拉丁字母 o 上加锐音符\r\n\t\t\tU+00F4 ô 在拉丁字母 o 上加抑扬符\r\n\t\t\tU+00F5 õ 在拉丁字母 o 上加波浪纹“~”\r\n\t\t\tU+00F6 ö 在拉丁字母 o 上加分音符\r\n\t\t\tU+00F7 ÷ 除号,亦可拖按“Alt”键,同时按“41426”五键\r\n\t\t\tU+00F8 ø 在拉丁字母 o 由右上至左下加对角斜线“/”\r\n\t\t\tU+00F9 ù 在拉丁字母 u 上加重音符\r\n\t\t\tU+00FA ú 在拉丁字母 u 上加锐音符\r\n\t\t\tU+00FB ? 在拉丁字母 u 上加抑扬符\r\n\t\t\tU+00FC ü 在拉丁字母 u 上加分音符\r\n\t\t\tU+00FD ý 在拉丁字母 y 上加锐音符\r\n\t\t\tU+00FE þ 古拉丁字母,现已被“th”取替\r\n\t\t\tU+00FF ü 在拉丁字母 u 上加分音符\r\n\t\t\t拉丁字母(扩展 A)\r\n\t\t\t代码 显示 描述\r\n\t\t\tU+0100 Ā 在拉丁字母 A 上加长音符\r\n\t\t\tU+0101 ā 在拉丁字母 a 上加长音符\r\n\t\t\tU+0102 Ă 在拉丁字母 A 上加短音符\r\n\t\t\tU+0103 ă 在拉丁字母 a 上加短音符\r\n\t\t\tU+0104 Ą 在拉丁字母 A 上加反尾形符\r\n\t\t\tU+0105 ą 在拉丁字母 a 上加反尾形符\r\n\t\t\t拉丁字母(扩展 C)\r\n\t\t\t代码 显示 描述\r\n\t\t\tU+2C60 Ⱡ 在拉丁字母“L”中间加两条横线“=”\r\n\t\t\tU+2C61 ⱡ 在拉丁字母“l”(L 的小写)中间加两条横线“=”\r\n\t\t\tU+2C62 Ɫ 在拉丁字母“L”(大写)中间加一条波浪线“~”\r\n\t\t\tU+2C63 Ᵽ 在拉丁字母“P”中间加一条横线“-”\r\n\t\t\tU+2C64 Ɽ 在拉丁字母“R”下加一条尾巴\r\n\t\t\tU+2C65 ⱥ 在拉丁字母“a”上加一条对角斜线“/”\r\n\t\t\tU+2C66 ⱦ 在拉丁字母“t”上加一条对角斜线“/”\r\n\t\t\tU+2C67 Ⱨ 在拉丁字母“H”下加一条尾巴\r\n\t\t\tU+2C68 ⱨ 在拉丁字母“h”下加一条尾巴\r\n\t\t\tU+2C69 Ⱪ 在拉丁字母“K”下加一条尾巴\r\n\t\t\tU+2C6A ⱪ 在拉丁字母“k”下加一条尾巴\r\n\t\t\tU+2C6B Ⱬ 在拉丁字母“Z”下加一条尾巴\r\n\t\t\tU+2C6C ⱬ 在拉丁字母“z”下加一条尾巴\r\n\t\t\tU+2C74 ⱴ 在拉丁字母“v”的起笔加一个弯勾\r\n\t\t\tU+2C75 Ⱶ 拉丁字母“H”的左半部\r\n\t\t\tU+2C76 ⱶ 拉丁字母“h”的左半部\r\n\t\t\tU+2C77 ⱷ 希腊字母“φ”的上半部\r\n\t\t\t*/\r\n\t\t\tif(/.*[\\u00A1-\\u0105]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif(/.*[\\u2C60-\\u2C77]+.*$/.test(str)){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\t//用户第一次打开网页时,自动判断当前用户所在国家使用的是哪种语言,来自动进行切换为用户所在国家的语种。\r\n\t//如果使用后,第二次在用,那就优先以用户所选择的为主\r\n\texecuteByLocalLanguage:function(){\r\n\t\t//先读用户自己浏览器的默认语言\r\n\t\tvar browserDefaultLanguage = translate.util.browserDefaultLanguage();\r\n\t\tif(typeof(browserDefaultLanguage) != 'undefined' && browserDefaultLanguage.length > 0){\r\n\t\t\ttranslate.changeLanguage(browserDefaultLanguage);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//如果用户浏览器没读到默认语言,或者默认语言没有对应到translate.js支持的语种,那么在采用ip识别的方式\r\n\t\ttranslate.request.post(translate.request.api.ip, {}, function(data){\r\n\t\t\t//console.log(data); \r\n\t\t\tif(data.result == 0){\r\n\t\t\t\tconsole.log('==== ERROR 获取当前用户所在区域异常 ====');\r\n\t\t\t\tconsole.log(data.info);\r\n\t\t\t\tconsole.log('==== ERROR END ====');\r\n\t\t\t}else{\r\n\t\t\t\ttranslate.storage.set('to',data.language);\t//设置目标翻译语言\r\n\t\t\t\ttranslate.to = data.language; //设置目标语言\r\n\t\t\t\ttranslate.selectLanguageTag\r\n\t\t\t\ttranslate.execute(); //执行翻译\r\n\t\t\t}\r\n\t\t}, null);\r\n\t},\r\n\t\r\n\tutil:{\r\n\t\t/* 生成一个随机UUID,复制于 https://gitee.com/mail_osc/kefu.js */\r\n\t\tuuid:function() {\r\n\t\t var d = new Date().getTime();\r\n\t\t if (window.performance && typeof window.performance.now === \"function\") {\r\n\t\t d += performance.now(); //use high-precision timer if available\r\n\t\t }\r\n\t\t var uuid = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\t var r = (d + Math.random() * 16) % 16 | 0;\r\n\t\t d = Math.floor(d / 16);\r\n\t\t return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n\t\t });\r\n\t\t return uuid;\r\n\t\t},\r\n\r\n\t\t//判断字符串中是否存在tag标签。 true存在\r\n\t\tfindTag:function(str) {\r\n\t\t\tvar reg = /<[^>]+>/g;\r\n\t\t\treturn reg.test(str);\r\n\t\t},\r\n\t\t//传入一个数组,从数组中找出现频率最多的一个返回。 如果多个频率出现的次数一样,那会返回多个\r\n\t\tarrayFindMaxNumber:function(arr){\r\n\r\n\t\t\t// 储存每个元素出现的次数\r\n\t\t\tvar numbers = {}\r\n\r\n\t\t\t// 储存出现最多次的元素\r\n\t\t\tvar maxStr = []\r\n\r\n\t\t\t// 储存最多出现的元素次数\r\n\t\t\tvar maxNum = 0\r\n\r\n\t\t\tfor(var i =0,len=arr.length;imaxNum){\r\n\t\t\t maxNum = numbers[arr[i]]\r\n\t\t\t }\r\n\t\t\t}\r\n\r\n\t\t\tfor(var item in numbers){\r\n\t\t\t if(numbers[item]===maxNum){\r\n\t\t\t maxStr.push(item)\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn maxStr;\r\n\t\t},\r\n\t\t//对字符串进行hash化,目的取唯一值进行标识\r\n\t\thash:function(str){\r\n\t\t\tif(str == null || typeof(str) == 'undefined'){\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t\tvar hash = 0, i, chr;\r\n\t\t\tif (str.length === 0){\r\n\t\t\t\treturn hash;\r\n\t\t\t}\r\n\r\n\t\t\tfor (i = 0; i < str.length; i++) {\r\n\t\t\t\tchr = str.charCodeAt(i);\r\n\t\t\t\thash = ((hash << 5) - hash) + chr;\r\n\t\t\t\thash |= 0; // Convert to 32bit integer\r\n\t\t\t}\r\n\t\t\treturn hash+'';\r\n\t\t},\r\n\t\t//去除一些指定字符,如换行符。 如果传入的是null,则返回空字符串\r\n\t\tcharReplace:function(str){\r\n\r\n\t\t\tif(str == null){\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\tstr = str.trim();\r\n\t\t\tstr = str.replace(/\\t|\\n|\\v|\\r|\\f/g,'');\t//去除换行符等\r\n\t\t\t//str = str.replace(/&/g, \"%26\"); //因为在提交时已经进行了url编码了\r\n\t\t\treturn str;\r\n\t\t},\r\n\t\t//RegExp相关\r\n\t\tregExp:{\r\n\t\t\t// new RegExp(pattern, resultText); 中的 pattern 字符串的预处理\r\n\t\t\tpattern:function(str){\r\n\t\t\t\tstr = str.replace(/\\\\/g,'\\\\\\\\'); //这个一定要放在第一个,不然会被下面的影响\r\n\t\t\t\t//str = str.replace(/'/g,'\\\\\\'');\r\n\t\t\t\tstr = str.replace(/\\\"/g,'\\\\\\\"');\r\n\t\t\t\t//str = str.replace(/./g,'\\\\\\.');\r\n\t\t\t\tstr = str.replace(/\\?/g,'\\\\\\?');\r\n\t\t\t\tstr = str.replace(/\\$/g,'\\\\\\$');\r\n\t\t\t\tstr = str.replace(/\\(/g,'\\\\\\(');\r\n\t\t\t\tstr = str.replace(/\\)/g,'\\\\\\)');\r\n\t\t\t\tstr = str.replace(/\\|/g,'\\\\\\|');\r\n\t\t\t\tstr = str.replace(/\\+/g,'\\\\\\+');\r\n\t\t\t\tstr = str.replace(/\\*/g,'\\\\\\*');\r\n\t\t\t\tstr = str.replace(/\\[/g,'\\\\\\[');\r\n\t\t\t\tstr = str.replace(/\\]/g,'\\\\\\]');\r\n\t\t\t\tstr = str.replace(/\\^/g,'\\\\\\^');\r\n\t\t\t\tstr = str.replace(/\\{/g,'\\\\\\{');\r\n\t\t\t\tstr = str.replace(/\\}/g,'\\\\\\}');\r\n\t\t\t\treturn str;\r\n\t\t\t},\r\n\t\t\t// new RegExp(pattern, resultText); 中的 resultText 字符串的预处理\r\n\t\t\tresultText:function(str){\r\n\t\t\t\t//str = str.replace(/"/g,\"\\\"\");\r\n\t\t\t\t//str = str.replace(/'/g,\"\\\\\\'\");\r\n\t\t\t\t//str = str.replace(/\"/g,\"\\\\\\\"\");\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t},\r\n\t\t//获取URL的GET参数。若没有,返回\"\"\r\n\t\tgetUrlParam:function (name){\r\n\t\t var reg = new RegExp(\"(^|&)\"+ name +\"=([^&]*)(&|$)\");\r\n\t\t var r = window.location.search.substr(1).match(reg);\r\n\t\t if(r!=null)return unescape(r[2]); return \"\";\r\n\t\t},\r\n\t\t/**\r\n\t\t * 同步加载JS,加载过程中会阻塞,加载完毕后继续执行后面的。\r\n\t\t * url: 要加载的js的url\r\n\t\t */\r\n\t\tsynchronizesLoadJs:function(url){\r\n\t\t\tvar xmlHttp = null; \r\n\t\t\tif(window.ActiveXObject){//IE \r\n\t\t\t\ttry { \r\n\t\t\t\t\t//IE6以及以后版本中可以使用 \r\n\t\t\t\t\txmlHttp = new ActiveXObject(\"Msxml2.XMLHTTP\"); \r\n\t\t\t\t} catch (e) { \r\n\t\t\t\t\t//IE5.5以及以后版本可以使用 \r\n\t\t\t\t\txmlHttp = new ActiveXObject(\"Microsoft.XMLHTTP\"); \r\n\t\t\t\t} \r\n\t\t\t}else if(window.XMLHttpRequest){ \r\n\t\t\t\t//Firefox,Opera 8.0+,Safari,Chrome \r\n\t\t\t\txmlHttp = new XMLHttpRequest(); \r\n\t\t\t} \r\n\t\t\t//采用同步加载 \r\n\t\t\txmlHttp.open(\"GET\",url,false); \r\n\t\t\t//发送同步请求,如果浏览器为Chrome或Opera,必须发布后才能运行,不然会报错 \r\n\t\t\txmlHttp.send(null); \r\n\t\t\t//4代表数据发送完毕 \r\n\t\t\tif( xmlHttp.readyState == 4 ){ \r\n\t\t\t\t//0为访问的本地,200到300代表访问服务器成功,304代表没做修改访问的是缓存 \r\n\t\t\t\tif((xmlHttp.status >= 200 && xmlHttp.status <300) || xmlHttp.status == 0 || xmlHttp.status == 304){ \r\n\t\t\t\t\tvar myBody = document.getElementsByTagName(\"HTML\")[0]; \r\n\t\t\t\t\tvar myScript = document.createElement( \"script\" ); \r\n\t\t\t\t\tmyScript.language = \"javascript\"; \r\n\t\t\t\t\tmyScript.type = \"text/javascript\"; \r\n\t\t\t\t\ttry{ \r\n\t\t\t\t\t\t//IE8以及以下不支持这种方式,需要通过text属性来设置 \r\n\t\t\t\t\t\tmyScript.appendChild(document.createTextNode(xmlHttp.responseText)); \r\n\t\t\t\t\t}catch (ex){ \r\n\t\t\t\t\t\tmyScript.text = xmlHttp.responseText; \r\n\t\t\t\t\t} \r\n\t\t\t\t\tmyBody.appendChild(myScript); \r\n\t\t\t\t\treturn true; \r\n\t\t\t\t}else{ \r\n\t\t\t\t\treturn false; \r\n\t\t\t\t} \r\n\t\t\t}else{ \r\n\t\t\t\treturn false; \r\n\t\t\t} \r\n\t\t},\r\n\t\t//加载 msg.js\r\n\t\tloadMsgJs:function(){\r\n\t\t\tif(typeof(msg) != 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\ttranslate.util.synchronizesLoadJs('https://res.zvo.cn/msg/msg.js');\r\n\t\t},\r\n\t\t/*\r\n\t\t\t对一个对象,按照对象的key的长度进行排序,越长越在前面\r\n\t\t*/\r\n\t\tobjSort:function(obj){\r\n\t\t\t// 获取对象数组的所有 key,并转换为普通数组\r\n\t\t\tvar keys = Array.from(Object.keys(obj));\r\n\r\n\t\t\t// 对 key 数组进行排序\r\n\t\t\tkeys.sort(function(a, b){\r\n\t\t\t return b.length - a.length;\r\n\t\t\t});\r\n\r\n\t\t\t// 定义一个新的对象数组,用来存储排序后的结果\r\n\t\t\tvar sortedObj = new Array();\r\n\r\n\t\t\t// 遍历排序后的 key 数组,将对应的值复制到新的对象数组中,并删除原来的对象数组中的键值对\r\n\t\t\tfor (var key of keys) {\r\n\t\t\t sortedObj[key] = obj[key];\r\n\t\t\t}\r\n\t\t\treturn sortedObj;\r\n\t\t},\r\n\t\t/*\r\n\t\t\t将 2.11.3.20231232 转化为 2011003\r\n\t\t\t转化时会去掉最后一个日期的字符\r\n\t\t*/\r\n\t\tversionStringToInt:function(versionString){\r\n\t\t\tvar vs = versionString.split('\\.');\r\n\t\t\tvar result = 0;\r\n\t\t\tresult = parseInt(vs[0])*1000*1000 + result;\r\n\t\t\tresult = parseInt(vs[1])*1000 + result;\r\n\t\t\tresult = parseInt(vs[2]) + result;\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\t\t/**\r\n\t\t * 将一个 JSONArray 数组,按照文字长度进行拆分。\r\n\t\t * 比如传入的 array 数组的文字长度是6200,传入的 stringLength 是2000,那么就是将 array 数组拆分为多个长度不超出2000的数组返回。\r\n\t\t * \t\t如果传入了 maxSize = 5 那么会对拆分后的数组的长度进行判断,如果数组内元素超过5,那么还要进行缩短,拆分后的数组不允许超过这个数\r\n\t\t * \t\t也就是拆分后的数组有两重限制,一是限制转化为文本形式的长度、再就是拆分后本身数组的大小。\r\n\t\t * \t\t\r\n\t\t * 注意,这个长度是指 array.toString() 后的长度,也就是包含了 [\"\"] 这种符号的长度\r\n\t\t * @param array 要被拆分的数组,其内都是String类型,传入格式如 [\"你好\",\"世界\"]\r\n\t\t * @param stringLength 要被拆分的数组转化为字符串之后的长度\r\n\t\t * @param maxSize 被拆分的数组最大包含多少个,数组大小最大允许多大,要小于等于这个数。 如果设置为0则是不启用这个,不对拆分后的数组进行判断。\r\n\t\t * @return 被拆分后的数组列表\r\n\t\t * @author 刘晓腾\r\n\t\t */\r\n\t\t split:function(array, size, maxSize) {\r\n\t\t \tlet orgsize = size;\r\n\t\t let list = [];\r\n\t\t // 数组长度小于size,直接进行返回\r\n\t\t if(JSON.stringify(array).length <= size) {\r\n\t\t list.push(array);\r\n\t\t } else {\r\n\t\t // 转换成String\r\n\t\t let arrayStr = JSON.stringify(array).trim().substring(1, JSON.stringify(array).length - 1);\r\n\r\n\t\t // 判断size和字符串长度的差值,如果为1或者2,就直接拆成两段\r\n\t\t if (JSON.stringify(array).length - size <= 2) {\r\n\t\t size = size - 4;\r\n\t\t // 拆两段\r\n\t\t let str1 = arrayStr.substring(0, arrayStr.lastIndexOf(\"\\\",\\\"\")+1);\r\n\t\t let str2 = arrayStr.substring(arrayStr.lastIndexOf(\"\\\",\\\"\")+2);\r\n\t\t list.push(JSON.parse(\"[\" + str1 + \"]\"));\r\n\t\t list.push(JSON.parse(\"[\" + str2 + \"]\"));\r\n\t\t } else {\r\n\t\t size = size - 2;\r\n\t\t // 拆多段\r\n\t\t let index = 0;\r\n\t\t while (index - arrayStr.length < 0) {\r\n\t\t // 按照指定大小拆一段\r\n\t\t let s = \"\";\r\n\t\t if ((index+size) - arrayStr.length >= 0) {\r\n\t\t s = arrayStr.substring(index);\r\n\t\t } else {\r\n\t\t s = arrayStr.substring(index, (index+size));\r\n\t\t }\r\n\t\t // 结尾长度默认为字符串长度\r\n\t\t let endIndex = s.length;\r\n\t\t // 因为下次开始的第一个字符可能会是逗号,所以下次开始需要+1\r\n\t\t let startNeedAdd = 1;\r\n\t\t // 判断最后一个字符是否为双引号\r\n\t\t if (s.endsWith(\"\\\"\")) {\r\n\t\t // 判断倒数第二个是否为逗号\r\n\t\t if (s.endsWith(\"\\\",\\\"\")) {\r\n\t\t // 删除两个字符\r\n\t\t endIndex-=2;\r\n\t\t } else if (!s.startsWith(\"\\\"\")) {\r\n\t\t // 如果开头不是引号,需要补一个引号,这就导致会超长,所以结尾就要找指定字符的\r\n\t\t // 找出最后一个指定字符的位置\r\n\t\t let la = s.lastIndexOf(\"\\\",\\\"\");\r\n\t\t endIndex = la + 1;\r\n\t\t }\r\n\t\t } else if (s.endsWith(\"\\\",\")) {\r\n\t\t // 判断是否为逗号,是的话删除一个字符\r\n\t\t endIndex-=1;\r\n\t\t } else {\r\n\t\t // 都不是,那就是内容结尾\r\n\t\t // 找出最后一个指定字符的位置\r\n\t\t let la = s.lastIndexOf(\"\\\",\\\"\");\r\n\t\t endIndex = la + 1;\r\n\t\t // 内容超长,endIndex就会变成0,这时需要手动赋值\r\n\t\t if (endIndex <= 0) {\r\n\t\t // 看看是否以引号开头,如果不是,需要拼两个引号\r\n\t\t if (s.startsWith(\"\\\"\")) {\r\n\t\t // 拼一个引号,-1\r\n\t\t endIndex = s.length - 1;\r\n\t\t } else {\r\n\t\t // 拼两个引号,-2\r\n\t\t endIndex = s.length - 2;\r\n\t\t }\r\n\t\t if (!s.endsWith(\"\\\"\")) {\r\n\t\t // 开始不是逗号了,不能-1\r\n\t\t startNeedAdd = 0;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t // 根据处理的结尾长度进行第二次拆分\r\n\t\t let s2 = \"\";\r\n\t\t if (endIndex - s.length > 0 || endIndex - 0 == 0) {\r\n\t\t s2 = s;\r\n\t\t endIndex = endIndex + s2.length;\r\n\t\t } else {\r\n\t\t s2 = s.substring(0, endIndex);\r\n\t\t }\r\n\t\t if (!s2.startsWith(\"\\\"\") && !s2.startsWith(\",\\\"\")) {\r\n\t\t // 拼一个引号\r\n\t\t s2 = \"\\\"\" + s2;\r\n\t\t }\r\n\t\t if (!s2.endsWith(\"\\\"\")) {\r\n\t\t // 拼一个引号\r\n\t\t s2 = s2 +\"\\\"\";\r\n\t\t }\r\n\t\t // 计算下次循环开始的长度\r\n\t\t index += (endIndex + startNeedAdd);\r\n\t\t // 加到list\r\n\t\t s2 = \"[\" + s2 + \"]\";\r\n\t\t try {\r\n\t\t list.push(JSON.parse(s2));\r\n\t\t } catch (e) {\r\n\t\t // 遇到错误,略过一个字符\r\n\t\t index = index - (endIndex + startNeedAdd) + 1;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t\t// 设置了maxSize,进行处理\r\n\t\t\tif (maxSize && maxSize > 0) {\r\n\t\t\t\tlist = translate.util._splitMaxSize(list, orgsize, maxSize);\r\n\t\t\t}\r\n\t\t return list;\r\n\t\t},\r\n\t\t/**\r\n\t\t * 针对split函数中maxSize的处理\r\n\t\t * \tprivate\r\n\t\t * @param array 已拆分的二维数组\r\n\t\t * @param size 拆分的长度\r\n\t\t * @param maxSize 元素数量\r\n\t\t * @author 刘晓腾\r\n\t\t */\r\n\t\t_splitMaxSize:function(array, size, maxSize) {\r\n\t\t\t// console.log(\"------ splitMaxSize run ------\")\r\n\r\n\t\t\t// 返回的数据\r\n\t\t\tlet list = [];\r\n\t\t\t// 暂存的数组,用来存储每次遍历时超出的数据\r\n\t\t\tlet tmp = [];\r\n\r\n\t\t \t// 遍历二维数组\r\n\t\t\tarray.forEach(function(arr, index) {\r\n\t\t\t\t// 累加数组\r\n\t\t\t\tarr = tmp.concat(arr);\r\n\t\t\t\t// 计算元素数量\r\n\t\t\t\tlet length = arr.length;\r\n\t\t\t\t// 数组中元素数量大于maxSize,对多余的元素进行移除\r\n\t\t\t\tif (length > maxSize) {\r\n\t\t\t\t\t// 第一个数组,包含前N个元素\r\n\t\t\t\t\tlet firstArray = arr.slice(0, maxSize);\r\n\t\t\t\t\t// 第二个数组,包含剩下的元素\r\n\t\t\t\t\tlet secondArray = arr.slice(maxSize);\r\n\r\n\t\t\t\t\t// 处理长度\r\n\t\t\t\t\tlet len = 1;\r\n\t\t\t\t\twhile (JSON.stringify(firstArray).length > size) {\r\n\t\t\t\t\t\t// 长度超过限制,进行处理\r\n\t\t\t\t\t\tfirstArray = arr.slice(0, maxSize - len);\r\n\t\t\t\t\t\tsecondArray = arr.slice(maxSize - len);\r\n\t\t\t\t\t\tlen++;\r\n\t\t\t\t\t\tif (len >= arr.length+1) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// 第一个数组记录\r\n\t\t\t\t\tlist.push(firstArray);\r\n\t\t\t\t\t// 第二个数组暂存\r\n\t\t\t\t\ttmp.length = 0;\r\n\t\t\t\t\ttmp = secondArray;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 没超,只处理长度\r\n\t\t\t\t\t// 处理长度\r\n\t\t\t\t\tlet firstArray = arr;\r\n\t\t\t\t\tlet secondArray = [];\r\n\t\t\t\t\tlet len = 1;\r\n\t\t\t\t\twhile (JSON.stringify(firstArray).length > size) {\r\n\t\t\t\t\t\t// 长度超过限制,进行处理\r\n\t\t\t\t\t\tfirstArray = arr.slice(0, maxSize - len);\r\n\t\t\t\t\t\tsecondArray = arr.slice(maxSize - len);\r\n\t\t\t\t\t\tlen++;\r\n\t\t\t\t\t\tif (len >= arr.length+1) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// 第一个数组记录\r\n\t\t\t\t\tlist.push(firstArray);\r\n\t\t\t\t\t// 第二个数组暂存\r\n\t\t\t\t\ttmp.length = 0;\r\n\t\t\t\t\ttmp = secondArray;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// 临时数组中还有元素,也要进行处理\r\n\t\t\tif (tmp.length > 0) {\r\n\t\t\t\tlet tmpl = [];\r\n\t\t\t\ttmpl.push(tmp);\r\n\t\t\t\t// 递归处理\r\n\t\t\t\tlet l = translate.util._splitMaxSize(tmpl, size, maxSize);\r\n\t\t\t\tlist = list.concat(l);\r\n\t\t\t}\r\n\r\n\t\t\treturn list;\r\n\t\t},\r\n\t\t/* \r\n\t\t\t浏览器的语种标识跟translate.js的语种标识的对应\r\n\t\t\tkey: 浏览器的语种标识\r\n\t\t\tvalue: translate.js 的语种标识\r\n\t\t */\r\n\t\tbrowserLanguage:{\r\n\t\t\t'zh-CN':'chinese_simplified',\r\n\t\t\t'zh-TW':'chinese_traditional',\r\n\t\t\t'zh-HK':'chinese_traditional',\r\n\t\t\t'co':'corsican',\r\n\t\t\t'gn':'guarani',\r\n\t\t\t'rw':'kinyarwanda',\r\n\t\t\t'ha':'hausa',\r\n\t\t\t'no':'norwegian',\r\n\t\t\t'nl':'dutch',\r\n\t\t\t'yo':'yoruba',\r\n\t\t\t'en':'english',\r\n\t\t\t'en-US':'english',\r\n\t\t\t'kok':'gongen',\r\n\t\t\t'la':'latin',\r\n\t\t\t'ne':'nepali',\r\n\t\t\t'fr':'french',\r\n\t\t\t'cs':'czech',\r\n\t\t\t'haw':'hawaiian',\r\n\t\t\t'ka':'georgian',\r\n\t\t\t'ru':'russian',\r\n\t\t\t'fa':'persian',\r\n\t\t\t'bho':'bhojpuri',\r\n\t\t\t'hi':'hindi',\r\n\t\t\t'be':'belarusian',\r\n\t\t\t'sw':'swahili',\r\n\t\t\t'is':'icelandic',\r\n\t\t\t'yi':'yiddish',\r\n\t\t\t'tw':'twi',\r\n\t\t\t'ga':'irish',\r\n\t\t\t'gu':'gujarati',\r\n\t\t\t'km':'khmer',\r\n\t\t\t'sk':'slovak',\r\n\t\t\t'he':'hebrew',\r\n\t\t\t'kn':'kannada',\r\n\t\t\t'hu':'hungarian',\r\n\t\t\t'ta':'tamil',\r\n\t\t\t'ar':'arabic',\r\n\t\t\t'bn':'bengali',\r\n\t\t\t'az':'azerbaijani',\r\n\t\t\t'sm':'samoan',\r\n\t\t\t'af':'afrikaans',\r\n\t\t\t'id':'indonesian',\r\n\t\t\t'da':'danish',\r\n\t\t\t'sn':'shona',\r\n\t\t\t'bm':'bambara',\r\n\t\t\t'lt':'lithuanian',\r\n\t\t\t'vi':'vietnamese',\r\n\t\t\t'mt':'maltese',\r\n\t\t\t'tk':'turkmen',\r\n\t\t\t'as':'assamese',\r\n\t\t\t'ca':'catalan',\r\n\t\t\t'si':'singapore',\r\n\t\t\t'ceb':'cebuano',\r\n\t\t\t'gd':'scottish-gaelic',\r\n\t\t\t'sa':'sanskrit',\r\n\t\t\t'pl':'polish',\r\n\t\t\t'gl':'galician',\r\n\t\t\t'lv':'latvian',\r\n\t\t\t'uk':'ukrainian',\r\n\t\t\t'tt':'tatar',\r\n\t\t\t'cy':'welsh',\r\n\t\t\t'ja':'japanese',\r\n\t\t\t'fil':'filipino',\r\n\t\t\t'ay':'aymara',\r\n\t\t\t'lo':'lao',\r\n\t\t\t'te':'telugu',\r\n\t\t\t'ro':'romanian',\r\n\t\t\t'ht':'haitian_creole',\r\n\t\t\t'doi':'dogrid',\r\n\t\t\t'sv':'swedish',\r\n\t\t\t'mai':'maithili',\r\n\t\t\t'th':'thai',\r\n\t\t\t'hy':'armenian',\r\n\t\t\t'my':'burmese',\r\n\t\t\t'ps':'pashto',\r\n\t\t\t'hmn':'hmong',\r\n\t\t\t'dv':'dhivehi',\r\n\t\t\t'lb':'luxembourgish',\r\n\t\t\t'sd':'sindhi',\r\n\t\t\t'ku':'kurdish',\r\n\t\t\t'tr':'turkish',\r\n\t\t\t'mk':'macedonian',\r\n\t\t\t'bg':'bulgarian',\r\n\t\t\t'ms':'malay',\r\n\t\t\t'lg':'luganda',\r\n\t\t\t'mr':'marathi',\r\n\t\t\t'et':'estonian',\r\n\t\t\t'ml':'malayalam',\r\n\t\t\t'de':'deutsch',\r\n\t\t\t'sl':'slovene',\r\n\t\t\t'ur':'urdu',\r\n\t\t\t'pt':'portuguese',\r\n\t\t\t'ig':'igbo',\r\n\t\t\t'ckb':'kurdish_sorani',\r\n\t\t\t'om':'oromo',\r\n\t\t\t'el':'greek',\r\n\t\t\t'es':'spanish',\r\n\t\t\t'fy':'frisian',\r\n\t\t\t'so':'somali',\r\n\t\t\t'am':'amharic',\r\n\t\t\t'ny':'nyanja',\r\n\t\t\t'pa':'punjabi',\r\n\t\t\t'eu':'basque',\r\n\t\t\t'it':'italian',\r\n\t\t\t'sq':'albanian',\r\n\t\t\t'ko':'korean',\r\n\t\t\t'tg':'tajik',\r\n\t\t\t'fi':'finnish',\r\n\t\t\t'ky':'kyrgyz',\r\n\t\t\t'ee':'ewe',\r\n\t\t\t'hr':'croatian',\r\n\t\t\t'kri':'creole',\r\n\t\t\t'qu':'quechua',\r\n\t\t\t'bs':'bosnian',\r\n\t\t\t'mi':'maori'\r\n\t\t},\r\n\t\t/*\r\n\t\t\t获取浏览器中设置的默认使用语言\r\n\t\t\t返回的是 translate.js 的语言唯一标识\r\n\t\t\t如果返回的是空字符串,则是没有匹配到(可能是没有获取到本地语言,也可能是本地语言跟translate.js 翻译通道没有对应上)\r\n\t\t*/\r\n\t\tbrowserDefaultLanguage:function(){\r\n\t\t\tvar language = navigator.language || navigator.userLanguage;\r\n\t\t\tif(typeof(language) == 'string' && language.length > 0){\r\n\t\t\t\tvar tLang = translate.util.browserLanguage[language];\r\n\t\t\t\tif(typeof(tLang) == 'undefined'){\r\n\t\t\t\t\t//没有在里面\r\n\t\t\t\t\tconsole.log('browser default language : '+language +', translate.js current translate channel not support this language ');\r\n\t\t\t\t}else{\r\n\t\t\t\t\treturn tLang;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//将其转化为 translate.js 的语言id,比如简体中文是 chinese_simplified 、 英语是 english\r\n\t\t\treturn '';\r\n\t\t}\r\n\t},\r\n\t//机器翻译采用哪种翻译服务\r\n\tservice:{ \r\n\t\t/*\r\n\t\t\tname填写的值有\r\n\t\t\ttranslate.service 有 http://translate.zvo.cn/41160.html 提供机器翻译服务\r\n\t\t\tclient.edge 有edge浏览器接口提供翻译服务 ,也就是执行翻译时直接是\r\n\r\n\t\t*/\r\n\t\tname:'translate.service', \r\n\r\n\t\t/*\r\n\t\t\t其实就是设置 translate.service.name\r\n\t\r\n\t\t*/\r\n\t\tuse: function(serviceName){\r\n\t\t\tif(translate.enterprise.isUse == true){\r\n\t\t\t\tconsole.log('您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use(\\''+serviceName+'\\'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(typeof(serviceName) == 'string' && serviceName == 'client.edge'){\r\n\t\t\t\ttranslate.service.name = serviceName;\r\n\r\n\t\t\t\t//增加元素整体翻译能力\r\n\t\t\t\ttranslate.whole.enableAll();\r\n\t\t\t}\r\n\t\t},\r\n\t\t//客户端方式的edge提供机器翻译服务\r\n\t\tedge:{\r\n\t\t\tapi:{ //edge浏览器的翻译功能\r\n\t\t\t\tauth:'https://edge.microsoft.com/translate/auth', //auth授权拉取\r\n\t\t\t\ttranslate:'https://api.cognitive.microsofttranslator.com/translate?from={from}&to={to}&api-version=3.0&includeSentenceLength=true' //翻译接口\r\n\t\t\t},\r\n\r\n\t\t\tlanguage:{\r\n\t\t\t\tjson:[{\"id\":\"ukrainian\",\"name\":\"Україна\",\"serviceId\":\"uk\"},{\"id\":\"norwegian\",\"name\":\"Norge\",\"serviceId\":\"no\"},{\"id\":\"welsh\",\"name\":\"Iaith Weleg\",\"serviceId\":\"cy\"},{\"id\":\"dutch\",\"name\":\"nederlands\",\"serviceId\":\"nl\"},{\"id\":\"japanese\",\"name\":\"日本語\",\"serviceId\":\"ja\"},{\"id\":\"filipino\",\"name\":\"Pilipino\",\"serviceId\":\"fil\"},{\"id\":\"english\",\"name\":\"English\",\"serviceId\":\"en\"},{\"id\":\"lao\",\"name\":\"ກະຣຸນາ\",\"serviceId\":\"lo\"},{\"id\":\"telugu\",\"name\":\"తెలుగుName\",\"serviceId\":\"te\"},{\"id\":\"romanian\",\"name\":\"Română\",\"serviceId\":\"ro\"},{\"id\":\"nepali\",\"name\":\"नेपालीName\",\"serviceId\":\"ne\"},{\"id\":\"french\",\"name\":\"Français\",\"serviceId\":\"fr\"},{\"id\":\"haitian_creole\",\"name\":\"Kreyòl ayisyen\",\"serviceId\":\"ht\"},{\"id\":\"czech\",\"name\":\"český\",\"serviceId\":\"cs\"},{\"id\":\"swedish\",\"name\":\"Svenska\",\"serviceId\":\"sv\"},{\"id\":\"russian\",\"name\":\"Русский язык\",\"serviceId\":\"ru\"},{\"id\":\"malagasy\",\"name\":\"Malagasy\",\"serviceId\":\"mg\"},{\"id\":\"burmese\",\"name\":\"ဗာရမ်\",\"serviceId\":\"my\"},{\"id\":\"pashto\",\"name\":\"پښتوName\",\"serviceId\":\"ps\"},{\"id\":\"thai\",\"name\":\"คนไทย\",\"serviceId\":\"th\"},{\"id\":\"armenian\",\"name\":\"Արմենյան\",\"serviceId\":\"hy\"},{\"id\":\"chinese_simplified\",\"name\":\"简体中文\",\"serviceId\":\"zh-CHS\"},{\"id\":\"persian\",\"name\":\"Persian\",\"serviceId\":\"fa\"},{\"id\":\"chinese_traditional\",\"name\":\"繁體中文\",\"serviceId\":\"zh-CHT\"},{\"id\":\"kurdish\",\"name\":\"Kurdî\",\"serviceId\":\"ku\"},{\"id\":\"turkish\",\"name\":\"Türkçe\",\"serviceId\":\"tr\"},{\"id\":\"hindi\",\"name\":\"हिन्दी\",\"serviceId\":\"hi\"},{\"id\":\"bulgarian\",\"name\":\"български\",\"serviceId\":\"bg\"},{\"id\":\"malay\",\"name\":\"Malay\",\"serviceId\":\"ms\"},{\"id\":\"swahili\",\"name\":\"Kiswahili\",\"serviceId\":\"sw\"},{\"id\":\"oriya\",\"name\":\"ଓଡିଆ\",\"serviceId\":\"or\"},{\"id\":\"icelandic\",\"name\":\"ÍslandName\",\"serviceId\":\"is\"},{\"id\":\"irish\",\"name\":\"Íris\",\"serviceId\":\"ga\"},{\"id\":\"khmer\",\"name\":\"ភាសា​ខ្មែរName\",\"serviceId\":\"km\"},{\"id\":\"gujarati\",\"name\":\"ગુજરાતી\",\"serviceId\":\"gu\"},{\"id\":\"slovak\",\"name\":\"Slovenská\",\"serviceId\":\"sk\"},{\"id\":\"kannada\",\"name\":\"ಕನ್ನಡ್Name\",\"serviceId\":\"kn\"},{\"id\":\"hebrew\",\"name\":\"היברית\",\"serviceId\":\"he\"},{\"id\":\"hungarian\",\"name\":\"magyar\",\"serviceId\":\"hu\"},{\"id\":\"marathi\",\"name\":\"मराठीName\",\"serviceId\":\"mr\"},{\"id\":\"tamil\",\"name\":\"தாமில்\",\"serviceId\":\"ta\"},{\"id\":\"estonian\",\"name\":\"eesti keel\",\"serviceId\":\"et\"},{\"id\":\"malayalam\",\"name\":\"മലമാലം\",\"serviceId\":\"ml\"},{\"id\":\"inuktitut\",\"name\":\"ᐃᓄᒃᑎᑐᑦ\",\"serviceId\":\"iu\"},{\"id\":\"arabic\",\"name\":\"بالعربية\",\"serviceId\":\"ar\"},{\"id\":\"deutsch\",\"name\":\"Deutsch\",\"serviceId\":\"de\"},{\"id\":\"slovene\",\"name\":\"slovenščina\",\"serviceId\":\"sl\"},{\"id\":\"bengali\",\"name\":\"বেঙ্গালী\",\"serviceId\":\"bn\"},{\"id\":\"urdu\",\"name\":\"اوردو\",\"serviceId\":\"ur\"},{\"id\":\"azerbaijani\",\"name\":\"azerbaijani\",\"serviceId\":\"az\"},{\"id\":\"portuguese\",\"name\":\"português\",\"serviceId\":\"pt\"},{\"id\":\"samoan\",\"name\":\"lifiava\",\"serviceId\":\"sm\"},{\"id\":\"afrikaans\",\"name\":\"afrikaans\",\"serviceId\":\"af\"},{\"id\":\"tongan\",\"name\":\"汤加语\",\"serviceId\":\"to\"},{\"id\":\"greek\",\"name\":\"ελληνικά\",\"serviceId\":\"el\"},{\"id\":\"indonesian\",\"name\":\"IndonesiaName\",\"serviceId\":\"id\"},{\"id\":\"spanish\",\"name\":\"Español\",\"serviceId\":\"es\"},{\"id\":\"danish\",\"name\":\"dansk\",\"serviceId\":\"da\"},{\"id\":\"amharic\",\"name\":\"amharic\",\"serviceId\":\"am\"},{\"id\":\"punjabi\",\"name\":\"ਪੰਜਾਬੀName\",\"serviceId\":\"pa\"},{\"id\":\"albanian\",\"name\":\"albanian\",\"serviceId\":\"sq\"},{\"id\":\"lithuanian\",\"name\":\"Lietuva\",\"serviceId\":\"lt\"},{\"id\":\"italian\",\"name\":\"italiano\",\"serviceId\":\"it\"},{\"id\":\"vietnamese\",\"name\":\"Tiếng Việt\",\"serviceId\":\"vi\"},{\"id\":\"korean\",\"name\":\"한국어\",\"serviceId\":\"ko\"},{\"id\":\"maltese\",\"name\":\"Malti\",\"serviceId\":\"mt\"},{\"id\":\"finnish\",\"name\":\"suomi\",\"serviceId\":\"fi\"},{\"id\":\"catalan\",\"name\":\"català\",\"serviceId\":\"ca\"},{\"id\":\"croatian\",\"name\":\"hrvatski\",\"serviceId\":\"hr\"},{\"id\":\"bosnian\",\"name\":\"bosnian\",\"serviceId\":\"bs-Latn\"},{\"id\":\"polish\",\"name\":\"Polski\",\"serviceId\":\"pl\"},{\"id\":\"latvian\",\"name\":\"latviešu\",\"serviceId\":\"lv\"},{\"id\":\"maori\",\"name\":\"Maori\",\"serviceId\":\"mi\"}],\r\n\t\t\t\t/*\r\n\t\t\t\t\t获取map形式的语言列表 \r\n\t\t\t\t\tkey为 translate.service 的 name \r\n\t\t\t\t\tvalue为serviceId\r\n\r\n\t\t\t\t*/\r\n\t\t\t\tgetMap:function(){\r\n\t\t\t\t\tif(typeof(translate.service.edge.language.map) == 'undefined'){\r\n\t\t\t\t\t\ttranslate.service.edge.language.map = new Array();\r\n\t\t\t\t\t\tfor(var i = 0; i < translate.service.edge.language.json.length; i++){\r\n\t\t\t\t\t\t\tvar item = translate.service.edge.language.json[i];\r\n\t\t\t\t\t\t\ttranslate.service.edge.language.map[item.id] = item.serviceId;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn translate.service.edge.language.map;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * edge 进行翻译。 这个传入参数跟 translate.request.post 是一样的\r\n\t\t\t * @param path 请求的path(path,传入的是translate.request.api.translate 这种的,需要使用 getUrl 来组合真正请求的url )\r\n\t\t\t * @param data 请求的参数数据\r\n\t\t\t * @param func 请求完成的回调,传入如 function(data){ console.log(data); }\r\n\t\t\t */\r\n\t\t\ttranslate:function(path, data, func, abnormalFunc){\r\n\t\t\t\tvar textArray = JSON.parse(decodeURIComponent(data.text));\r\n\t\t\t\tlet translateTextArray = translate.util.split(textArray, 40000, 900);\r\n\t\t\t\t\r\n\t\t\t\ttranslate.request.send(translate.service.edge.api.auth, {}, function(auth){\r\n\t\t\t\t\tvar from = translate.service.edge.language.getMap()[data.from];\r\n\t\t\t\t\tvar to = translate.service.edge.language.getMap()[data.to];\r\n\t\t\t\t\tvar transUrl = translate.service.edge.api.translate.replace('{from}',from).replace('{to}',to);\r\n\r\n\t\t\t\t\t//如果翻译量大,要拆分成多次翻译请求\r\n\t\t\t\t\tfor(var tai = 0; tai 1){\r\n\t\t\t\t\t\t\t\t//这一次翻译呗拆分了多次请求,那么要进行补全数组,使数组个数能一致\r\n\r\n\t\t\t\t\t\t\t\t/*\r\n\r\n\t\t\t\t\t\t\t\t\t注意这里根据数组的长度来判断当前属于第几个数组,\r\n\t\t\t\t\t\t\t\t\t有几率会是拆分的数组,其中有两组的长度是一样的,\r\n\t\t\t\t\t\t\t\t\t这样的话是有问题的,只不过几率很小,就先这样了\r\n\t\t\t\t\t\t\t\t\t但终归还是留了个坑 -- 记录\r\n\r\n\t\t\t\t\t\t\t\t*/\r\n\r\n\t\t\t\t\t\t\t\tvar currentIndex = -1;\t//当前翻译请求属于被拆分的第几个的数组下标,从0开始的\r\n\t\t\t\t\t\t\t\tfor(var cri = 0; cri < translateTextArray.length; cri++){\r\n\t\t\t\t\t\t\t\t\tif(translateTextArray[cri].length - d.text.length == 0){\r\n\t\t\t\t\t\t\t\t\t\tcurrentIndex = cri;\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t//进行对前后进行补齐数组\r\n\t\t\t\t\t\t\t\tif(currentIndex < 0){\r\n\t\t\t\t\t\t\t\t\tconsole.log('------ERROR--------');\r\n\t\t\t\t\t\t\t\t\tconsole.log('翻译内容过多,进行拆分,但拆分判断出现异常,currentIndex:-1 请联系 http://translate.zvo.cn/43006.html 说明');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t//前插入空数组填充\r\n\t\t\t\t\t\t\t\tfor(var addbeforei = 0; addbeforeicurrentIndex; addafteri--){\r\n\t\t\t\t\t\t\t\t\tvar afterItemArrayLength = translateTextArray[addafteri].length;\r\n\t\t\t\t\t\t\t\t\tfor(var bi = 0; bi < afterItemArrayLength; bi++){\r\n\t\t\t\t\t\t\t\t\t\td.text.push(null);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tfunc(d);\r\n\t\t\t\t\t\t}, 'post', true, {'Authorization':'Bearer '+auth, 'Content-Type':'application/json'}, abnormalFunc, true);\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log('translateResultArray')\r\n\t\t\t\t\t//console.log(translateResultArray);\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t}, 'get', true, {'content-type':'application/x-www-form-urlencoded'}, function(xhr){\r\n\t\t\t\t\tconsole.log('---------error--------');\r\n\t\t\t\t\tconsole.log('edge translate service error, http code : '+xhr.status + ', response text : '+xhr.responseText);\r\n\t\t\t\t}, true);\r\n\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t//request请求来源于 https://github.com/xnx3/request\r\n\trequest:{\r\n\t\t \r\n\t\t//相关API接口方面\r\n\t\tapi:{\r\n\t\t\t/**\r\n\t\t\t * 翻译接口请求的域名主机 host\r\n\t\t\t * 格式注意前面要带上协议如 https:// 域名后要加 /\r\n\t\t\t * v2.8.2 增加数组形态,如 ['https://api.translate.zvo.cn/','xxxxx'] \r\n\t\t\t */\r\n\t\t\t//host:'https://api.translate.zvo.cn/',\r\n\t\t\thost:['https://api.translate.zvo.cn/','https://america.api.translate.zvo.cn/'],\r\n\t\t\t//host的备用接口,格式同host,可以填写多个,只不过这里是数组格式。只有当主 host 无法连通时,才会采用备host来提供访问。如果为空也就是 [] 则是不采用备方案。\r\n\t\t\t//backupHost:['',''],\r\n\t\t\tlanguage:'language.json', //获取支持的语种列表接口\r\n\t\t\ttranslate:'translate.json', //翻译接口\r\n\t\t\tip:'ip.json', //根据用户当前ip获取其所在地的语种\r\n\t\t\tconnectTest:'connectTest.json',\t//用于 translate.js 多节点翻译自动检测网络连通情况\r\n\t\t\tinit:'init.json', //获取最新版本号,跟当前版本进行比对,用于提醒版本升级等使用\r\n\r\n\t\t},\r\n\t\t/*\r\n\t\t\t请求后端接口的响应。无论是否成功,都会触发此处。\r\n\t\t\t另外当 xhr.readyState==4 的状态时才会触发。\r\n\t\t\t此处会在接口请求响应后、且在translate.js处理前就会触发\r\n\t\t\t@param xhr XMLHttpRequest 接口请求\r\n\t\t\t\r\n\t\t*/\r\n\t\tresponse:function(xhr){\r\n\t\t\t//console.log('response------');\r\n\t\t\t//console.log(xhr);\r\n\t\t},\r\n\t\t/*\r\n\t\t\t速度检测控制中心, 检测主备翻译接口的响应速度进行排列,真正请求时,按照排列的顺序进行请求\r\n\t\t\tv2.8.2增加\t\r\n\t\t\t\r\n\t\t\tstorage存储方面\r\n\t\t\tstorage存储的key \t\t\t\t\t\t存的什么\r\n\t\t\tspeedDetectionControl_hostQueue\t\t\thostQueue\r\n\t\t\tspeedDetectionControl_hostQueueIndex\t当前要使用的是 hostQueue 中的数组下标。如果没有,这里默认视为0\r\n\t\t\tspeedDetectionControl_lasttime\t\t\t最后一次执行速度检测的时间戳,13位时间戳\r\n\r\n\r\n\t\t\t\r\n\t\t*/\r\n\t\tspeedDetectionControl:{\r\n\t\t\t/*\r\n\t\t\t\t\r\n\t\t\t\t进行 connect主节点缩减的时间,单位是毫秒.\r\n\t\t\t\t这个是进行 translate.request.speedDetectionControl.checkResponseSpeed() 节点测速时,translate.request.api.host 第一个元素是默认的主节点。\r\n\t\t\t\t主节点在实际测速完后,会减去一定的时间,以便让用户大部分时间可以使用主节点,而不必走分节点。\r\n\t\t\t\t例如主节点实际响应速度 3500 毫秒,那么会减去这里设置的2000毫秒,记为 1500 毫秒\r\n\t\t\t\t当然如果是小于这里设置的2000毫秒,那么会记为0毫秒。\r\n\t\t\t\t这样再跟其他分节点的响应时间进行对比,主节点只要不是响应超时,就会有更大的几率被选中为实际使用的翻译的节点\r\n\t\t\t\t\r\n\t\t\t\t这里的单位是毫秒。\r\n\t\t\t\tv2.10.2.20231225 增加\r\n\t\t\t*/\r\n\t\t\thostMasterNodeCutTime:2000,\t\r\n\r\n\t\t\t/*\r\n\t\t\t\t翻译的队列,这是根据网络相应的速度排列的,0下标为请求最快,1次之...\r\n\t\t\t\t其格式为:\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"host\":\"xxxxxxxx\",\r\n\t\t\t\t\t\t\t\"time\":123 \t\t\t//这里的单位是毫秒\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"host\":\"xxxxxxxx\",\r\n\t\t\t\t\t\t\t\"time\":123 \t\t\t//这里的单位是毫秒\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t*/\r\n\t\t\thostQueue:[],\t\r\n\t\t\thostQueueIndex:-1,\t//当前使用的 hostQueue的数组下标, -1表示还未初始化赋予值,不可直接使用,通过 getHostQueueIndex() 使用\r\n\t\t\tdisableTime:1000000,\t//不可用的时间,storage中存储的 speedDetectionControl_hostQueue 其中 time 这里,如果值是 这个,便是代表这个host处于不可用状态\r\n\r\n\r\n\t\t\t//获取 host queue 队列\r\n\t\t\tgetHostQueue:function(){\r\n\t\t\t\tif(translate.request.speedDetectionControl.hostQueue.length == 0){\r\n\t\t\t\t\t//还没有,先从本地存储中取,看之前是否已经设置过了\r\n\t\t\t\t\t// 只有经过真正的网络测速后,才会加入 storage 的 hostQueue\r\n\t\t\t\t\tvar storage_hostQueue = translate.storage.get('speedDetectionControl_hostQueue');\r\n\t\t\t\t\tif(storage_hostQueue == null || typeof(storage_hostQueue) == 'undefined'){\r\n\t\t\t\t\t\t//本地存储中没有,也就是之前没设置过,是第一次用,那么直接讲 translate.request.api.host 赋予之\r\n\t\t\t\t\t\t//translate.request.api.host\r\n\t\t\t\t\r\n\t\t\t\t\t\tif(typeof(translate.request.api.host) == 'string'){\r\n\t\t\t\t\t\t\t//单个,那么赋予数组形式\r\n\t\t\t\t\t\t\t//translate.request.speedDetectionControl.hostQueue = [{\"host\":translate.request.api.host, time:0 }];\r\n\t\t\t\t\t\t\ttranslate.request.api.host = [''+translate.request.api.host];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//数组形态,多个,v2.8.2 增加多个,根据优先级返回\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueue = [];\r\n\t\t\t\t\t\tfor(var i = 0; i updateTime){\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkResponseSpeed();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\t\t\t\treturn translate.request.speedDetectionControl.hostQueue;\r\n\t\t\t},\r\n\r\n\t\t\t/*\r\n\t\t\t\t服务于 checkResponseSpeed 用于将测试结果存入 storage\r\n\t\t\t\ttime: 当前接口请求的耗时,单位是毫秒。如果是 1000000 那么表示这个接口不可用\r\n\t\t\t*/\r\n\t\t\tcheckResponseSpeed_Storage:function(host, time){\r\n\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.push({\"host\":host, \"time\":time });\r\n\t\t\t\t//按照time进行排序\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.sort((a, b) => a.time - b.time);\r\n\r\n\t\t\t\t//存储到 storage 持久化\r\n\t\t\t\ttranslate.storage.set('speedDetectionControl_hostQueue',JSON.stringify(translate.request.speedDetectionControl.checkHostQueue));\r\n\t\t\t\ttranslate.storage.set('speedDetectionControl_lasttime', new Date().getTime());\r\n\r\n\t\t\t\ttranslate.request.speedDetectionControl.hostQueue = translate.request.speedDetectionControl.checkHostQueue;\r\n\t\t\t},\r\n\r\n\t\t\t//测试响应速度\r\n\t\t\tcheckResponseSpeed:function(){\r\n\t\t\t\tvar headers = {\r\n\t\t\t\t\t'content-type':'application/x-www-form-urlencoded',\r\n\t\t\t\t};\r\n\r\n\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue = []; //用于实际存储\r\n\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueueMap = []; //只是map,通过key取值,无其他作用\r\n\r\n\t\t\t\tif(typeof(translate.request.api.host) == 'string'){\r\n\t\t\t\t\t//单个,那么赋予数组形式\r\n\t\t\t\t\ttranslate.request.api.host = [''+translate.request.api.host];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor(var i = 0; i < translate.request.api.host.length; i++){\r\n\t\t\t\t\tvar host = translate.request.api.host[i];\r\n\t\t\t\t\t// 获取当前时间的时间戳\r\n\t\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueueMap[host] = {\r\n\t\t\t\t\t\tstart:new Date().getTime()\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\ttry{\r\n\t\t\t\t\t\ttranslate.request.send(\r\n\t\t\t\t\t\t\thost+translate.request.api.connectTest,\r\n\t\t\t\t\t\t\t{host:host},\r\n\t\t\t\t\t\t\tfunction(data){\r\n\t\t\t\t\t\t\t\tvar host = data.info;\r\n\t\t\t\t\t\t\t\tvar map = translate.request.speedDetectionControl.checkHostQueueMap[host];\r\n\t\t\t\t\t\t\t\tvar time = new Date().getTime() - map.start;\r\n\r\n\t\t\t\t\t\t\t\tif(translate.request.api.host[0] == host){\r\n\t\t\t\t\t\t\t\t\t//console.log('如果是第一个,那么是主的,默认允许缩减2000毫秒,也就是优先使用主的');\r\n\t\t\t\t\t\t\t\t\ttime = time - translate.request.speedDetectionControl.hostMasterNodeCutTime;\r\n\t\t\t\t\t\t\t\t\tif(time < 0){\r\n\t\t\t\t\t\t\t\t\t\ttime = 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkResponseSpeed_Storage(host, time);\r\n\t\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.push({\"host\":host, \"time\":time });\r\n\t\t\t\t\t\t\t\t//按照time进行排序\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkHostQueue.sort((a, b) => a.time - b.time);\r\n\r\n\t\t\t\t\t\t\t\t//存储到 storage 持久化\r\n\t\t\t\t\t\t\t\ttranslate.storage.set('speedDetectionControl_hostQueue',JSON.stringify(translate.request.speedDetectionControl.checkHostQueue));\r\n\t\t\t\t\t\t\t\ttranslate.storage.set('speedDetectionControl_lasttime', new Date().getTime());\r\n\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueue = translate.request.speedDetectionControl.checkHostQueue;\r\n\t\t\t\t\t\t\t\t//console.log(translate.request.speedDetectionControl.hostQueue);\r\n\t\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t'post',\r\n\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\theaders,\r\n\t\t\t\t\t\t\tfunction(data){\r\n\t\t\t\t\t\t\t\t//translate.request.speedDetectionControl.checkResponseSpeed_Storage(host, time);\r\n\t\t\t\t\t\t\t\tvar hostUrl = data.requestURL.replace('connectTest.json','');\r\n\t\t\t\t\t\t\t\ttranslate.request.speedDetectionControl.checkResponseSpeed_Storage(hostUrl, translate.request.speedDetectionControl.disableTime);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfalse\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}catch(e){\r\n\t\t\t\t\t\t//console.log('e0000');\r\n\t\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t\t\t//time = 300000; //无法连接的,那么赋予 300 秒吧\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t},\r\n\r\n\t\t\t//获取当前使用的host的数组下标\r\n\t\t\tgetHostQueueIndex:function(){\r\n\t\t\t\tif(translate.request.speedDetectionControl.hostQueueIndex < 0){\r\n\t\t\t\t\t//页面当前第一次使用,赋予值\r\n\t\t\t\t\t//先从 storage 中取\r\n\t\t\t\t\tvar storage_index = translate.storage.get('speedDetectionControl_hostQueueIndex');\r\n\t\t\t\t\tif(typeof(storage_index) == 'undefined' || storage_index == null){\r\n\t\t\t\t\t\t//存储中不存在,当前用户(浏览器)第一次使用,默认赋予0\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueueIndex = 0;\r\n\t\t\t\t\t\ttranslate.storage.set('speedDetectionControl_hostQueueIndex',0);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\ttranslate.request.speedDetectionControl.hostQueueIndex = storage_index;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn translate.request.speedDetectionControl.hostQueueIndex;\r\n\t\t\t},\r\n\r\n\t\t\t//获取当前要使用的host\r\n\t\t\tgetHost:function(){\r\n\t\t\t\tvar queue = translate.request.speedDetectionControl.getHostQueue();\r\n\t\t\t\t//console.log(queue);\r\n\t\t\t\tvar queueIndex = translate.request.speedDetectionControl.getHostQueueIndex();\r\n\t\t\t\tif(queue.length > queueIndex){\r\n\t\t\t\t\t//正常,没有超出越界\r\n\t\t\t\t\t\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//异常,下标越界了!,固定返回最后一个\r\n\t\t\t\t\tconsole.log('异常,下标越界了!index:'+queueIndex);\r\n\t\t\t\t\tqueueIndex = queue.length-1;\r\n\t\t\t\t}\r\n\t\t\t\t//console.log(queueIndex);\r\n\t\t\t\treturn queue[queueIndex].host;\r\n\t\t\t},\r\n\r\n\t\t},\r\n\t\t//生成post请求的url\r\n\t\tgetUrl:function(path){\r\n\t\t\tvar currentHost = translate.request.speedDetectionControl.getHost();\r\n\t\t\tvar url = currentHost+path+'?v='+translate.version;\r\n\t\t\t//console.log('url: '+url);\r\n\t\t\treturn url;\r\n\t\t},\r\n\t\t/**\r\n\t\t * post请求\r\n\t\t * @param path 请求的path(path,传入的是translate.request.api.translate 这种的,需要使用 getUrl 来组合真正请求的url )\r\n\t\t * @param data 请求的参数数据,传入如 \r\n\t\t * \t\t{\r\n\t\t * \t\t\tfrom: \"chinese_simplified\",\r\n\t\t * \t\t\ttext: \"%5B%22%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91\",\r\n\t\t * \t\t\tto: \"chinese_traditional\r\n\t\t * \t\t}\r\n\t\t * \t\t\r\n\t\t * @param func 请求完成的回调,传入如 function(data){ console.log(data); }\r\n\t\t * @param abnormalFunc 响应异常所执行的方法,响应码不是200就会执行这个方法 ,传入如 function(xhr){} 另外这里的 xhr 会额外有个参数 xhr.requestURL 返回当前请求失败的url\r\n\t\t */\r\n\t\tpost:function(path, data, func, abnormalFunc){\r\n\t\t\tvar headers = {\r\n\t\t\t\t'content-type':'application/x-www-form-urlencoded',\r\n\t\t\t};\r\n\t\t\tif(typeof(data) == 'undefined'){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//企业级翻译自动检测\r\n\t\t\ttranslate.enterprise.automaticAdaptationService();\r\n\r\n\t\t\t// ------- edge start --------\r\n\t\t\tvar url = translate.request.getUrl(path);\r\n\t\t\t//if(url.indexOf('edge') > -1 && path == translate.request.api.translate){\r\n\t\t\tif(translate.service.name == 'client.edge'){\t\r\n\t\t\t\tif(path == translate.request.api.translate){\r\n\t\t\t\t\ttranslate.service.edge.translate(path, data, func, abnormalFunc);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif(path == translate.request.api.language){\r\n\t\t\t\t\tvar d = {};\r\n\t\t\t\t\td.info = 'SUCCESS';\r\n\t\t\t\t\td.result = 1;\r\n\t\t\t\t\td.list = translate.service.edge.language.json;\r\n\t\t\t\t\tfunc(d);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//return;\r\n\t\t\t}\r\n\t\t\t// ------- edge end --------\r\n\r\n\t\t\tthis.send(path, data, func, 'post', true, headers, abnormalFunc, true);\r\n\t\t},\r\n\t\t/**\r\n\t\t * 发送请求\r\n\t\t * url 请求的url或者path(path,传入的是translate.request.api.translate 这种的,需要使用 getUrl 来组合真正请求的url )\r\n\t\t * data 请求的数据,如 {\"author\":\"管雷鸣\",'site':'www.guanleiming.com'} \r\n\t\t * func 请求完成的回调,传入如 function(data){}\r\n\t\t * method 请求方式,可传入 post、get\r\n\t\t * isAsynchronize 是否是异步请求, 传入 true 是异步请求,传入false 是同步请求。 如果传入false,则本方法返回xhr\r\n\t\t * headers 设置请求的header,传入如 {'content-type':'application/x-www-form-urlencoded'};\r\n\t\t * abnormalFunc 响应异常所执行的方法,响应码不是200就会执行这个方法 ,传入如 function(xhr){} 另外这里的 xhr 会额外有个参数 xhr.requestURL 返回当前请求失败的url\r\n\t\t * showErrorLog 是否控制台打印出来错误日志,true打印, false 不打印\r\n\t\t */\r\n\t\tsend:function(url, data, func, method, isAsynchronize, headers, abnormalFunc, showErrorLog){\r\n\t\t\t//post提交的参数\r\n\t\t\tvar params = '';\r\n\r\n\t\t\tif(data == null || typeof(data) == 'undefined'){\r\n\t\t\t\tdata = {};\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(typeof(data) == 'string'){\r\n\t\t\t\tparams = data; //payload 方式\r\n\t\t\t}else{\r\n\t\t\t\t//表单提交方式\r\n\t\t\t\t\r\n\t\t\t\t//加入浏览器默认语种 v3.6.1 增加,以便更好的进行自动切换语种\r\n\t\t\t\tdata.browserDefaultLanguage = translate.util.browserDefaultLanguage();\r\n\t\t\t\t\r\n\t\t\t\t//加入key\r\n\t\t\t\tif(typeof(translate.enterprise.key) != 'undefined' && typeof(translate.enterprise.key) == 'string' && translate.enterprise.key.length > 0){\r\n\t\t\t\t\tdata.key = translate.enterprise.key;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//组合参数\r\n\t\t\t\tfor(var index in data){\r\n\t\t\t\t\tif(params.length > 0){\r\n\t\t\t\t\t\tparams = params + '&';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tparams = params + index + '=' + data[index];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(url.indexOf('https://') == 0 || url.indexOf('http://') == 0){\r\n\t\t\t\t//采用的url绝对路径\r\n\t\t\t}else{\r\n\t\t\t\t//相对路径,拼接上host\r\n\t\t\t\turl = translate.request.getUrl(url);\r\n\t\t\t}\r\n\r\n\t\t\tvar xhr=null;\r\n\t\t\ttry{\r\n\t\t\t\txhr=new XMLHttpRequest();\r\n\t\t\t}catch(e){\r\n\t\t\t\txhr=new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n\t\t\t}\r\n\t\t\t//2.调用open方法(true----异步)\r\n\t\t\txhr.open(method,url,isAsynchronize);\r\n\t\t\t//设置headers\r\n\t\t\tif(headers != null){\r\n\t\t\t\tfor(var index in headers){\r\n\t\t\t\t\txhr.setRequestHeader(index,headers[index]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(translate.service.name == 'translate.service'){\r\n\t\t\t\txhr.setRequestHeader('currentpage', window.location.href+'');\r\n\t\t\t}\r\n\t\t\txhr.send(params);\r\n\t\t\t//4.请求状态改变事件\r\n\t\t\txhr.onreadystatechange=function(){\r\n\t\t\t if(xhr.readyState==4){\r\n\t\t\t \ttranslate.request.response(xhr); //自定义响应的拦截\r\n\r\n\t\t\t if(xhr.status==200){\r\n\t\t\t \t//请求正常,响应码 200\r\n\t\t\t \tvar json = null;\r\n\t\t\t \tif(typeof(xhr.responseText) == 'undefined' || xhr.responseText == null){\r\n\t\t\t \t\t//相应内容为空\r\n\t\t\t \t}else{\r\n\t\t\t \t\t//响应内容有值\r\n\t\t\t \t\tif(xhr.responseText.indexOf('{') > -1 && xhr.responseText.indexOf('}') > -1){\r\n\t\t\t\t \t\t//应该是json格式\r\n\t\t\t\t \t\ttry{\r\n\t\t\t\t\t \t\tjson = JSON.parse(xhr.responseText);\r\n\t\t\t\t\t \t}catch(e){\r\n\t\t\t\t\t \t\tconsole.log(e);\r\n\t\t\t\t\t \t}\r\n\t\t\t\t \t}\r\n\t\t\t \t}\r\n\t\t\t \t\r\n\t\t\t \tif(json == null){\r\n\t\t\t \t\tfunc(xhr.responseText);\r\n\t\t\t \t}else{\r\n\t\t\t \t\tfunc(json);\r\n\t\t\t \t}\r\n\t\t\t }else{\r\n\t\t\t \tif(showErrorLog){\r\n\t\t\t \t\tif(url.indexOf(translate.request.api.connectTest) > -1){\r\n\t\t\t \t\t\t//测试链接速度的不在报错里面\r\n\t\t\t \t\t}else{\r\n\r\n\t\t\t \t\t\t//判断是否是v2版本的翻译,如果是 translate.service 模式并且没有使用企业级翻译,参会提示\r\n\t\t\t \t\t\t//2024.3月底开始,翻译使用量增加的太快,开源的翻译服务器有点扛不住经常出故障,所以直接把这个提示加到这里\r\n\t\t\t \t\t\tif(translate.service.name == 'translate.service' && !translate.enterprise.isUse){\r\n\t\t\t \t\t\t\tconsole.log('----- translate.js 提示 -----\\n非常抱歉,translate.service 开源免费的翻译服务器当前并发及流量太大导致阻塞!\\n这个情况是时不时发生的,大概一天24小时可能会有一二十分钟这种情况,主要是因为使用量太大了,月使用量能超四十亿次,所以在高发时会出现这种情况。\\n解决这种情况可以有两种方案:\\n【方案一】:使用采用最新版本 3.8.0及更高版本,js引用文件为 https://cdn.staticfile.net/translate.js/3.8.0/translate.js 并且使用 client.edge 模式 (增加一行设置代码就好,可参考 https://translate.zvo.cn/4081.html ),这样就不会再出现这种情况了。这个是我们的 translate.service 通道阻塞导致,更换别的通道就可以避免这样了。而且这个方案也是完全免费的。 \\n【方案二】:采用企业级稳定翻译通道 ,但是这个相比于 方案一 来说,是有一定的收费的,大概一年600,这个就是专门为了高速及高稳定准备的,而相比于这个方案二,方案一则是全免费的。 因为方案二我们是部署了两个集群,而每个集群又下分了数个网络节点,包含中国大陆、香港、美国、欧洲、 等多个州,充分保障稳定、高效,同样也产生了不少成本,所以才需要付费。更多信息说明可以参考: http://translate.zvo.cn/4087.html \\n\\n-------------');\r\n\t\t\t \t\t\t}\r\n\r\n\t\t\t \t\t\t//console.log(xhr);\r\n\t\t\t\t\t \tconsole.log('------- translate.js service api response error --------');\r\n\t\t\t\t\t \tconsole.log(' http code : '+xhr.status);\r\n\t\t\t\t\t \tconsole.log(' response : '+xhr.response);\r\n\t\t\t\t\t \tconsole.log(' request url : '+url);\r\n\t\t\t\t\t \tconsole.log(' request data : '+JSON.stringify(data));\r\n\t\t\t\t\t \tconsole.log(' request method : '+method);\r\n\t\t\t\t\t \tconsole.log('---------------------- end ----------------------');\r\n\t\t\t \t\t}\r\n\t\t\t \t\t\r\n\t\t\t \t}\r\n\t\t\t \txhr.requestURL = url;\r\n\t\t\t \tif(abnormalFunc != null){\r\n\t\t\t \t\tabnormalFunc(xhr);\r\n\t\t\t \t}\r\n\t\t\t }\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\treturn xhr;\r\n\t\t},\r\n\t\t/*\r\n\r\n\t\t\t手动进行翻译操作。参数说明:\r\n\t\t\t\ttexts: 可传入要翻译的文本、以及文本数组。 比如要一次翻译多个句子,那就可以传入数组的方式\r\n\t\t\t\tfunction: 翻译完毕后的处理函数。传入如 function(data){ console.log(data); }\r\n\t\t\t\t\t\t 注意,返回的data.result 为 1,则是翻译成功。 为0则是出错,可通过data.info 得到错误原因。 更详细说明参考: http://api.zvo.cn/translate/service/20230807/translate.json.html\r\n\r\n\t\t\t使用案例一: \r\n\t\t\ttranslate.request.translateText('你好,我是翻译的内容', function(data){\r\n\t\t\t\t//打印翻译结果\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t使用案例二:\r\n\t\t\tvar texts = ['我是翻译的第一句','我是翻译的第二句','我是翻译的第三句'];\r\n\t\t\ttranslate.request.translateText(texts, function(data){\r\n\t\t\t\t//打印翻译结果\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t});\r\n\r\n\t\t\t使用案例三:\r\n\t\t\tvar obj = {\r\n\t\t\t\tfrom:'chinese_simplified',\r\n\t\t\t\tto:'english',\r\n\t\t\t\ttexts: ['我是翻译的第一句','我是翻译的第二句','我是翻译的第三句']\r\n\t\t\t}\r\n\t\t\ttranslate.request.translateText(obj, function(data){\r\n\t\t\t\t//打印翻译结果\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t});\r\n\t\t*/\r\n\t\ttranslateText:function(obj, func){\r\n\t\t\tvar texts = new Array();\r\n\t\t\tvar from = translate.language.getLocal();\r\n\t\t\tvar to = translate.language.getCurrent();\r\n\r\n\t\t\tif(typeof(obj) == 'string'){\r\n\t\t\t\t//案例一的场景,传入单个字符串\r\n\t\t\t\ttexts[0] = obj;\r\n\t\t\t}else{\r\n\t\t\t\t//不是字符串了,而是对象了,判断是案例二还是案例三\r\n\r\n\t\t\t\tvar type = Object.prototype.toString.call(obj);\r\n\t\t\t\t//console.log(type);\r\n\t\t\t\tif(type == '[object Array]'){\r\n\t\t\t\t\t//案例二\r\n\t\t\t\t\ttexts = obj;\r\n\t\t\t\t}else if(type == '[object Object]'){\r\n\t\t\t\t\t//案例三\r\n\t\t\t\t\tif(typeof(obj.texts) == 'undefined'){\r\n\t\t\t\t\t\tconsole.log('translate.request.translateText 传入的值类型异常,因为你没有传入 obj.texts 要翻译的具体文本! 请查阅文档: https://translate.zvo.cn/4077.html');\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(obj.texts) == 'string'){\r\n\t\t\t\t\t\t//单个字符串\r\n\t\t\t\t\t\ttexts = [obj.texts];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//多个字符串,数组形态\r\n\t\t\t\t\t\ttexts = obj.texts;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(obj.from) == 'string' && obj.from.length > 0){\r\n\t\t\t\t\t\tfrom = obj.from;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof(obj.to) == 'string' && obj.to.length > 0){\r\n\t\t\t\t\t\tto = obj.to;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tconsole.log('translate.request.translateText 传入的值类型错误,请查阅文档: https://translate.zvo.cn/4077.html');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\r\n\t\t\tvar url = translate.request.api.translate;\r\n\t\t\tvar data = {\r\n\t\t\t\tfrom:from,\r\n\t\t\t\tto: to,\r\n\t\t\t\ttext:encodeURIComponent(JSON.stringify(texts))\r\n\t\t\t};\r\n\t\t\t//console.log(data);\r\n\t\t\ttranslate.request.post(url, data, function(data){\r\n\t\t\t\t//console.log(data); \r\n\t\t\t\tif(data.result == 0){\r\n\t\t\t\t\tconsole.log('=======ERROR START=======');\r\n\t\t\t\t\tconsole.log('from : '+data.from);\r\n\t\t\t\t\tconsole.log('to : '+data.to);\r\n\t\t\t\t\tconsole.log('translate text array : '+texts);\r\n\t\t\t\t\tconsole.log('response : '+data.info);\r\n\t\t\t\t\tconsole.log('=======ERROR END =======');\r\n\t\t\t\t\t//return;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunc(data);\r\n\t\t\t}, null);\r\n\t\t},\r\n\t\tlistener:{\r\n\t\t\tminIntervalTime:800, // 两次触发的最小间隔时间,单位是毫秒,这里默认是800毫秒。最小填写时间为 200毫秒\r\n\t\t\tlasttime:0,// 最后一次触发执行 translate.execute() 的时间,进行执行的那一刻,而不是执行完。13位时间戳\r\n\t\t\t/*\r\n\t\t\t\t设置要在未来的某一时刻执行,单位是毫秒,13位时间戳。\r\n\t\t\t\t执行时如果当前时间大于这个数,则执行,并且将这个数置为0。\r\n\t\t\t\t会有一个循环执行函数每间隔200毫秒触发一次\r\n\t\t\t*/\r\n\t\t\texecutetime:0,\r\n\t\t\t/*\r\n\t\t\t\t进行翻译时,延迟翻译执行的时间\r\n\t\t\t\t当ajax请求结束后,延迟这里设置的时间,然后自动触发 translate.execute() 执行\r\n\t\t\t*/\r\n\t\t\tdelayExecuteTime:200, \r\n\t\t\t/*\r\n\t\t\t\t满足ajax出发条件,设置要执行翻译。\r\n\t\t\t\t注意,设置这个后并不是立马就会执行,而是加入了一个执行队列,避免1秒请求了10次会触发10次执行的情况\r\n\t\t\t*/\r\n\t\t\taddExecute:function(){\r\n\t\t\t\tvar currentTime = Date.now();\r\n\t\t\t\tif(translate.request.listener.lasttime == 0){\r\n\t\t\t\t\t//是第一次,lasttime还没设置过,那么直接设置执行时间为当前时间\r\n\t\t\t\t\ttranslate.request.listener.executetime = currentTime;\r\n\t\t\t\t\ttranslate.request.listener.lasttime = 1;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//不是第一次了\r\n\r\n\t\t\t\t\tif(translate.request.listener.executetime > 1){\r\n\t\t\t\t\t\t//当前有执行队列等待,不用再加入执行等待了\r\n\t\t\t\t\t\t//console.log('已在执行队列,不用再加入了 '+currentTime);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//执行队列中还没有,可以加入执行命令\r\n\r\n\t\t\t\t\t\tif(currentTime < translate.request.listener.lasttime + translate.request.listener.minIntervalTime){\r\n\t\t\t\t\t\t\t//如果当前时间小于最后一次执行时间+间隔时间,那么就是上次才刚刚执行过,这次执行的太快了,那么赋予未来执行翻译的时间为最后一次时间+间隔时间\r\n\t\t\t\t\t\t\ttranslate.request.listener.executetime = translate.request.listener.lasttime + translate.request.listener.minIntervalTime;\r\n\t\t\t\t\t\t\t//console.log('addexecute - < 如果当前时间小于最后一次执行时间+间隔时间,那么就是上次才刚刚执行过,这次执行的太快了,那么赋予未来执行翻译的时间为最后一次时间+间隔时间');\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\ttranslate.request.listener.executetime = currentTime;\r\n\t\t\t\t\t\t\t//console.log('addexecute -- OK ');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t\t自定义是否会被触发的方法判断\r\n\t\t\t\turl 当前ajax请求的url,注意是这个url请求完毕获取到200相应的内容时才会触发此方法\r\n\t\t\t\t返回值 return true; 默认是不管什么url,全部返回true,表示会触发翻译自动执行 translate.execute; ,如果你不想让某个url触发翻译,那么你可以自行在这个方法中用代码进行判断,然后返回false,那么这个url将不会自动触发翻译操作。\r\n\t\t\t*/\r\n\t\t\ttrigger:function(url){\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t\t启动根据ajax请求来自动触发执行翻译,避免有时候有的框架存在漏翻译的情况。\r\n\t\t\t\t这个只需要执行一次即可,如果执行多次,只有第一次会生效\r\n\t\t\t*/\r\n\t\t\tstart:function(){\r\n\t\t\t\t\r\n\t\t\t\t//确保这个方法只会触发一次,不会过多触发\r\n\t\t\t\tif(typeof(translate.request.listener.isStart) != 'undefined'){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}else{\r\n\t\t\t\t\ttranslate.request.listener.isStart = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//增加一个没100毫秒检查一次执行任务的线程\r\n\t\t\t\tsetInterval(function(){\r\n\t\t\t\t\tvar currentTime = Date.now();\r\n\t\t\t\t\tif(translate.request.listener.executetime > 1 && currentTime > translate.request.listener.executetime+translate.request.listener.delayExecuteTime){\r\n\t\t\t\t\t\ttranslate.request.listener.executetime = 0;\r\n\t\t\t\t\t\ttranslate.request.listener.lasttime = currentTime;\r\n\t\t\t\t\t\ttry{\r\n\t\t\t\t\t\t\t//console.log('执行翻译 --'+currentTime);\r\n\t\t\t\t\t\t\ttranslate.execute();\r\n\t\t\t\t\t\t}catch(e){\r\n\t\t\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100);\r\n\r\n\t\t\t\tconst observer = new PerformanceObserver((list) => {\r\n\t\t\t\t\tvar translateExecute = false;\t//是否需要执行翻译 true 要执行\r\n\t\t\t\t for(var e = 0; e < list.getEntries().length; e++){\r\n\t\t\t\t \tvar entry = list.getEntries()[e];\r\n\r\n\t\t\t\t \tif (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest') {\r\n\t\t\t\t \tvar url = entry.name;\r\n\t\t\t\t \t//console.log(url);\r\n\t\t\t\t \t//判断url是否是当前translate.js本身使用的\r\n\t\t\t\t \tif(typeof(translate.request.api.host) == 'string'){\r\n\t\t\t\t \t\ttranslate.request.api.host = [translate.request.api.host];\r\n\t\t\t\t \t}\r\n\t\t\t\t \tvar ignoreUrl = false; // 是否是忽略的url true是\r\n\r\n\t\t\t\t \t//translate.service 模式判断\r\n\t\t\t\t \tfor(var i = 0; i < translate.request.api.host.length; i++){\r\n\t\t\t\t \t\tif(url.indexOf(translate.request.api.host[i]) > -1){\r\n\t\t\t\t \t\t\t//是,那么直接忽略\r\n\t\t\t\t \t\t\tignoreUrl = true;\r\n\t\t\t\t \t\t\tbreak;\r\n\t\t\t\t \t\t}\r\n\t\t\t\t \t}\r\n\t\t\t\t \t//client.edge 判断\r\n\t\t\t\t \tif(url.indexOf(translate.service.edge.api.auth) > -1){\r\n\t\t\t\t \t\tignoreUrl = true;\r\n\t\t\t\t \t}\r\n\t\t\t\t \tif(url.indexOf('.microsofttranslator.com/translate') > -1){\r\n\t\t\t\t \t\tignoreUrl = true;\r\n\t\t\t\t \t}\r\n\r\n\t\t\t\t \tif(ignoreUrl){\r\n\t\t\t\t \t\t//console.log('忽略:'+url);\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t \t}\r\n\t\t\t\t \tif(translate.request.listener.trigger()){\r\n\t\t\t\t \t\t//正常,会触发翻译,也是默认的\r\n\t\t\t\t \t}else{\r\n\t\t\t\t \t\t//不触发翻译,跳过\r\n\t\t\t\t \t\tcontinue;\r\n\t\t\t\t \t}\r\n\r\n\t\t\t\t \ttranslateExecute = true;\r\n\t\t\t\t \tbreak;\r\n\t\t\t\t }\r\n\t\t\t\t }\r\n\t\t\t\t if(translateExecute){\r\n\t\t\t\t \t//console.log('translate.request.listener.addExecute() -- '+Date.now());\r\n\t\t\t\t \ttranslate.request.listener.addExecute();\r\n\t\t\t\t }\r\n\t\t\t\t});\r\n\t\t\t\t// 配置observer观察的类型为\"resource\"\r\n\t\t\t\tobserver.observe({ type: \"resource\", buffered: true });\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t//存储,本地缓存\r\n\tstorage:{\r\n\t\tset:function(key,value){\r\n\t\t\tlocalStorage.setItem(key,value);\r\n\t\t},\r\n\t\tget:function(key){\r\n\t\t\treturn localStorage.getItem(key);\r\n\t\t}\r\n\t},\r\n\t//针对图片进行相关的语种图片替换\r\n\timages:{\r\n\t\t/* 要替换的图片队列,数组形态,其中某个数组的:\r\n\t\t\tkey:\"/uploads/allimg/160721/2-160H11URA25-lp.jpg\"; //旧图片,也就是原网站本身的图片。也可以绝对路径,会自动匹配 img src 的值,匹配时会进行完全匹配\r\n\t\t\tvalue:\"https://xxx.com/abc_{language}.jpg\" //新图片,要被替换为的新图片。新图片路径需要为绝对路径,能直接访问到的。其中 {language} 会自动替换为当前要显示的语种。比如你要将你中文网站翻译为繁体中文,那这里会自动替换为:https://xxx.com/abc_chinese_traditional.jpg 有关{language}的取值,可查阅 http://api.translate.zvo.cn/doc/language.json.html 其中的语言标识id便是\r\n\t\t*/\r\n\t\tqueues:[], \r\n\t\t\r\n\t\t/*\r\n\t\t\t向图片替换队列中追加要替换的图片\r\n\t\t\t传入格式如:\r\n\t\t\t\r\n\t\t\ttranslate.images.add({\r\n\t\t\t\t\"/uploads/a.jpg\":\"https://www.zvo.cn/a_{language}.jpg\",\r\n\t\t\t\t\"/uploads/b.jpg\":\"https://www.zvo.cn/b_{language}.jpg\",\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t参数说明:\r\n\t\t\tkey //旧图片,也就是原网站本身的图片。也可以绝对路径,会自动匹配 img src 的值,匹配时会进行完全匹配\r\n\t\t\tvalue //新图片,要被替换为的新图片。新图片路径需要为绝对路径,能直接访问到的。其中 {language} 会自动替换为当前要显示的语种。比如你要将你中文网站翻译为繁体中文,那这里会自动替换为:https://xxx.com/abc_chinese_traditional.jpg 有关{language}的取值,可查阅 http://api.translate.zvo.cn/doc/language.json.html 其中的语言标识id便是\r\n\t\t*/\r\n\t\tadd:function(queueArray){\r\n\t\t\t/*\r\n\t\t\ttranslate.images.queues[translate.images.queues.length] = {\r\n\t\t\t\told:oldImage,\r\n\t\t\t\tnew:newImage\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\tfor(var key in queueArray){\r\n\t\t\t\ttranslate.images.queues[key] = queueArray[key];\r\n\t\t\t}\r\n\t\t},\r\n\t\t//执行图片替换操作,将原本的图片替换为跟翻译语种一样的图片\r\n\t\texecute:function(){\r\n\t\t\t//console.log(translate.images.queues);\r\n\t\t\tif(Object.keys(translate.images.queues).length < 1){\r\n\t\t\t\t//如果没有,那么直接取消图片的替换扫描\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*** 寻找img标签中的图片 ***/\r\n\t\t\tvar imgs = document.getElementsByTagName('img');\r\n\t\t\tfor(var i = 0; i < imgs.length; i ++){\r\n\t\t\t\tvar img = imgs[i];\r\n\t\t\t\tif(typeof(img.src) == 'undefined' || img.src == null || img.src.length == 0){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvar imgSrc = img.getAttribute('src'); //这样获取到的才是src原始的值,不然 img.src 是拿到一个绝对路径\r\n\r\n\t\t\t\tfor(var key in translate.images.queues){\r\n\t\t\t\t\tvar oldImage = key; //原本的图片src\r\n\t\t\t\t\tvar newImage = translate.images.queues[key]; //新的图片src,要替换为的\r\n\t\t\t\t\t//console.log('queue : '+oldImage + ' , img.src: '+imgSrc);\r\n\t\t\t\t\tif(oldImage == imgSrc){\r\n\t\t\t\t\t\t//console.log('发现匹配图片:'+imgSrc);\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t//判断当前元素是否在ignore忽略的tag、id、class name中\r\n\t\t\t\t\t\tif(translate.ignore.isIgnore(node)){\r\n\t\t\t\t\t\t\tconsole.log('node包含在要忽略的元素中:');\r\n\t\t\t\t\t\t\tconsole.log(node);\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//没在忽略元素里,可以替换\r\n\t\t\t\t\t\tnewImage = newImage.replace(new RegExp('{language}','g'), translate.to);\r\n\t\t\t\t\t\timg.src = newImage;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t/********** 还要替换style中的背景图 */\r\n\t\t\t// 获取当前网页中所有的元素\r\n\t\t\tvar elems = document.getElementsByTagName(\"*\");\r\n\t\t\t// 遍历每个元素,检查它们是否有背景图\r\n\t\t\tfor (var i = 0; i < elems.length; i++) {\r\n\t\t\t\tvar elem = elems[i];\r\n\t\t\t\t// 获取元素的计算后样式\r\n\t\t\t\tvar style = window.getComputedStyle(elem, null);\r\n\t\t\t\t// 获取元素的背景图URL\r\n\t\t\t\tvar bg = style.backgroundImage;\r\n\t\t\t\t// 如果背景图不为空,打印出来\r\n\t\t\t\tif (bg != \"none\") {\r\n\t\t\t\t\t//console.log(bg);\r\n\t\t\t\t\tvar old_img = translate.images.gainCssBackgroundUrl(bg);\r\n\t\t\t\t\t//console.log(\"old_img:\"+old_img);\r\n\t\t\t\t\tif(typeof(translate.images.queues[old_img]) != 'undefined'){\r\n\t\t\t\t\t\t//存在\r\n\t\t\t\t\t\tvar newImage = translate.images.queues[old_img];\r\n\t\t\t\t\t\tnewImage = newImage.replace(new RegExp('{language}','g'), translate.to);\r\n\t\t\t\t\t\t//更换翻译指定图像\r\n\t\t\t\t\t\telem.style.backgroundImage='url(\"'+newImage+'\")';\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//console.log('发现图像'+old_img+', 但未做语种适配');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\r\n\t\t},\r\n\t\t//取css中的背景图,传入 url(\"https://xxx.com/a.jpg\") 返回里面单纯的url\r\n\t\tgainCssBackgroundUrl:function(str){\r\n\t\t\t// 使用indexOf方法,找到第一个双引号的位置\r\n\t\t\tvar start = str.indexOf(\"\\\"\");\r\n\t\t\t// 使用lastIndexOf方法,找到最后一个双引号的位置\r\n\t\t\tvar end = str.lastIndexOf(\"\\\"\");\r\n\t\t\t// 如果找到了双引号,使用substring方法,截取中间的内容\r\n\t\t\tif (start != -1 && end != -1) {\r\n\t\t\t\tvar url = str.substring(start + 1, end); // +1是为了去掉双引号本身\r\n\t\t\t\t//console.log(url); // https://e-assets.gitee.com/gitee-community-web/_next/static/media/mini_app.2e6b6d93.jpg!/quality/100\r\n\t\t\t\treturn url;\r\n\t\t\t}\r\n\t\t\treturn str;\r\n\t\t}\r\n\t},\r\n\t//对翻译结果进行复原。比如当前网页是简体中文的,被翻译为了英文,执行此方法即可复原为网页本身简体中文的状态,而无需在通过刷新页面来实现\r\n\treset:function(){\r\n\t\tvar currentLanguage = translate.language.getCurrent(); //获取当前翻译至的语种\r\n\t\tfor(var queue in translate.nodeQueue){\r\n\t\t\t//console.log(queue);\r\n\t\t\tfor(var lang in translate.nodeQueue[queue].list){\r\n\t\t\t\t//console.log(lang);\r\n\t\t\t\t\r\n\t\t\t\tfor(var hash in translate.nodeQueue[queue].list[lang]){\r\n\t\t\t\t\tvar item = translate.nodeQueue[queue].list[lang][hash];\r\n\t\t\t\t\t//console.log(item);\r\n\t\t\t\t\tfor(var index in item.nodes){\r\n\t\t\t\t\t\t//console.log(item.nodes[index]);\r\n\t\t\t\t\t\t//item.nodes[index].node.nodeValue = item.original;\r\n\t\t\t\t\t\tvar currentShow = translate.storage.get('hash_'+currentLanguage+'_'+hash); //当前显示出来的文字,也就是已经翻译后的文字\r\n\t\t\t\t\t\t//console.log('hash_'+lang+'_'+hash+' -- '+currentShow);\r\n\t\t\t\t\t\tif(typeof(currentShow) == 'undefined'){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(currentShow == null){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(currentShow.length == 0){\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n/*\r\n\t\t\t\t\t\tif(item.beforeText.length > 0 || item.afterText.length > 0){\r\n\t\t\t\t\t\t\tconsole.log('----'+currentShow);\r\n\t\t\t\t\t\t\tconsole.log(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(item.beforeText.length > 0){\r\n\t\t\t\t\t\t\tcurrentShow = currentShow.substring(currentShow.lastIndexOf(item.beforeText)+1, currentShow.length);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(item.afterText.length > 0){\r\n\t\t\t\t\t\t\tcurrentShow = currentShow.substring(0, currentShow.lastIndexOf(item.afterText));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(item.beforeText.length > 0 || item.afterText.length > 0){\r\n\t\t\t\t\t\t\tconsole.log(currentShow);\r\n\t\t\t\t\t\t}\r\n*/\t\t\t\t\t\t\r\n\t\t\t\t\t\ttranslate.element.nodeAnalyse.analyse(item.nodes[index].node, currentShow, item.original, item.nodes[index].node.attribute);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//清除设置storage中的翻译至的语种\r\n\t\ttranslate.storage.set('to', '');\r\n\t\ttranslate.to = null;\r\n\t\t//重新渲染select\r\n\t\ttranslate.selectLanguageTag.render();\r\n\t},\r\n\t\r\n\t/*\r\n\t\t划词翻译,鼠标在网页中选中一段文字,会自动出现对应翻译后的文本\r\n\t\t有网友 https://gitee.com/huangguishen 提供。\r\n\t\t详细使用说明参见:http://translate.zvo.cn/41557.html\r\n\t*/\r\n\tselectionTranslate:{\r\n\t\tselectionX:0,\r\n\t\tselectionY:0,\r\n\t\tcallTranslate:function (event){\r\n\t\t\tlet curSelection = window.getSelection();\r\n\t\t\t//相等认为没有划词\r\n\t\t\tif (curSelection.anchorOffset == curSelection.focusOffset) return;\r\n\t\t\tlet translateText = window.getSelection().toString();\r\n\r\n\t\t\t//简单Copy原有代码了\r\n\t\t\tvar url = translate.request.api.translate\r\n\t\t\tvar data = {\r\n\t\t\t\tfrom:translate.language.getLocal(),\r\n\t\t\t\tto:translate.to,\r\n\t\t\t\ttext:encodeURIComponent(JSON.stringify([translateText]))\r\n\t\t\t};\r\n\t\t\ttranslate.request.post(url, data, function(data) {\r\n\t\t\t\tif (data.result == 0) return;\r\n\t\t\t\tlet curTooltipEle = document.querySelector('#translateTooltip')\r\n\t\t\t\tcurTooltipEle.innerText = data.text[0];\r\n\t\t\t\tcurTooltipEle.style.top =selectionY+20+\"px\";\r\n\t\t\t\tcurTooltipEle.style.left = selectionX+50+\"px\" ;\r\n\t\t\t\tcurTooltipEle.style.display = \"\";\r\n\t\t\t}, null);\r\n\t\t},\r\n\t\tstart:function () {\r\n\t\t\t//新建一个tooltip元素节点用于显示翻译\r\n\t\t\tlet tooltipEle = document.createElement('span');\r\n\t\t\ttooltipEle.innerText = '';\r\n\t\t\ttooltipEle.setAttribute('id', 'translateTooltip');\r\n\t\t\ttooltipEle.setAttribute('style', 'background-color:black;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:999;top:150%;left:50%; ');\r\n\t\t\t//把元素节点添加到body元素节点中成为其子节点,放在body的现有子节点的最后\r\n\t\t\tdocument.body.appendChild(tooltipEle);\r\n\t\t\t//监听鼠标按下事件,点击起始点位置作为显示翻译的位置点\r\n\t\t\tdocument.addEventListener('mousedown', (event)=>{ selectionX= event.pageX;selectionY= event.pageY ;}, false);\t\t\t\r\n\t\t\t//监听鼠标弹起事件,便于判断是否处于划词\r\n\t\t\tdocument.addEventListener('mouseup', translate.selectionTranslate.callTranslate, false);\r\n\t\t\t//监听鼠标点击事件,隐藏tooltip,此处可优化\r\n\t\t\tdocument.addEventListener('click', (event)=>{ document.querySelector('#translateTooltip').style.display = \"none\"}, false);\r\n\t\t}\r\n\t},\r\n\r\n\t/*\r\n\t\t企业级翻译服务\r\n\t\t注意,这个企业级翻译中的不在开源免费之中,企业级翻译服务追求的是高稳定,这个是收费的!详情可参考:http://translate.zvo.cn/43262.html\r\n\r\n\t*/\r\n\tenterprise:{\r\n\t\t//默认不启用企业级,除非设置了 translate.enterprise.use() 这里才会变成true\r\n\t\tisUse:false,\t\r\n\t\tuse:function(){\r\n\t\t\ttranslate.enterprise.isUse = true; //设置为使用企业级翻译服务\r\n\r\n\t\t\t//主节点额外权重降低,更追求响应速度\r\n\t\t\ttranslate.request.speedDetectionControl.hostMasterNodeCutTime = 300; \r\n\t\t\ttranslate.request.api.host=['https://america-enterprise-api-translate.zvo.cn/','https://beijing.enterprise.api.translate.zvo.cn/','https://deutsch.enterprise.api.translate.zvo.cn/', 'https://america.api.translate.zvo.cn:666/', 'https://api.translate.zvo.cn:666/', 'https://api.translate.zvo.cn:888/'];\r\n\t\t\t\r\n\t\t\tif(translate.service.name == 'client.edge'){\r\n\t\t\t\ttranslate.service.name = 'translate.service';\r\n\t\t\t\tconsole.log('您已启用了企业级翻译通道 translate.enterprise.use(); (文档:https://translate.zvo.cn/4087.html) , 所以您设置的 translate.service.use(\\'client.edge\\'); (文档:https://translate.zvo.cn/4081.html) 将失效不起作用,有企业级翻译通道全部接管。');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t},\r\n\t\t/*\r\n\t\t\t自动适配翻译服务通道,如果当前所有网络节点均不可用,会自动切换到 edge.client 进行使用\r\n\t\t\t这个会在 post请求 执行前开始时进行触发\r\n\t\t*/\r\n\t\tautomaticAdaptationService:function(){\r\n\t\t\tif(!translate.enterprise.isUse){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar hosts = translate.request.speedDetectionControl.getHostQueue();\r\n\t\t\t//console.log(hosts);\r\n\t\t\tif(hosts.length > 0){\r\n\t\t\t\tif(hosts[0].time + 1 > translate.request.speedDetectionControl.disableTime){\r\n\t\t\t\t\t//所有节点都处于不可用状态,自动切换到 client.edge 模式\r\n\t\t\t\t\ttranslate.service.name = 'client.edge';\r\n\t\t\t\t} \r\n\t\t\t}\r\n\t\t},\r\n\t\t/* 企业级翻译通道的key, v3.12.3.20250107 增加,针对打包成APP的场景 */\r\n\t\tkey:'', \r\n\t},\r\n\r\n\t/*\r\n\t\t如果使用的是 translate.service 翻译通道,那么翻译后的语种会自动以小写的方式进行显示。\r\n\t\t如果你不想将翻译后的文本全部以小写显示,而是首字母大写,那么可以通过此方法设置一下\r\n\t\tv3.8.0.20240828 增加\r\n\t\t目前感觉应该用不到,所以先忽略\r\n\t*/\r\n\t/*\r\n\tnotConvertLowerCase:function(){\r\n\r\n\t},\r\n\t*/\r\n\r\n\t/*\r\n\t\t初始化,如版本检测、初始数据加载等。 v2.11.11.20240124 增加\r\n\t\t会自动在 translate.js 加载后的 200毫秒后 执行,进行初始化。同时也是节点测速\r\n\t*/\r\n\tinit:function(){\r\n\t\tif(typeof(translate.init_execute) != 'undefined'){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttranslate.init_execute = '已进行';\r\n\t\ttry{\r\n\t\t\ttranslate.request.send(\r\n\t\t\t\ttranslate.request.api.init,\r\n\t\t\t\t{},\r\n\t\t\t\tfunction(data){\r\n\t\t\t\t\tif (data.result == 0){\r\n\t\t\t\t\t\tconsole.log('translate.js init 初始化异常:'+data.info);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}else if(data.result == 1){\r\n\t\t\t\t\t\t//服务端返回的最新版本\r\n\t\t\t\t\t\tvar newVersion = translate.util.versionStringToInt(data.version);\r\n\t\t\t\t\t\t//当前translate.js的版本\r\n\t\t\t\t\t\tvar currentVersion = translate.util.versionStringToInt(translate.version.replace('v',''));\r\n\r\n\t\t\t\t\t\tif(newVersion > currentVersion){\r\n\t\t\t\t\t\t\tconsole.log('Tip : translate.js find new version : '+data.version);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\teval(data.info);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'post',\r\n\t\t\t\ttrue,\r\n\t\t\t\tnull,\r\n\t\t\t\tfunction(data){\r\n\t\t\t\t\t//console.log('eeerrr');\r\n\t\t\t\t},\r\n\t\t\t\tfalse\r\n\t\t\t);\r\n\t\t}catch(e){\r\n\t\t}\r\n\t},\r\n\r\n\t/*\r\n\t\t翻译执行的进展相关\r\n\t*/\r\n\tprogress:{\r\n\t\t/*\r\n\t\t\t通过文本翻译API进行的\r\n\t\t */\r\n\t\tapi:{\r\n\t\t\tisTip:true,//是否显示ui的提示,true显示,false不显示\r\n\t\t\tsetUITip:function(tip){\r\n\t\t\t\ttranslate.progress.api.isTip = tip;\r\n\t\t\t},\r\n\t\t\tstartUITip:function(){\r\n\t\t\t\t// 创建一个 style 元素\r\n\t\t const style = document.createElement('style');\r\n\t\t // 设置 style 元素的文本内容为要添加的 CSS 规则\r\n\t\t \tstyle.textContent = `\r\n\t\t\t\t\t/* CSS部分 */\r\n\t\t\t\t\t/* 灰色水平加载动画 */\r\n\t\t\t\t\t.translate_api_in_progress {\r\n\t\t\t\t\t position: relative;\r\n\t\t\t\t\t overflow: hidden; /* 隐藏超出部分的动画 */\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* 蒙版层 */\r\n\t\t\t\t\t.translate_api_in_progress::after {\r\n\t\t\t\t\t content: '';\r\n\t\t\t\t\t position: absolute;\r\n\t\t\t\t\t top: 0;\r\n\t\t\t\t\t left: 0;\r\n\t\t\t\t\t width: 100%;\r\n\t\t\t\t\t height: 100%;\r\n\t\t\t\t\t background: rgba(255, 255, 255, 1); /* 半透明白色遮罩 */\r\n\t\t\t\t\t z-index: 2;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* 水平加载条动画 */\r\n\t\t\t\t\t.translate_api_in_progress::before {\r\n\t\t\t\t\t content: '';\r\n\t\t\t\t\t position: absolute;\r\n\t\t\t\t\t top: 50%;\r\n\t\t\t\t\t left: 0;\r\n\t\t\t\t\t width: 100%;\r\n\t\t\t\t\t height:100%; /* 细线高度 */\r\n\t\t\t\t\t background: linear-gradient(\r\n\t\t\t\t\t 90deg,\r\n\t\t\t\t\t transparent 0%,\r\n\t\t\t\t\t #e8e8e8 25%, /* 浅灰色 */\r\n\t\t\t\t\t #d0d0d0 50%, /* 中灰色 */\r\n\t\t\t\t\t #e8e8e8 75%, /* 浅灰色 */\r\n\t\t\t\t\t transparent 100%\r\n\t\t\t\t\t );\r\n\t\t\t\t\t background-size: 200% 100%;\r\n\t\t\t\t\t animation: translate_api_in_progress_horizontal-loader 3.5s linear infinite;\r\n\t\t\t\t\t z-index: 3;\r\n\t\t\t\t\t transform: translateY(-50%);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t@keyframes translate_api_in_progress_horizontal-loader {\r\n\t\t\t\t\t 0% {\r\n\t\t\t\t\t background-position: 200% 0;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t 100% {\r\n\t\t\t\t\t background-position: -200% 0;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t}\r\n\t\t\t\t`;\r\n\t\t // 将 style 元素插入到 head 元素中\r\n\t\t document.head.appendChild(style);\r\n\r\n\r\n\t\t\t\tif(translate.progress.api.isTip){\r\n\t\t\t\t\ttranslate.listener.execute.renderStartByApi.push(function(uuid){\r\n\t\t\t\t\t for(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\t\t\t if(translate.language.getCurrent() == lang){\r\n\t\t\t\t\t\t //忽略这个语种\r\n\t\t\t\t\t\t continue;\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t for(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t\t\t \tfor(var nodeindex in translate.nodeQueue[uuid].list[lang][hash].nodes){\r\n\t\t\t\t\t\t \t\tvar node = translate.nodeQueue[uuid].list[lang][hash].nodes[nodeindex].node;\r\n\t\t\t\t\t\t \t\tvar nodeParent = node.parentNode;\r\n\t\t\t\t\t\t\t if(nodeParent == null){\r\n\t\t\t\t\t\t\t \tcontinue;\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t\tif(nodeParent.childNodes.length != 1){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif(typeof(nodeParent.className) == 'undefined' || nodeParent.className == null || nodeParent.className == ''){\r\n\t\t\t\t\t\t\t\t\t\tnodeParent.className = ' translate_api_in_progress';\r\n\t\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\t\t//这个元素本身有class了,那就追加\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(nodeParent.className.indexOf('translate_api_in_progress') > -1){\t\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tnodeParent.className = nodeParent.className+' translate_api_in_progress';\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t \t}\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\ttranslate.listener.execute.renderFinishByApi.push(function(uuid){\r\n\t\t\t\t\t for(var lang in translate.nodeQueue[uuid].list){\r\n\t\t\t\t\t\t if(translate.language.getCurrent() == lang){\r\n\t\t\t\t\t\t //忽略这个语种\r\n\t\t\t\t\t\t continue;\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t for(var hash in translate.nodeQueue[uuid].list[lang]){\r\n\t\t\t\t\t\t \tfor(var nodeindex in translate.nodeQueue[uuid].list[lang][hash].nodes){\r\n\t\t\t\t\t\t \t\tvar node = translate.nodeQueue[uuid].list[lang][hash].nodes[nodeindex].node;\r\n\t\t\t\t\t\t \t\tvar nodeParent = node.parentNode;\r\n\t\t\t\t\t\t\t if(nodeParent == null){\r\n\t\t\t\t\t\t\t \tcontinue;\r\n\t\t\t\t\t\t\t }\r\n\r\n\t\t\t\t\t\t\t /*\r\n\t\t\t\t\t\t\t 注释这个,因为可能是给这个元素动态追加删除导致其子元素不是11\r\n\t\t\t\t\t\t\t\t\tif(nodeParent.childNodes.length != 1){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t*/\r\n\r\n\t\t\t\t\t\t\t\t\tvar parentClassName = nodeParent.className;\r\n\t\t\t\t\t\t\t\t\tif(typeof(parentClassName) == 'undefined' || parentClassName == null || parentClassName == ''){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(parentClassName.indexOf('translate_api_in_progress') < -1){\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tnodeParent.className = parentClassName.replace(/translate_api_in_progress/g, '');\r\n\t\t\t\t\t\t\t\t\t//nodeParent.className = parentClassName.replace(/loading/g, '');\r\n\t\t\t\t\t\t \t}\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t/*\r\n\t\t对js对象进行翻译\r\n\t\tobj: 可以是JS定义的 对象、数组、甚至是单个具体的值\r\n\t*/\r\n\tjsObject:function (obj, parentKey = '') {\r\n\t\t/*\r\n\t\t\t存放扫描的结果\r\n\t\t\tkey 存放要被翻译的文本,也就是对象里面某个具体属性的值\r\n\t\t\tvalue 存放 obj 中的 key (的调取路径),比如 series[0].data[0].name 这个是个数组形态,因为同一个翻译的文本内容有可能会在obj中出现多次\r\n\t\t*/\r\n\t\tvar kvs = {};\t\r\n\r\n\t if (typeof obj === 'object' && obj!== null) {\r\n\t if (Array.isArray(obj)) {\r\n\t // 处理数组\r\n\t obj.forEach((item, index) => {\r\n\t const currentKey = parentKey? `${parentKey}[${index}]` : `[${index}]`;\r\n\t translate.jsObject(item, currentKey);\r\n\t });\r\n\t } else {\r\n\t // 处理普通对象\r\n\t for (const key in obj) {\r\n\t const currentKey = parentKey? `${parentKey}.${key}` : key;\r\n\t if (typeof obj[key] === 'object' && obj[key]!== null) {\r\n\t // 如果值是对象,递归调用函数\r\n\t translate.jsObject(obj[key], currentKey);\r\n\t } else {\r\n\t // 打印键值对\r\n\r\n\t if(typeof(obj[key]) == 'string'){\r\n\t \t//console.log(`${currentKey}: ${obj[key]}`);\r\n\t \t//console.log(obj[key]);\r\n\t \t//console.log(typeof(kvs[obj[key]]));\r\n\t \tif(typeof(kvs[obj[key]]) == 'undefined'){\r\n\t \t\tkvs[obj[key]] = new Array();\r\n\t \t}\r\n\t \t//kvs[obj[key].push(currentKey);\r\n\t }\r\n\t \r\n\t }\r\n\t }\r\n\t }\r\n\t } else {\r\n\t // 如果不是对象,直接打印\r\n\t if(typeof(obj) == 'string'){\r\n\r\n\t \tif(typeof(obj) == 'string'){\r\n \t//console.log(`${parentKey}: ${obj}`);\r\n \tif(typeof(kvs[obj]) == 'undefined'){\r\n \t\tkvs[obj] = new Array();\r\n \t}\r\n \tkvs[obj].push('not key');\r\n }\r\n\r\n\t \t\r\n\t }\r\n\t }\r\n\r\n\t return kvs;\r\n\t}\r\n\r\n\r\n\t\r\n}\r\n/*\r\n\t将页面中的所有node节点,生成其在当前页面的唯一标识字符串uuid\r\n\t开源仓库: https://github.com/xnx3/nodeuuid.js\r\n\t原理: 当前节点的nodeName + 当前节点在父节点下,属于第几个 tagName ,然后追个向父级进行取,将node本身+父级+父父级+.... 拼接在一起\r\n\t注意,如果动态添加一个节点到第一个,那么其他节点就会挤下去导致节点标记异常\r\n*/\r\nvar nodeuuid = {\r\n\tindex:function(node){\r\n\t\tvar parent = node.parentNode;\r\n if(parent == null){\r\n return '';\r\n }\r\n\r\n var childs;\r\n if(typeof(node.tagName) == 'undefined'){\r\n \t//console.log('undefi');\r\n \tchilds = parent.childNodes;\r\n \t//console.log(Array.prototype.indexOf.call(childs, node));\r\n }else{\r\n \t// 使用querySelectorAll()方法获取所有与node元素相同标签名的子节点\r\n\t //childs = parent.querySelectorAll(node.tagName);\r\n\r\n\t // 不使用querySelectorAll,手动遍历子节点来找到相同标签名的子节点\r\n childs = [];\r\n var allChilds = parent.childNodes;\r\n for (var i = 0; i < allChilds.length; i++) {\r\n if (allChilds[i].tagName === node.tagName) {\r\n childs.push(allChilds[i]);\r\n }\r\n }\r\n }\r\n var index = Array.prototype.indexOf.call(childs, node); \r\n //console.log('--------'+node.tagName);\r\n return node.nodeName + \"\" + (index+1);\r\n\t},\r\n\tuuid:function(node){\r\n\t\tvar uuid = '';\r\n\t\tvar n = node;\r\n\t\twhile(n != null){\r\n\t\t\tvar id = nodeuuid.index(n);\r\n\t\t\t//console.log(id);\r\n\t\t\tif(id != ''){\r\n\t\t\t\tif(uuid != ''){\r\n\t\t\t\t\tuuid = '_'+uuid;\r\n\t\t\t\t}\r\n\t\t\t\tuuid = id + uuid;\r\n\t\t\t}\r\n\t\t\t//console.log(uuid)\r\n\t\t\tn = n.parentNode;\r\n\t\t}\r\n\t\treturn uuid;\r\n\t},\r\n\t/*\r\n\t\t开启远程调试能力,当你使用中遇到问题,需要向开源作者求助时,可以在你项目中主动调用这个方法,也就是 translate.enableRemoteDebug(); 即可启动远程调试能力\r\n\t\t开源项目作者就可以对你当前出错的页面进行远程调试排查问题所在。当然前提是你的页面要保持别关闭。\r\n\r\n\t\t这个能力是通过开源项目 https://github.com/HuolalaTech/page-spy-web 来实现的\r\n\t\t\r\n\t*/\r\n\tenableRemoteDebug:function(){\r\n\r\n\t\t/*\r\n\r\n\t\t\t待同事实现\r\n\t\t*/\r\n\r\n\t},\r\n\r\n}\r\nconsole.log('------ translate.js ------\\nTwo lines of js html automatic translation, page without change, no language configuration file, no API Key, SEO friendly! Open warehouse : https://github.com/xnx3/translate \\n两行js实现html全自动翻译。 无需改动页面、无语言配置文件、无API Key、对SEO友好!完全开源,代码仓库:https://gitee.com/mail_osc/translate');\r\n\r\n/**\r\n * 兼容 AMD、CMD、CommonJS 规范\r\n * node 环境使用:`npm i i18n-jsautotranslate` 安装包\r\n */\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define([], () => factory());\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = factory();\r\n } else {\r\n root['translate'] = factory();\r\n }\r\n})(this, function () {\r\n return translate;\r\n});\r\n","import request from './request'\n\n// 历史记录相关接口\nexport const historyApi = {\n // 获取历史记录\n getHistory: async () => {\n return await request({\n url: '/prompt/history/get_history',\n method: 'get'\n })\n },\n\n saveHistory:async (data) => {\n return await request({\n url: '/prompt/history/add_history',\n method: 'post',\n data\n })\n },\n\n deleteHistory:async (id) => {\n return await request({\n url: '/prompt/history/delete_history',\n method: 'post',\n data: { id_index: id }\n })\n },\n\n batchDeleteHistory:async(ids) => {\n return await request({\n url: '/prompt/history/batch_delete_history',\n method: 'post',\n data: { id_index: ids }\n })\n },\n\n getFavorite:async () => {\n return await request({\n url: '/prompt/collect_history/get_collect_history',\n method: 'get',\n })\n },\n\n addFavorite: async(data) => {\n return await request({\n url: '/prompt/collect_history/add_collect_history',\n method: 'post',\n data\n })\n },\n\n editFavorite:async (data) => {\n return await request({\n url: '/prompt/collect_history/edit_collect_history',\n method: 'post',\n data\n })\n },\n\n deleteFavorite: async(id) => {\n return await request({\n url: '/prompt/collect_history/delete_collect_history',\n method: 'post',\n data: { id_index: id }\n })\n },\n\n batchDeleteFavorite: async(ids) => {\n return await request({\n url: '/prompt/collect_history/batch_delete_collect_history',\n method: 'post',\n data: { id_indices: ids }\n })\n },\n\n}","\r\n\r\n\r\n\r\n\r\n","\n\n\n","import request from './request'\n// 翻译相关接口\nexport const randomTagApi = {\n // 获取模板列表\n getTemplateList: async () => {\n return await request({\n url: '/random_template/get_template_list',\n method: 'post',\n })\n },\n\n getTemplateData: async (name) => {\n return await request({\n url: '/random_template/get_template_data',\n method: 'post',\n data: { name }\n })\n },\n\n saveTemplateData: async (data) => {\n return await request({\n url: '/random_template/save_template',\n method: 'post',\n data: { data}\n })\n },\n\n updateTemplateData: async (name,data) => {\n return await request({\n url: '/random_template/update_template',\n method: 'post',\n data: { name , data}\n })\n },\n\n deleteTemplateData: async (name) => {\n return await request({\n url: '/random_template/delete_template',\n method: 'post',\n data: { name}\n })\n },\n\n getRandomTemplateApple: async () => {\n return await request({\n url: '/get/setting/get_random_template_setting',\n method: 'post'\n })\n },\n\n updateRandomTemplateApple: async (path) => {\n return await request({\n url: '/update/setting/update_random_template_setting',\n method: 'post',\n data: {\n path\n }\n })\n },\n\n goRandomTemplate: async () => {\n return await request({\n url: '/random_template/go_random_template',\n method: 'post',\n })\n },\n\n goRandomTemplatePath: async (name) => {\n return await request({\n url: '/random_template/go_random_template_path',\n method: 'post',\n data: { name }\n })\n },\n \n}","\n\n\n","\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","\n\n\n\n","import request from './request'\n\nexport const cloudApi = {\n // 获取云仓库列表\n getTreeFromCloud: async (path) => {\n return await request({\n url: '/cloud/get/tree',\n method: 'post',\n data: { path: path }\n })\n },\n getLocalInstallPackage: async () => {\n return await request({\n url: '/cloud/get/local/package',\n method: 'post',\n data: { }\n })\n },\n installSelectPackage: async (path,paths) => {\n return await request({\n url: '/cloud/download/file',\n method: 'post',\n timeout: 0,\n data: { paths: paths, path: path }\n })\n },\n}","\n\n\n\n","\r\n\r\n\r\n\r\n","import request from './request'\n\nexport const danbooruApi = {\n // 查询获取Danbooru列表\n searchDanbooru: async (search=\"\",page=1,limit=100) => {\n /* \n search: \"girl\", // 可选,搜索关键词\n page: 1, // 可选,默认1\n limit: 20 // 可选,默认100\n */\n return await request({\n url: '/danbooru/get_tags',\n method: 'post',\n data: { search,page,limit }\n })\n },\n addDanbooruTag: async (data) => {\n /*\n {\n tag: \"new_tag\",\n color_id: 1, // 可选,默认0\n translate: \"新标签\", // 可选\n hot: 0, // 可选,默认0\n aliases: 0 // 可选,默认0\n }\n */\n return await request({\n url: '/danbooru/add_tag',\n method: 'post',\n data: data\n })\n },\n updateDanbooruTag: async (data) => {\n /*\n {\n id: 123, // 标签ID\n update_data: {\n translate: \"更新后的翻译\",\n hot: 1\n }\n }\n */\n return await request({\n url: '/danbooru/update_tag',\n method: 'post',\n timeout: 0,\n data:data\n })\n },\n deleteDanbooruTag: async (id) => {\n /*\n {\n id: 123 // 要删除的标签ID\n }\n */\n return await request({\n url: '/danbooru/delete_tag',\n method: 'post',\n timeout: 0,\n data:{ id }\n })\n },\n batchDeleteDanbooruTags: async (values) => {\n return await request({\n url: '/danbooru/batch_delete_tag',\n method: 'post',\n timeout: 0,\n data:{ values }\n })\n },\n // 执行SQL数组脚本\n runSQLToServer: async (arr) => {\n return await request({\n url: '/danbooru/run_sql_text',\n method: 'post',\n timeout: 0,\n data: {\n sql: arr\n }\n })\n },\n}","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","import Clipboard from 'clipboard';\nexport default (opts) => {\n // default appendToBody true\n const appendToBody = (opts === null || opts === void 0 ? void 0 : opts.appendToBody) === undefined ? true : opts.appendToBody;\n return {\n toClipboard(text, container) {\n return new Promise((resolve, reject) => {\n // make fake element\n const fakeEl = document.createElement('button');\n // setup a new Clipboard.js\n const clipboard = new Clipboard(fakeEl, {\n text: () => text,\n action: () => 'copy',\n container: container !== undefined ? container : document.body\n });\n clipboard.on('success', (e) => {\n clipboard.destroy();\n resolve(e);\n });\n clipboard.on('error', (e) => {\n clipboard.destroy();\n reject(e);\n });\n // appendToBody fixes IE\n if (appendToBody)\n document.body.appendChild(fakeEl);\n // simulate click\n fakeEl.click();\n // remove from body if appended\n if (appendToBody)\n document.body.removeChild(fakeEl);\n });\n }\n };\n};\n//# sourceMappingURL=index.js.map","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n warnKeyDropped(key);\n return;\n }\n return value;\n}\nfunction warnKeyDropped(key) {\n console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n if (typeof value !== \"string\") {\n return value;\n }\n const _value = value.trim();\n if (\n // eslint-disable-next-line unicorn/prefer-at\n value[0] === '\"' && value.endsWith('\"') && !value.includes(\"\\\\\")\n ) {\n return _value.slice(1, -1);\n }\n if (_value.length <= 9) {\n const _lval = _value.toLowerCase();\n if (_lval === \"true\") {\n return true;\n }\n if (_lval === \"false\") {\n return false;\n }\n if (_lval === \"undefined\") {\n return void 0;\n }\n if (_lval === \"null\") {\n return null;\n }\n if (_lval === \"nan\") {\n return Number.NaN;\n }\n if (_lval === \"infinity\") {\n return Number.POSITIVE_INFINITY;\n }\n if (_lval === \"-infinity\") {\n return Number.NEGATIVE_INFINITY;\n }\n }\n if (!JsonSigRx.test(value)) {\n if (options.strict) {\n throw new SyntaxError(\"[destr] Invalid JSON\");\n }\n return value;\n }\n try {\n if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n if (options.strict) {\n throw new Error(\"[destr] Possible prototype pollution\");\n }\n return JSON.parse(value, jsonParseTransform);\n }\n return JSON.parse(value);\n } catch (error) {\n if (options.strict) {\n throw error;\n }\n return value;\n }\n}\nfunction safeDestr(value, options = {}) {\n return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","function get(obj, path) {\n if (obj == null)\n return void 0;\n let value = obj;\n for (let i = 0; i < path.length; i++) {\n if (value == null || value[path[i]] == null)\n return void 0;\n value = value[path[i]];\n }\n return value;\n}\nfunction set(obj, value, path) {\n if (path.length === 0)\n return value;\n const idx = path[0];\n if (path.length > 1) {\n value = set(\n typeof obj !== \"object\" || obj === null || !Object.prototype.hasOwnProperty.call(obj, idx) ? Number.isInteger(Number(path[1])) ? [] : {} : obj[idx],\n value,\n Array.prototype.slice.call(path, 1)\n );\n }\n if (Number.isInteger(Number(idx)) && Array.isArray(obj))\n return obj.slice()[idx];\n return Object.assign({}, obj, { [idx]: value });\n}\nfunction unset(obj, path) {\n if (obj == null || path.length === 0)\n return obj;\n if (path.length === 1) {\n if (obj == null)\n return obj;\n if (Number.isInteger(path[0]) && Array.isArray(obj))\n return Array.prototype.slice.call(obj, 0).splice(path[0], 1);\n const result = {};\n for (const p in obj)\n result[p] = obj[p];\n delete result[path[0]];\n return result;\n }\n if (obj[path[0]] == null) {\n if (Number.isInteger(path[0]) && Array.isArray(obj))\n return Array.prototype.concat.call([], obj);\n const result = {};\n for (const p in obj)\n result[p] = obj[p];\n return result;\n }\n return set(\n obj,\n unset(\n obj[path[0]],\n Array.prototype.slice.call(path, 1)\n ),\n [path[0]]\n );\n}\n\nfunction deepPickUnsafe(obj, paths) {\n return paths.map((p) => p.split(\".\")).map((p) => [p, get(obj, p)]).filter((t) => t[1] !== void 0).reduce((acc, cur) => set(acc, cur[1], cur[0]), {});\n}\nfunction deepPick(obj, paths) {\n return deepPickUnsafe(obj, paths);\n}\nfunction deepOmitUnsafe(obj, paths) {\n return paths.map((p) => p.split(\".\")).reduce((acc, cur) => unset(acc, cur), obj);\n}\nfunction deepOmit(obj, paths) {\n return deepOmitUnsafe(obj, paths);\n}\n\nexport { deepOmit, deepOmitUnsafe, deepPick, deepPickUnsafe };\n","// src/index.ts\nimport { destr } from \"destr\";\n\n// src/runtime/core.ts\nimport { deepOmitUnsafe, deepPickUnsafe } from \"deep-pick-omit\";\nfunction hydrateStore(store, {\n storage,\n serializer,\n key,\n debug,\n pick,\n omit,\n beforeHydrate,\n afterHydrate\n}, context, runHooks = true) {\n try {\n if (runHooks)\n beforeHydrate?.(context);\n const fromStorage = storage.getItem(key);\n if (fromStorage) {\n const deserialized = serializer.deserialize(fromStorage);\n const picked = pick ? deepPickUnsafe(deserialized, pick) : deserialized;\n const omitted = omit ? deepOmitUnsafe(picked, omit) : picked;\n store.$patch(omitted);\n }\n if (runHooks)\n afterHydrate?.(context);\n } catch (error) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", error);\n }\n}\nfunction persistState(state, {\n storage,\n serializer,\n key,\n debug,\n pick,\n omit\n}) {\n try {\n const picked = pick ? deepPickUnsafe(state, pick) : state;\n const omitted = omit ? deepOmitUnsafe(picked, omit) : picked;\n const toStorage = serializer.serialize(omitted);\n storage.setItem(key, toStorage);\n } catch (error) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", error);\n }\n}\nfunction createPersistence(context, optionsParser, auto) {\n const { pinia, store, options: { persist = auto } } = context;\n if (!persist)\n return;\n if (!(store.$id in pinia.state.value)) {\n const originalStore = pinia._s.get(store.$id.replace(\"__hot:\", \"\"));\n if (originalStore)\n Promise.resolve().then(() => originalStore.$persist());\n return;\n }\n const persistenceOptions = Array.isArray(persist) ? persist : persist === true ? [{}] : [persist];\n const persistences = persistenceOptions.map(optionsParser);\n store.$hydrate = ({ runHooks = true } = {}) => {\n persistences.forEach((p) => {\n hydrateStore(store, p, context, runHooks);\n });\n };\n store.$persist = () => {\n persistences.forEach((p) => {\n persistState(store.$state, p);\n });\n };\n persistences.forEach((p) => {\n hydrateStore(store, p, context);\n store.$subscribe(\n (_mutation, state) => persistState(state, p),\n { detached: true }\n );\n });\n}\n\n// src/index.ts\nfunction createPersistedState(options = {}) {\n return function(context) {\n createPersistence(\n context,\n (p) => ({\n key: (options.key ? options.key : (x) => x)(p.key ?? context.store.$id),\n debug: p.debug ?? options.debug ?? false,\n serializer: p.serializer ?? options.serializer ?? {\n serialize: (data) => JSON.stringify(data),\n deserialize: (data) => destr(data)\n },\n storage: p.storage ?? options.storage ?? window.localStorage,\n beforeHydrate: p.beforeHydrate,\n afterHydrate: p.afterHydrate,\n pick: p.pick,\n omit: p.omit\n }),\n options.auto ?? false\n );\n };\n}\nvar src_default = createPersistedState();\nexport {\n createPersistedState,\n src_default as default\n};\n","import { createApp } from 'vue'\nimport App from './App.vue'\nimport './style.css'\nimport '@/styles/theme.css'\nimport VueClipboard from 'vue-clipboard3'\nimport { createPinia } from 'pinia'; // 导入 Pinia\nimport i18n, { initI18n } from './i18n'\nimport { version } from \"./utils/version.js\"\nconst {toClipboard} = VueClipboard()\nimport piniaPluginPersistedstate from 'pinia-plugin-persistedstate';\nimport '@/styles/vue3-json-viewer.css';\n\nconst div = document.createElement('div')\ndiv.id = 'weilin_comfyui_tools_prompt_ui_div'\nconst body=document.querySelector('body')\nbody.appendChild(div)\n\nconst pinia = createPinia();\npinia.use(piniaPluginPersistedstate);\n\nconst app = createApp(App)\napp.use(pinia)\napp.use(i18n)\n// 在 pinia 初始化后调用\ninitI18n()\napp.config.globalProperties.$copyText = toClipboard\napp.mount(div)\n\nconsole.log(\"WeiLin Prompt UI is running - version \"+version)\nconsole.log(\"WeiLin 节点插件已运行 - 版本 \"+version)"],"names":["str","map","key","val","extend","arr","el","i","hasOwnProperty","hasOwn","isArray","toTypeString","isDate","isFunction","isString","isObject","isPromise","objectToString","value","isPlainObject","fn","cache","_","c","capitalize","oldValue","fns","arg","obj","writable","n","_globalThis","getGlobalThis","res","item","normalized","cssText","ret","tmp","name","a","b","equal","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","isRef","toDisplayString","_key","entries","val2","v","_a","detached","l","currentEffectScope","fromParent","last","failSilently","prevEffect","prevShouldTrack","link","sub","isComputed","e","next","error","err","head","tail","prev","computed","dep","prevSub","soft","nextSub","prevDep","nextDep","cleanup","debugInfo","currentTail","target","type","depsMap","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","object","depMap","array","raw","args","x","thisArg","apply","separator","comparer","self","method","wrapValue","iter","result","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","acc","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","isOldValueReadonly","hadKey","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","readonly","shallow","instrumentations","rawKey","has","callback","observed","get","hadItems","rawType","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","r","rawValue","useDirectValue","ref2","objectWithRefs","_object","_defaultValue","newVal","source","defaultValue","setter","isSSR","getterOrOptions","debugOptions","getter","cleanupFn","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","msg","instance","appWarnHandler","trace","_b","vnode","warnArgs","currentVNode","normalizedStack","parentInstance","logs","entry","recurseCount","postfix","isRoot","open","close","props","keys","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","throwInProd","p","id","start","end","middle","middleJob","middleJobId","jobId","lastJob","deduped","ctx","isNonScopedSlot","renderFnWithContext","prevInstance","directives","bindings","dir","modifiers","prevVNode","oldBindings","binding","hook","select","targetSelector","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","disabled","shapeFlag","children","dynamicChildren","placeholder","mainAnchor","mount","container2","anchor2","mountToTarget","targetAnchor","wasDisabled","currentContainer","currentAnchor","nextTarget","unmount","hostRemove","doRemove","targetStart","shouldRemove","child","parentAnchor","move","moveType","isReorder","node","nextSibling","parentNode","hydrateChildren","targetNode","isDisabled","enterCbKey","state","subTree","slots","rawProps","mode","innerChild","enterHooks","hooks","oldInnerChild","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","remove","vnode2","hooks2","keepComment","parentKey","keyedFragmentCount","extraOptions","rawRef","oldRawRef","isUnmount","refValue","ref","oldRef","refs","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","wrappedHook","current","keepAliveRoot","injected","prepend","reset","lifecycle","maybeSelfReference","warnMissing","Component","selfName","registry","renderItem","cached","sourceIsArray","sourceIsReactiveArray","fallback","noSlotted","slot","validSlotContent","slotKey","rendered","vnodes","isVNode","data","accessCache","appContext","normalizedProps","publicGetter","cssModule","globalProperties","propsOptions","descriptor","publicThis","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","methodHandler","opt","set","provides","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","h","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","to","from","strats","asMixin","strat","merged","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","component","directive","rootContainer","isHydrate","lastApp","parentProvides","treatDefaultAsFactory","isStateful","attrs","rawPrevProps","patchFlag","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","comp","hasExtends","extendProps","raw2","normalizedKey","prop","propType","shouldCast","shouldCastTrue","typeName","rawSlot","rawSlots","needDeletionCheck","deletionComparisonTarget","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","setScopeId","needCallTransitionHooks","scopeId","parentVNode","oldProps","newProps","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","setupRenderEffect","updateComponentPreRender","componentUpdateFn","bu","u","parent","nonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","root","isAsyncWrapperVNode","scopedInitialVNode","update","nextVNode","prevProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","nextIndex","leave","delayLeave","afterLeave","remove2","performLeave","cacheIndex","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","path","segments","modelName","event","rawArgs","isModelListener","handlerName","onceHandler","extendEmits","normalizedFromExtend","withProxy","emit","renderCache","fallthroughAttrs","proxyToUse","thisProxy","render2","prevChildren","nextProps","nextChildren","emits","dynamicProps","emitsOptions","nextKeys","suspense","disableTracking","inVOnce","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","cloned","klass","style","extraProps","mergeRef","cloneTransition","mergedProps","text","flag","asBlock","slotFlag","toMerge","incoming","g","registerGlobalSetter","setters","setupResult","setup","setupContext","isAsyncSetup","resolvedResult","skipOptions","includeInferred","match","inferFromRegistry","propsOrChildren","tag","is","selector","content","before","template","wrapper","t","h2","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","finishLeave","makeEnterHook","resolve","cls","_vtc","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","isSVG","transitionClasses","isCssString","hasControlledDisplay","prevStyle","cssVarText","prefixed","rawName","isBoolean","attrName","needRemove","prevValue","nextValue","invokers","existingInvoker","invoker","initialValue","originalStop","camelize$1","moveClass","movedChildren","cssTransitionProps","oldPos","newPos","dx","dy","clone","lazy","trim","number","castToNumber","domValue","elValue","modelValue","elementValue","checked","assign","found","filtered","isSetModel","selectedVal","o","_binding","isMultiple","isArrayValue","option","optionValue","optionType","tagName","cacheKey","guard","eventKey","k","containerOrSelector","shareable","locale","json","isNumber","isRegExp","rawText","items","src","des","stack","line","column","offset","code","loc","domain","messages","_buf","_index","_line","_column","_peekOffset","isCRLF","isLF","isPS","isLS","isLineEnd","peekOffset","charAt","currentChar","currentPeek","peek","resetPeek","skipToPeek","location","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","onError","emitError","pos","getToken","token","getEndToken","eat","scnr","ch","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","isNumberStart","isNamedIdentifierStart","currentType","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","isTextStart","isPluralStart","hasSpace","takeChar","isIdentifier","takeIdentifierChar","isNamedIdentifier","takeNamedIdentifierChar","isDigit","takeDigit","isHexDigit","takeHexDigit","getDigits","num","readText","readNamedIdentifier","readListIdentifier","isLiteral","readLiteral","literal","readEscapeSequence","readUnicodeEscapeSequence","unicode","digits","sequence","isInvalidIdentifier","readInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","startLoc","endLoc","codePoint4","codePoint6","codePoint","tokenzer","startNode","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinkedModifier","parseLinkedKey","parseLinked","linkedNode","parsed","nextContext","emptyLinkedKeyNode","parseMessage","startOffset","endOffset","parsePlural","msgNode","hasEmptyMessage","parseResource","parse","ast","nodes","transformer","body","message","resource","cases","valueNode","linked","list","named","filename","breakLineCode","_needIndent","push","_newline","withBreakLine","_breakLineCode","indent","withNewLine","level","deindent","newline","generator","helper","needIndent","length","helpers","baseCompile","assignedOptions","jit","enalbeMinify","enambeOptimize","initFeatureFlags","static_","acm","modifier","detectError","i18n","meta","payloads","startLocale","chain","block","defaults","blocks","follow","tokens","exp","trimmed","subPathDepth","newChar","action","typeMap","actions","maybeUnescapeQuote","nextChar","hit","VERSION","compiler","resolver","fallbacker","onWarn","_locale","fallbackLocale","datetimeFormats","numberFormats","pluralRules","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","processor","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","internalOptions","__datetimeFormatters","__numberFormatters","__meta","compareLocale","targetLocale","locales","overrides","part","datetimeFormat","format","formatter","arg1","arg2","arg3","arg4","matches","dateTime","numberFormat","choice","choicesLength","pluralIndex","pluralRule","orgPluralRule","_list","_named","useLinked","_modifier","normalize","interpolate","translate","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","formatScope","cacheBaseKey","occurred","ctxOptions","msgContext","messaged","resolveValue","missingRet","msgCtx","subKeys","lastIndex","currentObj","hasStringValue","__i18n","flatJson","custom","gl","componentOptions","__root","__injectWithOption","_isGlobal","_ref","_inheritLocale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","trackReactivityValues","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","rt","translateVNode","numberParts","datetimeParts","setPluralRules","rules","te","getLocaleMessage","resolveMessages","targetLocaleMessages","messageValue","tm","setLocaleMessage","_message","mergeLocaleMessage","getDateTimeFormat","setDateTimeFormat","mergeDateTimeFormat","getNumberFormat","setNumberFormat","mergeNumberFormat","composer","fallbackRoot","pluralizationRules","inheritLocale","sharedMessages","__extender","vueI18n","vuei18n","optionsI18n","_vueI18n","assignedAttrs","slotKeys","partFormatter","parts","i18nInternal","_process","parsedValue","textContent","pluginOptions","__legacyMode","__globalInjection","__instances","globalScope","__global","symbol","__getInstance","__setInstance","__deleteInstance","opts","globalReleaseHandler","unmountApp","composerOptions","legacyMode","useComponent","_composer","dispose","desc","__props","__emit","currentSize","newPosition","newSize","handleScroll","viewportWidth","viewportHeight","minLeftSpace","y","isDragging","dragOffset","startDrag","handleDrag","stopDrag","newX","newY","isResizing","resizeStartPos","resizeStartSize","startResize","handleResize","stopResize","deltaX","deltaY","setActive","handleHeaderMouseDown","pinia","MutationType","_p","toBeInstalled","noop","subscriptions","onCleanup","removeSubscription","idx","patchToApply","subPatch","targetValue","hot","getters","initialState","store","localState","computedGetters","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","wrappedAction","afterCallbackList","onErrorCallbackList","after","partialStore","stopWatcher","setupStore","actionValue","extender","setupOptions","isSetupStore","useStore","hasContext","categories","userSetting","isFirstLoading","newCategories","newUserSetting","newData","thing","prototype","kind","allOwnKeys","merge","caseless","assignValue","targetKey","constructor","superConstructor","descriptors","sourceObj","destObj","filter","propFilter","searchString","position","toArray","TypedArray","iterator","pair","regExp","p1","p2","reducer","reducedDescriptors","arrayOrString","delimiter","define","visit","reducedValue","setImmediateSupported","postMessageSupported","callbacks","AxiosError","config","request","response","utils","customProps","axiosError","dots","toFormData","formData","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","params","encoder","_encode","url","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","URLSearchParams","FormData","Blob","platform","buildPath","isNumericKey","isLast","parser","headers","contentType","hasJSONContentType","isObjectPayload","isFileList","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","rawHeaders","header","tokensRE","isHeaderNameFilter","w","char","accessorName","methodName","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","targets","asStrings","first","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","isCancel","CanceledError","reject","validateStatus","samplesCount","min","bytes","timestamps","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","freq","timestamp","threshold","lastArgs","timer","invoke","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","throttled","lengthComputable","origin","isMSIE","expires","secure","cookie","baseURL","relativeURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","xsrfValue","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","cancel","protocol","signals","controller","aborted","onabort","reason","unsubscribe","signal","chunk","chunkSize","iterable","stream","reader","onProgress","onFinish","_onFinish","loadedBytes","duplexAccessed","hasContentType","cancelToken","withCredentials","fetchOptions","composedSignal","requestContentLength","_request","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","validators","validator","formatMessage","correctSpelling","schema","allowUnknown","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","spread","isAxiosError","payload","HttpStatusCode","defaultConfig","promises","tagStore","savedLocale","_sfc_main","visible","_hoisted_1","_createElementBlock","_normalizeStyle","$setup","$props","_createElementVNode","_normalizeClass","_toDisplayString","div","translatedMessage","selectorRef","currentLang","languages","switchLanguage","setLanguage","lang","__expose","buttonRect","prefix","handleOverlayClick","ss","str_object","limit","selectedTranslatorService","sourceLanguage","targetLanguage","testTranslaterOutputText","testTranslaterInputText","aiServerSettingData","aiModelsData","updateAiServerSettingFunc","getAiServerSettingFunc","getAiModelsFunc","getTranskateBuktSetting","saveTranslaterSetting","translaterTextTest","needTranslateData","jsonString","jsonData","dialogVisible","selectedSetting","selectedTranslator","translationText","savedSourceLanguage","savedTargetLanguage","savedFloatingBallCount","savedFloatingBallSize","savedFloatingBallHeight","isFloatingBallEnabled","ballSkinType","customSkinUrl","bgType","gradientColor1","gradientColor2","ballBorderRadius","isCommaConversionEnabled","isPeriodConversionEnabled","isBracketConversionEnabled","isAngleBracketConversionEnabled","isUnderscoreToBracketEnabled","isCommaCloseAutocompleteEnabled","isBracketEscapeEnabled","selectedOpenaiIndex","openaiSettings","showOpenaiForm","currentConfig","isEditing","editingIndex","settingTranslater","installTranslater","hasTranslaterPackage","saveAutoCompleteLimit","saveAutoCompleteWidth","saveAutoCompleteHeight","selectSetting","setting","getAutoCompleteSetting","saveTranslatorSettings","handleSkinUpload","file","resetGradientColors","saveFloatingBallSettings","savePromptBoxSettings","loadOpenaiSettings","addOpenaiConfig","deleteOpenaiConfig","toggleEditForm","saveOpenaiConfig","addOpenaiNewConfig","cancelOpenaiConfig","setOpenAiSelect","sponsorMe","startPanel","getTranskatePackagesState","getTranskateSetting","applyTranslaterSetting","installCheckInterval","installTranslaterPackage","saveAutoCompleteSetting","STORAGE_PREFIX","THEME_KEY","isDark","toggleTheme","p_uuid","g_uuid","keyword","unixTsMs","randA","randBHi","randBLo","uuid","_c","_d","hex","inner","other","diff","randomNumberGenerator","rollbackAllowance","selectedCategory","selectedGroup","selectedTags","isDeleteTagAction","getTagsList","refreshTagsGoThis","group","category","getContrastColor","backgroundColor","handleMessage","selectCategory","selectGroup","selectSureThis","subject","sourceKeys","string","count","cycle","exception","compact","where","mark","buffer","lineStart","lineEnd","maxLineLength","maxHalfLength","max","re","lineStarts","lineEnds","foundLineNo","lineNoLength","alias","previousType","previousIndex","collectType","definition","implicit","explicit","type$1","hasDigits","sign","year","month","day","hour","minute","second","fraction","delta","tz_hour","tz_minute","date","bitlen","tailbits","input","bits","objectKeys","pairKey","pairHasKey","lc","major","minor","handle","checkJson","_position","_length","_character","_result","destination","overridableKeys","quantity","keyTag","keyNode","startLine","startLineStart","startPos","allowComments","checkIndent","lineBreaks","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_lineStart","_lineIndent","_kind","hexLength","hexResult","readNext","_pos","_tag","_anchor","terminator","isExplicitPair","isMapping","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","detected","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","isVerbatim","isNamed","tagHandle","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","documentStart","directiveName","directiveArgs","hasDirectives","nullpos","documents","character","spaces","ind","inblock","cIsNsCharOrWhitespace","cIsNsChar","leadingSpaceRe","singleLineOnly","indentPerLevel","lineWidth","testAmbiguousType","quotingType","forceQuotes","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","iskey","testAmbiguity","indentIndicator","clip","keep","chomp","width","lineRe","nextLF","prevMoreIndented","moreIndented","breakRe","curr","escapeSeq","objectKeyList","objectKey","objectValue","pairBuffer","explicitPair","isblockseq","tagStr","objectOrArray","duplicateIndex","duplicate","objects","duplicatesIndexes","chinese","sql","groupSql","subGroupSql","groupName","subGroupName","mainClassUUID","subGroupUUID","tagGroups","editText","editDesc","fileInput","jsonFileInput","txtFileInput","isSelectGroup","outPutName","yamlFileInput","triggerYAMLUpload","cleanAll","handleTXTUpload","lines","escapedText","escapedDesc","time","handleJSONUpload","handleYAMLUpload","yamlData","yaml","handleFileUpload","statement","lastValue","nameMatch","triggerTXTUpload","triggerJSONUpload","triggerFileUpload","exportSQL","sqlContent","blob","exportOnlyTagSQL","parseSQL","textMatch","descMatch","deleteTag","startEdit","confirmEdit","cancelEdit","generateSQL","escapedTag","escapedChinese","generateGroupSQL","escapedGroupName","generateSubGroupSQL","escapedSubGroupName","tagGroupSelectDialogItem","openSelectGroup","sureToSelectInfo","info","loading","runSQLToServer","sureToImportTags","oldVal","newPUuid","oldPUuid","newGUuid","oldGUuid","subCategories","currentTags","showCategoryDialog","showTagDialog","isEditingCategory","isEditingTag","categoryType","isSelectTagAction","showMoveGroupDialog","hoverTabsActionFrist","hoverTabsActionSecond","editGroupTabs","editGroupCategroy","highlightedTagId","isAutoAddSearchTag","showMoveDialog","moveTargetTagId","movePosition","currentMoveTagId","moveGroupPosition","currentMoveGroupId","moveTargetGroupId","isShareTagAction","showTabSizeConfig","tabSizeConfig","defaultTabSizeConfig","currentCategory","currentGroup","currentTag","rgbaToColorPickerState","rgba","alpha","getSubCategories","getTagList","updateSearchResultsStyle","handleClickOutside","handleKeydown","loadTabSizeConfig","showAddCategoryDialog","colorPickerState","editCategory","editGroup","saveCategory","closeCategoryDialog","getCategoryDialogTitle","showAddTagDialog","editTag","saveTag","closeTagDialog","previewColor","hexToRgba","updateColor","color","searchQuery","searchResults","isSearching","handleSearch","query","navigateToResult","primaryCategory","cat","tagElement","handleTagClick","showDeleteDialog","deleteType","itemToDelete","deleteConfirmMessage","deleteCategory","deleteGroup","confirmDelete","closeDeleteDialog","shareCategory","groupData","tagSqls","tagSql","shareCategorySecond","openMoveDialog","confirmMove","availableGroup","actionMoveGroup","openMoveGroupDialog","confirmMoveGroup","deleteTagAction","cancelDeleteAction","deleteSelectedTags","shareTagAction","cancelShareAction","shareSelectedTags","yamlContent","refreshTags","searchInput","searchResultsStyle","rect","showTabActions","hideTabActions","showTabActionsGroup","hideTabActionsGroup","importTagDialogItem","showImportDialog","defaultTabData","saved","saveTabSizeConfig","showTabSizeDialog","closeTabSizeDialog","resetTabSizeConfig","windowName","image","fileName","range","search","islink","domItem","isInteger","_this","ordered","_this2","evt","elements","vals","timeformat","dataType","complex","getDefaultExportFromCjs","clipboard","module","exports","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","ClipboardActionCut","selectedText","actions_cut","createFakeElement","isRTL","fakeElement","yPosition","fakeCopyAction","ClipboardActionCopy","actions_copy","_typeof","ClipboardActionDefault","_options$action","actions_default","clipboard_typeof","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_assertThisInitialized","getAttributeValue","suffix","element","attribute","Clipboard","_Emitter","_super","trigger","support","DOCUMENT_NODE_TYPE","proto","closest","__unused_webpack_exports","_delegate","useCapture","listenerFn","delegate","listenNode","listenNodeList","listenSelector","nodeList","isReadOnly","selection","E","evtArr","evts","liveEvents","__webpack_module_cache__","moduleId","func","wait","startTime","_len","_this$copyable","copyText","copiedText","align","clipBoard","keyName","copyEvent","_this3","_ctx","_cache","$data","$options","_component_json_box","createElementVNode","loraInfo","isOpen","DEFAULT_WINDOWS","windows","savedState","parsedState","mergedState","closeWindow","updatePosition","updateSize","loraRawData","loraContent","userEditFields","loraData","init","fileURL","loraRawRef","openLoraRaw","editValues","selectedWords","editableFields","addField","newKey","saveEdit","removeField","deleteInfo","_j","_k","_u","_v","_w","_x","extractFileNameFromUrl","saveLoraImg","civitaiLink","isCivitaiNotFound","trainedWords","refreshLoraInfo","scrollPosition","toggleEdit","field","fieldKey","saveInfo","param","toggleWordSelection","word","isWordSelected","copySelectedWords","isCollapsed","toggleCollapse","handleCardLeave","handleCardEnter","copyToClipboard","showCard","hoveFileName","paddingLeftValue","paddingTopValue","loraStackItemRef","isEnterCatd","isHovering","loraCardItem","handleMouseHover","cardRect","handleMouseLeave","handEnterCard","handleEnterLeave","openLoraManager","toggleHideLora","lora","addLora","removeLora","loraDetailLoraStackRef","lookOnLora","dragIndex","handleDragStart","handleDrop","internalSelectedId","sortTimeDesc","sortNameAsc","sortMode","draggingId","dragOverId","save","load","loadedItems","settings","genId","getById","q","sortedList","ao","bo","cmpName","na","nb","cmp","cmpTime","groupWeight","gw","selectItem","createNew","ensureManualOrderSeed","minOrder","renameSelected","deleteSelected","toggleTimeSort","toggleNameSort","togglePin","toggleHighlight","updateSelectedContent","newContent","updateTimer","formatTime","ts","it","onDragStart","ev","onDragEnter","onDrop","targetItem","fromId","toId","onDragEnd","language","languageList","onchange","selectLanguage","langs_indexof","findBody","body_trans","selectId","cookieString","strCookie","arrCookie","cookieValue","languageName","v1","googtrans","fanDomain","isReload","iframes","iframeWindow","ele","maxnumber","nodename","classNames","c_index","properties","line_index","kvs","originalText","translateText","beforeChar","afterChar","hash","panel","button","textdiv","doms","expireTime","nodeid","currentTime","mutationsList","observer","mutation","addNodes","isFind","di","translateNodes","find","ini","docs","docs_index","doc","renderTask","resultText","nodeAnaly","tasks","task","node_index","task_index","ipnode","nodeindex","analyse","intervalId","to_storage","all","translateTextArray","translateHashArray","twoScanNodes","cacheScanNodes","originalWord","cacheHash","translateResultText","twoScanIndex","twoScanIndex_cache","arrayIndex","arrayIndex_cache","firstScan","firstScan_lang_langth","ci","ai","textArray","tai","twoScan","twoScan_lang_langth","ti","twoHash","fanyiLangs","hai","thhash","ipni","lang_index","xhr","htmlAttributeValue","parentNodename","input_value_node","nodeAttributeName","nodeAttributePropertyOri","nodeAttributeProperty","nodeNameLowerCase","attributeName_index","attributeName","attributeValue","childNodes","parentNodeName","nomenclatureKeyArray","nomenclatureKey","nomenclatureValue","deleteTextArray","wordKeyIndex","substringStart","substringEnd","nomenclatureValueJudgement","wordSplits","subWord","textRecognition","langs","isWhole","word_index","beforeText","afterText","isEquals","nodesIndex","paramName","paramValue","bodyText","recognition","langStrs","upLangs","upLangsTwo","charstr","langsNumber","langsNumberOriginal","allNumber","langStrLength","ls","langkeys","romanceSentenceLanguage","maxLang","maxNumber","languageArray","localLang","chinesetype","langFeatures","pairs","maxScore","browserDefaultLanguage","reg","numbers","maxStr","maxNum","chr","xmlHttp","myBody","myScript","sortedObj","versionString","vs","size","maxSize","orgsize","arrayStr","str1","str2","endIndex","startNeedAdd","firstArray","secondArray","tmpl","tLang","serviceName","abnormalFunc","transUrl","currentIndex","cri","addbeforei","beforeItemArrayLength","bi","addafteri","afterItemArrayLength","storage_hostQueue","lasttime","updateTime","host","hostUrl","storage_index","queue","queueIndex","currentHost","isAsynchronize","showErrorLog","texts","translateExecute","ignoreUrl","queueArray","imgs","img","imgSrc","oldImage","newImage","elems","elem","bg","old_img","currentLanguage","currentShow","curSelection","curTooltipEle","tooltipEle","hosts","tip","nodeParent","parentClassName","currentKey","childs","allChilds","this","ids","isRefreshing","isLoading","isLoadingMore","hasLoadedAll","currentSubCategory","scrollContainer","loraCardRef","showHoverInfo","clickAddTag","currentPage","pageSize","totalPages","rootFolder","selectFolder","valuesArray","cardWidth","folderList","seed","actionAct","openSetSeed","newSeed","getFolderList","loadMoreData","isSearch","searchTimeout","debouncedSearch","searchLoraList","refreshList","retLoraName","loraDetailRef","openLoraDetail","selectLora","addLoraTag","startIndex","pageData","getRangeLoraList","paginatedLoraList","selectSecondCategory","subCategory","getAllLoraList","getAllLoraStatus","resetLoadingState","_e","_f","_g","_h","_i","selectGroupsData","selectActionIndex","primaryCategories","getPrimaryIndex","getSubIndex","isGroupDisabled","selectCategoryOnly","existingIndex","selectGroupWithCategory","categoryOnlyIndex","removeSelected","clearAllSelected","tagGroupSelectItem","loadingFinish","promptMode","nodeLocalTemplateId","DEFAULT_SETTINGS","loadSettings","resData","selectedTemplate","saveSettings","templateData","rule","addRule","deleteRule","addTag","removeTag","tagIndex","generateRandomTags","loadTemplates","getNodeTagTemplateIdAndReGet","selectTagGroup","getRandomTags","sureSelectThis","templates","newTemplateName","showTemplateNameInput","isEditingTemplate","loadSetting","saveAsNewTemplate","cancelSaveTemplate","applyTemplate","deleteTemplate","editTemplateName","confirmSaveTemplate","changeSelectTemplate","__","randomSettingItem","autocompleteContainerRef","inputAreaRef","autocompletePosition","tokenCount","parentCneterBox","inputText","tokenInputRefs","activeControls","isOverControls","controlsPosition","showLanguageSelector","settingDialog","langBtnRef","languageSwitcherRef","selectedLoras","loraOpen","showAutocomplete","autocompleteResults","selectedAutocompleteIndex","selectedItemRef","isSelecting","selectionStart","selectionEnd","selectedTokens","tokensContainerRef","isBoxSelectMode","isPotentialBoxSelection","showSelectionActions","selectionActionsPosition","isUpdatingSelectionBox","isUpdatingSelectedTokens","lastUpdateTime","showTagTipsBox","tagTipsPosition","debounceTimeout","proceTimeout","lastInputValue","tokenIdCounter","isLabelManagerVisible","toggleLabelManager","generateUniqueId","toggleLora","closeLora","mainLabelManagerRef","selectedMainLabelId","unsavedChanges","LAST_LABEL_KEY","mainContentWidth","labelManagerWidth","suppressUnsavedOnce","onSelectMainLabel","handleInput","restoreLastSelectedMainLabel","lastId","saveLast","updateSelectedLabel","showUpdatedToast","toastVisible","toastTimer","openSettings","weightValue","applyWeight","isBracketComplete","hasOnlySingleParentheses","newText","hasTrailingWeight","weightedFormatMatch","underscoreBracketMatch","bracketContent","updateInputText","loraModelWeight","loraTextWeight","applyLoraWeights","wrapWith","bracketType","bracketPair","finishPromptPutItHistory","removeLayer","bracketMap","isTextTranslatable","extractText","debounceTimer","calculateAutocompletePosition","textarea","cursorPos","mirror","textNode","cursorNode","cursorRect","parentRect","top","left","autocompleteWidth","textareaWidth","textareaLeft","historyTimer","originalValue","cursorPosition","cursorEnd","formatConversions","beforeCursor","processedValue","conversion","pattern","replace","newCursorPosition","selectionDiff","newCursorEnd","textBeforeCursor","lastChar","currentCursorPos","wordStart","currentWord","triggerAutocomplete","postMessageToWindowsPrompt","calculateTokens","processInput","hiddenTokensWithOriginalIndex","originalIndex","bracketStack","existingTokensMap","segment","trimmedSegment","isLoraTag","matched","processedHiddenTokenIds","insertIndex","prevNonHiddenIndex","findPrevNonHiddenIndex","nextNonHiddenIndex","isLastToken","shouldAddComma","batchSize","cleanedTrSegment","oneClickTranslatePrompt","MAX_TOKEN_LENGTH","batchTranslateData","batchTokenIds","batchCount","textToTranslate","tryTranslate","tokenIds","retry","tokenIndex","tempInputText","trimmedInput","tempLora","putJson","jsonStr","showControls","hideTimeout","findInnerWeight","bracketPairs","weightMatch","hideControls","handleControlsLeave","handleDelete","deleteToken","handelLineToken","targetToken","tokenPos","replacement","handleTokenEdit","oldText","startEditing","adjustInputWidth","span","computedStyle","finishEditing","newTokens","newLoras","toggleLanguageSelector","btnRect","closeLanguageSelector","openTagManager","openHistoryBox","showTagManager","toggleTagManager","showLoraManager","toggleLoraManager","setupCursorTracking","updateAutocompletePosition","saveTextareaHeight","height","restoreTextareaHeight","savedHeight","initTranslate","handleMouseDown","handleMouseMove","handleMouseUp","removeSelectionBox","tokenItem","tokensContainer","closeSelectionActions","containerRect","createSelectionBox","minSize","updateSelectionBox","updateSelectedTokens","selectedCount","showSelectionActionsMenu","selectionBox","effectiveWidth","effectiveHeight","right","bottom","box","applySelectedStyle","tokenBoxes","toSelect","toDeselect","closeSelectionActionsOnClickOutside","copySelectedTokens","combinedText","tempMessage","disableSelectedTokens","enableSelectedTokens","deleteSelectedTokens","bulkDeleteSelectedTokens","clearSelectedTokens","actionsMenu","handleClickToClearSelection","currentText","tagText","setPromptText","onClickLocalTemplateRandomTag","translateFunction","translatedText","finishTranslateEnter","onBlur","inputValue","lowerInput","scrollToSelectedItem","selectAutocomplete","closeAutocomplete","selectedItem","selectedRect","isAbove","isBelow","adjustedAutocompletePosition","parentWidth","replaceStart","replaceEnd","separatorAdded","tempDataJson","isOldVersion","dragStartIndex","draggedTokens","dragUpdateTimer","dragTempState","initializeDragState","useMultipleSelection","calculateInsertPosition","originalTokens","draggedIndexes","targetIndex","elementsBeforeIndex","validRange","performDragUpdate","draggedElements","newSelectedTokens","dragged","handleDragOver","openAIChat","openGitHub","shareCloudData","openDanbooruManager","openSponsor","toggleHidden","openBilibili","oneClickRandomTag","favourItemRef","openFavourTag","tokenInfo","openRandomTagSettings","history","filteredHistory","favorites","filteredFavorites","currentTab","isDeleteBatch","selectAllTags","retPromptInfo","strJson","parseRgba","initColorPicker","deleteHistory","deleteFavorite","favorite","sureDelete","sureDeleteFavorite","fetchHistory","fetchFavorites","selectAllTagsChange","filterHistory","filterFavorites","refreshHistory","refreshFavorites","addToFavorites","useItem","bulkDelete","cancelDelete","htmlContent","imageData","processImageFile","handlePaste","originalData","encryptedData","generateHtml","downloadHtml","clearContent","handleClick","handleFileChange","ballPosition","showMenu","ballStyle","computedBallStyle","newStyle","ballSize","ballHeight","spacing","ballsPerRow","row","onDrag","handleMenuItemClick","openTranToWebDialog","tranToWebRef","handleMouseEnter","chatHistory","currentChatIndex","inputMessage","openAiSetting","isRenaming","renameInput","startRename","confirmRename","saveChatHistory","cancelRename","getOpenAiSetting","currentChat","switchChat","startNewChat","newChat","loadChatHistory","savedHistory","sendMessage","userMessage","assistantMessage","streamResponse","lastMessage","deleteChat","onMessage","onComplete","decoder","nodeLists","openPromptUI","paths","fileList","currentPath","mainPath","installedPackages","getTree","getInstalledPackages","isPackageInstalled","pkg","installPackage","goBack","pathParts","refreshTree","openDirectory","openTagDatabase","openDanbooruDatabase","initLoraStack","updateLoraStackInfoToWindows","page","danbooruTxtFileInput","aliases","handleDanbooruTXTUpload","escapedTranslate","triggerDanbooruTXTUpload","isDanbooruFormat","parseDanbooruSQL","editHot","editAliases","generateDanbooruSQL","hotValue","aliasesValue","tagList","showDialog","showDeleteConfirm","showBatchDeleteConfirm","selectedTag","colorOptions","getColorById","searchTags","selectedItems","changePage","changePageSize","openAddDialog","openEditDialog","closeDialog","submitForm","isAllSelected","toggleSelectAll","confirmBatchDelete","batchDeleteTags","importDanbooruDialog","openImportDialog","thisEditPromptId","loraManager","tagManager","promptManager","hasPromptLoraStack","globalPrompt","showVersionUpdate","versionUpdateMessage","versionUpdateTimer","VERSION_UPDATE_REMIND_KEY","closeVersionUpdate","goToGitHub","noRemindUpdate","getInitialWindowState","initTheme","checkForUpdates","savedTheme","restoreWindowsToDefault","LORA_DETAIL_WINDOWS","DEFAULT_GOL_WINDOWS","promptBoxRef","loraStackRef","loraManagerRef","danbooruManagerRef","versionMatch","remoteVersion","localVersion","fakeEl","_lval","storage","serializer","debug","pick","omit","beforeHydrate","afterHydrate","runHooks","fromStorage","deserialized","picked","omitted","toStorage","optionsParser","auto","persist","originalStore","persistences","_mutation","piniaPluginPersistedstate"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,80,82,87,93,99,114,115,116,117,118]} \ No newline at end of file diff --git a/dist/style.css b/dist/style.css index 59ca25b..f609928 100644 --- a/dist/style.css +++ b/dist/style.css @@ -1 +1 @@ -.weilin_prompt_ui_draggable-window[data-v-5d02be5b]{position:absolute;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;box-shadow:0 2px 12px #0000001a;overflow:hidden;display:flex;flex-direction:column;z-index:100}.weilin_prompt_ui_window-header[data-v-5d02be5b]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-secondary-bg);cursor:move;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_window-title[data-v-5d02be5b]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;margin-right:8px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-5d02be5b]{border:none;background:none;font-size:20px;cursor:pointer;padding:0 4px;color:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_close-btn[data-v-5d02be5b]:hover{color:#ff4d4f}.weilin_prompt_ui_window-content[data-v-5d02be5b]{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px;background:var(--weilin-prompt-ui-primary-bg)}.weilin_prompt_ui_resize-handle[data-v-5d02be5b]{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:se-resize;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_resize-handle[data-v-5d02be5b]:after{content:"";position:absolute;right:7px;bottom:4px;width:8px;height:8px;border-right:2px solid #999;border-bottom:2px solid #999}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar-thumb:hover{background:#555}.pop-message[data-v-ccb6bb2b]{display:flex;align-items:center;padding:16px 24px;border-radius:8px;position:fixed;top:30px;left:50%;transform:translate(-50%);z-index:999700029999000;transition:opacity .5s ease,transform .5s ease;opacity:1;transform:translateY(0);box-shadow:0 4px 12px #0000001a}.pop-message.success[data-v-ccb6bb2b]{background-color:#67c23a;color:#fff}.pop-message.warn[data-v-ccb6bb2b]{background-color:#e6a23c;color:#fff}.pop-message.error[data-v-ccb6bb2b]{background-color:#f56c6c;color:#fff}.icon[data-v-ccb6bb2b]{margin-right:12px;font-size:20px}.text[data-v-ccb6bb2b]{flex:1;font-size:16px}.language-selector[data-v-1a0e3baa]{min-width:140px;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);z-index:1000}.language-selector-content[data-v-1a0e3baa]{padding:4px}.language-option[data-v-1a0e3baa]{padding:8px 16px;cursor:pointer;transition:all .2s ease;border-radius:4px;color:var(--weilin-prompt-ui-primary-text);font-size:14px;display:flex;align-items:center;white-space:nowrap}.language-option[data-v-1a0e3baa]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.language-option.active[data-v-1a0e3baa]{color:var(--weilin-prompt-ui-primary-color);background-color:var(--weilin-prompt-ui-hover-bg-color);font-weight:500}.lang-name[data-v-1a0e3baa]{display:block}.weilin_prompt_ui_dialog-overlay[data-v-d2e9c495]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000002e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:1000}.weilin_prompt_ui_dialog[data-v-d2e9c495]{background:var(--weilin-prompt-ui-primary-bg);border-radius:20px;box-shadow:0 8px 32px var(--weilin-prompt-ui-shadow-color);margin:0;position:relative;overflow:hidden;border:none;display:flex;flex-direction:column;min-width:400px;width:70%;max-width:70%;min-height:200px;max-height:75vh}.weilin_prompt_ui_dialog-header[data-v-d2e9c495]{padding:20px 28px 12px;border-bottom:none;display:flex;justify-content:space-between;align-items:center;background:transparent}.weilin_prompt_ui_dialog-title[data-v-d2e9c495]{margin:0;font-size:18px;color:var(--weilin-prompt-ui-title-color);font-weight:700;letter-spacing:.01em}.weilin_prompt_ui_dialog-close[data-v-d2e9c495]{border:none;background:none;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s;padding:0}.weilin_prompt_ui_dialog-close[data-v-d2e9c495]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_dialog-close svg[data-v-d2e9c495]{fill:var(--weilin-prompt-ui-secondary-text);transition:fill .2s}.weilin_prompt_ui_dialog-close:hover svg[data-v-d2e9c495]{fill:var(--weilin-prompt-ui-danger-color)}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]{padding:0 28px 20px;color:var(--weilin-prompt-ui-primary-text);overflow-y:auto;flex:1;line-height:1.7;font-size:15px;max-height:calc(75vh - 120px)}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px;transition:background .2s}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin_prompt_ui_dialog-footer[data-v-d2e9c495]{padding:16px 28px;border-top:none;display:flex;justify-content:flex-end;gap:12px;background:transparent;margin-top:auto}.weilin_prompt_ui_dialog-fade-enter-active[data-v-d2e9c495],.weilin_prompt_ui_dialog-fade-leave-active[data-v-d2e9c495]{transition:opacity .25s}.weilin_prompt_ui_dialog-fade-enter-from[data-v-d2e9c495],.weilin_prompt_ui_dialog-fade-leave-to[data-v-d2e9c495]{opacity:0}.weilin_prompt_ui_dialog-slide-enter-active[data-v-d2e9c495]{transition:all .25s cubic-bezier(.4,0,.2,1)}.weilin_prompt_ui_dialog-slide-leave-active[data-v-d2e9c495]{transition:all .18s cubic-bezier(.4,0,.2,1)}.weilin_prompt_ui_dialog-slide-enter-from[data-v-d2e9c495]{opacity:0;transform:translateY(-16px) scale(.98)}.weilin_prompt_ui_dialog-slide-leave-to[data-v-d2e9c495]{opacity:0;transform:translateY(16px) scale(.98)}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]{padding:8px 22px;border-radius:10px;border:none;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;cursor:pointer;font-size:15px;font-weight:500;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]:last-child{background:var(--weilin-prompt-ui-btn-gradient);color:#fff}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]:last-child:hover{background:var(--weilin-prompt-ui-btn-gradient-hover);color:#fff}.ai-server-setting-panel[data-v-731441c6]{display:flex;flex-direction:column;gap:0;padding:0;border-radius:12px;box-shadow:none}.weilin-comfyui-setting-item[data-v-731441c6]{margin-bottom:18px;background:var(--weilin-prompt-ui-card-bg);border-radius:8px;padding:12px 18px;box-shadow:0 1px 4px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-setting-item label[data-v-731441c6]{display:block;margin-bottom:8px;font-weight:500;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-setting-item select[data-v-731441c6],.weilin-comfyui-setting-item input[type=number][data-v-731441c6],.weilin-comfyui-setting-item input[type=text][data-v-731441c6]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);font-size:15px;transition:border-color .2s}.weilin-comfyui-setting-item select[data-v-731441c6]:focus,.weilin-comfyui-setting-item input[data-v-731441c6]:focus{border-color:var(--weilin-prompt-ui-input-focus);outline:none}.weilin-comfyui-save-button[data-v-731441c6],.weilin-comfyui-install-button[data-v-731441c6]{width:100%;padding:12px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;margin-top:8px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-save-button[data-v-731441c6]:hover,.weilin-comfyui-install-button[data-v-731441c6]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-setting-small-titile[data-v-731441c6]{font-size:16px;font-weight:600;color:var(--weilin-prompt-ui-title-color);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--weilin-prompt-ui-card-border)}.weilin-comfyui-translater-setting-box[data-v-731441c6]{margin-top:20px;padding:16px;background:var(--weilin-prompt-ui-card-bg);border-radius:10px;border:1px solid var(--weilin-prompt-ui-card-border);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors[data-v-731441c6]{display:flex;gap:16px;margin:12px 0}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors .weilin-comfyui-setting-item[data-v-731441c6]{flex:1}.weilin-comfyui-settings-content[data-v-d84f82b1]{display:flex;min-width:700px;background:var(--weilin-prompt-ui-gradient-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:var(--weilin-prompt-ui-border-radius, 18px);box-shadow:var(--weilin-prompt-ui-box-shadow);padding:18px 0}.weilin-comfyui-settings-sidebar[data-v-d84f82b1]{width:220px;border-right:1px solid var(--weilin-prompt-ui-border-color);padding:18px 0 18px 18px;background:var(--weilin-prompt-ui-gradient-bg);border-radius:16px 0 0 16px;box-shadow:2px 0 12px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-settings-sidebar ul[data-v-d84f82b1]{list-style-type:none;padding:0}.weilin-comfyui-settings-sidebar li[data-v-d84f82b1]{cursor:pointer;padding:12px 18px;margin-bottom:8px;border-radius:8px;transition:background .3s,color .3s;font-weight:500;font-size:16px;color:var(--weilin-prompt-ui-title-color);letter-spacing:.5px}.weilin-comfyui-settings-sidebar li[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-hover-bg-color);color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-settings-sidebar .weilin-comfyui-active[data-v-d84f82b1]{background:var(--weilin-prompt-ui-gradient-primary);color:#fff;box-shadow:0 2px 8px 0 var(--weilin-prompt-ui-btn-shadow)}.weilin-comfyui-settings-main[data-v-d84f82b1]{flex:1;padding:0 32px}.weilin-comfyui-settings-main h3[data-v-d84f82b1]{margin-top:0;font-size:22px;font-weight:700;color:var(--weilin-prompt-ui-title-color);margin-bottom:18px}.weilin-comfyui-translator-settings[data-v-d84f82b1],.weilin-comfyui-floating-ball-settings[data-v-d84f82b1]{display:flex;align-items:stretch;margin-bottom:20px;flex-direction:column;gap:10px}.weilin-comfyui-translator-settings select[data-v-d84f82b1]{margin-right:10px}.weilin-comfyui-setting-item[data-v-d84f82b1]{margin-bottom:18px;background:var(--weilin-prompt-ui-card-bg);border-radius:8px;padding:12px 18px;box-shadow:0 1px 4px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-setting-item label[data-v-d84f82b1]{display:block;margin-bottom:8px;font-weight:500;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-setting-item select[data-v-d84f82b1],.weilin-comfyui-setting-item input[type=number][data-v-d84f82b1],.weilin-comfyui-setting-item input[type=text][data-v-d84f82b1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);font-size:15px;transition:border-color .2s}.weilin-comfyui-setting-item select[data-v-d84f82b1]:focus,.weilin-comfyui-setting-item input[data-v-d84f82b1]:focus{border-color:var(--weilin-prompt-ui-input-focus);outline:none}.weilin-comfyui-save-button[data-v-d84f82b1],.weilin-comfyui-install-button[data-v-d84f82b1]{width:100%;padding:12px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;margin-top:8px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-save-button[data-v-d84f82b1]:hover,.weilin-comfyui-install-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-setting-select[data-v-d84f82b1]{margin-bottom:20px;background:var(--weilin-prompt-ui-card-bg);border-radius:8px;padding:12px 18px;box-shadow:0 1px 4px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-group-box[data-v-d84f82b1]{padding:20px;border:1px solid var(--weilin-prompt-ui-card-border);border-radius:10px;margin-bottom:20px;background:var(--weilin-prompt-ui-primary-bg);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-group-title[data-v-d84f82b1]{font-size:17px;font-weight:600;margin-bottom:16px;color:var(--weilin-prompt-ui-title-color)}.weilin-comfyui-note-top[data-v-d84f82b1]{margin:10px 0;padding:8px 12px;background:#e8f4ff;border:1px solid #b3d8ff;border-radius:6px;font-size:13px;color:#004085;word-break:break-all}.weilin-comfyui-tranlater-text-box[data-v-d84f82b1]{margin-top:20px;padding:16px;background:var(--weilin-prompt-ui-card-bg);border-radius:10px;border:1px solid var(--weilin-prompt-ui-card-border);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item[data-v-d84f82b1]{margin-bottom:12px}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item label[data-v-d84f82b1]{display:block;margin-bottom:4px;font-size:14px;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item input[data-v-d84f82b1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);transition:border-color .2s}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item input[data-v-d84f82b1]:focus{outline:none;border-color:var(--weilin-prompt-ui-input-focus)}.weilin-comfyui-tranlater-text-box .weilin-comfyui-install-button[data-v-d84f82b1]{width:100%;margin-top:8px;padding:8px 16px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.weilin-comfyui-tranlater-text-box .weilin-comfyui-install-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-translater-setting-box[data-v-d84f82b1]{margin-top:20px;padding:16px;background:var(--weilin-prompt-ui-card-bg);border-radius:10px;border:1px solid var(--weilin-prompt-ui-card-border);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors[data-v-d84f82b1]{display:flex;gap:16px;margin:12px 0}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors .weilin-comfyui-setting-item[data-v-d84f82b1]{flex:1}.weilin-comfyui-setting-small-titile[data-v-d84f82b1]{font-size:16px;font-weight:600;color:var(--weilin-prompt-ui-title-color);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--weilin-prompt-ui-card-border)}.weilin-comfyui-common-select[data-v-d84f82b1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);font-size:14px;transition:border-color .2s}.weilin-comfyui-common-select[data-v-d84f82b1]:focus{outline:none;border-color:var(--weilin-prompt-ui-input-focus)}.weilin-comfyui-skin-preview[data-v-d84f82b1]{max-width:200px;max-height:300px;border-radius:8px;overflow:hidden;box-shadow:var(--weilin-prompt-ui-btn-shadow);margin-top:8px}.weilin-comfyui-skin-preview img[data-v-d84f82b1]{width:100%;height:100%;object-fit:contain}.weilin-comfyui-settings-column[data-v-d84f82b1]{display:flex;flex-direction:column;gap:10px}.weilin-comfyui-openai-settings[data-v-d84f82b1]{max-width:800px;margin:0 auto;background:var(--weilin-prompt-ui-card-bg);border-radius:var(--weilin-prompt-ui-border-radius);padding:18px;box-shadow:var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-config-list[data-v-d84f82b1]{margin-top:20px}.weilin-comfyui-config-item[data-v-d84f82b1]{border:1px solid var(--weilin-prompt-ui-card-border);border-radius:8px;padding:14px;margin-bottom:12px;background:var(--weilin-prompt-ui-primary-bg);box-shadow:0 1px 6px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-config-header[data-v-d84f82b1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.weilin-comfyui-config-actions button[data-v-d84f82b1]{margin-left:5px;padding:4px 12px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-input-border);cursor:pointer;background:var(--weilin-prompt-ui-card-bg);color:var(--weilin-prompt-ui-label-color);font-weight:500;transition:background .2s}.weilin-comfyui-config-actions button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-gradient-primary);color:#fff}.weilin-comfyui-config-details[data-v-d84f82b1]{font-size:.95em;color:var(--weilin-prompt-ui-secondary-text);padding-left:8px}.weilin-comfyui-config-form[data-v-d84f82b1]{margin-top:10px;padding:10px;background:var(--weilin-prompt-ui-primary-bg);border-radius:8px}.weilin-comfyui-form-group[data-v-d84f82b1]{margin-bottom:10px}.weilin-comfyui-form-group label[data-v-d84f82b1]{display:block;margin-bottom:5px;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-form-group input[data-v-d84f82b1]{width:100%;padding:7px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-input-border);background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-form-actions[data-v-d84f82b1]{text-align:right;margin-top:10px}.weilin-comfyui-add-button[data-v-d84f82b1]{margin-top:20px;width:100%;padding:10px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-add-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-sponsor-me-settings[data-v-d84f82b1]{background:var(--weilin-prompt-ui-card-bg);border-radius:var(--weilin-prompt-ui-border-radius);padding:18px;box-shadow:var(--weilin-prompt-ui-card-shadow);text-align:center}.weilin-comfyui-sponsor-me-button[data-v-d84f82b1]{margin-top:18px;padding:12px 32px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:18px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-sponsor-me-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-start-panel-settings[data-v-d84f82b1]{background:var(--weilin-prompt-ui-card-bg);border-radius:var(--weilin-prompt-ui-border-radius);padding:18px;box-shadow:var(--weilin-prompt-ui-card-shadow);text-align:center}.weilin-comfyui-start-panel-button[data-v-d84f82b1]{margin-top:18px;padding:12px 32px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:18px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-start-panel-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.theme-switch[data-v-43d9cf91]{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease}.theme-switch[data-v-43d9cf91]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.theme-switch[data-v-43d9cf91]:active{transform:scale(.95)}.switch-icon[data-v-43d9cf91]{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.sun[data-v-43d9cf91],.moon[data-v-43d9cf91]{width:20px;height:20px;stroke:var(--weilin-prompt-ui-icon-color);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:all .3s ease}.moon[data-v-43d9cf91]{fill:var(--weilin-prompt-ui-icon-color)}.theme-switch:hover .sun[data-v-43d9cf91],.theme-switch:hover .moon[data-v-43d9cf91]{transform:rotate(30deg)}.tag-manager[data-v-f6c0f177]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.category-tabs[data-v-f6c0f177]{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.tabs-wrapper[data-v-f6c0f177]{position:relative;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tabs-scroll[data-v-f6c0f177]{display:flex;gap:2px;padding:0 2px 2px;flex-wrap:wrap;align-items:flex-end}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar{height:10px}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.tab-item[data-v-f6c0f177]{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:2px 15px;border-radius:4px 4px 0 0;cursor:pointer;transition:all .3s ease;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;position:relative;font-size:10px;height:34px;min-width:unset;width:fit-content}.tab-text[data-v-f6c0f177]{flex:0 0 auto;white-space:nowrap;text-align:center;margin:0 4px;color:var(--weilin-prompt-ui-primary-text)}.tab-actions[data-v-f6c0f177]{display:flex;gap:2px;align-items:center;transition:opacity .3s;position:absolute;margin-left:0;top:-25px;padding:5px;background-color:#00000080;border-radius:4px;z-index:1000}.action-btn[data-v-f6c0f177]{padding:4px;background:none;border:none;cursor:pointer;opacity:.7;transition:opacity .3s;color:inherit;display:flex;align-items:center;justify-content:center}.action-btn[data-v-f6c0f177]:hover{opacity:1}.action-icon[data-v-f6c0f177]{width:16px;height:16px;fill:currentColor}.add-tab[data-v-f6c0f177]{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 12px;background:none;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px 4px 0 0;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;transition:all .3s;white-space:nowrap;font-size:13px;height:28px;width:fit-content}.add-tab[data-v-f6c0f177]:hover{color:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-secondary-bg)}.plus-icon[data-v-f6c0f177]{font-size:16px;line-height:1}:root[data-theme=dark] .tab-item[data-v-f6c0f177]{background:var(--weilin-prompt-ui-primary-bg)}:root[data-theme=dark] .tab-item[data-v-f6c0f177]:hover{background:var(--weilin-prompt-ui-secondary-bg)}:root[data-theme=dark] .add-tab[data-v-f6c0f177]:hover{background:var(--weilin-prompt-ui-secondary-bg)}.tags-content[data-v-f6c0f177]{flex:1;display:flex;flex-direction:column}.tags-header[data-v-f6c0f177]{display:flex;justify-content:space-between;align-items:center}.tags-title[data-v-f6c0f177]{font-size:20px;font-weight:bolder;color:var(--weilin-prompt-ui-primary-text)}.tags-grid[data-v-f6c0f177]{display:flex;flex-wrap:wrap;gap:16px;padding:16px}.tag-wrapper[data-v-f6c0f177]{display:inline-flex;min-width:100px;max-width:200px;flex-direction:column}.tag-content[data-v-f6c0f177]{display:flex;flex-direction:column;width:100%;height:fit-content}.tag-main[data-v-f6c0f177]{position:relative;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px 8px 0 0;font-size:13px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);transition:all .3s ease;cursor:default;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;width:100%;box-sizing:border-box;justify-content:center}.tag-desc[data-v-f6c0f177]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;background-color:var(--weilin-prompt-ui-secondary-bg);padding:6px 12px;border-radius:0 0 8px 8px;width:100%;box-sizing:border-box;border:1px solid var(--weilin-prompt-ui-border-color);border-top:none}.tag-actions[data-v-f6c0f177]{background-color:#00000080;border-radius:6px;position:absolute;right:8px;display:inline-flex;opacity:0;transition:opacity .2s ease;top:-15px}.tag-content:hover .tag-actions[data-v-f6c0f177]{opacity:1}.settings-content[data-v-1971f07a]{display:flex;flex-direction:column;min-width:600px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);padding-bottom:20px;box-sizing:border-box;z-index:1099}input[data-v-1971f07a]{padding:8px;margin-right:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}input[data-v-1971f07a]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}button[data-v-1971f07a]{padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}button[data-v-1971f07a]:hover{background-color:#1976d2}button[data-v-1971f07a]:disabled{background-color:#8d8f91}.data-container[data-v-1971f07a]{margin-top:24px;padding:16px;color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:4px;height:500px}.tag-group-container[data-v-1971f07a]{height:430px;overflow-y:auto}h3[data-v-1971f07a],h4[data-v-1971f07a]{margin:8px 0;text-align:center}p[data-v-1971f07a]{margin:4px 0;text-align:center}.loading-overlay[data-v-1971f07a]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.loading-spinner[data-v-1971f07a]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin-1971f07a 1s linear infinite}@keyframes spin-1971f07a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.info-links[data-v-1971f07a]{margin-bottom:16px;padding:12px;background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;border:1px solid var(--weilin-prompt-ui-border-color)}.info-link-item[data-v-1971f07a]{display:flex;align-items:center;margin:6px 0;font-size:14px}.info-link-label[data-v-1971f07a]{color:var(--weilin-prompt-ui-secondary-text);min-width:80px;font-weight:500}.info-link[data-v-1971f07a]{color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:color .2s}.info-link[data-v-1971f07a]:hover{color:var(--weilin-prompt-ui-primary-color-hover);text-decoration:underline}.tag-manager[data-v-c9c6726d]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.category-tabs[data-v-c9c6726d]{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.tabs-wrapper[data-v-c9c6726d]{position:relative;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tabs-scroll[data-v-c9c6726d]{display:flex;gap:2px;padding:0 2px 2px;flex-wrap:wrap;align-items:flex-end}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar{height:10px}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.tab-item[data-v-c9c6726d]{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:2px 15px;border-radius:4px 4px 0 0;cursor:pointer;transition:all .3s ease;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;position:relative;font-size:10px;height:34px;min-width:unset;width:fit-content}.tab-text[data-v-c9c6726d]{flex:0 0 auto;white-space:nowrap;text-align:center;margin:0 4px;color:var(--weilin-prompt-ui-primary-text)}.tab-actions[data-v-c9c6726d]{display:flex;gap:2px;align-items:center;transition:opacity .3s;position:absolute;margin-left:0;top:-25px;padding:5px;background-color:#00000080;border-radius:4px;z-index:1000}.action-btn[data-v-c9c6726d]{padding:4px;background:none;border:none;cursor:pointer;opacity:.7;transition:opacity .3s;color:inherit;display:flex;align-items:center;justify-content:center}.action-btn[data-v-c9c6726d]:hover{opacity:1}.action-icon[data-v-c9c6726d]{width:16px;height:16px;fill:currentColor}.add-tab[data-v-c9c6726d]{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 12px;background:none;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px 4px 0 0;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;transition:all .3s;white-space:nowrap;font-size:13px;height:28px;width:fit-content}.add-tab[data-v-c9c6726d]:hover{color:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-secondary-bg)}.plus-icon[data-v-c9c6726d]{font-size:16px;line-height:1}:root[data-theme=dark] .tab-item[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-bg)}:root[data-theme=dark] .tab-item[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-secondary-bg)}:root[data-theme=dark] .add-tab[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-secondary-bg)}.tags-content[data-v-c9c6726d]{flex:1;display:flex;flex-direction:column}.tags-header[data-v-c9c6726d]{display:flex;justify-content:space-between;align-items:center}.tags-title[data-v-c9c6726d]{font-size:20px;font-weight:bolder;color:var(--weilin-prompt-ui-primary-text)}.tags-grid[data-v-c9c6726d]{display:flex;flex-wrap:wrap;gap:16px;padding:16px}.tag-wrapper[data-v-c9c6726d]{display:inline-flex;min-width:100px;max-width:200px;flex-direction:column}.tag-content[data-v-c9c6726d]{display:flex;flex-direction:column;width:100%;height:fit-content}.tag-main[data-v-c9c6726d]{position:relative;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px 8px 0 0;font-size:13px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);transition:all .3s ease;cursor:default;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;width:100%;box-sizing:border-box;justify-content:center}.tag-desc[data-v-c9c6726d]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;background-color:var(--weilin-prompt-ui-secondary-bg);padding:6px 12px;border-radius:0 0 8px 8px;width:100%;box-sizing:border-box;border:1px solid var(--weilin-prompt-ui-border-color);border-top:none}.tag-actions[data-v-c9c6726d]{background-color:#00000080;border-radius:6px;position:absolute;right:8px;display:inline-flex;opacity:0;transition:opacity .2s ease;top:-15px}.tag-content:hover .tag-actions[data-v-c9c6726d]{opacity:1}.action-btn[data-v-c9c6726d]{padding:2px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.action-btn svg[data-v-c9c6726d]{width:12px;height:12px;fill:var(--weilin-prompt-ui-secondary-text);transition:fill .2s ease}.action-btn:hover svg[data-v-c9c6726d]{fill:var(--weilin-prompt-ui-primary-text)}.tag-content[data-v-c9c6726d]:hover{transform:translateY(-1px);filter:drop-shadow(0 2px 4px var(--weilin-prompt-ui-shadow-color))}.tag-wrapper:active .tag-content[data-v-c9c6726d]{transform:translateY(0)}.tag-wrapper:not(:has(.tag-desc)) .tag-main[data-v-c9c6726d]{border-radius:16px;border-bottom:1px solid var(--border-color)}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar{height:6px;width:6px}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar-track,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb:hover,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin-tools-dialog-overlay[data-v-c9c6726d]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.weilin-tools-dialog-content[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-bg);border-radius:8px;min-width:400px;max-width:90%;box-shadow:0 2px 12px #00000026;box-sizing:border-box;z-index:10099}.weilin-tools-dialog-header[data-v-c9c6726d]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.weilin-tools-dialog-header h2[data-v-c9c6726d]{margin:0;font-size:18px;color:var(--primary-text)}.weilin-tools-dialog-body[data-v-c9c6726d]{padding:20px;box-sizing:border-box}.weilin-tools-dialog-footer[data-v-c9c6726d]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color)}.form-group[data-v-c9c6726d]{margin-bottom:16px;box-sizing:border-box;width:100%}.form-group[data-v-c9c6726d]:last-child{margin-bottom:0}.form-group label[data-v-c9c6726d]{display:block;margin-bottom:8px;color:var(--primary-text)}.form-group input[data-v-c9c6726d],.form-group textarea[data-v-c9c6726d]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px;transition:all .3s ease;box-sizing:border-box}.form-group textarea[data-v-c9c6726d]{resize:vertical;min-height:100px}.form-group input[data-v-c9c6726d]:focus,.form-group textarea[data-v-c9c6726d]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color-rgb),.1)}.cancel-btn[data-v-c9c6726d],.confirm-btn[data-v-c9c6726d]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-btn[data-v-c9c6726d]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text)}.confirm-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff}.cancel-btn[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.confirm-btn[data-v-c9c6726d]:hover{opacity:.9}.close-btn[data-v-c9c6726d]{border:none;background:none;font-size:20px;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;padding:4px;line-height:1}.close-btn[data-v-c9c6726d]:hover{color:var(--weilin-prompt-ui-primary-text)}.confirm-weilin-tools-dialog[data-v-c9c6726d]{min-width:300px!important;max-width:400px!important;width:90%;box-sizing:border-box}.confirm-message[data-v-c9c6726d]{margin:0;color:var(--weilin-prompt-ui-primary-text);text-align:center}.delete-btn[data-v-c9c6726d]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;background:var(--weilin-prompt-ui-danger-color, #ff4d4f);border:none;color:#fff;transition:all .3s ease}.delete-btn[data-v-c9c6726d]:hover{opacity:.9}.delete-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.cancel-delete-btn[data-v-c9c6726d]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-delete-btn[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin-tools-dialog-overlay[data-v-c9c6726d]{animation:fadeIn-c9c6726d .2s ease}.weilin-tools-dialog-content[data-v-c9c6726d]{animation:slideIn-c9c6726d .2s ease;z-index:10099}@keyframes fadeIn-c9c6726d{0%{opacity:0}to{opacity:1}}@keyframes slideIn-c9c6726d{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.color-picker[data-v-c9c6726d]{display:flex;gap:12px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg)}.color-preview[data-v-c9c6726d]{width:48px;height:48px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}.color-controls[data-v-c9c6726d]{flex:1;display:flex;flex-direction:column;gap:8px}.color-input[data-v-c9c6726d]{width:100%;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;cursor:pointer}.alpha-control[data-v-c9c6726d]{display:flex;align-items:center;gap:8px}.alpha-slider[data-v-c9c6726d]{flex:1;height:8px;-webkit-appearance:none;background:linear-gradient(to right,transparent,currentColor);border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color)}.alpha-slider[data-v-c9c6726d]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.alpha-value[data-v-c9c6726d]{min-width:48px;text-align:right;color:var(--weilin-prompt-ui-secondary-text)}.primary-tab[data-v-c9c6726d],.sub-tab[data-v-c9c6726d],.tag-card[data-v-c9c6726d]{position:relative;background-color:transparent}.search-container[data-v-c9c6726d]{position:relative;z-index:100}.search-input[data-v-c9c6726d]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px}.search-input[data-v-c9c6726d]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.search-results[data-v-c9c6726d]{position:fixed;top:60px;left:0;right:0;max-height:300px;overflow-y:auto;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;margin-top:4px;box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color);z-index:1000}.search-result-item[data-v-c9c6726d]{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.search-result-item[data-v-c9c6726d]:last-child{border-bottom:none}.search-result-item[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg)}.result-content[data-v-c9c6726d]{display:flex;flex-direction:column;gap:4px}.result-text[data-v-c9c6726d]{font-size:14px;color:var(--weilin-prompt-ui-primary-text)}.result-path[data-v-c9c6726d]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text)}.no-results[data-v-c9c6726d]{padding:12px;text-align:center;color:var(--weilin-prompt-ui-secondary-text);font-size:14px}.tab-item.active[data-v-c9c6726d]{border-color:var(--weilin-prompt-ui-primary-color)}.tab-item.active .action-btn[data-v-c9c6726d]{color:#fff}.tab-content[data-v-c9c6726d]{display:flex;align-items:center;gap:4px}.add-btn[data-v-c9c6726d]{font-size:14px}.toolbar[data-v-c9c6726d]{flex-direction:column;padding:12px 16px}.toolbar .toolbar-top[data-v-c9c6726d]{display:flex;align-items:center;gap:12px;margin-bottom:10px}.refresh-btn[data-v-c9c6726d]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:all .2s ease}.refresh-btn[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.refresh-icon[data-v-c9c6726d]{fill:var(--weilin-prompt-ui-primary-text)}.search-container[data-v-c9c6726d]{flex:1}.tags-actions[data-v-c9c6726d]{width:fit-content;display:flex;flex-direction:row;align-items:center;gap:12px}.tag-checkbox[data-v-c9c6726d]{margin-top:3px}.radio-input[data-v-c9c6726d]{width:16px!important;height:16px!important;margin-top:3px}.toolbar-bottom[data-v-c9c6726d]{display:flex;align-items:center;gap:12px;margin-top:5px}.group-edit-mode[data-v-c9c6726d]{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 12px;background:none;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px 4px 0 0;color:var(--weilin-prompt-ui-secondary-text);transition:all .3s;white-space:nowrap;font-size:13px;height:28px;width:fit-content;cursor:pointer}.group-edit-mode[data-v-c9c6726d]:hover{color:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-secondary-bg)}.highlight[data-v-c9c6726d]{border:2px solid var(--weilin-prompt-ui-primary-color);box-shadow:0 0 8px #ff7b0299;transform:scale(1.05);transition:all .3s ease}.import-btn[data-v-c9c6726d]{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-color);color:#fff;cursor:pointer;transition:all .3s ease}.import-btn[data-v-c9c6726d]:hover{opacity:.9}.import-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed;background-color:var(--weilin-prompt-ui-secondary-bg)}.share-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.share-btn[data-v-c9c6726d]:hover{opacity:.9}.share-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.delete-action-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.delete-action-btn[data-v-c9c6726d]:hover{opacity:.9}.delete-action-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.share-selected-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-success-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.share-selected-btn[data-v-c9c6726d]:hover{opacity:.9}.share-selected-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.tab-size-btn[data-v-c9c6726d]{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease;font-size:12px;white-space:nowrap}.tab-size-btn[data-v-c9c6726d]:hover{background-color:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.tab-size-weilin-tools-dialog[data-v-c9c6726d]{min-width:500px;max-width:600px}.config-section[data-v-c9c6726d]{margin-bottom:24px;padding:16px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;background:var(--weilin-prompt-ui-secondary-bg)}.config-section h3[data-v-c9c6726d]{margin:0 0 16px;color:var(--weilin-prompt-ui-primary-text);font-size:16px}.width-control[data-v-c9c6726d]{display:flex;flex-direction:column;gap:8px}.radio-label[data-v-c9c6726d]{display:flex;align-items:center;gap:8px;cursor:pointer}.radio-label input[type=radio][data-v-c9c6726d]{width:auto!important;margin:0}.number-input[data-v-c9c6726d]{width:100px!important;margin-top:8px}.range-input[data-v-c9c6726d]{width:100%;height:8px;-webkit-appearance:none;background:var(--weilin-prompt-ui-border-color);border-radius:4px;outline:none}.range-input[data-v-c9c6726d]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.reset-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-warning-color, #faad14);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.reset-btn[data-v-c9c6726d]:hover{opacity:.9}.lora-raw__content[data-v-378f8ede]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.lora-detail[data-v-1b0da0a7]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center;color:var(--weilin-prompt-ui-primary-text)}.lora-detail__content[data-v-1b0da0a7]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.svg-icon[data-v-1b0da0a7]{fill:var(--weilin-prompt-ui-primary-text)}.lora-detail__loading[data-v-1b0da0a7]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.lora-detail__body[data-v-1b0da0a7]{height:100%}.lora-detail__table[data-v-1b0da0a7]{width:100%;border-collapse:collapse}.lora-detail__table td[data-v-1b0da0a7]{padding:12px;border-bottom:1px solid var(--weilin-prompt-ui-border)}.lora-detail__table td.label[data-v-1b0da0a7]{width:180px;color:var(--weilin-prompt-ui-label);font-weight:500}.lora-detail__table td.actions[data-v-1b0da0a7]{width:130px;text-align:right;display:flex;flex-direction:row;align-items:center}.lora-detail__tags[data-v-1b0da0a7]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.lora-detail__tag[data-v-1b0da0a7]{padding:4px 12px;border-radius:16px;font-size:14px}.edit-btn[data-v-1b0da0a7],.refresh-btn[data-v-1b0da0a7],.fetch-btn[data-v-1b0da0a7],.copy-btn[data-v-1b0da0a7]{padding:6px 12px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);cursor:pointer;transition:all .3s}.edit-btn[data-v-1b0da0a7]:hover,.refresh-btn[data-v-1b0da0a7]:hover,.fetch-btn[data-v-1b0da0a7]:hover,.copy-btn[data-v-1b0da0a7]:hover{background:var(--weilin-prompt-ui-button-hover)}input[data-v-1b0da0a7]{width:100%;padding:8px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-input-text)}input[data-v-1b0da0a7]:focus{border-color:var(--weilin-prompt-ui-primary);outline:none}.word-list[data-v-1b0da0a7]{display:flex;flex-wrap:wrap;gap:8px}.word-item[data-v-1b0da0a7]{padding:4px 12px;border-radius:16px;background:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:4px}.word-item[data-v-1b0da0a7]:hover{background:var(--weilin-prompt-ui-tag-hover)}.word-item.is-selected[data-v-1b0da0a7]{background:var(--weilin-prompt-ui-primary-color);color:#fff}.fade-enter-active[data-v-1b0da0a7],.fade-leave-active[data-v-1b0da0a7]{transition:opacity .3s ease}.fade-enter-from[data-v-1b0da0a7],.fade-leave-to[data-v-1b0da0a7]{opacity:0}.is-rotating[data-v-1b0da0a7]{animation:rotate-1b0da0a7 1s linear infinite}@keyframes rotate-1b0da0a7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lora-detail__images[data-v-1b0da0a7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:20px;list-style:none;margin:0}.lora-detail__image-item[data-v-1b0da0a7]{position:relative;background:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color);transition:transform .3s ease}.lora-detail__image-item[data-v-1b0da0a7]:hover{transform:translateY(-2px)}.image-wrapper[data-v-1b0da0a7]{position:relative;width:100%;padding-top:100%;overflow:hidden}.image-wrapper img[data-v-1b0da0a7]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;transition:transform .3s ease}.image-wrapper:hover img[data-v-1b0da0a7]{transform:scale(1.05)}.image-action[data-v-1b0da0a7]{position:absolute;top:12px;right:12px;background:#0009;color:#fff;padding:6px 12px;border-radius:4px;opacity:0;transition:all .3s ease;cursor:pointer;font-size:13px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1);z-index:1}.image-wrapper:hover .image-action[data-v-1b0da0a7]{opacity:1}.image-action[data-v-1b0da0a7]:hover{background:#000c;transform:translateY(-1px)}.image-info[data-v-1b0da0a7]{padding:16px;background:var(--weilin-prompt-ui-secondary-bg)}.info-item[data-v-1b0da0a7]{display:block;margin-bottom:8px;font-size:13px;color:var(--weilin-prompt-ui-secondary-text);word-break:break-all}.info-item[data-v-1b0da0a7]:last-child{margin-bottom:0}.info-item label[data-v-1b0da0a7]{display:inline-block;color:var(--weilin-prompt-ui-label);margin-right:8px;font-weight:500}.civitai-link[data-v-1b0da0a7]{display:inline-flex;align-items:center;gap:4px;color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:opacity .3s ease}.civitai-link[data-v-1b0da0a7]:hover{opacity:.8}.civitai-icon[data-v-1b0da0a7]{fill:currentColor}.info-item[data-v-1b0da0a7]:has(label:contains("正向提示词")),.info-item[data-v-1b0da0a7]:has(label:contains("反向提示词")){background:var(--weilin-prompt-ui-tag-bg);padding:8px;border-radius:4px;margin-top:12px}.image-params[data-v-1b0da0a7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:12px}.param-item[data-v-1b0da0a7]{background:var(--weilin-prompt-ui-tag-bg);padding:4px 8px;border-radius:4px;font-size:12px}@media (max-width: 768px){.lora-detail__images[data-v-1b0da0a7]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding:16px}.image-info[data-v-1b0da0a7]{padding:12px}}.word-item .is-hidden[data-v-1b0da0a7]{display:none}.toggle-btn[data-v-1b0da0a7]{cursor:pointer;color:var(--primary-color);text-align:center;padding:4px;margin-top:8px}.toggle-btn[data-v-1b0da0a7]:hover{text-decoration:underline}.lora-detail[data-v-b11ec087]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center;color:var(--weilin-prompt-ui-primary-text)}.lora-detail__content[data-v-b11ec087]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.lora-detail__loading[data-v-b11ec087]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.svg-icon[data-v-b11ec087]{fill:var(--weilin-prompt-ui-primary-text)}.lora-detail__body[data-v-b11ec087]{height:100%}.lora-detail__table[data-v-b11ec087]{width:100%;table-layout:fixed;word-wrap:break-word;border-collapse:collapse;font-size:.55em}.lora-detail__table td[data-v-b11ec087]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:12px;border-bottom:1px solid var(--weilin-prompt-ui-border);max-width:330px}.lora-detail__table td.label[data-v-b11ec087]{color:var(--weilin-prompt-ui-label);font-weight:500;width:120px;min-width:120px}.lora-detail__table .hash[data-v-b11ec087],.lora-detail__table .text[data-v-b11ec087]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lora-detail__table td.actions[data-v-b11ec087]{width:130px;text-align:right;display:flex;flex-direction:row;align-items:center}.lora-detail__tags[data-v-b11ec087]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.lora-detail__title[data-v-b11ec087]{font-size:.55em}.lora-detail__tag[data-v-b11ec087]{padding:4px 12px;border-radius:16px;font-size:.55em}.edit-btn[data-v-b11ec087],.refresh-btn[data-v-b11ec087],.fetch-btn[data-v-b11ec087],.copy-btn[data-v-b11ec087]{padding:6px 12px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);cursor:pointer;transition:all .3s;font-size:.55em}.edit-btn[data-v-b11ec087]:hover,.refresh-btn[data-v-b11ec087]:hover,.fetch-btn[data-v-b11ec087]:hover,.copy-btn[data-v-b11ec087]:hover{background:var(--weilin-prompt-ui-button-hover)}input[data-v-b11ec087]{width:100%;padding:8px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-input-text)}input[data-v-b11ec087]:focus{border-color:var(--weilin-prompt-ui-primary);outline:none}.word-list[data-v-b11ec087]{display:flex;flex-wrap:wrap;gap:8px}.word-item[data-v-b11ec087]{padding:4px 12px;border-radius:16px;background:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:4px}.word-item[data-v-b11ec087]:hover{background:var(--weilin-prompt-ui-tag-hover)}.word-item.is-selected[data-v-b11ec087]{background:var(--weilin-prompt-ui-primary-color);color:#fff}.fade-enter-active[data-v-b11ec087],.fade-leave-active[data-v-b11ec087]{transition:opacity .3s ease}.fade-enter-from[data-v-b11ec087],.fade-leave-to[data-v-b11ec087]{opacity:0}.is-rotating[data-v-b11ec087]{animation:rotate-b11ec087 1s linear infinite}@keyframes rotate-b11ec087{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lora-detail__images[data-v-b11ec087]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:20px;list-style:none;margin:0;max-width:100%}.lora-detail__image-item[data-v-b11ec087]{position:relative;background:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color);transition:transform .3s ease}.lora-detail__image-item[data-v-b11ec087]:hover{transform:translateY(-2px)}.image-wrapper[data-v-b11ec087]{position:relative;width:100%;padding-top:100%;overflow:hidden}.image-wrapper img[data-v-b11ec087]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;transition:transform .3s ease}.image-wrapper:hover img[data-v-b11ec087]{transform:scale(1.05)}.image-action[data-v-b11ec087]{position:absolute;top:12px;right:12px;background:#0009;color:#fff;padding:6px 12px;border-radius:4px;opacity:0;transition:all .3s ease;cursor:pointer;font-size:.55em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1);z-index:1}.image-wrapper:hover .image-action[data-v-b11ec087]{opacity:1}.image-action[data-v-b11ec087]:hover{background:#000c;transform:translateY(-1px)}.image-info[data-v-b11ec087]{font-size:.55em;padding:16px;background:var(--weilin-prompt-ui-secondary-bg)}.info-item[data-v-b11ec087]{display:block;margin-bottom:8px;font-size:.55em;color:var(--weilin-prompt-ui-secondary-text);word-break:break-all}.info-item[data-v-b11ec087]:last-child{margin-bottom:0}.info-item label[data-v-b11ec087]{display:inline-block;color:var(--weilin-prompt-ui-label);margin-right:8px;font-weight:500}.civitai-link[data-v-b11ec087]{display:inline-flex;align-items:center;gap:4px;color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:opacity .3s ease}.civitai-link[data-v-b11ec087]:hover{opacity:.8}.civitai-icon[data-v-b11ec087]{fill:currentColor}.info-item[data-v-b11ec087]:has(label:contains("正向提示词")),.info-item[data-v-b11ec087]:has(label:contains("反向提示词")){background:var(--weilin-prompt-ui-tag-bg);padding:8px;border-radius:4px;margin-top:12px}.image-params[data-v-b11ec087]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:12px}.param-item[data-v-b11ec087]{background:var(--weilin-prompt-ui-tag-bg);padding:4px 8px;border-radius:4px;font-size:.55em}@media (max-width: 768px){.lora-detail__images[data-v-b11ec087]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding:16px}.image-info[data-v-b11ec087]{padding:12px}}.word-item .is-hidden[data-v-b11ec087]{display:none}.toggle-btn[data-v-b11ec087]{cursor:pointer;color:var(--primary-color);text-align:center;padding:4px;margin-top:8px}.toggle-btn[data-v-b11ec087]:hover{text-decoration:underline}.close-button[data-v-b11ec087]{position:absolute;top:10px;left:10px;width:24px;height:24px;border-radius:50%;background-color:#bbbbbb80;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;box-shadow:0 2px 4px #0003;transition:all .2s ease}.close-button[data-v-b11ec087]:hover{background-color:#f00c;color:#fff}.close-button span[data-v-b11ec087]{font-size:18px;line-height:18px;font-weight:700}.lora_catd_content[data-v-b11ec087]{position:fixed;width:450px;height:330px;z-index:999999999;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-bg);padding:6px;box-sizing:border-box;font-size:.55em;overflow:hidden}.weilin_prompt_ui_lora-stack[data-v-22aa3dae]{top:0;left:0;height:100%;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease;overflow:hidden;box-sizing:border-box}.weilin_prompt_ui_lora-content[data-v-22aa3dae]{width:100%;height:100%;display:flex;flex-direction:column;margin-left:0}.weilin_prompt_ui_lora-header[data-v-22aa3dae]{padding:8px 16px;border-bottom:1px solid var(--weilin-prompt-ui-border-color);display:flex;justify-content:space-between;align-items:center;background:var(--weilin-prompt-ui-secondary-bg);border-top-right-radius:8px;border-top-left-radius:8px}.weilin_prompt_ui_lora-header h3[data-v-22aa3dae]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-22aa3dae]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_close-btn[data-v-22aa3dae]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_close-btn svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-body[data-v-22aa3dae]{flex:1;overflow-y:auto;padding:16px}.weilin_prompt_ui_lora-list[data-v-22aa3dae]{display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_lora-title[data-v-22aa3dae]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions[data-v-22aa3dae]{display:flex;gap:8px;align-items:center}.weilin_prompt_ui_add-btn[data-v-22aa3dae]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_add-btn[data-v-22aa3dae]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_add-btn svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-secondary-text)}.lora-item[data-v-22aa3dae]{background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;margin-bottom:12px;overflow:hidden;transition:all .3s ease}.lora-item[data-v-22aa3dae]:hover{border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color)}.lora-info[data-v-22aa3dae]{display:flex;flex-direction:column;width:100%}.hidden-lora[data-v-22aa3dae]{background:#ffc8c833!important;border-color:#ff969680!important}.lora-header[data-v-22aa3dae]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-primary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.lora-name[data-v-22aa3dae]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.lora-actions[data-v-22aa3dae]{display:flex;align-items:center;gap:8px}.lora-weights-row[data-v-22aa3dae]{display:flex;flex-direction:row;gap:5px;align-items:flex-end;padding:12px;background:var(--weilin-prompt-ui-secondary-bg)}.weight-item-col[data-v-22aa3dae]{display:flex;flex-direction:column;gap:2px;width:60px}.weight-item-col label[data-v-22aa3dae]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.switch-item-col[data-v-22aa3dae]{display:flex;flex-direction:column;align-items:center;gap:2px}.switch-item-col label[data-v-22aa3dae]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.lora-weight[data-v-22aa3dae]{flex:1;width:100%;padding:4px 6px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:12px;transition:all .3s ease}.lora-weight[data-v-22aa3dae]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.lora-weight[data-v-22aa3dae]:focus{border-color:var(--weilin-prompt-ui-primary-color);outline:none;box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.remove-btn[data-v-22aa3dae],.look-on-btn[data-v-22aa3dae]{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:all .3s ease}.remove-btn[data-v-22aa3dae]:hover,.look-on-btn[data-v-22aa3dae]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.remove-btn svg[data-v-22aa3dae],.look-on-btn svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-secondary-text)}.remove-btn:hover svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-danger-color)}.look-on-btn:hover svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-primary-color)}.switch-item[data-v-22aa3dae]{display:flex;align-items:center;gap:6px}.switch[data-v-22aa3dae]{position:relative;display:inline-block;width:36px;height:20px}.switch input[data-v-22aa3dae]{opacity:0;width:0;height:0}.switch input:checked+.slider[data-v-22aa3dae]:before{transform:translate(16px)}.slider[data-v-22aa3dae]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:20px}.slider[data-v-22aa3dae]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}.switch input:checked+.slider[data-v-22aa3dae]{background-color:var(--weilin-prompt-ui-primary-color)}.main-label-manager[data-v-a435a9c3]{width:280px;min-width:280px;max-width:280px;display:flex;flex-direction:column;box-sizing:border-box;padding:12px 4px;border-right:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-primary-bg);height:100%;max-height:calc(100vh - var(--weilin-left-panel-offset, 100px));overflow:hidden;margin-right:3px}.mlm-header[data-v-a435a9c3]{display:flex;flex-direction:column;gap:8px}.mlm-search[data-v-a435a9c3]{width:100%;height:32px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);padding:0 8px}.mlm-add[data-v-a435a9c3]{background:#28a745;color:#fff;border:none;border-radius:6px;height:32px;width:100%;cursor:pointer}.mlm-grid[data-v-a435a9c3]{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.mlm-list[data-v-a435a9c3]{margin-top:8px;max-height:var(--weilin-main-label-list-max-height, 720px);flex:0 0 auto;overflow-y:auto;padding-right:4px}.mlm-list[data-v-a435a9c3]::-webkit-scrollbar{width:6px}.mlm-list[data-v-a435a9c3]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.mlm-item[data-v-a435a9c3]{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:38px;padding:10px;margin:6px 0;background:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:10px;border:1px solid var(--weilin-prompt-ui-border-color);transition:background .2s ease,box-shadow .2s ease,border-color .2s ease,transform .1s ease}.mlm-item.dragging[data-v-a435a9c3]{opacity:.6}.mlm-item.drag-over[data-v-a435a9c3]{outline:2px dashed var(--weilin-prompt-ui-primary-color);outline-offset:2px;box-shadow:none!important}.mlm-item[data-v-a435a9c3]:hover{background:color-mix(in srgb,var(--weilin-prompt-ui-secondary-bg) 90%,#fff 10%);border-color:color-mix(in srgb,var(--weilin-prompt-ui-border-color) 40%,#fff 20%);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.mlm-item.active[data-v-a435a9c3]:not(.drag-over){outline:none;border-color:transparent;box-shadow:inset 0 0 0 2px #22c55e}.mlm-item.pinned[data-v-a435a9c3]{background:color-mix(in srgb,#d89614 12%,var(--weilin-prompt-ui-secondary-bg));border-left:4px solid #d89614;box-shadow:0 2px 6px #00000040}.mlm-item.pinned[data-v-a435a9c3]:hover{box-shadow:0 3px 8px #0000004d}.mlm-item.highlighted[data-v-a435a9c3]{background:color-mix(in srgb,var(--weilin-prompt-ui-primary-color) 12%,var(--weilin-prompt-ui-secondary-bg));border-left:4px solid var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 6px #0003}.mlm-item.highlighted[data-v-a435a9c3]:hover{box-shadow:0 3px 8px #0000004d}.mlm-item-main[data-v-a435a9c3]{display:flex;align-items:center;gap:8px;overflow:hidden}.mlm-name[data-v-a435a9c3]{font-size:14px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pin-badge[data-v-a435a9c3]{background:color-mix(in srgb,#d89614 25%,transparent);color:#d89614;border:1.5px solid #d89614;border-radius:14px;padding:2px 10px;font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center}.mlm-item-actions[data-v-a435a9c3]{display:flex;gap:6px}.mini-btn[data-v-a435a9c3]{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #000;background:transparent;border-radius:8px;color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.mini-btn[data-v-a435a9c3]:hover{background:#ffffff0f}.mini-btn[data-v-a435a9c3]:active{transform:translateY(1px)}.mini-btn[data-v-a435a9c3]:focus-visible{outline:2px solid color-mix(in srgb,#fff 50%,transparent);outline-offset:2px}.mini-btn svg[data-v-a435a9c3]{width:18px;height:18px}.mini-btn.pin.active[data-v-a435a9c3]{background:#d89614;border-color:#d89614;color:#fff}.mini-btn.highlight.active[data-v-a435a9c3]{background:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);color:#fff}.mlm-sort[data-v-a435a9c3],.mlm-edit[data-v-a435a9c3],.mlm-delete[data-v-a435a9c3]{height:32px;width:100%;font-size:12px;border-radius:6px;border:1px solid color-mix(in srgb,var(--weilin-prompt-ui-border-color) 70%,transparent);background:color-mix(in srgb,var(--weilin-prompt-ui-button-bg) 90%,#000 10%);color:var(--weilin-prompt-ui-button-text);transition:background .15s ease,border-color .15s ease}.mlm-sort[data-v-a435a9c3]:hover,.mlm-edit[data-v-a435a9c3]:hover,.mlm-delete[data-v-a435a9c3]:hover{background:color-mix(in srgb,var(--weilin-prompt-ui-button-bg) 80%,#fff 20%)}.mlm-delete[data-v-a435a9c3]{color:#ff6b6b;background:color-mix(in srgb,#ff6b6b 10%,transparent);border-color:color-mix(in srgb,#ff6b6b 30%,transparent)}.mlm-grid button[data-v-a435a9c3]:disabled{cursor:not-allowed;opacity:.7}.mlm-move[data-v-a435a9c3]{transition:transform .18s ease}.mlm-enter-active[data-v-a435a9c3],.mlm-leave-active[data-v-a435a9c3]{transition:opacity .18s ease,transform .18s ease}.mlm-enter-from[data-v-a435a9c3],.mlm-leave-to[data-v-a435a9c3]{opacity:.01;transform:scale(.98)}.weilin_prompt_ui_lora-manager[data-v-e5643d0b]{overflow:hidden;background:var(--weilin-prompt-ui-primary-bg);display:flex;flex-direction:column;height:100%}.weilin_prompt_ui_lora-manager-container[data-v-e5643d0b]{padding:16px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]{flex:1;overflow-y:auto;position:relative;padding-right:8px;box-sizing:border-box}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin_prompt_ui_lora-list[data-v-e5643d0b]{display:flex;flex-direction:column;gap:8px;padding-bottom:16px;padding-top:5px}.weilin_prompt_ui_lora-item[data-v-e5643d0b]{padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;background:var(--weilin-prompt-ui-primary-bg);transition:all .3s ease;cursor:pointer}.weilin_prompt_ui_lora-item[data-v-e5643d0b]:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color)}.weilin_prompt_ui_lora-item-content[data-v-e5643d0b]{display:flex;gap:12px}.weilin_prompt_ui_lora-preview[data-v-e5643d0b]{width:80px;height:80px;border-radius:6px;overflow:hidden;background:var(--weilin-prompt-ui-secondary-bg);display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_lora-preview img[data-v-e5643d0b]{width:100%;height:100%;object-fit:contain}.weilin_prompt_ui_no-preview[data-v-e5643d0b]{display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_no-preview svg[data-v-e5643d0b]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-info[data-v-e5643d0b]{flex:1;overflow:hidden}.weilin_prompt_ui_lora-name[data-v-e5643d0b]{margin:0 0 4px;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weilin_prompt_ui_lora-path[data-v-e5643d0b]{margin:0;font-size:12px;color:var(--weilin-prompt-ui-secondary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weilin_prompt_ui_refresh-btn[data-v-e5643d0b]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_refresh-btn[data-v-e5643d0b]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_refresh-icon[data-v-e5643d0b]{fill:var(--weilin-prompt-ui-secondary-text);transition:transform .5s ease}.weilin_prompt_ui_refresh-icon.is-rotating[data-v-e5643d0b]{animation:rotate-e5643d0b 1s linear infinite}@keyframes rotate-e5643d0b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.weilin_prompt_ui_header-right[data-v-e5643d0b]{display:flex;align-items:center}.weilin_prompt_ui_category-nav[data-v-e5643d0b]{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;min-height:40px;max-height:100px;overflow-y:auto}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin_prompt_ui_category-btn[data-v-e5643d0b]{padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}.weilin_prompt_ui_category-btn[data-v-e5643d0b]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_category-btn.active[data-v-e5643d0b]{background:var(--weilin-prompt-ui-primary-color);color:#fff;border-color:var(--weilin-prompt-ui-primary-color)}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]{display:flex;gap:8px;margin-bottom:16px;margin-top:-8px;flex-wrap:wrap;padding-left:16px;min-height:40px;max-height:100px;overflow-y:auto}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.lora-manager-top-bar[data-v-e5643d0b]{display:flex;align-items:center;margin-bottom:10px}.weilin_prompt_ui_search-input[data-v-e5643d0b]{flex:1;margin-right:10px;padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);transition:all .3s ease}.weilin_prompt_ui_search-input[data-v-e5643d0b]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color),.2)}.pagination-controls[data-v-e5643d0b]{display:flex;justify-content:center;align-items:center;margin:10px 0;gap:10px}.weilin_prompt_ui_page-btn[data-v-e5643d0b]{padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}.weilin_prompt_ui_page-btn[data-v-e5643d0b]:hover:not(:disabled){background:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_page-btn[data-v-e5643d0b]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-e5643d0b]{color:var(--weilin-prompt-ui-secondary-text)}.loading-indicator[data-v-e5643d0b],.empty-list[data-v-e5643d0b]{display:flex;justify-content:center;align-items:center;height:200px;color:var(--weilin-prompt-ui-secondary-text);font-size:16px}.loading-more[data-v-e5643d0b],.no-more-data[data-v-e5643d0b]{text-align:center;padding:15px 0;color:var(--weilin-prompt-ui-secondary-text);font-size:14px}.no-more-data[data-v-e5643d0b]{color:var(--weilin-prompt-ui-secondary-text);opacity:.8}.weilin_prompt_ui_lora-card[data-v-e5643d0b]{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;background:var(--weilin-prompt-ui-primary-bg);transition:all .3s ease;overflow:hidden;aspect-ratio:1/1.3}.weilin_prompt_ui_lora-card[data-v-e5643d0b]:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);border:1px solid var(--weilin-prompt-ui-primary-color-hover)}.weilin_prompt_ui_lora-preview[data-v-e5643d0b]{aspect-ratio:1/1}.weilin_prompt_ui_lora-name[data-v-e5643d0b]{margin:0;font-size:14px;color:var(--weilin-prompt-ui-primary-text);word-break:break-word;white-space:normal;line-height:1.2}.lora-manager-top-bar[data-v-e5643d0b]{display:flex;align-items:center;padding:8px;gap:8px;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.checkbox-container[data-v-e5643d0b]{display:flex;margin-left:auto;gap:12px}.weilin_prompt_ui_checkbox-label[data-v-e5643d0b]{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--weilin-prompt-ui-primary-text);cursor:pointer}.weilin_prompt_ui_checkbox[data-v-e5643d0b]{cursor:pointer}.tag-manager[data-v-eb6b9225]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.category-tabs[data-v-eb6b9225]{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.tabs-wrapper[data-v-eb6b9225]{position:relative;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tabs-scroll[data-v-eb6b9225]{display:flex;gap:2px;padding:0 2px 2px;flex-wrap:wrap;align-items:flex-end}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar{height:8px}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.tab-item[data-v-eb6b9225]{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 15px;border-radius:4px 4px 0 0;cursor:pointer;transition:all .3s ease;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;position:relative;font-size:12px;height:34px;min-width:unset;width:fit-content;box-shadow:0 -2px 5px #0000000d}.tab-item[data-v-eb6b9225]:hover{background-color:var(--weilin-prompt-ui-secondary-bg)!important}.tab-item .active[data-v-eb6b9225]{box-shadow:0 -2px 8px #0000001a;z-index:1}.tab-text[data-v-eb6b9225]{flex:0 0 auto;white-space:nowrap;text-align:center;margin:0 4px;font-weight:500}.selected-categories-container[data-v-eb6b9225]{background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;padding:12px;margin-bottom:16px;border:1px solid var(--weilin-prompt-ui-border-color);box-shadow:0 2px 6px var(--weilin-prompt-ui-shadow-color)}.selected-categories-header[data-v-eb6b9225]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:700;color:var(--weilin-prompt-ui-primary-text);border-bottom:1px solid var(--weilin-prompt-ui-border-color);padding-bottom:8px}.clear-all-btn[data-v-eb6b9225]{background:none;border:none;color:var(--weilin-prompt-ui-primary-color);cursor:pointer;font-size:12px;padding:2px 8px;border-radius:4px;transition:all .2s}.clear-all-btn[data-v-eb6b9225]:hover{background-color:var(--weilin-prompt-ui-primary-color-10);text-decoration:none}.selected-categories-content[data-v-eb6b9225]{min-height:40px;max-height:200px;overflow-y:auto}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar{width:6px}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.no-selected[data-v-eb6b9225]{color:var(--weilin-prompt-ui-secondary-text);font-style:italic;text-align:center;padding:10px 0}.selected-category-section[data-v-eb6b9225]{margin-bottom:12px}.selected-category-section[data-v-eb6b9225]:last-child{margin-bottom:0}.section-title[data-v-eb6b9225]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:8px;font-weight:500;padding-left:4px}.selected-items[data-v-eb6b9225]{display:flex;flex-wrap:wrap;gap:8px}.selected-item[data-v-eb6b9225]{display:flex;align-items:center;background-color:var(--weilin-prompt-ui-tag-bg);border-radius:4px;padding:4px 8px;font-size:12px;border:1px solid var(--weilin-prompt-ui-border-color);transition:all .2s}.selected-item[data-v-eb6b9225]:hover{background-color:var(--weilin-prompt-ui-tag-bg-hover)}.category-name[data-v-eb6b9225]{font-weight:700;color:var(--weilin-prompt-ui-primary-text)}.separator[data-v-eb6b9225]{margin:0 4px;color:var(--weilin-prompt-ui-secondary-text)}.subcategory-name[data-v-eb6b9225]{color:var(--weilin-prompt-ui-primary-text)}.remove-selected-btn[data-v-eb6b9225]{background:none;border:none;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;margin-left:6px;font-size:14px;padding:0 4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.remove-selected-btn[data-v-eb6b9225]:hover{color:var(--weilin-prompt-ui-danger-color);background-color:var(--weilin-prompt-ui-danger-color-10)}.select-tab-btn[data-v-eb6b9225]{background:none;border:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;cursor:pointer;color:inherit;opacity:.7;transition:all .2s ease;margin-left:4px}.select-tab-btn[data-v-eb6b9225]:hover{opacity:1;background-color:#fff3;transform:scale(1.1)}.select-tab-btn[data-v-eb6b9225]:disabled{opacity:.3;cursor:not-allowed}.tab-item.disabled[data-v-eb6b9225]{pointer-events:none}[data-v-eb6b9225] .dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--weilin-prompt-ui-border-color)}[data-v-eb6b9225] .dialog-footer button{padding:6px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .3s}[data-v-eb6b9225] .dialog-footer button:first-child{background-color:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);border:1px solid var(--weilin-prompt-ui-border-color)}[data-v-eb6b9225] .dialog-footer button:first-child:hover{background-color:var(--weilin-prompt-ui-button-hover)}[data-v-eb6b9225] .dialog-footer button:last-child{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none}[data-v-eb6b9225] .dialog-footer button:last-child:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.random-rule-container[data-v-71de91e1]{padding:16px;height:calc(100% - 55px);overflow-y:auto;display:flex;flex-direction:column;gap:20px}.settings-section[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;padding:16px;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-primary-text)}.section-header[data-v-71de91e1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;color:var(--weilin-prompt-ui-primary-text)}.form-group[data-v-71de91e1]{margin-bottom:16px}.form-group label[data-v-71de91e1]{display:block;margin-bottom:8px;font-weight:500;color:var(--weilin-prompt-ui-primary-text)}.form-input[data-v-71de91e1],.form-select[data-v-71de91e1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-input-text)}.range-inputs[data-v-71de91e1]{display:flex;align-items:center;gap:8px}.range-input[data-v-71de91e1]{width:80px}.rules-list[data-v-71de91e1]{display:flex;flex-direction:column;gap:16px}.rule-item[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-bg);border-radius:6px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color)}.rule-header[data-v-71de91e1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:var(--weilin-prompt-ui-primary-text)}.rule-header h4[data-v-71de91e1]{margin:0;color:var(--weilin-prompt-ui-primary-text)}.add-rule-btn[data-v-71de91e1],.add-tag-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;padding:6px 12px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:background-color .3s}.add-rule-btn[data-v-71de91e1]:hover,.add-tag-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.delete-rule-btn[data-v-71de91e1],.remove-tag-btn[data-v-71de91e1]{background-color:transparent;color:var(--weilin-prompt-ui-danger-color);border:none;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.delete-rule-btn[data-v-71de91e1]:hover,.remove-tag-btn[data-v-71de91e1]:hover{color:var(--weilin-prompt-ui-danger-color-hover)}.tags-input-container[data-v-71de91e1]{display:flex;flex-wrap:wrap;gap:8px;padding:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-input-bg);min-height:40px;margin-bottom:8px}.tag-chip[data-v-71de91e1]{display:flex;align-items:center;gap:4px;padding:4px 8px;background-color:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);border-radius:16px;font-size:14px}.tag-input[data-v-71de91e1]{flex:1;min-width:100px;border:none;outline:none;background:transparent;color:var(--weilin-prompt-ui-input-text)}.actions-section[data-v-71de91e1]{height:55px;display:flex;justify-content:flex-end;gap:12px;padding:10px;border-top:1px solid var(--weilin-prompt-ui-border-color)}.save-btn[data-v-71de91e1],.test-btn[data-v-71de91e1]{padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:all .3s}.save-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none}.save-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.test-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);border:1px solid var(--weilin-prompt-ui-border-color)}.test-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-button-hover)}.selected-categories-container[data-v-71de91e1]{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;margin-bottom:12px;overflow:hidden}.selected-categories-header[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-header-bg);padding:8px 12px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.selected-categories-content[data-v-71de91e1]{padding:12px;max-height:200px;overflow-y:auto;background-color:var(--weilin-prompt-ui-primary-bg)}.selected-category-section[data-v-71de91e1]{margin-bottom:12px}.section-title[data-v-71de91e1]{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--weilin-prompt-ui-secondary-text)}.selected-items[data-v-71de91e1]{display:flex;flex-wrap:wrap;gap:8px}.selected-item[data-v-71de91e1]{display:flex;align-items:center;padding:4px 8px;background-color:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);border-radius:4px;font-size:14px}.separator[data-v-71de91e1]{margin:0 4px;color:var(--weilin-prompt-ui-secondary-text)}.no-selected[data-v-71de91e1]{color:var(--weilin-prompt-ui-secondary-text);font-style:italic;padding:8px 0}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar{width:6px}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.template-section[data-v-71de91e1]{margin-bottom:16px}.template-controls[data-v-71de91e1]{display:flex;flex-direction:column;gap:12px}.template-select-group[data-v-71de91e1]{display:flex;flex-direction:column;gap:8px}.template-buttons[data-v-71de91e1]{display:flex;gap:8px}.template-select[data-v-71de91e1]{width:100%}.apply-template-btn[data-v-71de91e1],.edit-template-btn[data-v-71de91e1],.delete-template-btn[data-v-71de91e1]{padding:6px 12px;border-radius:4px;cursor:pointer;border:none;transition:background-color .3s}.apply-template-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;flex:1}.apply-template-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.edit-template-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-secondary-color);color:#fff;flex:1}.edit-template-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-secondary-color-hover)}.delete-template-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-danger-color);color:#fff;flex:1}.delete-template-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-danger-color-hover)}.apply-template-btn[data-v-71de91e1]:disabled,.edit-template-btn[data-v-71de91e1]:disabled,.delete-template-btn[data-v-71de91e1]:disabled{background-color:var(--weilin-prompt-ui-disabled-bg);color:var(--weilin-prompt-ui-disabled-text);cursor:not-allowed}.template-select-with-apply[data-v-71de91e1]{display:flex;align-items:center;margin-bottom:10px}.template-select-with-apply .template-select[data-v-71de91e1]{flex:9;margin-right:10px}.template-bottom-buttons[data-v-71de91e1]{display:flex;justify-content:space-between;margin-top:10px}.template-bottom-buttons button[data-v-71de91e1]{flex:1;margin:0 5px}.template-bottom-buttons button[data-v-71de91e1]:first-child{margin-left:0}.template-bottom-buttons button[data-v-71de91e1]:last-child{margin-right:0}.new-template-btn[data-v-71de91e1],.edit-template-btn[data-v-71de91e1],.delete-template-btn[data-v-71de91e1]{padding:5px 10px;border-radius:4px;font-size:.9em;cursor:pointer}.new-template-btn[data-v-71de91e1]{background-color:#4caf50;color:#fff;border:none}.edit-template-btn[data-v-71de91e1]{background-color:#2196f3;color:#fff;border:none}.delete-template-btn[data-v-71de91e1]{background-color:#f44336;color:#fff;border:none}button[data-v-71de91e1]:disabled{opacity:.5;cursor:not-allowed}.rules-reminder[data-v-71de91e1]{margin-bottom:10px;padding:8px 12px;background-color:#fff7e6;border-left:4px solid #ffbb33;border-radius:4px}.rules-reminder p[data-v-71de91e1]{margin:0;font-size:.9em;color:#960}.tag-manager[data-v-08abaad1]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.form-group[data-v-08abaad1]{margin-bottom:16px;box-sizing:border-box;width:100%}.form-group[data-v-08abaad1]:last-child{margin-bottom:0}.form-group label[data-v-08abaad1]{display:block;margin-bottom:8px;color:var(--primary-text)}.form-group input[data-v-08abaad1],.form-group textarea[data-v-08abaad1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px;transition:all .3s ease;box-sizing:border-box}.form-group textarea[data-v-08abaad1]{resize:vertical;min-height:100px}.form-group input[data-v-08abaad1]:focus,.form-group textarea[data-v-08abaad1]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color-rgb),.1)}.color-picker[data-v-08abaad1]{display:flex;gap:12px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg)}.color-preview[data-v-08abaad1]{width:48px;height:48px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}.color-controls[data-v-08abaad1]{flex:1;display:flex;flex-direction:column;gap:8px}.color-input[data-v-08abaad1]{width:100%;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;cursor:pointer}.alpha-control[data-v-08abaad1]{display:flex;align-items:center;gap:8px}.alpha-slider[data-v-08abaad1]{flex:1;height:8px;-webkit-appearance:none;background:linear-gradient(to right,transparent,currentColor);border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color)}.alpha-slider[data-v-08abaad1]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.alpha-value[data-v-08abaad1]{min-width:48px;text-align:right;color:var(--weilin-prompt-ui-secondary-text)}.select-group-item[data-v-08abaad1]{display:flex;align-items:center}.add-tag-btn[data-v-08abaad1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;padding:6px 12px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:background-color .3s}.add-tag-btn[data-v-08abaad1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.weilin_prompt_ui_prompt-box[data-v-e6351b4c]{width:100%;display:flex;flex-direction:row;box-sizing:border-box;overflow:visible;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease}.weilin_prompt_ui_main-content[data-v-e6351b4c]{height:auto;transition:width .3s ease}.input-area[data-v-e6351b4c]{width:100%;padding:8px 12px;resize:vertical;border:2px solid var(--weilin-prompt-ui-border-color);border-radius:6px;overflow-y:auto;box-sizing:border-box;font-size:14px;line-height:1.6;color:var(--weilin-prompt-ui-primary-text);background-color:var(--weilin-prompt-ui-input-bg);transition:all .3s ease;box-shadow:inset 0 1px 3px var(--weilin-prompt-ui-shadow-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.input-area[data-v-e6351b4c]:hover{border-color:var(--weilin-prompt-ui-secondary-text)}.input-area[data-v-e6351b4c]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px #1890ff1a}.input-area[data-v-e6351b4c]::placeholder{color:var(--weilin-prompt-ui-secondary-text);font-size:14px}.update-label-bar[data-v-e6351b4c]{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.update-label-bar .token-counter[data-v-e6351b4c]{position:static;background:transparent;padding:0;color:var(--weilin-prompt-ui-secondary-text)}.update-label-btn[data-v-e6351b4c]{height:32px;padding:0 14px;min-width:110px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-primary-color);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:filter .15s ease,transform .05s ease,background .15s ease}.update-label-btn[data-v-e6351b4c]:hover:enabled{filter:brightness(1.08)}.update-label-btn.is-dirty[data-v-e6351b4c]{box-shadow:0 0 0 2px color-mix(in srgb,var(--weilin-prompt-ui-primary-color) 35%,transparent),0 0 10px color-mix(in srgb,var(--weilin-prompt-ui-primary-color) 40%,transparent)}.update-label-btn[data-v-e6351b4c]:active:enabled{transform:translateY(1px)}.update-label-btn[data-v-e6351b4c]:disabled{opacity:.65;cursor:not-allowed;filter:grayscale(.2)}.tokens-container[data-v-e6351b4c]{display:flex;flex-flow:wrap;gap:8px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:6px;align-items:flex-start;background-color:var(--weilin-prompt-ui-primary-bg);transition:border-color .2s ease;margin-top:10px;width:100%}.tokens-container[data-v-e6351b4c]:hover{border-color:var(--weilin-prompt-ui-secondary-text)}.token-item[data-v-e6351b4c]{overflow:visible;color:var(--weilin-prompt-ui-primary-text);font-size:13px;line-height:1.5;display:flex;align-items:center}.token-item-icon[data-v-e6351b4c]{width:12px;height:12px;fill:var(--weilin-prompt-ui-icon-color)}.token-item input[data-v-e6351b4c]{width:auto;min-width:20px;padding:4px 8px;border:2px solid var(--weilin-prompt-ui-primary-color);border-radius:4px;font-size:inherit;font-family:inherit;line-height:inherit;margin:-4px 0;box-sizing:border-box;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);box-shadow:0 0 0 2px #1890ff1a;transition:all .2s ease}.token-item input[data-v-e6351b4c]:focus{outline:none;border-color:#40a9ff;box-shadow:0 0 0 2px #1890ff33}.line-break[data-v-e6351b4c]{display:block;width:100%;height:1px;clear:both}.newline-token[data-v-e6351b4c]{color:var(--weilin-prompt-ui-secondary-text);border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-size:14px;display:inline-block}.newline-token[data-v-e6351b4c]:after{content:"";width:100%;order:1}.newline-token~.token-item-box[data-v-e6351b4c]{order:2}.tab-token[data-v-e6351b4c]{color:var(--weilin-prompt-ui-secondary-text);border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-size:14px}.newline-token[data-v-e6351b4c]:hover,.tab-token[data-v-e6351b4c]:hover{transform:translateY(-1px)}.token-symbol[data-v-e6351b4c]{font-family:monospace;-webkit-user-select:none;user-select:none;font-size:14px;opacity:.8}.tokens-container[data-v-e6351b4c]::-webkit-scrollbar{width:6px}.tokens-container[data-v-e6351b4c]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.tokens-container[data-v-e6351b4c]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tokens-container[data-v-e6351b4c]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.input-area[data-v-e6351b4c]::-webkit-scrollbar{width:6px}.input-area[data-v-e6351b4c]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.input-area[data-v-e6351b4c]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.input-area[data-v-e6351b4c]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.action-item[data-v-e6351b4c]{position:relative;display:flex;flex-direction:column;align-items:center;flex:0 0 auto;margin-right:8px}.action-text[data-v-e6351b4c]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);white-space:nowrap}.fade-enter-active[data-v-e6351b4c],.fade-leave-active[data-v-e6351b4c]{transition:all .2s ease}.fade-enter-from[data-v-e6351b4c],.fade-leave-to[data-v-e6351b4c]{opacity:0;transform:translateY(-10px)}.token-controls[data-v-e6351b4c]{position:fixed;transform:translate(-50%);background-color:var(--weilin-prompt-ui-primary-bg);padding:6px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:6px;box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);z-index:1000;display:flex;gap:4px;transition:all .2s ease}.delete-btn[data-v-e6351b4c]{display:flex;align-items:center;justify-content:center;padding:6px;background-color:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .2s ease}.delete-btn[data-v-e6351b4c]:hover{background-color:#ff4d4f1a}.delete-btn svg[data-v-e6351b4c]{width:16px;height:16px;fill:#ff4d4f;transition:transform .2s ease}.favour-btn[data-v-e6351b4c]{background:transparent;border:none;padding:2px 4px;cursor:pointer;vertical-align:middle;outline:none;transition:background .2s;border-radius:4px;display:inline-flex;align-items:center}.favour-btn svg[data-v-e6351b4c]{display:block;margin:0 auto;transition:filter .2s}.favour-btn[data-v-e6351b4c]:hover{background:#fffbe6a6;box-shadow:0 0 4px #ffd70044}.favour-btn:active svg[data-v-e6351b4c]{filter:brightness(.85)}.disable-btn svg[data-v-e6351b4c]{fill:#1890ff}.enable-btn svg path[data-v-e6351b4c]{fill:green}.copy-btn svg[data-v-e6351b4c]{fill:#722ed1}.delete-btn:hover svg[data-v-e6351b4c]{transform:scale(1.1)}.settings-icon[data-v-e6351b4c]{width:24px;height:24px;fill:var(--weilin-prompt-ui-icon-color);transition:transform .3s ease}.token-item.punctuation[data-v-e6351b4c]{cursor:default;color:var(--weilin-prompt-ui-secondary-text)}.token-item.punctuation[data-v-e6351b4c]:hover{transform:none;box-shadow:none;background-color:var(--weilin-prompt-ui-secondary-bg)}.action-item button[data-v-e6351b4c]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color);transform:translateY(-1px)}.action-item button[data-v-e6351b4c]:active{transform:translateY(0)}.action-item[data-v-e6351b4c]{position:relative;z-index:9999}.fade-enter-active[data-v-e6351b4c],.fade-leave-active[data-v-e6351b4c]{transition:opacity .2s ease}.fade-enter-from[data-v-e6351b4c],.fade-leave-to[data-v-e6351b4c]{opacity:0}.settings-btn[data-v-e6351b4c]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:none;border-radius:8px;background:transparent;cursor:pointer;transition:all .2s ease}.settings-btn[data-v-e6351b4c]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.settings-icon[data-v-e6351b4c]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color);transition:transform .3s ease}.settings-btn:hover .settings-icon[data-v-e6351b4c]{transform:rotate(30deg)}.action-text[data-v-e6351b4c]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);white-space:nowrap;margin-top:2px}.language-switch-btn[data-v-e6351b4c]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:none;border-radius:8px;background:transparent;cursor:pointer;transition:all .2s ease}.language-switch-btn:hover .translate-icon[data-v-e6351b4c]{transform:rotate(10deg)}.language-switch-btn[data-v-e6351b4c]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.translate-icon[data-v-e6351b4c]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color)}.action-item[data-v-e6351b4c]:not(:last-child):after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);height:24px;width:1px;background-color:var(--weilin-prompt-ui-border-color);opacity:.5}.settings-btn[data-v-e6351b4c]:active,.tag-manager-btn[data-v-e6351b4c]:active,.language-switch-btn[data-v-e6351b4c]:active{transform:scale(.95)}.tag-manager-btn[data-v-e6351b4c]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 8px;border-radius:8px;background:none;border:none;cursor:pointer;transition:all .2s ease;min-width:48px}.tag-manager-btn:hover .tag-icon[data-v-e6351b4c]{transform:rotate(10deg)}.tag-icon[data-v-e6351b4c]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color)}.tag-manager-btn .action-text[data-v-e6351b4c]{font-size:12px;text-align:center}.tag-manager-container[data-v-e6351b4c]{margin-top:1px}.lora-manager-container[data-v-e6351b4c]{margin-top:1px;padding:6px;box-sizing:border-box;max-height:600px;min-height:200px;overflow:hidden;display:flex;flex-direction:column}.tag-manager-section[data-v-e6351b4c]{margin-top:16px;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;overflow:hidden}.tag-manager-header[data-v-e6351b4c]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .3s ease;background:var(--weilin-prompt-ui-secondary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tag-manager-header[data-v-e6351b4c]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.header-left[data-v-e6351b4c]{display:flex;align-items:center;gap:8px}.tag-icon[data-v-e6351b4c]{width:18px;height:18px;fill:var(--weilin-prompt-ui-icon-color)}.section-title[data-v-e6351b4c]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text)}.header-right[data-v-e6351b4c]{display:flex;align-items:center}.collapse-icon[data-v-e6351b4c]{width:20px;height:20px;fill:var(--weilin-prompt-ui-secondary-text);transition:transform .3s ease}.collapse-icon.is-collapsed[data-v-e6351b4c]{transform:rotate(180deg)}.tag-manager-container[data-v-e6351b4c]{background:var(--weilin-prompt-ui-primary-bg);transition:all .3s ease}.translation-result[data-v-e6351b4c]{display:flex;align-items:center;margin-top:5px;font-size:12px}.translation-result .translate-button[data-v-e6351b4c]{margin-right:5px;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:background-color .3s;font-size:12px}.translation-result button[data-v-e6351b4c]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.translated-text[data-v-e6351b4c]{color:var(--weilin-prompt-ui-primary-text);font-weight:700;font-size:.9em}.token-item-box[data-v-e6351b4c]{display:inline-block;flex-direction:column;padding:3px 6px;background-color:var(--weilin-prompt-ui-token-bg);border-radius:6px;overflow:hidden;color:var(--weilin-prompt-ui-primary-text);transition:all .2s ease;border:1px solid transparent;font-size:14px;line-height:1.5;box-shadow:0 1px 2px var(--weilin-prompt-ui-shadow-color);cursor:grab}.token-item-box[data-v-e6351b4c]:active{cursor:grabbing}.token-item-box[data-v-e6351b4c]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color);border-color:var(--weilin-prompt-ui-border-color);transform:translateY(-1px);box-shadow:0 2px 4px var(--weilin-prompt-ui-shadow-color)}.autocomplete-container[data-v-e6351b4c]{position:absolute;z-index:12000;width:450px;max-height:350px;overflow-y:auto;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;padding:8px 0;margin-top:4px;background-color:var(--weilin-prompt-ui-primary-bg);max-width:calc(100% - 16px)}.autocomplete-container .close-autocomplete-btn[data-v-e6351b4c]{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background-color:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:50%;color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:background-color .2s ease}.autocomplete-container .close-autocomplete-btn[data-v-e6351b4c]:hover{background-color:var(--weilin-prompt-ui-danger-color)}.autocomplete-item[data-v-e6351b4c]{display:flex;flex-direction:row;padding:8px 12px;cursor:pointer;transition:background-color .2s ease;align-items:center}.autocomplete-item[data-v-e6351b4c]:hover{color:var(--weilin-prompt-ui-primary-text);background-color:var(--weilin-prompt-ui-hover-bg-color)}.autocomplete-item.selected[data-v-e6351b4c]{color:var(--weilin-prompt-ui-primary-text);background-color:var(--weilin-prompt-ui-primary-color)}.tag[data-v-e6351b4c]{width:65%;font-weight:500;color:var(--weilin-prompt-ui-primary-text);font-size:14px}.desc[data-v-e6351b4c]{width:35%;padding-left:20px;color:var(--weilin-prompt-ui-primary-text);font-size:14px;box-sizing:border-box}.prompt-input-translate-area[data-v-e6351b4c]{margin-top:10px;width:100%;display:flex;flex-direction:row-reverse}.prompt-input-translate-area-textarea[data-v-e6351b4c]{width:300px;height:45px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-input-bg);border-radius:8px;padding:6px}.prompt-input-translate-area-textarea[data-v-e6351b4c]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.weight-control[data-v-e6351b4c]{display:flex;align-items:center;margin-right:8px}.weight-input[data-v-e6351b4c]{width:50px;padding:4px;margin-right:4px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.weight-label[data-v-e6351b4c]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text)}.bracket-btn[data-v-e6351b4c]{padding:4px 8px;color:var(--weilin-prompt-ui-primary-text)}.translate-btn[data-v-e6351b4c]{padding:4px 8px;margin-right:4px;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:background .2s}.translate-btn[data-v-e6351b4c]:hover{background:var(--weilin-prompt-ui-primary-color-hover);color:#fff}.translate-btn:hover .action-text[data-v-e6351b4c]{color:#fff}.translate-btn:hover .token-item-icon[data-v-e6351b4c],.translate-btn:hover .utils-item-icon[data-v-e6351b4c]{fill:#fff}.bracket-btn-group[data-v-e6351b4c]{display:flex;gap:8px}.bracket-btn-container[data-v-e6351b4c]{display:flex;align-items:center;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px}.vertical-btn-group[data-v-e6351b4c]{display:flex;flex-direction:column;border-left:none}.vertical-btn[data-v-e6351b4c]{padding:2px 4px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;font-size:12px;height:15px;width:15px;transition:background .2s;display:flex;align-items:center;justify-content:center}.vertical-btn[data-v-e6351b4c]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.tag-tips-box[data-v-e6351b4c]{position:fixed;z-index:1000;transform:translate(-50%);background-color:#000c;color:#fff;padding:8px 12px;border-radius:4px;font-size:14px;max-width:300px;box-shadow:0 2px 8px #0003;pointer-events:none}.tag-tips-content[data-v-e6351b4c]{margin:0}.tag-tips-content p[data-v-e6351b4c]{white-space:normal;line-height:1.5}.token-counter[data-v-e6351b4c]{position:absolute;bottom:5px;right:10px;font-size:12px;color:#888;background-color:#ffffffb3;padding:2px 5px;border-radius:3px;pointer-events:none}#weilin_comfyui_tools_prompt_ui_div[data-theme=dark] .token-counter[data-v-e6351b4c]{background-color:#00000080;color:#ccc}.random-tag-btn[data-v-e6351b4c],.random-tag-settings-btn[data-v-e6351b4c]{display:flex;align-items:center;justify-content:center}.random-tag-btn .action-text[data-v-e6351b4c],.random-tag-settings-btn .action-text[data-v-e6351b4c]{margin-left:4px}.utils-item-icon[data-v-e6351b4c]{fill:var(--weilin-prompt-ui-icon-color)}.lora-tag[data-v-e6351b4c]{background-color:#409eff1a!important;border:1px solid rgba(64,158,255,.5)!important;border-radius:4px}.lora-tag-icon[data-v-e6351b4c]{display:flex;align-items:center;justify-content:center;cursor:pointer;margin-right:4px}.lora-tag-icon svg[data-v-e6351b4c]{fill:#a7a8a9}.lora-weight-controls[data-v-e6351b4c]{display:flex;gap:5px;padding:5px;background-color:var(--weilin-prompt-ui-background);border-radius:4px;flex-direction:row;align-items:center}.lora-weight-controls .weight-control[data-v-e6351b4c]{display:flex;align-items:center;gap:5px}.lora-weight-controls .weight-input[data-v-e6351b4c]{width:50px;text-align:center;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:3px;background-color:var(--weilin-prompt-ui-input-background);color:var(--weilin-prompt-ui-primary-text)}.lora-weight-controls .weight-label[data-v-e6351b4c]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text)}.weilin-comfyui-sidebar-toggle-icon[data-v-e6351b4c]{fill:var(--weilin-prompt-ui-icon-color);transition:transform .3s ease;transform:rotate(180deg)}.weilin-comfyui-sidebar-toggle-icon.is-closed[data-v-e6351b4c]{transform:rotate(0)}.weilin-comfyui-selection-actions-content[data-v-e6351b4c]{display:flex;flex-direction:column;align-items:center;width:100%}.weilin-comfyui-selection-actions-count[data-v-e6351b4c]{margin-bottom:8px;font-size:12px;color:var(--weilin-prompt-ui-secondary-text);text-align:center}.weilin-comfyui-selection-actions-buttons[data-v-e6351b4c]{display:flex;gap:4px;padding:4px}.token-item-box-disabled[data-v-e6351b4c]{opacity:.5!important;position:relative;border:1px solid #ff4d4f!important}.token-item-box-disabled[data-v-e6351b4c]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent calc(50% - 1px),#ff4d4f calc(50% - 1px),#ff4d4f calc(50% + 1px),transparent calc(50% + 1px));pointer-events:none;z-index:1}.token-item-box-disabled[data-v-e6351b4c]>*{position:relative;z-index:2}.weilin-comfyui-toolbar-right[data-v-e6351b4c]{margin-left:auto}.token-item-box-selected[data-v-e6351b4c]{border:2px solid #4285f4!important;box-shadow:0 0 8px #4285f455;background-color:#4285f414!important;transition:border-color .2s,box-shadow .2s,background-color .2s;z-index:2}.center-container[data-v-e6351b4c]{display:flex;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;align-items:center;scrollbar-width:thin;margin-bottom:8px}.center-container[data-v-e6351b4c]::-webkit-scrollbar{height:8px}.center-container[data-v-e6351b4c]::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:4px}.center-container[data-v-e6351b4c]::-webkit-scrollbar-track{background:transparent}.line-token-btn[data-v-e6351b4c]{background:transparent;border:none;padding:2px 8px;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;transition:background .2s;font-size:14px}.line-token-btn svg[data-v-e6351b4c]{margin-right:2px;vertical-align:middle;transition:filter .2s}.line-token-btn[data-v-e6351b4c]:hover{background:#e6f7ff5d;box-shadow:0 0 4px #4285f444}.line-token-btn:active svg[data-v-e6351b4c]{filter:brightness(.85)}.weilin-toast[data-v-e6351b4c]{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#000000d9;color:#fff;padding:12px 20px;border-radius:12px;font-size:16px;font-weight:500;line-height:1.4;box-shadow:0 8px 24px #00000040;pointer-events:none;z-index:9999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.weilin-fade-enter-active[data-v-e6351b4c],.weilin-fade-leave-active[data-v-e6351b4c]{transition:opacity .3s ease,transform .3s ease}.weilin-fade-enter-from[data-v-e6351b4c],.weilin-fade-leave-to[data-v-e6351b4c]{opacity:0;transform:translate(-50%,-50%) scale(.9)}.container[data-v-31204146]{margin:0 auto;padding:20px}h1[data-v-31204146]{font-size:28px;text-align:center;color:var(--weilin-prompt-ui-primary-text)}.tab-container[data-v-31204146]{display:flex;justify-content:center;margin-bottom:20px}.tab-button[data-v-31204146]{padding:10px 20px;border:none;border-radius:4px;background-color:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:background-color .3s;margin:0 5px}.tab-button.active[data-v-31204146]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff}.tab-button[data-v-31204146]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.search-container[data-v-31204146]{display:flex;justify-content:space-between;margin-bottom:20px}.search-input[data-v-31204146]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px}.search-input[data-v-31204146]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.history-list[data-v-31204146]{list-style-type:none;padding:0}.history-item[data-v-31204146]{padding:10px;margin:5px 0;background-color:var(--weilin-prompt-ui-token-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;transition:box-shadow .3s}.history-item[data-v-31204146]:hover{box-shadow:0 2px 5px var(--weilin-prompt-ui-hover-bg-color)}.refresh-btn[data-v-31204146]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:all .2s ease;margin-right:10px}.refresh-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.refresh-icon[data-v-31204146]{fill:var(--weilin-prompt-ui-primary-text)}.action-buttons[data-v-31204146]{padding-top:10px;display:flex;gap:8px}.favorite-btn[data-v-31204146],.delete-favorite-btn[data-v-31204146],.use-btn[data-v-31204146]{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:transform .2s;width:25px;height:25px;font-size:20px;display:flex;justify-content:center;align-items:center}.favorite-btn[data-v-31204146]:hover,.delete-favorite-btn[data-v-31204146]:hover,.use-btn[data-v-31204146]:hover{transform:scale(1.1)}.favorite-icon[data-v-31204146],.delete-favorite-icon[data-v-31204146],.use-icon[data-v-31204146]{fill:var(--weilin-prompt-ui-primary-text)}.tag-checkbox[data-v-31204146]{margin-left:3px}.add-his-btn[data-v-31204146],.bulk-delete-btn[data-v-31204146]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:all .2s ease;margin-left:10px}.add-his-btn[data-v-31204146]:hover,.bulk-delete-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.add-icon[data-v-31204146],.bulk-delete-icon[data-v-31204146]{fill:var(--weilin-prompt-ui-primary-text)}.weilin-tools-dialog-overlay[data-v-31204146]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.weilin-tools-dialog-content[data-v-31204146]{background:var(--weilin-prompt-ui-primary-bg);border-radius:8px;min-width:400px;max-width:90%;box-shadow:0 2px 12px #00000026;box-sizing:border-box;z-index:1099}.weilin-tools-dialog-header[data-v-31204146]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.weilin-tools-dialog-header h2[data-v-31204146]{margin:0;font-size:18px;color:var(--primary-text)}.weilin-tools-dialog-body[data-v-31204146]{padding:20px;box-sizing:border-box}.weilin-tools-dialog-footer[data-v-31204146]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color)}.form-group[data-v-31204146]{margin-bottom:16px;box-sizing:border-box;width:100%}.form-group[data-v-31204146]:last-child{margin-bottom:0}.form-group label[data-v-31204146]{display:block;margin-bottom:8px;color:var(--primary-text)}.form-group input[data-v-31204146],.form-group textarea[data-v-31204146]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px;transition:all .3s ease;box-sizing:border-box}.form-group textarea[data-v-31204146]{resize:vertical;min-height:100px}.form-group input[data-v-31204146]:focus,.form-group textarea[data-v-31204146]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color-rgb),.1)}.cancel-btn[data-v-31204146],.confirm-btn[data-v-31204146]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-btn[data-v-31204146]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text)}.confirm-btn[data-v-31204146]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff}.cancel-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.confirm-btn[data-v-31204146]:hover{opacity:.9}.close-btn[data-v-31204146]{border:none;background:none;font-size:20px;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;padding:4px;line-height:1}.close-btn[data-v-31204146]:hover{color:var(--weilin-prompt-ui-primary-text)}.confirm-weilin-tools-dialog[data-v-31204146]{min-width:300px!important;max-width:400px!important;width:90%;box-sizing:border-box}.confirm-message[data-v-31204146]{margin:0;color:var(--weilin-prompt-ui-primary-text);text-align:center}.delete-btn[data-v-31204146]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;background:var(--weilin-prompt-ui-danger-color, #ff4d4f);border:none;color:#fff;transition:all .3s ease}.delete-btn[data-v-31204146]:hover{opacity:.9}.has-delete-action-btn[data-v-31204146]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.has-delete-action-btn[data-v-31204146]:hover{opacity:.9}.cancel-delete-btn[data-v-31204146]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-delete-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin-tools-dialog-overlay[data-v-31204146]{animation:fadeIn-31204146 .2s ease}.weilin-tools-dialog-content[data-v-31204146]{animation:slideIn-31204146 .2s ease;z-index:1099}@keyframes fadeIn-31204146{0%{opacity:0}to{opacity:1}}@keyframes slideIn-31204146{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.color-picker[data-v-31204146]{display:flex;gap:12px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg)}.color-preview[data-v-31204146]{width:48px;height:48px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}.color-controls[data-v-31204146]{flex:1;display:flex;flex-direction:column;gap:8px}.color-input[data-v-31204146]{width:100%;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;cursor:pointer}.alpha-control[data-v-31204146]{display:flex;align-items:center;gap:8px}.alpha-slider[data-v-31204146]{flex:1;height:8px;-webkit-appearance:none;background:linear-gradient(to right,transparent,currentColor);border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color)}.alpha-slider[data-v-31204146]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.alpha-value[data-v-31204146]{min-width:48px;text-align:right;color:var(--weilin-prompt-ui-secondary-text)}.favor-name-box[data-v-31204146]{padding:4px 8px;border-radius:4px;margin-right:8px;display:inline-flex;align-items:center;min-width:40px;height:24px;box-shadow:0 1px 2px #0000001a;width:100%;margin-bottom:10px}.favor-name[data-v-31204146]{font-size:12px;font-weight:500;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.utils_tran_web__content[data-v-3647b8ec]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.drop-zone[data-v-3647b8ec]{width:100%;height:300px;border:2px dashed #ccc;display:flex;justify-content:center;align-items:center;color:#666;font-size:1.2em}.preview-container[data-v-3647b8ec]{display:flex;flex-direction:column;height:100%}.html-preview[data-v-3647b8ec]{flex:1;width:100%;border:1px solid #ccc;margin-bottom:10px}.action-buttons[data-v-3647b8ec]{display:flex;gap:10px}.action-buttons button[data-v-3647b8ec]{padding:8px 16px;background-color:var(--weilin-prompt-ui-primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.action-buttons button[data-v-3647b8ec]:hover{background-color:var(--weilin-prompt-ui-primary-hover)}.weilin_prompt_ui_floating-ball[data-v-728385cf]{cursor:pointer;display:flex;align-items:center;justify-content:center;transform:scale(1);font-size:24px;position:fixed;z-index:99970002999900;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_floating-ball[data-v-728385cf]:hover{box-shadow:0 6px 16px #0000004d}.weilin_prompt_ui_ball-content[data-v-728385cf]{color:#fff;font-size:16px;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_menu-container[data-v-728385cf]{position:absolute;top:-320px;left:50%;max-height:330px;width:120px;transform:translate(-50%);background-color:var(--p-menubar-submenu-background);border:1px solid var(--p-menubar-submenu-border-color);border-radius:8px;box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);padding:8px 0;display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_menu-item[data-v-728385cf]{padding:8px 16px;cursor:pointer;transition:background-color .2s ease;font-size:12px}.weilin_prompt_ui_menu-item[data-v-728385cf]:hover{color:var(--p-menubar-item-focus-color);background-color:var(--p-menubar-item-focus-background)}.ai-chat-window[data-v-5271cf26]{display:flex;height:100%;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text)}.history-sidebar[data-v-5271cf26]{width:250px;border-right:1px solid var(--weilin-prompt-ui-border-color);padding:16px;background:var(--weilin-prompt-ui-secondary-bg)}.new-chat-btn[data-v-5271cf26]{width:100%;padding:8px 16px;margin-bottom:16px;background:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .3s ease}.new-chat-btn[data-v-5271cf26]:hover{background:var(--weilin-prompt-ui-primary-color-hover)}.history-list[data-v-5271cf26]{overflow-y:auto;height:calc(100% - 60px)}.history-item[data-v-5271cf26]{position:relative;padding:8px 12px;margin-bottom:8px;border-radius:4px;cursor:pointer;background:var(--weilin-prompt-ui-secondary-bg);transition:background .3s ease}.history-item[data-v-5271cf26]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.history-item.active[data-v-5271cf26]{background:var(--weilin-prompt-ui-primary-color);color:#fff}.rename-input[data-v-5271cf26]{width:100%;padding:4px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.item-actions[data-v-5271cf26]{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:none}.history-item:hover .item-actions[data-v-5271cf26]{display:flex;gap:4px}.rename-btn[data-v-5271cf26],.delete-btn[data-v-5271cf26]{background:none;border:none;padding:4px;cursor:pointer;color:var(--weilin-prompt-ui-secondary-text);transition:color .2s}.rename-btn[data-v-5271cf26]:hover,.delete-btn[data-v-5271cf26]:hover{color:var(--weilin-prompt-ui-warning-color)}.chat-main[data-v-5271cf26]{flex:1;display:flex;flex-direction:column;padding:16px}.message-list[data-v-5271cf26]{flex:1;overflow-y:auto;margin-bottom:16px}.message[data-v-5271cf26]{margin-bottom:16px;padding:12px 16px;border-radius:8px;max-width:80%;width:fit-content}.message.user[data-v-5271cf26]{margin-left:auto;background:var(--weilin-prompt-ui-primary-color);color:#fff}.message.assistant[data-v-5271cf26]{margin-right:auto;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color)}.message-content pre[data-v-5271cf26]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:inherit}.input-area[data-v-5271cf26]{display:flex;gap:8px;padding:16px;background:var(--weilin-prompt-ui-secondary-bg);border-radius:8px}.ai-chat-textarea[data-v-5271cf26]{flex:1;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);resize:none}.ai-chat-btn[data-v-5271cf26]{padding:12px 24px;background:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .3s ease}.ai-chat-btn[data-v-5271cf26]:hover{background:var(--weilin-prompt-ui-primary-color-hover)}.ai-chat-btn[data-v-5271cf26]:disabled{background:var(--weilin-prompt-ui-secondary-bg);cursor:not-allowed;opacity:.7}.weilin_prompt_ui_lora-stack[data-v-43ee045e]{top:0;left:0;height:100%;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease;width:100%;overflow:hidden;box-sizing:border-box}.weilin_prompt_ui_lora-content[data-v-43ee045e]{width:100%;height:100%;display:flex;flex-direction:column;margin-left:0}.weilin_prompt_ui_lora-header[data-v-43ee045e]{padding:8px 16px;border-bottom:1px solid var(--weilin-prompt-ui-border-color);display:flex;justify-content:space-between;align-items:center;background:var(--weilin-prompt-ui-secondary-bg);border-top-right-radius:8px;border-top-left-radius:8px}.weilin_prompt_ui_lora-header h3[data-v-43ee045e]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-43ee045e]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_close-btn[data-v-43ee045e]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_close-btn svg[data-v-43ee045e]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-body[data-v-43ee045e]{flex:1;overflow-y:auto}.weilin_prompt_ui_lora-list[data-v-43ee045e]{display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_lora-title[data-v-43ee045e]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weilin_prompt_ui_add-btn[data-v-43ee045e]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_add-btn[data-v-43ee045e]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_add-btn svg[data-v-43ee045e]{fill:var(--weilin-prompt-ui-secondary-text)}.lora-item[data-v-43ee045e]{background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;margin-bottom:12px;overflow:hidden;transition:all .3s ease}.lora-item[data-v-43ee045e]:hover{border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color)}.lora-info[data-v-43ee045e]{display:flex;flex-direction:column;width:100%}.lora-header[data-v-43ee045e]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-primary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.lora-name[data-v-43ee045e]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.lora-weights[data-v-43ee045e]{padding:12px;background:var(--weilin-prompt-ui-secondary-bg);display:flex;flex-direction:column;gap:8px}.weight-item[data-v-43ee045e]{display:flex;align-items:center;gap:8px}.center-box[data-v-43ee045e]{width:100%;display:flex;justify-content:center;align-items:center}.text-label[data-v-43ee045e]{color:var(--weilin-prompt-ui-primary-text);width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.weight-item label[data-v-43ee045e]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);min-width:60px}.lora-weight[data-v-43ee045e]{flex:1;width:100%;padding:6px 8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:13px;transition:all .3s ease}.lora-weight[data-v-43ee045e]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.lora-weight[data-v-43ee045e]:focus{border-color:var(--weilin-prompt-ui-primary-color);outline:none;box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.open-button[data-v-43ee045e]{width:fit-content;padding:4px;background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s;font-size:14px}.open-button[data-v-43ee045e]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.cloud-manager[data-v-026f0961]{padding:16px}.file-list[data-v-026f0961]{max-height:500px}.file-item[data-v-026f0961]{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #eee}.file-info[data-v-026f0961]{display:flex;flex-direction:column}.file-name[data-v-026f0961]{font-weight:700}.file-type[data-v-026f0961]{color:#666;font-size:.8em}.open-btn[data-v-026f0961]{padding:4px 8px;background:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);border:none;border-radius:4px;cursor:pointer}.refresh-btn[data-v-026f0961]{background:none;border:none;cursor:pointer;padding:4px}.toolbar[data-v-026f0961]{display:flex;gap:8px;margin-bottom:16px}.database-btn[data-v-026f0961]{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-primary-text);border-radius:4px;cursor:pointer;color:var(--text-color)}.database-btn[data-v-026f0961]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.tag-icon[data-v-026f0961]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color)}.current-path[data-v-026f0961]{margin-left:auto;padding:4px 8px;background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:4px;color:var(--weilin-prompt-ui-primary-text)}.back-btn[data-v-026f0961]{display:flex;align-items:center;gap:4px;padding:8px;width:100%;background-color:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;color:var(--weilin-prompt-ui-primary-text);cursor:pointer;margin-bottom:8px}.back-btn[data-v-026f0961]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.file-actions[data-v-026f0961]{display:flex;gap:8px}.install-container[data-v-026f0961]{display:flex;align-items:center}.installed-badge[data-v-026f0961]{padding:4px 8px;background-color:var(--weilin-prompt-ui-success-color, #4caf50);color:#fff;border-radius:4px;font-size:.8em}.install-btn[data-v-026f0961]{padding:4px 8px;background:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer}.install-btn[data-v-026f0961]:hover{opacity:.9}.weilin_prompt_ui_lora-stack[data-v-c2ab38ea]{height:100%;width:100%;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease;overflow:hidden;box-sizing:border-box}.weilin_prompt_ui_lora-content[data-v-c2ab38ea]{width:100%;height:100%;display:flex;flex-direction:column;margin-left:0}.weilin_prompt_ui_lora-header[data-v-c2ab38ea]{padding:8px 16px;border-bottom:1px solid var(--weilin-prompt-ui-border-color);display:flex;justify-content:flex-end;align-items:center;border-top-right-radius:8px;border-top-left-radius:8px}.weilin_prompt_ui_lora-header h3[data-v-c2ab38ea]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-c2ab38ea]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_close-btn[data-v-c2ab38ea]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_close-btn svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-body[data-v-c2ab38ea]{flex:1;overflow-y:auto;padding:16px}.weilin_prompt_ui_lora-list[data-v-c2ab38ea]{display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_lora-title[data-v-c2ab38ea]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions[data-v-c2ab38ea]{display:flex;gap:8px;align-items:center}.weilin_prompt_ui_add-btn[data-v-c2ab38ea]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_add-btn[data-v-c2ab38ea]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_add-btn svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-secondary-text)}.lora-item[data-v-c2ab38ea]{background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;margin-bottom:12px;overflow:hidden;transition:all .3s ease}.lora-item[data-v-c2ab38ea]:hover{border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color)}.lora-info[data-v-c2ab38ea]{display:flex;flex-direction:column;width:100%}.hidden-lora[data-v-c2ab38ea]{background:#ffc8c833!important;border-color:#ff969680!important}.lora-header[data-v-c2ab38ea]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-primary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.lora-name[data-v-c2ab38ea]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.lora-actions[data-v-c2ab38ea]{display:flex;align-items:center;gap:8px}.lora-weights-row[data-v-c2ab38ea]{display:flex;flex-direction:row;gap:5px;align-items:flex-end;padding:12px;background:var(--weilin-prompt-ui-secondary-bg)}.weight-item-col[data-v-c2ab38ea]{display:flex;flex-direction:column;gap:2px;width:60px}.weight-item-col label[data-v-c2ab38ea]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.switch-item-col[data-v-c2ab38ea]{display:flex;flex-direction:column;align-items:center;gap:2px}.switch-item-col label[data-v-c2ab38ea]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.lora-weight[data-v-c2ab38ea]{flex:1;width:100%;padding:4px 6px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:12px;transition:all .3s ease}.lora-weight[data-v-c2ab38ea]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.lora-weight[data-v-c2ab38ea]:focus{border-color:var(--weilin-prompt-ui-primary-color);outline:none;box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.remove-btn[data-v-c2ab38ea],.look-on-btn[data-v-c2ab38ea]{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:all .3s ease}.remove-btn[data-v-c2ab38ea]:hover,.look-on-btn[data-v-c2ab38ea]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.remove-btn svg[data-v-c2ab38ea],.look-on-btn svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-secondary-text)}.remove-btn:hover svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-danger-color)}.look-on-btn:hover svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-primary-color)}.switch-item[data-v-c2ab38ea]{display:flex;align-items:center;gap:6px}.switch[data-v-c2ab38ea]{position:relative;display:inline-block;width:36px;height:20px}.switch input[data-v-c2ab38ea]{opacity:0;width:0;height:0}.switch input:checked+.slider[data-v-c2ab38ea]:before{transform:translate(16px)}.slider[data-v-c2ab38ea]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:20px}.slider[data-v-c2ab38ea]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}.switch input:checked+.slider[data-v-c2ab38ea]{background-color:var(--weilin-prompt-ui-primary-color)}.settings-content[data-v-d9630f57]{display:flex;flex-direction:column;min-width:600px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);padding-bottom:20px;box-sizing:border-box;z-index:1099}input[data-v-d9630f57]{padding:8px;margin-right:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}input[data-v-d9630f57]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}button[data-v-d9630f57]{padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}button[data-v-d9630f57]:hover{background-color:#1976d2}button[data-v-d9630f57]:disabled{background-color:#8d8f91}.data-container[data-v-d9630f57]{margin-top:24px;padding:16px;color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:4px;height:500px}.tag-group-container[data-v-d9630f57]{height:430px;overflow-y:auto}h3[data-v-d9630f57],h4[data-v-d9630f57]{margin:8px 0;text-align:center}p[data-v-d9630f57]{margin:4px 0;text-align:center}.loading-overlay[data-v-d9630f57]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.loading-spinner[data-v-d9630f57]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin-d9630f57 1s linear infinite}@keyframes spin-d9630f57{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.info-links[data-v-d9630f57]{margin-bottom:16px;padding:12px;background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;border:1px solid var(--weilin-prompt-ui-border-color)}.info-link-item[data-v-d9630f57]{display:flex;align-items:center;margin:6px 0;font-size:14px}.info-link-label[data-v-d9630f57]{color:var(--weilin-prompt-ui-secondary-text);min-width:80px;font-weight:500}.info-link[data-v-d9630f57]{color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:color .2s}.info-link[data-v-d9630f57]:hover{color:var(--weilin-prompt-ui-primary-color-hover);text-decoration:underline}.danbooru-manager[data-v-f19f168a]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.title[data-v-f19f168a]{margin:0 0 20px;padding:10px 0;text-align:center;border-bottom:1px solid var(--weilin-prompt-ui-border-color, #ddd);color:var(--weilin-prompt-ui-primary-text, #333)}.action-bar[data-v-f19f168a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.search-box[data-v-f19f168a]{display:flex;flex:1;margin-right:10px}.search-box input[data-v-f19f168a]{flex:1;padding:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.search-btn[data-v-f19f168a],.add-btn[data-v-f19f168a],.page-btn[data-v-f19f168a]{padding:8px 16px;border:none;border-radius:4px;background-color:var(--weilin-prompt-ui-primary-color, #409eff);color:#fff;cursor:pointer;margin-left:10px}.search-btn[data-v-f19f168a]:hover,.add-btn[data-v-f19f168a]:hover,.page-btn[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover, #66b1ff)}.search-btn[data-v-f19f168a]:disabled,.page-btn[data-v-f19f168a]:disabled{background-color:var(--weilin-prompt-ui-disabled-color, #a0cfff);cursor:not-allowed}.pagination[data-v-f19f168a]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;gap:15px;flex-wrap:wrap}.page-info[data-v-f19f168a]{margin:0 15px;color:var(--weilin-prompt-ui-primary-text, #333)}.page-size-control[data-v-f19f168a]{display:flex;align-items:center;gap:5px;color:var(--weilin-prompt-ui-primary-text, #333)}.page-size-input[data-v-f19f168a]{width:80px;padding:4px 8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);text-align:center}.tag-list[data-v-f19f168a]{flex:1;overflow-y:auto;border:1px solid var(--weilin-prompt-ui-border-color, #ddd);border-radius:4px}table[data-v-f19f168a]{width:100%;border-collapse:collapse}th[data-v-f19f168a],td[data-v-f19f168a]{padding:12px 15px;text-align:left;border-bottom:1px solid var(--weilin-prompt-ui-border-color, #ddd);color:var(--weilin-prompt-ui-primary-text)}th[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-background-secondary, #f5f7fa);color:var(--weilin-prompt-ui-primary-text, #333);font-weight:700;position:sticky;top:0;z-index:10}.id-column[data-v-f19f168a]{width:60px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.tag-column[data-v-f19f168a],.translate-column[data-v-f19f168a]{width:20%;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.color-column[data-v-f19f168a]{width:120px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.hot-column[data-v-f19f168a]{width:80px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.aliases-column[data-v-f19f168a]{width:100px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.control-column[data-v-f19f168a]{width:160px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.checkbox-column[data-v-f19f168a]{width:50px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.checkbox-column input[type=checkbox][data-v-f19f168a]{margin:0;width:auto}tr[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-input-bg, #f5f7fa)}.color-box[data-v-f19f168a]{width:20px;height:20px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color, #ddd)}.edit-btn[data-v-f19f168a],.delete-btn[data-v-f19f168a]{padding:6px 12px;border:none;border-radius:4px;cursor:pointer}.edit-btn[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-warning-color, #e6a23c);color:#fff}.delete-btn[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-danger-color, #f56c6c);color:#fff}.edit-btn[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-warning-color-hover, #ebb563)}.delete-btn[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-danger-color-hover, #f78989)}.no-results[data-v-f19f168a]{padding:20px;text-align:center;color:var(--weilin-prompt-ui-secondary-text, #909399);font-style:italic}.weilin-tools-dialog[data-v-f19f168a]{position:fixed;display:flex;justify-content:center;align-items:center;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:10099}.weilin-tools-dialog-content[data-v-f19f168a]{padding:20px;width:400px;max-width:90%;background-color:var(--weilin-prompt-ui-primary-bg, #fff);border-radius:8px;box-shadow:0 2px 12px #0000001a;z-index:10100}.weilin-tools-dialog h3[data-v-f19f168a]{margin-top:0;margin-bottom:20px;color:var(--weilin-prompt-ui-primary-text, #333)}.form-group[data-v-f19f168a]{margin-bottom:15px}.form-group label[data-v-f19f168a]{display:block;margin-bottom:5px;color:var(--weilin-prompt-ui-primary-text, #333)}.form-group input[data-v-f19f168a],.form-group select[data-v-f19f168a]{width:100%;padding:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.color-preview[data-v-f19f168a]{width:30px;height:30px;margin-top:5px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color, #ddd)}.weilin-tools-dialog-actions[data-v-f19f168a]{display:flex;justify-content:flex-end;margin-top:20px}.weilin-tools-dialog-actions button[data-v-f19f168a]{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;margin-left:10px}.weilin-tools-dialog-actions button[data-v-f19f168a]:first-child{background-color:var(--weilin-prompt-ui-cancel-color, #909399);color:#fff}.weilin-tools-dialog-actions button[data-v-f19f168a]:last-child{background-color:var(--weilin-prompt-ui-primary-color, #409eff);color:#fff}.overlay[data-v-f19f168a]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:1000}input[data-v-f19f168a]{padding:8px;margin-right:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}input[data-v-f19f168a]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.batch-delete-btn[data-v-f19f168a]{padding:8px 16px;border:none;border-radius:4px;background-color:var(--weilin-prompt-ui-danger-color, #f56c6c);color:#fff;cursor:pointer;transition:all .3s}.batch-delete-btn[data-v-f19f168a]:hover:not(.disabled){background-color:var(--weilin-prompt-ui-danger-color-hover, #f78989)}.batch-delete-btn.disabled[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-disabled-color, #a0cfff);cursor:not-allowed;opacity:.6}.main-container[data-v-b041d233]{width:100%;height:100%}[data-v-b041d233] .dialog-overlay{z-index:9999!important}.version-update-notification[data-v-b041d233]{position:fixed;right:10px;bottom:10px;z-index:9999;background-color:var(--primary-color, #4caf50);color:#fff;padding:10px 15px;border-radius:4px;box-shadow:0 2px 8px #0003;max-width:350px;animation:slideIn-b041d233 .3s ease-out}.version-update-content[data-v-b041d233]{display:flex;flex-direction:column}.version-update-actions[data-v-b041d233]{display:flex;justify-content:flex-end;margin-top:10px}.goto-github-btn[data-v-b041d233]{background-color:#fff;color:var(--primary-color, #4caf50);border:none;border-radius:4px;padding:5px 10px;margin-right:10px;cursor:pointer;font-weight:700}.close-version-update[data-v-b041d233]{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0 5px}@keyframes slideIn-b041d233{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.no-remind-btn[data-v-b041d233]{background-color:#fffc;color:var(--primary-color, #4caf50);border:none;border-radius:4px;padding:5px 10px;margin-right:10px;cursor:pointer;font-weight:700;transition:background-color .2s ease}.no-remind-btn[data-v-b041d233]:hover{background-color:#ffffffe6}.version-update-actions[data-v-b041d233]{display:flex;justify-content:flex-end;margin-top:10px;gap:5px}#weilin_comfyui_tools_prompt_ui_div{--weilin-prompt-ui-primary-bg: #ffffff;--weilin-prompt-ui-secondary-bg: #f5f5f5;--weilin-prompt-ui-primary-text: #333333;--weilin-prompt-ui-secondary-text: #666666;--weilin-prompt-ui-border-color: #e8e8e8;--weilin-prompt-ui-hover-bg-color: rgba(0, 0, 0, .1);--weilin-prompt-ui-icon-color: #666666;--weilin-prompt-ui-input-bg: #ffffff;--weilin-prompt-ui-token-bg: #f0f0f0;--weilin-prompt-ui-shadow-color: rgba(0, 0, 0, .1);--weilin-prompt-ui-scrollbar-track: #f5f5f5;--weilin-prompt-ui-scrollbar-thumb: #d9d9d9;--weilin-prompt-ui-scrollbar-thumb-hover: #bfbfbf;--weilin-prompt-ui-tag-hover: #e6f7ff;--weilin-prompt-ui-primary-color: #1890ff;--weilin-prompt-ui-color-picker-bg: var(--weilin-prompt-ui-secondary-bg);--weilin-prompt-ui-color-picker-border: var(--weilin-prompt-ui-border-color);--weilin-prompt-ui-color-preview-size: 48px;--weilin-prompt-ui-color-input-height: 32px;--weilin-prompt-ui-slider-height: 8px;--weilin-prompt-ui-slider-thumb-size: 16px;--weilin-prompt-ui-danger-color: #ff4d4f;--weilin-prompt-ui-danger-color-hover: #ff7875;--weilin-prompt-ui-success-color: #52c41a;--weilin-prompt-ui-warning-color: #faad14;--weilin-prompt-ui-checkerboard-size: 10px;--weilin-prompt-ui-checkerboard-color: #ccc;--weilin-prompt-ui-button-bg: #ffffff;--weilin-prompt-ui-button-text: #333333;--weilin-prompt-ui-button-hover: #f5f5f5;--weilin-prompt-ui-input-text: #333333;--weilin-prompt-ui-tag-bg: #f5f5f5;--weilin-prompt-ui-tag-text: #333333;--weilin-prompt-ui-header-bg: #f5f5f5;--weilin-prompt-ui-primary-color-hover: #40a9ff;--weilin-prompt-ui-gradient-bg: linear-gradient(135deg, #f8fafc 0%, #e3eafc 100%);--weilin-prompt-ui-gradient-primary: linear-gradient(90deg, #6a11cb 0%, #2575fc 100%);--weilin-prompt-ui-gradient-primary-hover: linear-gradient(90deg, #2575fc 0%, #6a11cb 100%);--weilin-prompt-ui-card-bg: #f4f7fd;--weilin-prompt-ui-card-shadow: 0 2px 12px 0 rgba(80, 120, 200, .08);--weilin-prompt-ui-box-shadow: 0 6px 32px 0 rgba(80, 120, 200, .12);--weilin-prompt-ui-border-radius: 12px;--weilin-prompt-ui-title-color: #2a3a5a;--weilin-prompt-ui-label-color: #2a3a5a;--weilin-prompt-ui-input-bg: #fff;--weilin-prompt-ui-input-border: #b3c2e0;--weilin-prompt-ui-input-focus: #2575fc;--weilin-prompt-ui-btn-bg: #1890ff;--weilin-prompt-ui-btn-bg-hover: #1762b6;--weilin-prompt-ui-btn-text: #fff;--weilin-prompt-ui-btn-shadow: 0 2px 8px 0 rgba(24, 144, 255, .12);--weilin-prompt-ui-btn-gradient: #1890ff;--weilin-prompt-ui-btn-gradient-hover: #1762b6;--weilin-prompt-ui-btn-gradient-text: #fff}#weilin_comfyui_tools_prompt_ui_div[data-theme=dark]{--weilin-prompt-ui-primary-bg: #1a1a1a;--weilin-prompt-ui-secondary-bg: #2d2d2d;--weilin-prompt-ui-primary-text: #e0e0e0;--weilin-prompt-ui-secondary-text: #a0a0a0;--weilin-prompt-ui-border-color: #404040;--weilin-prompt-ui-hover-bg-color: rgba(255, 255, 255, .1);--weilin-prompt-ui-icon-color: #a0a0a0;--weilin-prompt-ui-token-bg: #404040;--weilin-prompt-ui-shadow-color: rgba(0, 0, 0, .3);--weilin-prompt-ui-scrollbar-track: #dfdfdf;--weilin-prompt-ui-scrollbar-thumb: #404040;--weilin-prompt-ui-scrollbar-thumb-hover: #505050;--weilin-prompt-ui-tag-hover: #111d2c;--weilin-prompt-ui-primary-color: #40a9ff;--weilin-prompt-ui-checkerboard-color: #404040;--weilin-prompt-ui-danger-color: #ff7875;--weilin-prompt-ui-danger-color-hover: #ffa39e;--weilin-prompt-ui-success-color: #73d13d;--weilin-prompt-ui-warning-color: #ffc53d;--weilin-prompt-ui-button-bg: #2d2d2d;--weilin-prompt-ui-button-text: #e0e0e0;--weilin-prompt-ui-button-hover: #404040;--weilin-prompt-ui-input-text: #e0e0e0;--weilin-prompt-ui-tag-bg: #2d2d2d;--weilin-prompt-ui-tag-text: #e0e0e0;--weilin-prompt-ui-header-bg: #2d2d2d;--weilin-prompt-ui-primary-color-hover: #69b3ff;--weilin-prompt-ui-gradient-bg: linear-gradient(135deg, #23243a 0%, #1a1a1a 100%);--weilin-prompt-ui-gradient-primary: linear-gradient(90deg, #2575fc 0%, #6a11cb 100%);--weilin-prompt-ui-gradient-primary-hover: linear-gradient(90deg, #6a11cb 0%, #2575fc 100%);--weilin-prompt-ui-card-bg: #23243a;--weilin-prompt-ui-card-shadow: 0 2px 12px 0 rgba(40, 60, 120, .18);--weilin-prompt-ui-box-shadow: 0 6px 32px 0 rgba(40, 60, 120, .22);--weilin-prompt-ui-border-radius: 12px;--weilin-prompt-ui-title-color: #e0e0e0;--weilin-prompt-ui-label-color: #e0e0e0;--weilin-prompt-ui-input-bg: #2d2d2d;--weilin-prompt-ui-input-border: #505070;--weilin-prompt-ui-input-focus: #69b3ff;--weilin-prompt-ui-btn-bg: #144077;--weilin-prompt-ui-btn-bg-hover: #1762b6;--weilin-prompt-ui-btn-text: #fff;--weilin-prompt-ui-btn-shadow: 0 2px 8px 0 rgba(20, 64, 119, .18);--weilin-prompt-ui-btn-gradient: #144077;--weilin-prompt-ui-btn-gradient-hover: #1762b6;--weilin-prompt-ui-btn-gradient-text: #fff}#weilin_comfyui_tools_prompt_ui_div .color-picker{background:var(--weilin-prompt-ui-color-picker-bg);border:1px solid var(--weilin-prompt-ui-color-picker-border);border-radius:4px;padding:12px}#weilin_comfyui_tools_prompt_ui_div .color-preview{width:var(--weilin-prompt-ui-color-preview-size);height:var(--weilin-prompt-ui-color-preview-size);border-radius:4px;border:1px solid var(--weilin-prompt-ui-color-picker-border);background-image:linear-gradient(45deg,var(--weilin-prompt-ui-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--weilin-prompt-ui-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--weilin-prompt-ui-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--weilin-prompt-ui-checkerboard-color) 75%);background-size:var(--weilin-prompt-ui-checkerboard-size) var(--weilin-prompt-ui-checkerboard-size);background-position:0 0,0 5px,5px -5px,-5px 0px}#weilin_comfyui_tools_prompt_ui_div input[type=range]{-webkit-appearance:none;width:100%;height:var(--weilin-prompt-ui-slider-height);border-radius:calc(var(--weilin-prompt-ui-slider-height) / 2);background:var(--weilin-prompt-ui-secondary-bg);outline:none;border:1px solid var(--weilin-prompt-ui-border-color)}#weilin_comfyui_tools_prompt_ui_div input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:var(--weilin-prompt-ui-slider-thumb-size);height:var(--weilin-prompt-ui-slider-thumb-size);border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px var(--weilin-prompt-ui-shadow-color)}#weilin_comfyui_tools_prompt_ui_div input[type=range]::-moz-range-thumb{width:var(--weilin-prompt-ui-slider-thumb-size);height:var(--weilin-prompt-ui-slider-thumb-size);border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px var(--weilin-prompt-ui-shadow-color)}#weilin_comfyui_tools_prompt_ui_div input[type=color]{-webkit-appearance:none;border:none;padding:0;width:100%;height:var(--weilin-prompt-ui-color-input-height)}#weilin_comfyui_tools_prompt_ui_div input[type=color]::-webkit-color-swatch-wrapper{padding:0}#weilin_comfyui_tools_prompt_ui_div input[type=color]::-webkit-color-swatch{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px}#weilin_comfyui_tools_prompt_ui_div .add-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}#weilin_comfyui_tools_prompt_ui_div .add-btn:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}#weilin_comfyui_tools_prompt_ui_div .add-btn:disabled{opacity:.5;cursor:not-allowed;background-color:var(--weilin-prompt-ui-secondary-bg)}#weilin_comfyui_tools_prompt_ui_div .add-btn .plus-icon{font-size:18px;line-height:1}#weilin_comfyui_tools_prompt_ui_div .add-tab{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}#weilin_comfyui_tools_prompt_ui_div .add-tab:hover{border-color:var(--weilin-prompt-ui-primary-color);color:var(--weilin-prompt-ui-primary-color)}#weilin_comfyui_tools_prompt_ui_div .add-tab .plus-icon{font-size:18px;line-height:1}.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px #00000026;border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;white-space:nowrap;color:#525252;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;white-space:nowrap;color:#fff;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-light .jv-button,.jv-container.jv-dark .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111}.jv-container.jv-dark .jv-item.jv-array{color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:initial!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url(./icon.svg);background-repeat:no-repeat;background-size:contain;background-position:center center;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(to bottom,#0000 20%,#e6e6e64d);transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(to bottom,#0000 20%,#e6e6e64d)}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-array:last-of-type,.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-object:last-of-type{margin-left:12px}.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-array:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-object:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-node:last-of-type{margin-left:0}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px} +.weilin_prompt_ui_draggable-window[data-v-5d02be5b]{position:absolute;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;box-shadow:0 2px 12px #0000001a;overflow:hidden;display:flex;flex-direction:column;z-index:100}.weilin_prompt_ui_window-header[data-v-5d02be5b]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-secondary-bg);cursor:move;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_window-title[data-v-5d02be5b]{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;margin-right:8px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-5d02be5b]{border:none;background:none;font-size:20px;cursor:pointer;padding:0 4px;color:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_close-btn[data-v-5d02be5b]:hover{color:#ff4d4f}.weilin_prompt_ui_window-content[data-v-5d02be5b]{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px;background:var(--weilin-prompt-ui-primary-bg)}.weilin_prompt_ui_resize-handle[data-v-5d02be5b]{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:se-resize;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_resize-handle[data-v-5d02be5b]:after{content:"";position:absolute;right:7px;bottom:4px;width:8px;height:8px;border-right:2px solid #999;border-bottom:2px solid #999}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.weilin_prompt_ui_window-content[data-v-5d02be5b]::-webkit-scrollbar-thumb:hover{background:#555}.pop-message[data-v-ccb6bb2b]{display:flex;align-items:center;padding:16px 24px;border-radius:8px;position:fixed;top:30px;left:50%;transform:translate(-50%);z-index:999700029999000;transition:opacity .5s ease,transform .5s ease;opacity:1;transform:translateY(0);box-shadow:0 4px 12px #0000001a}.pop-message.success[data-v-ccb6bb2b]{background-color:#67c23a;color:#fff}.pop-message.warn[data-v-ccb6bb2b]{background-color:#e6a23c;color:#fff}.pop-message.error[data-v-ccb6bb2b]{background-color:#f56c6c;color:#fff}.icon[data-v-ccb6bb2b]{margin-right:12px;font-size:20px}.text[data-v-ccb6bb2b]{flex:1;font-size:16px}.language-selector[data-v-1a0e3baa]{min-width:140px;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);z-index:1000}.language-selector-content[data-v-1a0e3baa]{padding:4px}.language-option[data-v-1a0e3baa]{padding:8px 16px;cursor:pointer;transition:all .2s ease;border-radius:4px;color:var(--weilin-prompt-ui-primary-text);font-size:14px;display:flex;align-items:center;white-space:nowrap}.language-option[data-v-1a0e3baa]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.language-option.active[data-v-1a0e3baa]{color:var(--weilin-prompt-ui-primary-color);background-color:var(--weilin-prompt-ui-hover-bg-color);font-weight:500}.lang-name[data-v-1a0e3baa]{display:block}.weilin_prompt_ui_dialog-overlay[data-v-d2e9c495]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000002e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:1000}.weilin_prompt_ui_dialog[data-v-d2e9c495]{background:var(--weilin-prompt-ui-primary-bg);border-radius:20px;box-shadow:0 8px 32px var(--weilin-prompt-ui-shadow-color);margin:0;position:relative;overflow:hidden;border:none;display:flex;flex-direction:column;min-width:400px;width:70%;max-width:70%;min-height:200px;max-height:75vh}.weilin_prompt_ui_dialog-header[data-v-d2e9c495]{padding:20px 28px 12px;border-bottom:none;display:flex;justify-content:space-between;align-items:center;background:transparent}.weilin_prompt_ui_dialog-title[data-v-d2e9c495]{margin:0;font-size:18px;color:var(--weilin-prompt-ui-title-color);font-weight:700;letter-spacing:.01em}.weilin_prompt_ui_dialog-close[data-v-d2e9c495]{border:none;background:none;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s;padding:0}.weilin_prompt_ui_dialog-close[data-v-d2e9c495]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_dialog-close svg[data-v-d2e9c495]{fill:var(--weilin-prompt-ui-secondary-text);transition:fill .2s}.weilin_prompt_ui_dialog-close:hover svg[data-v-d2e9c495]{fill:var(--weilin-prompt-ui-danger-color)}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]{padding:0 28px 20px;color:var(--weilin-prompt-ui-primary-text);overflow-y:auto;flex:1;line-height:1.7;font-size:15px;max-height:calc(75vh - 120px)}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px;transition:background .2s}.weilin_prompt_ui_dialog-content[data-v-d2e9c495]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin_prompt_ui_dialog-footer[data-v-d2e9c495]{padding:16px 28px;border-top:none;display:flex;justify-content:flex-end;gap:12px;background:transparent;margin-top:auto}.weilin_prompt_ui_dialog-fade-enter-active[data-v-d2e9c495],.weilin_prompt_ui_dialog-fade-leave-active[data-v-d2e9c495]{transition:opacity .25s}.weilin_prompt_ui_dialog-fade-enter-from[data-v-d2e9c495],.weilin_prompt_ui_dialog-fade-leave-to[data-v-d2e9c495]{opacity:0}.weilin_prompt_ui_dialog-slide-enter-active[data-v-d2e9c495]{transition:all .25s cubic-bezier(.4,0,.2,1)}.weilin_prompt_ui_dialog-slide-leave-active[data-v-d2e9c495]{transition:all .18s cubic-bezier(.4,0,.2,1)}.weilin_prompt_ui_dialog-slide-enter-from[data-v-d2e9c495]{opacity:0;transform:translateY(-16px) scale(.98)}.weilin_prompt_ui_dialog-slide-leave-to[data-v-d2e9c495]{opacity:0;transform:translateY(16px) scale(.98)}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]{padding:8px 22px;border-radius:10px;border:none;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;cursor:pointer;font-size:15px;font-weight:500;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]:last-child{background:var(--weilin-prompt-ui-btn-gradient);color:#fff}.weilin_prompt_ui_dialog-footer button[data-v-d2e9c495-s]:last-child:hover{background:var(--weilin-prompt-ui-btn-gradient-hover);color:#fff}.ai-server-setting-panel[data-v-731441c6]{display:flex;flex-direction:column;gap:0;padding:0;border-radius:12px;box-shadow:none}.weilin-comfyui-setting-item[data-v-731441c6]{margin-bottom:18px;background:var(--weilin-prompt-ui-card-bg);border-radius:8px;padding:12px 18px;box-shadow:0 1px 4px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-setting-item label[data-v-731441c6]{display:block;margin-bottom:8px;font-weight:500;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-setting-item select[data-v-731441c6],.weilin-comfyui-setting-item input[type=number][data-v-731441c6],.weilin-comfyui-setting-item input[type=text][data-v-731441c6]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);font-size:15px;transition:border-color .2s}.weilin-comfyui-setting-item select[data-v-731441c6]:focus,.weilin-comfyui-setting-item input[data-v-731441c6]:focus{border-color:var(--weilin-prompt-ui-input-focus);outline:none}.weilin-comfyui-save-button[data-v-731441c6],.weilin-comfyui-install-button[data-v-731441c6]{width:100%;padding:12px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;margin-top:8px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-save-button[data-v-731441c6]:hover,.weilin-comfyui-install-button[data-v-731441c6]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-setting-small-titile[data-v-731441c6]{font-size:16px;font-weight:600;color:var(--weilin-prompt-ui-title-color);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--weilin-prompt-ui-card-border)}.weilin-comfyui-translater-setting-box[data-v-731441c6]{margin-top:20px;padding:16px;background:var(--weilin-prompt-ui-card-bg);border-radius:10px;border:1px solid var(--weilin-prompt-ui-card-border);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors[data-v-731441c6]{display:flex;gap:16px;margin:12px 0}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors .weilin-comfyui-setting-item[data-v-731441c6]{flex:1}.weilin-comfyui-settings-content[data-v-d84f82b1]{display:flex;min-width:700px;background:var(--weilin-prompt-ui-gradient-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:var(--weilin-prompt-ui-border-radius, 18px);box-shadow:var(--weilin-prompt-ui-box-shadow);padding:18px 0}.weilin-comfyui-settings-sidebar[data-v-d84f82b1]{width:220px;border-right:1px solid var(--weilin-prompt-ui-border-color);padding:18px 0 18px 18px;background:var(--weilin-prompt-ui-gradient-bg);border-radius:16px 0 0 16px;box-shadow:2px 0 12px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-settings-sidebar ul[data-v-d84f82b1]{list-style-type:none;padding:0}.weilin-comfyui-settings-sidebar li[data-v-d84f82b1]{cursor:pointer;padding:12px 18px;margin-bottom:8px;border-radius:8px;transition:background .3s,color .3s;font-weight:500;font-size:16px;color:var(--weilin-prompt-ui-title-color);letter-spacing:.5px}.weilin-comfyui-settings-sidebar li[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-hover-bg-color);color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-settings-sidebar .weilin-comfyui-active[data-v-d84f82b1]{background:var(--weilin-prompt-ui-gradient-primary);color:#fff;box-shadow:0 2px 8px 0 var(--weilin-prompt-ui-btn-shadow)}.weilin-comfyui-settings-main[data-v-d84f82b1]{flex:1;padding:0 32px}.weilin-comfyui-settings-main h3[data-v-d84f82b1]{margin-top:0;font-size:22px;font-weight:700;color:var(--weilin-prompt-ui-title-color);margin-bottom:18px}.weilin-comfyui-translator-settings[data-v-d84f82b1],.weilin-comfyui-floating-ball-settings[data-v-d84f82b1]{display:flex;align-items:stretch;margin-bottom:20px;flex-direction:column;gap:10px}.weilin-comfyui-translator-settings select[data-v-d84f82b1]{margin-right:10px}.weilin-comfyui-setting-item[data-v-d84f82b1]{margin-bottom:18px;background:var(--weilin-prompt-ui-card-bg);border-radius:8px;padding:12px 18px;box-shadow:0 1px 4px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-setting-item label[data-v-d84f82b1]{display:block;margin-bottom:8px;font-weight:500;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-setting-item select[data-v-d84f82b1],.weilin-comfyui-setting-item input[type=number][data-v-d84f82b1],.weilin-comfyui-setting-item input[type=text][data-v-d84f82b1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);font-size:15px;transition:border-color .2s}.weilin-comfyui-setting-item select[data-v-d84f82b1]:focus,.weilin-comfyui-setting-item input[data-v-d84f82b1]:focus{border-color:var(--weilin-prompt-ui-input-focus);outline:none}.weilin-comfyui-save-button[data-v-d84f82b1],.weilin-comfyui-install-button[data-v-d84f82b1]{width:100%;padding:12px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;margin-top:8px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-save-button[data-v-d84f82b1]:hover,.weilin-comfyui-install-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-setting-select[data-v-d84f82b1]{margin-bottom:20px;background:var(--weilin-prompt-ui-card-bg);border-radius:8px;padding:12px 18px;box-shadow:0 1px 4px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-group-box[data-v-d84f82b1]{padding:20px;border:1px solid var(--weilin-prompt-ui-card-border);border-radius:10px;margin-bottom:20px;background:var(--weilin-prompt-ui-primary-bg);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-group-title[data-v-d84f82b1]{font-size:17px;font-weight:600;margin-bottom:16px;color:var(--weilin-prompt-ui-title-color)}.weilin-comfyui-note-top[data-v-d84f82b1]{margin:10px 0;padding:8px 12px;background:#e8f4ff;border:1px solid #b3d8ff;border-radius:6px;font-size:13px;color:#004085;word-break:break-all}.weilin-comfyui-tranlater-text-box[data-v-d84f82b1]{margin-top:20px;padding:16px;background:var(--weilin-prompt-ui-card-bg);border-radius:10px;border:1px solid var(--weilin-prompt-ui-card-border);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item[data-v-d84f82b1]{margin-bottom:12px}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item label[data-v-d84f82b1]{display:block;margin-bottom:4px;font-size:14px;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item input[data-v-d84f82b1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);transition:border-color .2s}.weilin-comfyui-tranlater-text-box .weilin-comfyui-setting-item input[data-v-d84f82b1]:focus{outline:none;border-color:var(--weilin-prompt-ui-input-focus)}.weilin-comfyui-tranlater-text-box .weilin-comfyui-install-button[data-v-d84f82b1]{width:100%;margin-top:8px;padding:8px 16px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.weilin-comfyui-tranlater-text-box .weilin-comfyui-install-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-translater-setting-box[data-v-d84f82b1]{margin-top:20px;padding:16px;background:var(--weilin-prompt-ui-card-bg);border-radius:10px;border:1px solid var(--weilin-prompt-ui-card-border);box-shadow:0 1px 8px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors[data-v-d84f82b1]{display:flex;gap:16px;margin:12px 0}.weilin-comfyui-translater-setting-box .weilin-comfyui-language-selectors .weilin-comfyui-setting-item[data-v-d84f82b1]{flex:1}.weilin-comfyui-setting-small-titile[data-v-d84f82b1]{font-size:16px;font-weight:600;color:var(--weilin-prompt-ui-title-color);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--weilin-prompt-ui-card-border)}.weilin-comfyui-common-select[data-v-d84f82b1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-input-border);border-radius:6px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color);font-size:14px;transition:border-color .2s}.weilin-comfyui-common-select[data-v-d84f82b1]:focus{outline:none;border-color:var(--weilin-prompt-ui-input-focus)}.weilin-comfyui-skin-preview[data-v-d84f82b1]{max-width:200px;max-height:300px;border-radius:8px;overflow:hidden;box-shadow:var(--weilin-prompt-ui-btn-shadow);margin-top:8px}.weilin-comfyui-skin-preview img[data-v-d84f82b1]{width:100%;height:100%;object-fit:contain}.weilin-comfyui-settings-column[data-v-d84f82b1]{display:flex;flex-direction:column;gap:10px}.weilin-comfyui-openai-settings[data-v-d84f82b1]{max-width:800px;margin:0 auto;background:var(--weilin-prompt-ui-card-bg);border-radius:var(--weilin-prompt-ui-border-radius);padding:18px;box-shadow:var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-config-list[data-v-d84f82b1]{margin-top:20px}.weilin-comfyui-config-item[data-v-d84f82b1]{border:1px solid var(--weilin-prompt-ui-card-border);border-radius:8px;padding:14px;margin-bottom:12px;background:var(--weilin-prompt-ui-primary-bg);box-shadow:0 1px 6px 0 var(--weilin-prompt-ui-card-shadow)}.weilin-comfyui-config-header[data-v-d84f82b1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.weilin-comfyui-config-actions button[data-v-d84f82b1]{margin-left:5px;padding:4px 12px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-input-border);cursor:pointer;background:var(--weilin-prompt-ui-card-bg);color:var(--weilin-prompt-ui-label-color);font-weight:500;transition:background .2s}.weilin-comfyui-config-actions button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-gradient-primary);color:#fff}.weilin-comfyui-config-details[data-v-d84f82b1]{font-size:.95em;color:var(--weilin-prompt-ui-secondary-text);padding-left:8px}.weilin-comfyui-config-form[data-v-d84f82b1]{margin-top:10px;padding:10px;background:var(--weilin-prompt-ui-primary-bg);border-radius:8px}.weilin-comfyui-form-group[data-v-d84f82b1]{margin-bottom:10px}.weilin-comfyui-form-group label[data-v-d84f82b1]{display:block;margin-bottom:5px;color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-form-group input[data-v-d84f82b1]{width:100%;padding:7px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-input-border);background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-label-color)}.weilin-comfyui-form-actions[data-v-d84f82b1]{text-align:right;margin-top:10px}.weilin-comfyui-add-button[data-v-d84f82b1]{margin-top:20px;width:100%;padding:10px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-add-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-sponsor-me-settings[data-v-d84f82b1]{background:var(--weilin-prompt-ui-card-bg);border-radius:var(--weilin-prompt-ui-border-radius);padding:18px;box-shadow:var(--weilin-prompt-ui-card-shadow);text-align:center}.weilin-comfyui-sponsor-me-button[data-v-d84f82b1]{margin-top:18px;padding:12px 32px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:18px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-sponsor-me-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.weilin-comfyui-start-panel-settings[data-v-d84f82b1]{background:var(--weilin-prompt-ui-card-bg);border-radius:var(--weilin-prompt-ui-border-radius);padding:18px;box-shadow:var(--weilin-prompt-ui-card-shadow);text-align:center}.weilin-comfyui-start-panel-button[data-v-d84f82b1]{margin-top:18px;padding:12px 32px;background:var(--weilin-prompt-ui-btn-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:18px;box-shadow:var(--weilin-prompt-ui-btn-shadow);transition:background .2s}.weilin-comfyui-start-panel-button[data-v-d84f82b1]:hover{background:var(--weilin-prompt-ui-btn-gradient-hover)}.theme-switch[data-v-43d9cf91]{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease}.theme-switch[data-v-43d9cf91]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.theme-switch[data-v-43d9cf91]:active{transform:scale(.95)}.switch-icon[data-v-43d9cf91]{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.sun[data-v-43d9cf91],.moon[data-v-43d9cf91]{width:20px;height:20px;stroke:var(--weilin-prompt-ui-icon-color);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:all .3s ease}.moon[data-v-43d9cf91]{fill:var(--weilin-prompt-ui-icon-color)}.theme-switch:hover .sun[data-v-43d9cf91],.theme-switch:hover .moon[data-v-43d9cf91]{transform:rotate(30deg)}.tag-manager[data-v-f6c0f177]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.category-tabs[data-v-f6c0f177]{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.tabs-wrapper[data-v-f6c0f177]{position:relative;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tabs-scroll[data-v-f6c0f177]{display:flex;gap:2px;padding:0 2px 2px;flex-wrap:wrap;align-items:flex-end}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar{height:10px}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tabs-scroll[data-v-f6c0f177]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.tab-item[data-v-f6c0f177]{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:2px 15px;border-radius:4px 4px 0 0;cursor:pointer;transition:all .3s ease;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;position:relative;font-size:10px;height:34px;min-width:unset;width:fit-content}.tab-text[data-v-f6c0f177]{flex:0 0 auto;white-space:nowrap;text-align:center;margin:0 4px;color:var(--weilin-prompt-ui-primary-text)}.tab-actions[data-v-f6c0f177]{display:flex;gap:2px;align-items:center;transition:opacity .3s;position:absolute;margin-left:0;top:-25px;padding:5px;background-color:#00000080;border-radius:4px;z-index:1000}.action-btn[data-v-f6c0f177]{padding:4px;background:none;border:none;cursor:pointer;opacity:.7;transition:opacity .3s;color:inherit;display:flex;align-items:center;justify-content:center}.action-btn[data-v-f6c0f177]:hover{opacity:1}.action-icon[data-v-f6c0f177]{width:16px;height:16px;fill:currentColor}.add-tab[data-v-f6c0f177]{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 12px;background:none;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px 4px 0 0;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;transition:all .3s;white-space:nowrap;font-size:13px;height:28px;width:fit-content}.add-tab[data-v-f6c0f177]:hover{color:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-secondary-bg)}.plus-icon[data-v-f6c0f177]{font-size:16px;line-height:1}:root[data-theme=dark] .tab-item[data-v-f6c0f177]{background:var(--weilin-prompt-ui-primary-bg)}:root[data-theme=dark] .tab-item[data-v-f6c0f177]:hover{background:var(--weilin-prompt-ui-secondary-bg)}:root[data-theme=dark] .add-tab[data-v-f6c0f177]:hover{background:var(--weilin-prompt-ui-secondary-bg)}.tags-content[data-v-f6c0f177]{flex:1;display:flex;flex-direction:column}.tags-header[data-v-f6c0f177]{display:flex;justify-content:space-between;align-items:center}.tags-title[data-v-f6c0f177]{font-size:20px;font-weight:bolder;color:var(--weilin-prompt-ui-primary-text)}.tags-grid[data-v-f6c0f177]{display:flex;flex-wrap:wrap;gap:16px;padding:16px}.tag-wrapper[data-v-f6c0f177]{display:inline-flex;min-width:100px;max-width:200px;flex-direction:column}.tag-content[data-v-f6c0f177]{display:flex;flex-direction:column;width:100%;height:fit-content}.tag-main[data-v-f6c0f177]{position:relative;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px 8px 0 0;font-size:13px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);transition:all .3s ease;cursor:default;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;width:100%;box-sizing:border-box;justify-content:center}.tag-desc[data-v-f6c0f177]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;background-color:var(--weilin-prompt-ui-secondary-bg);padding:6px 12px;border-radius:0 0 8px 8px;width:100%;box-sizing:border-box;border:1px solid var(--weilin-prompt-ui-border-color);border-top:none}.tag-actions[data-v-f6c0f177]{background-color:#00000080;border-radius:6px;position:absolute;right:8px;display:inline-flex;opacity:0;transition:opacity .2s ease;top:-15px}.tag-content:hover .tag-actions[data-v-f6c0f177]{opacity:1}.settings-content[data-v-1971f07a]{display:flex;flex-direction:column;min-width:600px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);padding-bottom:20px;box-sizing:border-box;z-index:1099}input[data-v-1971f07a]{padding:8px;margin-right:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}input[data-v-1971f07a]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}button[data-v-1971f07a]{padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}button[data-v-1971f07a]:hover{background-color:#1976d2}button[data-v-1971f07a]:disabled{background-color:#8d8f91}.data-container[data-v-1971f07a]{margin-top:24px;padding:16px;color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:4px;height:500px}.tag-group-container[data-v-1971f07a]{height:430px;overflow-y:auto}h3[data-v-1971f07a],h4[data-v-1971f07a]{margin:8px 0;text-align:center}p[data-v-1971f07a]{margin:4px 0;text-align:center}.loading-overlay[data-v-1971f07a]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.loading-spinner[data-v-1971f07a]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin-1971f07a 1s linear infinite}@keyframes spin-1971f07a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.info-links[data-v-1971f07a]{margin-bottom:16px;padding:12px;background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;border:1px solid var(--weilin-prompt-ui-border-color)}.info-link-item[data-v-1971f07a]{display:flex;align-items:center;margin:6px 0;font-size:14px}.info-link-label[data-v-1971f07a]{color:var(--weilin-prompt-ui-secondary-text);min-width:80px;font-weight:500}.info-link[data-v-1971f07a]{color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:color .2s}.info-link[data-v-1971f07a]:hover{color:var(--weilin-prompt-ui-primary-color-hover);text-decoration:underline}.tag-manager[data-v-c9c6726d]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.category-tabs[data-v-c9c6726d]{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.tabs-wrapper[data-v-c9c6726d]{position:relative;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tabs-scroll[data-v-c9c6726d]{display:flex;gap:2px;padding:0 2px 2px;flex-wrap:wrap;align-items:flex-end}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar{height:10px}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tabs-scroll[data-v-c9c6726d]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.tab-item[data-v-c9c6726d]{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:2px 15px;border-radius:4px 4px 0 0;cursor:pointer;transition:all .3s ease;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;position:relative;font-size:10px;height:34px;min-width:unset;width:fit-content}.tab-text[data-v-c9c6726d]{flex:0 0 auto;white-space:nowrap;text-align:center;margin:0 4px;color:var(--weilin-prompt-ui-primary-text)}.tab-actions[data-v-c9c6726d]{display:flex;gap:2px;align-items:center;transition:opacity .3s;position:absolute;margin-left:0;top:-25px;padding:5px;background-color:#00000080;border-radius:4px;z-index:1000}.action-btn[data-v-c9c6726d]{padding:4px;background:none;border:none;cursor:pointer;opacity:.7;transition:opacity .3s;color:inherit;display:flex;align-items:center;justify-content:center}.action-btn[data-v-c9c6726d]:hover{opacity:1}.action-icon[data-v-c9c6726d]{width:16px;height:16px;fill:currentColor}.add-tab[data-v-c9c6726d]{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 12px;background:none;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px 4px 0 0;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;transition:all .3s;white-space:nowrap;font-size:13px;height:28px;width:fit-content}.add-tab[data-v-c9c6726d]:hover{color:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-secondary-bg)}.plus-icon[data-v-c9c6726d]{font-size:16px;line-height:1}:root[data-theme=dark] .tab-item[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-bg)}:root[data-theme=dark] .tab-item[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-secondary-bg)}:root[data-theme=dark] .add-tab[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-secondary-bg)}.tags-content[data-v-c9c6726d]{flex:1;display:flex;flex-direction:column}.tags-header[data-v-c9c6726d]{display:flex;justify-content:space-between;align-items:center}.tags-title[data-v-c9c6726d]{font-size:20px;font-weight:bolder;color:var(--weilin-prompt-ui-primary-text)}.tags-grid[data-v-c9c6726d]{display:flex;flex-wrap:wrap;gap:16px;padding:16px}.tag-wrapper[data-v-c9c6726d]{display:inline-flex;min-width:100px;max-width:200px;flex-direction:column}.tag-content[data-v-c9c6726d]{display:flex;flex-direction:column;width:100%;height:fit-content}.tag-main[data-v-c9c6726d]{position:relative;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px 8px 0 0;font-size:13px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);transition:all .3s ease;cursor:default;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;width:100%;box-sizing:border-box;justify-content:center}.tag-desc[data-v-c9c6726d]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;background-color:var(--weilin-prompt-ui-secondary-bg);padding:6px 12px;border-radius:0 0 8px 8px;width:100%;box-sizing:border-box;border:1px solid var(--weilin-prompt-ui-border-color);border-top:none}.tag-actions[data-v-c9c6726d]{background-color:#00000080;border-radius:6px;position:absolute;right:8px;display:inline-flex;opacity:0;transition:opacity .2s ease;top:-15px}.tag-content:hover .tag-actions[data-v-c9c6726d]{opacity:1}.action-btn[data-v-c9c6726d]{padding:2px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.action-btn svg[data-v-c9c6726d]{width:12px;height:12px;fill:var(--weilin-prompt-ui-secondary-text);transition:fill .2s ease}.action-btn:hover svg[data-v-c9c6726d]{fill:var(--weilin-prompt-ui-primary-text)}.tag-content[data-v-c9c6726d]:hover{transform:translateY(-1px);filter:drop-shadow(0 2px 4px var(--weilin-prompt-ui-shadow-color))}.tag-wrapper:active .tag-content[data-v-c9c6726d]{transform:translateY(0)}.tag-wrapper:not(:has(.tag-desc)) .tag-main[data-v-c9c6726d]{border-radius:16px;border-bottom:1px solid var(--border-color)}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar{height:6px;width:6px}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar-track,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.primary-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb:hover,.sub-tabs[data-v-c9c6726d]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin-tools-dialog-overlay[data-v-c9c6726d]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.weilin-tools-dialog-content[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-bg);border-radius:8px;min-width:400px;max-width:90%;box-shadow:0 2px 12px #00000026;box-sizing:border-box;z-index:10099}.weilin-tools-dialog-header[data-v-c9c6726d]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.weilin-tools-dialog-header h2[data-v-c9c6726d]{margin:0;font-size:18px;color:var(--primary-text)}.weilin-tools-dialog-body[data-v-c9c6726d]{padding:20px;box-sizing:border-box}.weilin-tools-dialog-footer[data-v-c9c6726d]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color)}.form-group[data-v-c9c6726d]{margin-bottom:16px;box-sizing:border-box;width:100%}.form-group[data-v-c9c6726d]:last-child{margin-bottom:0}.form-group label[data-v-c9c6726d]{display:block;margin-bottom:8px;color:var(--primary-text)}.form-group input[data-v-c9c6726d],.form-group textarea[data-v-c9c6726d]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px;transition:all .3s ease;box-sizing:border-box}.form-group textarea[data-v-c9c6726d]{resize:vertical;min-height:100px}.form-group input[data-v-c9c6726d]:focus,.form-group textarea[data-v-c9c6726d]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color-rgb),.1)}.cancel-btn[data-v-c9c6726d],.confirm-btn[data-v-c9c6726d]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-btn[data-v-c9c6726d]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text)}.confirm-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff}.cancel-btn[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.confirm-btn[data-v-c9c6726d]:hover{opacity:.9}.close-btn[data-v-c9c6726d]{border:none;background:none;font-size:20px;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;padding:4px;line-height:1}.close-btn[data-v-c9c6726d]:hover{color:var(--weilin-prompt-ui-primary-text)}.confirm-weilin-tools-dialog[data-v-c9c6726d]{min-width:300px!important;max-width:400px!important;width:90%;box-sizing:border-box}.confirm-message[data-v-c9c6726d]{margin:0;color:var(--weilin-prompt-ui-primary-text);text-align:center}.delete-btn[data-v-c9c6726d]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;background:var(--weilin-prompt-ui-danger-color, #ff4d4f);border:none;color:#fff;transition:all .3s ease}.delete-btn[data-v-c9c6726d]:hover{opacity:.9}.delete-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.cancel-delete-btn[data-v-c9c6726d]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-delete-btn[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin-tools-dialog-overlay[data-v-c9c6726d]{animation:fadeIn-c9c6726d .2s ease}.weilin-tools-dialog-content[data-v-c9c6726d]{animation:slideIn-c9c6726d .2s ease;z-index:10099}@keyframes fadeIn-c9c6726d{0%{opacity:0}to{opacity:1}}@keyframes slideIn-c9c6726d{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.color-picker[data-v-c9c6726d]{display:flex;gap:12px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg)}.color-preview[data-v-c9c6726d]{width:48px;height:48px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}.color-controls[data-v-c9c6726d]{flex:1;display:flex;flex-direction:column;gap:8px}.color-input[data-v-c9c6726d]{width:100%;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;cursor:pointer}.alpha-control[data-v-c9c6726d]{display:flex;align-items:center;gap:8px}.alpha-slider[data-v-c9c6726d]{flex:1;height:8px;-webkit-appearance:none;background:linear-gradient(to right,transparent,currentColor);border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color)}.alpha-slider[data-v-c9c6726d]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.alpha-value[data-v-c9c6726d]{min-width:48px;text-align:right;color:var(--weilin-prompt-ui-secondary-text)}.primary-tab[data-v-c9c6726d],.sub-tab[data-v-c9c6726d],.tag-card[data-v-c9c6726d]{position:relative;background-color:transparent}.search-container[data-v-c9c6726d]{position:relative;z-index:100}.search-input[data-v-c9c6726d]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px}.search-input[data-v-c9c6726d]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.search-results[data-v-c9c6726d]{position:fixed;top:60px;left:0;right:0;max-height:300px;overflow-y:auto;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;margin-top:4px;box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color);z-index:1000}.search-result-item[data-v-c9c6726d]{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.search-result-item[data-v-c9c6726d]:last-child{border-bottom:none}.search-result-item[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg)}.result-content[data-v-c9c6726d]{display:flex;flex-direction:column;gap:4px}.result-text[data-v-c9c6726d]{font-size:14px;color:var(--weilin-prompt-ui-primary-text)}.result-path[data-v-c9c6726d]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text)}.no-results[data-v-c9c6726d]{padding:12px;text-align:center;color:var(--weilin-prompt-ui-secondary-text);font-size:14px}.tab-item.active[data-v-c9c6726d]{border-color:var(--weilin-prompt-ui-primary-color)}.tab-item.active .action-btn[data-v-c9c6726d]{color:#fff}.tab-content[data-v-c9c6726d]{display:flex;align-items:center;gap:4px}.add-btn[data-v-c9c6726d]{font-size:14px}.toolbar[data-v-c9c6726d]{flex-direction:column;padding:12px 16px}.toolbar .toolbar-top[data-v-c9c6726d]{display:flex;align-items:center;gap:12px;margin-bottom:10px}.refresh-btn[data-v-c9c6726d]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:all .2s ease}.refresh-btn[data-v-c9c6726d]:hover{background:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.refresh-icon[data-v-c9c6726d]{fill:var(--weilin-prompt-ui-primary-text)}.search-container[data-v-c9c6726d]{flex:1}.tags-actions[data-v-c9c6726d]{width:fit-content;display:flex;flex-direction:row;align-items:center;gap:12px}.tag-checkbox[data-v-c9c6726d]{margin-top:3px}.radio-input[data-v-c9c6726d]{width:16px!important;height:16px!important;margin-top:3px}.toolbar-bottom[data-v-c9c6726d]{display:flex;align-items:center;gap:12px;margin-top:5px}.group-edit-mode[data-v-c9c6726d]{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 12px;background:none;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px 4px 0 0;color:var(--weilin-prompt-ui-secondary-text);transition:all .3s;white-space:nowrap;font-size:13px;height:28px;width:fit-content;cursor:pointer}.group-edit-mode[data-v-c9c6726d]:hover{color:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-secondary-bg)}.highlight[data-v-c9c6726d]{border:2px solid var(--weilin-prompt-ui-primary-color);box-shadow:0 0 8px #ff7b0299;transform:scale(1.05);transition:all .3s ease}.import-btn[data-v-c9c6726d]{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-color);color:#fff;cursor:pointer;transition:all .3s ease}.import-btn[data-v-c9c6726d]:hover{opacity:.9}.import-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed;background-color:var(--weilin-prompt-ui-secondary-bg)}.share-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.share-btn[data-v-c9c6726d]:hover{opacity:.9}.share-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.delete-action-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.delete-action-btn[data-v-c9c6726d]:hover{opacity:.9}.delete-action-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.share-selected-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-success-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.share-selected-btn[data-v-c9c6726d]:hover{opacity:.9}.share-selected-btn[data-v-c9c6726d]:disabled{opacity:.5;cursor:not-allowed}.tab-size-btn[data-v-c9c6726d]{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease;font-size:12px;white-space:nowrap}.tab-size-btn[data-v-c9c6726d]:hover{background-color:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.tab-size-weilin-tools-dialog[data-v-c9c6726d]{min-width:500px;max-width:600px}.config-section[data-v-c9c6726d]{margin-bottom:24px;padding:16px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;background:var(--weilin-prompt-ui-secondary-bg)}.config-section h3[data-v-c9c6726d]{margin:0 0 16px;color:var(--weilin-prompt-ui-primary-text);font-size:16px}.width-control[data-v-c9c6726d]{display:flex;flex-direction:column;gap:8px}.radio-label[data-v-c9c6726d]{display:flex;align-items:center;gap:8px;cursor:pointer}.radio-label input[type=radio][data-v-c9c6726d]{width:auto!important;margin:0}.number-input[data-v-c9c6726d]{width:100px!important;margin-top:8px}.range-input[data-v-c9c6726d]{width:100%;height:8px;-webkit-appearance:none;background:var(--weilin-prompt-ui-border-color);border-radius:4px;outline:none}.range-input[data-v-c9c6726d]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.reset-btn[data-v-c9c6726d]{background:var(--weilin-prompt-ui-warning-color, #faad14);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.reset-btn[data-v-c9c6726d]:hover{opacity:.9}.lora-raw__content[data-v-378f8ede]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.lora-detail[data-v-1b0da0a7]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center;color:var(--weilin-prompt-ui-primary-text)}.lora-detail__content[data-v-1b0da0a7]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.svg-icon[data-v-1b0da0a7]{fill:var(--weilin-prompt-ui-primary-text)}.lora-detail__loading[data-v-1b0da0a7]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.lora-detail__body[data-v-1b0da0a7]{height:100%}.lora-detail__table[data-v-1b0da0a7]{width:100%;border-collapse:collapse}.lora-detail__table td[data-v-1b0da0a7]{padding:12px;border-bottom:1px solid var(--weilin-prompt-ui-border)}.lora-detail__table td.label[data-v-1b0da0a7]{width:180px;color:var(--weilin-prompt-ui-label);font-weight:500}.lora-detail__table td.actions[data-v-1b0da0a7]{width:130px;text-align:right;display:flex;flex-direction:row;align-items:center}.lora-detail__tags[data-v-1b0da0a7]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.lora-detail__tag[data-v-1b0da0a7]{padding:4px 12px;border-radius:16px;font-size:14px}.edit-btn[data-v-1b0da0a7],.refresh-btn[data-v-1b0da0a7],.fetch-btn[data-v-1b0da0a7],.copy-btn[data-v-1b0da0a7]{padding:6px 12px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);cursor:pointer;transition:all .3s}.edit-btn[data-v-1b0da0a7]:hover,.refresh-btn[data-v-1b0da0a7]:hover,.fetch-btn[data-v-1b0da0a7]:hover,.copy-btn[data-v-1b0da0a7]:hover{background:var(--weilin-prompt-ui-button-hover)}input[data-v-1b0da0a7]{width:100%;padding:8px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-input-text)}input[data-v-1b0da0a7]:focus{border-color:var(--weilin-prompt-ui-primary);outline:none}.word-list[data-v-1b0da0a7]{display:flex;flex-wrap:wrap;gap:8px}.word-item[data-v-1b0da0a7]{padding:4px 12px;border-radius:16px;background:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:4px}.word-item[data-v-1b0da0a7]:hover{background:var(--weilin-prompt-ui-tag-hover)}.word-item.is-selected[data-v-1b0da0a7]{background:var(--weilin-prompt-ui-primary-color);color:#fff}.fade-enter-active[data-v-1b0da0a7],.fade-leave-active[data-v-1b0da0a7]{transition:opacity .3s ease}.fade-enter-from[data-v-1b0da0a7],.fade-leave-to[data-v-1b0da0a7]{opacity:0}.is-rotating[data-v-1b0da0a7]{animation:rotate-1b0da0a7 1s linear infinite}@keyframes rotate-1b0da0a7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lora-detail__images[data-v-1b0da0a7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:20px;list-style:none;margin:0}.lora-detail__image-item[data-v-1b0da0a7]{position:relative;background:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color);transition:transform .3s ease}.lora-detail__image-item[data-v-1b0da0a7]:hover{transform:translateY(-2px)}.image-wrapper[data-v-1b0da0a7]{position:relative;width:100%;padding-top:100%;overflow:hidden}.image-wrapper img[data-v-1b0da0a7]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;transition:transform .3s ease}.image-wrapper:hover img[data-v-1b0da0a7]{transform:scale(1.05)}.image-action[data-v-1b0da0a7]{position:absolute;top:12px;right:12px;background:#0009;color:#fff;padding:6px 12px;border-radius:4px;opacity:0;transition:all .3s ease;cursor:pointer;font-size:13px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1);z-index:1}.image-wrapper:hover .image-action[data-v-1b0da0a7]{opacity:1}.image-action[data-v-1b0da0a7]:hover{background:#000c;transform:translateY(-1px)}.image-info[data-v-1b0da0a7]{padding:16px;background:var(--weilin-prompt-ui-secondary-bg)}.info-item[data-v-1b0da0a7]{display:block;margin-bottom:8px;font-size:13px;color:var(--weilin-prompt-ui-secondary-text);word-break:break-all}.info-item[data-v-1b0da0a7]:last-child{margin-bottom:0}.info-item label[data-v-1b0da0a7]{display:inline-block;color:var(--weilin-prompt-ui-label);margin-right:8px;font-weight:500}.civitai-link[data-v-1b0da0a7]{display:inline-flex;align-items:center;gap:4px;color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:opacity .3s ease}.civitai-link[data-v-1b0da0a7]:hover{opacity:.8}.civitai-icon[data-v-1b0da0a7]{fill:currentColor}.info-item[data-v-1b0da0a7]:has(label:contains("正向提示词")),.info-item[data-v-1b0da0a7]:has(label:contains("反向提示词")){background:var(--weilin-prompt-ui-tag-bg);padding:8px;border-radius:4px;margin-top:12px}.image-params[data-v-1b0da0a7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:12px}.param-item[data-v-1b0da0a7]{background:var(--weilin-prompt-ui-tag-bg);padding:4px 8px;border-radius:4px;font-size:12px}@media (max-width: 768px){.lora-detail__images[data-v-1b0da0a7]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding:16px}.image-info[data-v-1b0da0a7]{padding:12px}}.word-item .is-hidden[data-v-1b0da0a7]{display:none}.toggle-btn[data-v-1b0da0a7]{cursor:pointer;color:var(--primary-color);text-align:center;padding:4px;margin-top:8px}.toggle-btn[data-v-1b0da0a7]:hover{text-decoration:underline}.lora-detail[data-v-b11ec087]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center;color:var(--weilin-prompt-ui-primary-text)}.lora-detail__content[data-v-b11ec087]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.lora-detail__loading[data-v-b11ec087]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.svg-icon[data-v-b11ec087]{fill:var(--weilin-prompt-ui-primary-text)}.lora-detail__body[data-v-b11ec087]{height:100%}.lora-detail__table[data-v-b11ec087]{width:100%;table-layout:fixed;word-wrap:break-word;border-collapse:collapse;font-size:.55em}.lora-detail__table td[data-v-b11ec087]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:12px;border-bottom:1px solid var(--weilin-prompt-ui-border);max-width:330px}.lora-detail__table td.label[data-v-b11ec087]{color:var(--weilin-prompt-ui-label);font-weight:500;width:120px;min-width:120px}.lora-detail__table .hash[data-v-b11ec087],.lora-detail__table .text[data-v-b11ec087]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lora-detail__table td.actions[data-v-b11ec087]{width:130px;text-align:right;display:flex;flex-direction:row;align-items:center}.lora-detail__tags[data-v-b11ec087]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.lora-detail__title[data-v-b11ec087]{font-size:.55em}.lora-detail__tag[data-v-b11ec087]{padding:4px 12px;border-radius:16px;font-size:.55em}.edit-btn[data-v-b11ec087],.refresh-btn[data-v-b11ec087],.fetch-btn[data-v-b11ec087],.copy-btn[data-v-b11ec087]{padding:6px 12px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);cursor:pointer;transition:all .3s;font-size:.55em}.edit-btn[data-v-b11ec087]:hover,.refresh-btn[data-v-b11ec087]:hover,.fetch-btn[data-v-b11ec087]:hover,.copy-btn[data-v-b11ec087]:hover{background:var(--weilin-prompt-ui-button-hover)}input[data-v-b11ec087]{width:100%;padding:8px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-input-text)}input[data-v-b11ec087]:focus{border-color:var(--weilin-prompt-ui-primary);outline:none}.word-list[data-v-b11ec087]{display:flex;flex-wrap:wrap;gap:8px}.word-item[data-v-b11ec087]{padding:4px 12px;border-radius:16px;background:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:4px}.word-item[data-v-b11ec087]:hover{background:var(--weilin-prompt-ui-tag-hover)}.word-item.is-selected[data-v-b11ec087]{background:var(--weilin-prompt-ui-primary-color);color:#fff}.fade-enter-active[data-v-b11ec087],.fade-leave-active[data-v-b11ec087]{transition:opacity .3s ease}.fade-enter-from[data-v-b11ec087],.fade-leave-to[data-v-b11ec087]{opacity:0}.is-rotating[data-v-b11ec087]{animation:rotate-b11ec087 1s linear infinite}@keyframes rotate-b11ec087{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lora-detail__images[data-v-b11ec087]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:20px;list-style:none;margin:0;max-width:100%}.lora-detail__image-item[data-v-b11ec087]{position:relative;background:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color);transition:transform .3s ease}.lora-detail__image-item[data-v-b11ec087]:hover{transform:translateY(-2px)}.image-wrapper[data-v-b11ec087]{position:relative;width:100%;padding-top:100%;overflow:hidden}.image-wrapper img[data-v-b11ec087]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;transition:transform .3s ease}.image-wrapper:hover img[data-v-b11ec087]{transform:scale(1.05)}.image-action[data-v-b11ec087]{position:absolute;top:12px;right:12px;background:#0009;color:#fff;padding:6px 12px;border-radius:4px;opacity:0;transition:all .3s ease;cursor:pointer;font-size:.55em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1);z-index:1}.image-wrapper:hover .image-action[data-v-b11ec087]{opacity:1}.image-action[data-v-b11ec087]:hover{background:#000c;transform:translateY(-1px)}.image-info[data-v-b11ec087]{font-size:.55em;padding:16px;background:var(--weilin-prompt-ui-secondary-bg)}.info-item[data-v-b11ec087]{display:block;margin-bottom:8px;font-size:.55em;color:var(--weilin-prompt-ui-secondary-text);word-break:break-all}.info-item[data-v-b11ec087]:last-child{margin-bottom:0}.info-item label[data-v-b11ec087]{display:inline-block;color:var(--weilin-prompt-ui-label);margin-right:8px;font-weight:500}.civitai-link[data-v-b11ec087]{display:inline-flex;align-items:center;gap:4px;color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:opacity .3s ease}.civitai-link[data-v-b11ec087]:hover{opacity:.8}.civitai-icon[data-v-b11ec087]{fill:currentColor}.info-item[data-v-b11ec087]:has(label:contains("正向提示词")),.info-item[data-v-b11ec087]:has(label:contains("反向提示词")){background:var(--weilin-prompt-ui-tag-bg);padding:8px;border-radius:4px;margin-top:12px}.image-params[data-v-b11ec087]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:12px}.param-item[data-v-b11ec087]{background:var(--weilin-prompt-ui-tag-bg);padding:4px 8px;border-radius:4px;font-size:.55em}@media (max-width: 768px){.lora-detail__images[data-v-b11ec087]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding:16px}.image-info[data-v-b11ec087]{padding:12px}}.word-item .is-hidden[data-v-b11ec087]{display:none}.toggle-btn[data-v-b11ec087]{cursor:pointer;color:var(--primary-color);text-align:center;padding:4px;margin-top:8px}.toggle-btn[data-v-b11ec087]:hover{text-decoration:underline}.close-button[data-v-b11ec087]{position:absolute;top:10px;left:10px;width:24px;height:24px;border-radius:50%;background-color:#bbbbbb80;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;box-shadow:0 2px 4px #0003;transition:all .2s ease}.close-button[data-v-b11ec087]:hover{background-color:#f00c;color:#fff}.close-button span[data-v-b11ec087]{font-size:18px;line-height:18px;font-weight:700}.lora_catd_content[data-v-b11ec087]{position:fixed;width:450px;height:330px;z-index:999999999;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-bg);padding:6px;box-sizing:border-box;font-size:.55em;overflow:hidden}.weilin_prompt_ui_lora-stack[data-v-22aa3dae]{top:0;left:0;height:100%;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease;overflow:hidden;box-sizing:border-box}.weilin_prompt_ui_lora-content[data-v-22aa3dae]{width:100%;height:100%;display:flex;flex-direction:column;margin-left:0}.weilin_prompt_ui_lora-header[data-v-22aa3dae]{padding:8px 16px;border-bottom:1px solid var(--weilin-prompt-ui-border-color);display:flex;justify-content:space-between;align-items:center;background:var(--weilin-prompt-ui-secondary-bg);border-top-right-radius:8px;border-top-left-radius:8px}.weilin_prompt_ui_lora-header h3[data-v-22aa3dae]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-22aa3dae]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_close-btn[data-v-22aa3dae]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_close-btn svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-body[data-v-22aa3dae]{flex:1;overflow-y:auto;padding:16px}.weilin_prompt_ui_lora-list[data-v-22aa3dae]{display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_lora-title[data-v-22aa3dae]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions[data-v-22aa3dae]{display:flex;gap:8px;align-items:center}.weilin_prompt_ui_add-btn[data-v-22aa3dae]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_add-btn[data-v-22aa3dae]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_add-btn svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-secondary-text)}.lora-item[data-v-22aa3dae]{background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;margin-bottom:12px;overflow:hidden;transition:all .3s ease}.lora-item[data-v-22aa3dae]:hover{border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color)}.lora-info[data-v-22aa3dae]{display:flex;flex-direction:column;width:100%}.hidden-lora[data-v-22aa3dae]{background:#ffc8c833!important;border-color:#ff969680!important}.lora-header[data-v-22aa3dae]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-primary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.lora-name[data-v-22aa3dae]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.lora-actions[data-v-22aa3dae]{display:flex;align-items:center;gap:8px}.lora-weights-row[data-v-22aa3dae]{display:flex;flex-direction:row;gap:5px;align-items:flex-end;padding:12px;background:var(--weilin-prompt-ui-secondary-bg)}.weight-item-col[data-v-22aa3dae]{display:flex;flex-direction:column;gap:2px;width:60px}.weight-item-col label[data-v-22aa3dae]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.switch-item-col[data-v-22aa3dae]{display:flex;flex-direction:column;align-items:center;gap:2px}.switch-item-col label[data-v-22aa3dae]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.lora-weight[data-v-22aa3dae]{flex:1;width:100%;padding:4px 6px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:12px;transition:all .3s ease}.lora-weight[data-v-22aa3dae]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.lora-weight[data-v-22aa3dae]:focus{border-color:var(--weilin-prompt-ui-primary-color);outline:none;box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.remove-btn[data-v-22aa3dae],.look-on-btn[data-v-22aa3dae]{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:all .3s ease}.remove-btn[data-v-22aa3dae]:hover,.look-on-btn[data-v-22aa3dae]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.remove-btn svg[data-v-22aa3dae],.look-on-btn svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-secondary-text)}.remove-btn:hover svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-danger-color)}.look-on-btn:hover svg[data-v-22aa3dae]{fill:var(--weilin-prompt-ui-primary-color)}.switch-item[data-v-22aa3dae]{display:flex;align-items:center;gap:6px}.switch[data-v-22aa3dae]{position:relative;display:inline-block;width:36px;height:20px}.switch input[data-v-22aa3dae]{opacity:0;width:0;height:0}.switch input:checked+.slider[data-v-22aa3dae]:before{transform:translate(16px)}.slider[data-v-22aa3dae]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:20px}.slider[data-v-22aa3dae]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}.switch input:checked+.slider[data-v-22aa3dae]{background-color:var(--weilin-prompt-ui-primary-color)}.main-label-manager[data-v-a435a9c3]{width:280px;min-width:280px;max-width:280px;display:flex;flex-direction:column;box-sizing:border-box;padding:12px 4px;border-right:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-primary-bg);height:100%;max-height:calc(100vh - var(--weilin-left-panel-offset, 100px));overflow:hidden;margin-right:3px}.mlm-header[data-v-a435a9c3]{display:flex;flex-direction:column;gap:8px}.mlm-search[data-v-a435a9c3]{width:100%;height:32px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-border-color);background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);padding:0 8px}.mlm-add[data-v-a435a9c3]{background:#28a745;color:#fff;border:none;border-radius:6px;height:32px;width:100%;cursor:pointer}.mlm-grid[data-v-a435a9c3]{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.mlm-list[data-v-a435a9c3]{margin-top:8px;max-height:var(--weilin-main-label-list-max-height, 720px);flex:0 0 auto;overflow-y:auto;padding-right:4px}.mlm-list[data-v-a435a9c3]::-webkit-scrollbar{width:6px}.mlm-list[data-v-a435a9c3]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.mlm-item[data-v-a435a9c3]{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:38px;padding:10px;margin:6px 0;background:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:10px;border:1px solid var(--weilin-prompt-ui-border-color);transition:background .2s ease,box-shadow .2s ease,border-color .2s ease,transform .1s ease}.mlm-item.dragging[data-v-a435a9c3]{opacity:.6}.mlm-item.drag-over[data-v-a435a9c3]{outline:2px dashed var(--weilin-prompt-ui-primary-color);outline-offset:2px;box-shadow:none!important}.mlm-item[data-v-a435a9c3]:hover{background:color-mix(in srgb,var(--weilin-prompt-ui-secondary-bg) 90%,#fff 10%);border-color:color-mix(in srgb,var(--weilin-prompt-ui-border-color) 40%,#fff 20%);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.mlm-item.active[data-v-a435a9c3]:not(.drag-over){outline:none;border-color:transparent;box-shadow:inset 0 0 0 2px #22c55e}.mlm-item.pinned[data-v-a435a9c3]{background:color-mix(in srgb,#d89614 12%,var(--weilin-prompt-ui-secondary-bg));border-left:4px solid #d89614;box-shadow:0 2px 6px #00000040}.mlm-item.pinned[data-v-a435a9c3]:hover{box-shadow:0 3px 8px #0000004d}.mlm-item.highlighted[data-v-a435a9c3]{background:color-mix(in srgb,var(--weilin-prompt-ui-primary-color) 12%,var(--weilin-prompt-ui-secondary-bg));border-left:4px solid var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 6px #0003}.mlm-item.highlighted[data-v-a435a9c3]:hover{box-shadow:0 3px 8px #0000004d}.mlm-item-main[data-v-a435a9c3]{display:flex;align-items:center;gap:8px;overflow:hidden}.mlm-name[data-v-a435a9c3]{font-size:14px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pin-badge[data-v-a435a9c3]{background:color-mix(in srgb,#d89614 25%,transparent);color:#d89614;border:1.5px solid #d89614;border-radius:14px;padding:2px 10px;font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center}.mlm-item-actions[data-v-a435a9c3]{display:flex;gap:6px}.mini-btn[data-v-a435a9c3]{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #000;background:transparent;border-radius:8px;color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.mini-btn[data-v-a435a9c3]:hover{background:#ffffff0f}.mini-btn[data-v-a435a9c3]:active{transform:translateY(1px)}.mini-btn[data-v-a435a9c3]:focus-visible{outline:2px solid color-mix(in srgb,#fff 50%,transparent);outline-offset:2px}.mini-btn svg[data-v-a435a9c3]{width:18px;height:18px}.mini-btn.pin.active[data-v-a435a9c3]{background:#d89614;border-color:#d89614;color:#fff}.mini-btn.highlight.active[data-v-a435a9c3]{background:var(--weilin-prompt-ui-primary-color);border-color:var(--weilin-prompt-ui-primary-color);color:#fff}.mlm-sort[data-v-a435a9c3],.mlm-edit[data-v-a435a9c3],.mlm-delete[data-v-a435a9c3]{height:32px;width:100%;font-size:12px;border-radius:6px;border:1px solid color-mix(in srgb,var(--weilin-prompt-ui-border-color) 70%,transparent);background:color-mix(in srgb,var(--weilin-prompt-ui-button-bg) 90%,#000 10%);color:var(--weilin-prompt-ui-button-text);transition:background .15s ease,border-color .15s ease}.mlm-sort[data-v-a435a9c3]:hover,.mlm-edit[data-v-a435a9c3]:hover,.mlm-delete[data-v-a435a9c3]:hover{background:color-mix(in srgb,var(--weilin-prompt-ui-button-bg) 80%,#fff 20%)}.mlm-delete[data-v-a435a9c3]{color:#ff6b6b;background:color-mix(in srgb,#ff6b6b 10%,transparent);border-color:color-mix(in srgb,#ff6b6b 30%,transparent)}.mlm-grid button[data-v-a435a9c3]:disabled{cursor:not-allowed;opacity:.7}.mlm-move[data-v-a435a9c3]{transition:transform .18s ease}.mlm-enter-active[data-v-a435a9c3],.mlm-leave-active[data-v-a435a9c3]{transition:opacity .18s ease,transform .18s ease}.mlm-enter-from[data-v-a435a9c3],.mlm-leave-to[data-v-a435a9c3]{opacity:.01;transform:scale(.98)}.weilin_prompt_ui_lora-manager[data-v-e5643d0b]{overflow:hidden;background:var(--weilin-prompt-ui-primary-bg);display:flex;flex-direction:column;height:100%}.weilin_prompt_ui_lora-manager-container[data-v-e5643d0b]{padding:16px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]{flex:1;overflow-y:auto;position:relative;padding-right:8px;box-sizing:border-box}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.weilin_prompt_ui_lora-list-container[data-v-e5643d0b]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin_prompt_ui_lora-list[data-v-e5643d0b]{display:flex;flex-direction:column;gap:8px;padding-bottom:16px;padding-top:5px}.weilin_prompt_ui_lora-item[data-v-e5643d0b]{padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;background:var(--weilin-prompt-ui-primary-bg);transition:all .3s ease;cursor:pointer}.weilin_prompt_ui_lora-item[data-v-e5643d0b]:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color)}.weilin_prompt_ui_lora-item-content[data-v-e5643d0b]{display:flex;gap:12px}.weilin_prompt_ui_lora-preview[data-v-e5643d0b]{width:80px;height:80px;border-radius:6px;overflow:hidden;background:var(--weilin-prompt-ui-secondary-bg);display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_lora-preview img[data-v-e5643d0b]{width:100%;height:100%;object-fit:contain}.weilin_prompt_ui_no-preview[data-v-e5643d0b]{display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_no-preview svg[data-v-e5643d0b]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-info[data-v-e5643d0b]{flex:1;overflow:hidden}.weilin_prompt_ui_lora-name[data-v-e5643d0b]{margin:0 0 4px;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weilin_prompt_ui_lora-path[data-v-e5643d0b]{margin:0;font-size:12px;color:var(--weilin-prompt-ui-secondary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weilin_prompt_ui_refresh-btn[data-v-e5643d0b]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_refresh-btn[data-v-e5643d0b]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_refresh-icon[data-v-e5643d0b]{fill:var(--weilin-prompt-ui-secondary-text);transition:transform .5s ease}.weilin_prompt_ui_refresh-icon.is-rotating[data-v-e5643d0b]{animation:rotate-e5643d0b 1s linear infinite}@keyframes rotate-e5643d0b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.weilin_prompt_ui_header-right[data-v-e5643d0b]{display:flex;align-items:center}.weilin_prompt_ui_category-nav[data-v-e5643d0b]{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;min-height:40px;max-height:100px;overflow-y:auto}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.weilin_prompt_ui_category-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.weilin_prompt_ui_category-btn[data-v-e5643d0b]{padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}.weilin_prompt_ui_category-btn[data-v-e5643d0b]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_category-btn.active[data-v-e5643d0b]{background:var(--weilin-prompt-ui-primary-color);color:#fff;border-color:var(--weilin-prompt-ui-primary-color)}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]{display:flex;gap:8px;margin-bottom:16px;margin-top:-8px;flex-wrap:wrap;padding-left:16px;min-height:40px;max-height:100px;overflow-y:auto}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar{width:6px}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.weilin_prompt_ui_subcategory-nav[data-v-e5643d0b]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.lora-manager-top-bar[data-v-e5643d0b]{display:flex;align-items:center;margin-bottom:10px}.weilin_prompt_ui_search-input[data-v-e5643d0b]{flex:1;margin-right:10px;padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);transition:all .3s ease}.weilin_prompt_ui_search-input[data-v-e5643d0b]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color),.2)}.pagination-controls[data-v-e5643d0b]{display:flex;justify-content:center;align-items:center;margin:10px 0;gap:10px}.weilin_prompt_ui_page-btn[data-v-e5643d0b]{padding:6px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}.weilin_prompt_ui_page-btn[data-v-e5643d0b]:hover:not(:disabled){background:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_page-btn[data-v-e5643d0b]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-e5643d0b]{color:var(--weilin-prompt-ui-secondary-text)}.loading-indicator[data-v-e5643d0b],.empty-list[data-v-e5643d0b]{display:flex;justify-content:center;align-items:center;height:200px;color:var(--weilin-prompt-ui-secondary-text);font-size:16px}.loading-more[data-v-e5643d0b],.no-more-data[data-v-e5643d0b]{text-align:center;padding:15px 0;color:var(--weilin-prompt-ui-secondary-text);font-size:14px}.no-more-data[data-v-e5643d0b]{color:var(--weilin-prompt-ui-secondary-text);opacity:.8}.weilin_prompt_ui_lora-card[data-v-e5643d0b]{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;background:var(--weilin-prompt-ui-primary-bg);transition:all .3s ease;overflow:hidden;aspect-ratio:1/1.3}.weilin_prompt_ui_lora-card[data-v-e5643d0b]:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);border:1px solid var(--weilin-prompt-ui-primary-color-hover)}.weilin_prompt_ui_lora-preview[data-v-e5643d0b]{aspect-ratio:1/1}.weilin_prompt_ui_lora-name[data-v-e5643d0b]{margin:0;font-size:14px;color:var(--weilin-prompt-ui-primary-text);word-break:break-word;white-space:normal;line-height:1.2}.lora-manager-top-bar[data-v-e5643d0b]{display:flex;align-items:center;padding:8px;gap:8px;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.checkbox-container[data-v-e5643d0b]{display:flex;margin-left:auto;gap:12px}.weilin_prompt_ui_checkbox-label[data-v-e5643d0b]{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--weilin-prompt-ui-primary-text);cursor:pointer}.weilin_prompt_ui_checkbox[data-v-e5643d0b]{cursor:pointer}.tag-manager[data-v-eb6b9225]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.category-tabs[data-v-eb6b9225]{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.tabs-wrapper[data-v-eb6b9225]{position:relative;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tabs-scroll[data-v-eb6b9225]{display:flex;gap:2px;padding:0 2px 2px;flex-wrap:wrap;align-items:flex-end}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar{height:8px}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tabs-scroll[data-v-eb6b9225]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.tab-item[data-v-eb6b9225]{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 15px;border-radius:4px 4px 0 0;cursor:pointer;transition:all .3s ease;border:1px solid var(--weilin-prompt-ui-border-color);border-bottom:none;position:relative;font-size:12px;height:34px;min-width:unset;width:fit-content;box-shadow:0 -2px 5px #0000000d}.tab-item[data-v-eb6b9225]:hover{background-color:var(--weilin-prompt-ui-secondary-bg)!important}.tab-item .active[data-v-eb6b9225]{box-shadow:0 -2px 8px #0000001a;z-index:1}.tab-text[data-v-eb6b9225]{flex:0 0 auto;white-space:nowrap;text-align:center;margin:0 4px;font-weight:500}.selected-categories-container[data-v-eb6b9225]{background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;padding:12px;margin-bottom:16px;border:1px solid var(--weilin-prompt-ui-border-color);box-shadow:0 2px 6px var(--weilin-prompt-ui-shadow-color)}.selected-categories-header[data-v-eb6b9225]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:700;color:var(--weilin-prompt-ui-primary-text);border-bottom:1px solid var(--weilin-prompt-ui-border-color);padding-bottom:8px}.clear-all-btn[data-v-eb6b9225]{background:none;border:none;color:var(--weilin-prompt-ui-primary-color);cursor:pointer;font-size:12px;padding:2px 8px;border-radius:4px;transition:all .2s}.clear-all-btn[data-v-eb6b9225]:hover{background-color:var(--weilin-prompt-ui-primary-color-10);text-decoration:none}.selected-categories-content[data-v-eb6b9225]{min-height:40px;max-height:200px;overflow-y:auto}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar{width:6px}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.selected-categories-content[data-v-eb6b9225]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.no-selected[data-v-eb6b9225]{color:var(--weilin-prompt-ui-secondary-text);font-style:italic;text-align:center;padding:10px 0}.selected-category-section[data-v-eb6b9225]{margin-bottom:12px}.selected-category-section[data-v-eb6b9225]:last-child{margin-bottom:0}.section-title[data-v-eb6b9225]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:8px;font-weight:500;padding-left:4px}.selected-items[data-v-eb6b9225]{display:flex;flex-wrap:wrap;gap:8px}.selected-item[data-v-eb6b9225]{display:flex;align-items:center;background-color:var(--weilin-prompt-ui-tag-bg);border-radius:4px;padding:4px 8px;font-size:12px;border:1px solid var(--weilin-prompt-ui-border-color);transition:all .2s}.selected-item[data-v-eb6b9225]:hover{background-color:var(--weilin-prompt-ui-tag-bg-hover)}.category-name[data-v-eb6b9225]{font-weight:700;color:var(--weilin-prompt-ui-primary-text)}.separator[data-v-eb6b9225]{margin:0 4px;color:var(--weilin-prompt-ui-secondary-text)}.subcategory-name[data-v-eb6b9225]{color:var(--weilin-prompt-ui-primary-text)}.remove-selected-btn[data-v-eb6b9225]{background:none;border:none;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;margin-left:6px;font-size:14px;padding:0 4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.remove-selected-btn[data-v-eb6b9225]:hover{color:var(--weilin-prompt-ui-danger-color);background-color:var(--weilin-prompt-ui-danger-color-10)}.select-tab-btn[data-v-eb6b9225]{background:none;border:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;cursor:pointer;color:inherit;opacity:.7;transition:all .2s ease;margin-left:4px}.select-tab-btn[data-v-eb6b9225]:hover{opacity:1;background-color:#fff3;transform:scale(1.1)}.select-tab-btn[data-v-eb6b9225]:disabled{opacity:.3;cursor:not-allowed}.tab-item.disabled[data-v-eb6b9225]{pointer-events:none}[data-v-eb6b9225] .dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--weilin-prompt-ui-border-color)}[data-v-eb6b9225] .dialog-footer button{padding:6px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .3s}[data-v-eb6b9225] .dialog-footer button:first-child{background-color:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);border:1px solid var(--weilin-prompt-ui-border-color)}[data-v-eb6b9225] .dialog-footer button:first-child:hover{background-color:var(--weilin-prompt-ui-button-hover)}[data-v-eb6b9225] .dialog-footer button:last-child{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none}[data-v-eb6b9225] .dialog-footer button:last-child:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.random-rule-container[data-v-71de91e1]{padding:16px;height:calc(100% - 55px);overflow-y:auto;display:flex;flex-direction:column;gap:20px}.settings-section[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;padding:16px;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-primary-text)}.section-header[data-v-71de91e1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;color:var(--weilin-prompt-ui-primary-text)}.form-group[data-v-71de91e1]{margin-bottom:16px}.form-group label[data-v-71de91e1]{display:block;margin-bottom:8px;font-weight:500;color:var(--weilin-prompt-ui-primary-text)}.form-input[data-v-71de91e1],.form-select[data-v-71de91e1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-input-text)}.range-inputs[data-v-71de91e1]{display:flex;align-items:center;gap:8px}.range-input[data-v-71de91e1]{width:80px}.rules-list[data-v-71de91e1]{display:flex;flex-direction:column;gap:16px}.rule-item[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-bg);border-radius:6px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color)}.rule-header[data-v-71de91e1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:var(--weilin-prompt-ui-primary-text)}.rule-header h4[data-v-71de91e1]{margin:0;color:var(--weilin-prompt-ui-primary-text)}.add-rule-btn[data-v-71de91e1],.add-tag-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;padding:6px 12px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:background-color .3s}.add-rule-btn[data-v-71de91e1]:hover,.add-tag-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.delete-rule-btn[data-v-71de91e1],.remove-tag-btn[data-v-71de91e1]{background-color:transparent;color:var(--weilin-prompt-ui-danger-color);border:none;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.delete-rule-btn[data-v-71de91e1]:hover,.remove-tag-btn[data-v-71de91e1]:hover{color:var(--weilin-prompt-ui-danger-color-hover)}.tags-input-container[data-v-71de91e1]{display:flex;flex-wrap:wrap;gap:8px;padding:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-input-bg);min-height:40px;margin-bottom:8px}.tag-chip[data-v-71de91e1]{display:flex;align-items:center;gap:4px;padding:4px 8px;background-color:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);border-radius:16px;font-size:14px}.tag-input[data-v-71de91e1]{flex:1;min-width:100px;border:none;outline:none;background:transparent;color:var(--weilin-prompt-ui-input-text)}.actions-section[data-v-71de91e1]{height:55px;display:flex;justify-content:flex-end;gap:12px;padding:10px;border-top:1px solid var(--weilin-prompt-ui-border-color)}.save-btn[data-v-71de91e1],.test-btn[data-v-71de91e1]{padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:all .3s}.save-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none}.save-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.test-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-button-bg);color:var(--weilin-prompt-ui-button-text);border:1px solid var(--weilin-prompt-ui-border-color)}.test-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-button-hover)}.selected-categories-container[data-v-71de91e1]{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;margin-bottom:12px;overflow:hidden}.selected-categories-header[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-header-bg);padding:8px 12px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.selected-categories-content[data-v-71de91e1]{padding:12px;max-height:200px;overflow-y:auto;background-color:var(--weilin-prompt-ui-primary-bg)}.selected-category-section[data-v-71de91e1]{margin-bottom:12px}.section-title[data-v-71de91e1]{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--weilin-prompt-ui-secondary-text)}.selected-items[data-v-71de91e1]{display:flex;flex-wrap:wrap;gap:8px}.selected-item[data-v-71de91e1]{display:flex;align-items:center;padding:4px 8px;background-color:var(--weilin-prompt-ui-tag-bg);color:var(--weilin-prompt-ui-tag-text);border-radius:4px;font-size:14px}.separator[data-v-71de91e1]{margin:0 4px;color:var(--weilin-prompt-ui-secondary-text)}.no-selected[data-v-71de91e1]{color:var(--weilin-prompt-ui-secondary-text);font-style:italic;padding:8px 0}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar{width:6px}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track)}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.selected-categories-content[data-v-71de91e1]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.template-section[data-v-71de91e1]{margin-bottom:16px}.template-controls[data-v-71de91e1]{display:flex;flex-direction:column;gap:12px}.template-select-group[data-v-71de91e1]{display:flex;flex-direction:column;gap:8px}.template-buttons[data-v-71de91e1]{display:flex;gap:8px}.template-select[data-v-71de91e1]{width:100%}.apply-template-btn[data-v-71de91e1],.edit-template-btn[data-v-71de91e1],.delete-template-btn[data-v-71de91e1]{padding:6px 12px;border-radius:4px;cursor:pointer;border:none;transition:background-color .3s}.apply-template-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;flex:1}.apply-template-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.edit-template-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-secondary-color);color:#fff;flex:1}.edit-template-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-secondary-color-hover)}.delete-template-btn[data-v-71de91e1]{background-color:var(--weilin-prompt-ui-danger-color);color:#fff;flex:1}.delete-template-btn[data-v-71de91e1]:hover{background-color:var(--weilin-prompt-ui-danger-color-hover)}.apply-template-btn[data-v-71de91e1]:disabled,.edit-template-btn[data-v-71de91e1]:disabled,.delete-template-btn[data-v-71de91e1]:disabled{background-color:var(--weilin-prompt-ui-disabled-bg);color:var(--weilin-prompt-ui-disabled-text);cursor:not-allowed}.template-select-with-apply[data-v-71de91e1]{display:flex;align-items:center;margin-bottom:10px}.template-select-with-apply .template-select[data-v-71de91e1]{flex:9;margin-right:10px}.template-bottom-buttons[data-v-71de91e1]{display:flex;justify-content:space-between;margin-top:10px}.template-bottom-buttons button[data-v-71de91e1]{flex:1;margin:0 5px}.template-bottom-buttons button[data-v-71de91e1]:first-child{margin-left:0}.template-bottom-buttons button[data-v-71de91e1]:last-child{margin-right:0}.new-template-btn[data-v-71de91e1],.edit-template-btn[data-v-71de91e1],.delete-template-btn[data-v-71de91e1]{padding:5px 10px;border-radius:4px;font-size:.9em;cursor:pointer}.new-template-btn[data-v-71de91e1]{background-color:#4caf50;color:#fff;border:none}.edit-template-btn[data-v-71de91e1]{background-color:#2196f3;color:#fff;border:none}.delete-template-btn[data-v-71de91e1]{background-color:#f44336;color:#fff;border:none}button[data-v-71de91e1]:disabled{opacity:.5;cursor:not-allowed}.rules-reminder[data-v-71de91e1]{margin-bottom:10px;padding:8px 12px;background-color:#fff7e6;border-left:4px solid #ffbb33;border-radius:4px}.rules-reminder p[data-v-71de91e1]{margin:0;font-size:.9em;color:#960}.tag-manager[data-v-08abaad1]{display:flex;flex-direction:column;padding:0 16px 16px;background:var(--weilin-prompt-ui-primary-bg);height:100%;box-sizing:border-box}.form-group[data-v-08abaad1]{margin-bottom:16px;box-sizing:border-box;width:100%}.form-group[data-v-08abaad1]:last-child{margin-bottom:0}.form-group label[data-v-08abaad1]{display:block;margin-bottom:8px;color:var(--primary-text)}.form-group input[data-v-08abaad1],.form-group textarea[data-v-08abaad1]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px;transition:all .3s ease;box-sizing:border-box}.form-group textarea[data-v-08abaad1]{resize:vertical;min-height:100px}.form-group input[data-v-08abaad1]:focus,.form-group textarea[data-v-08abaad1]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color-rgb),.1)}.color-picker[data-v-08abaad1]{display:flex;gap:12px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg)}.color-preview[data-v-08abaad1]{width:48px;height:48px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}.color-controls[data-v-08abaad1]{flex:1;display:flex;flex-direction:column;gap:8px}.color-input[data-v-08abaad1]{width:100%;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;cursor:pointer}.alpha-control[data-v-08abaad1]{display:flex;align-items:center;gap:8px}.alpha-slider[data-v-08abaad1]{flex:1;height:8px;-webkit-appearance:none;background:linear-gradient(to right,transparent,currentColor);border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color)}.alpha-slider[data-v-08abaad1]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.alpha-value[data-v-08abaad1]{min-width:48px;text-align:right;color:var(--weilin-prompt-ui-secondary-text)}.select-group-item[data-v-08abaad1]{display:flex;align-items:center}.add-tag-btn[data-v-08abaad1]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;padding:6px 12px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:background-color .3s}.add-tag-btn[data-v-08abaad1]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.weilin_prompt_ui_prompt-box[data-v-ebaf611f]{width:100%;display:flex;flex-direction:row;box-sizing:border-box;overflow:visible;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease}.weilin_prompt_ui_main-content[data-v-ebaf611f]{height:auto;transition:width .3s ease}.input-area[data-v-ebaf611f]{width:100%;padding:8px 12px;resize:vertical;border:2px solid var(--weilin-prompt-ui-border-color);border-radius:6px;overflow-y:auto;box-sizing:border-box;font-size:14px;line-height:1.6;color:var(--weilin-prompt-ui-primary-text);background-color:var(--weilin-prompt-ui-input-bg);transition:all .3s ease;box-shadow:inset 0 1px 3px var(--weilin-prompt-ui-shadow-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.input-area[data-v-ebaf611f]:hover{border-color:var(--weilin-prompt-ui-secondary-text)}.input-area[data-v-ebaf611f]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px #1890ff1a}.input-area[data-v-ebaf611f]::placeholder{color:var(--weilin-prompt-ui-secondary-text);font-size:14px}.update-label-bar[data-v-ebaf611f]{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.update-label-bar .token-counter[data-v-ebaf611f]{position:static;background:transparent;padding:0;color:var(--weilin-prompt-ui-secondary-text)}.update-label-btn[data-v-ebaf611f]{height:32px;padding:0 14px;min-width:110px;border-radius:6px;border:1px solid var(--weilin-prompt-ui-primary-color);background:var(--weilin-prompt-ui-primary-color);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:filter .15s ease,transform .05s ease,background .15s ease}.update-label-btn[data-v-ebaf611f]:hover:enabled{filter:brightness(1.08)}.update-label-btn.is-dirty[data-v-ebaf611f]{box-shadow:0 0 0 2px color-mix(in srgb,var(--weilin-prompt-ui-primary-color) 35%,transparent),0 0 10px color-mix(in srgb,var(--weilin-prompt-ui-primary-color) 40%,transparent)}.update-label-btn[data-v-ebaf611f]:active:enabled{transform:translateY(1px)}.update-label-btn[data-v-ebaf611f]:disabled{opacity:.65;cursor:not-allowed;filter:grayscale(.2)}.tokens-container[data-v-ebaf611f]{display:flex;flex-flow:wrap;gap:8px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:6px;align-items:flex-start;background-color:var(--weilin-prompt-ui-primary-bg);transition:border-color .2s ease;margin-top:10px;width:100%}.tokens-container[data-v-ebaf611f]:hover{border-color:var(--weilin-prompt-ui-secondary-text)}.token-item[data-v-ebaf611f]{overflow:visible;color:var(--weilin-prompt-ui-primary-text);font-size:13px;line-height:1.5;display:flex;align-items:center}.token-item-icon[data-v-ebaf611f]{width:12px;height:12px;fill:var(--weilin-prompt-ui-icon-color)}.token-item input[data-v-ebaf611f]{width:auto;min-width:20px;padding:4px 8px;border:2px solid var(--weilin-prompt-ui-primary-color);border-radius:4px;font-size:inherit;font-family:inherit;line-height:inherit;margin:-4px 0;box-sizing:border-box;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);box-shadow:0 0 0 2px #1890ff1a;transition:all .2s ease}.token-item input[data-v-ebaf611f]:focus{outline:none;border-color:#40a9ff;box-shadow:0 0 0 2px #1890ff33}.line-break[data-v-ebaf611f]{display:block;width:100%;height:1px;clear:both}.newline-token[data-v-ebaf611f]{color:var(--weilin-prompt-ui-secondary-text);border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-size:14px;display:inline-block}.newline-token[data-v-ebaf611f]:after{content:"";width:100%;order:1}.newline-token~.token-item-box[data-v-ebaf611f]{order:2}.tab-token[data-v-ebaf611f]{color:var(--weilin-prompt-ui-secondary-text);border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-size:14px}.newline-token[data-v-ebaf611f]:hover,.tab-token[data-v-ebaf611f]:hover{transform:translateY(-1px)}.token-symbol[data-v-ebaf611f]{font-family:monospace;-webkit-user-select:none;user-select:none;font-size:14px;opacity:.8}.tokens-container[data-v-ebaf611f]::-webkit-scrollbar{width:6px}.tokens-container[data-v-ebaf611f]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.tokens-container[data-v-ebaf611f]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.tokens-container[data-v-ebaf611f]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.input-area[data-v-ebaf611f]::-webkit-scrollbar{width:6px}.input-area[data-v-ebaf611f]::-webkit-scrollbar-track{background:var(--weilin-prompt-ui-scrollbar-track);border-radius:3px}.input-area[data-v-ebaf611f]::-webkit-scrollbar-thumb{background:var(--weilin-prompt-ui-scrollbar-thumb);border-radius:3px}.input-area[data-v-ebaf611f]::-webkit-scrollbar-thumb:hover{background:var(--weilin-prompt-ui-scrollbar-thumb-hover)}.action-item[data-v-ebaf611f]{position:relative;display:flex;flex-direction:column;align-items:center;flex:0 0 auto;margin-right:8px}.action-text[data-v-ebaf611f]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);white-space:nowrap}.fade-enter-active[data-v-ebaf611f],.fade-leave-active[data-v-ebaf611f]{transition:all .2s ease}.fade-enter-from[data-v-ebaf611f],.fade-leave-to[data-v-ebaf611f]{opacity:0;transform:translateY(-10px)}.token-controls[data-v-ebaf611f]{position:fixed;transform:translate(-50%);background-color:var(--weilin-prompt-ui-primary-bg);padding:6px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:6px;box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);z-index:1000;display:flex;gap:4px;transition:all .2s ease}.delete-btn[data-v-ebaf611f]{display:flex;align-items:center;justify-content:center;padding:6px;background-color:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .2s ease}.delete-btn[data-v-ebaf611f]:hover{background-color:#ff4d4f1a}.delete-btn svg[data-v-ebaf611f]{width:16px;height:16px;fill:#ff4d4f;transition:transform .2s ease}.favour-btn[data-v-ebaf611f]{background:transparent;border:none;padding:2px 4px;cursor:pointer;vertical-align:middle;outline:none;transition:background .2s;border-radius:4px;display:inline-flex;align-items:center}.favour-btn svg[data-v-ebaf611f]{display:block;margin:0 auto;transition:filter .2s}.favour-btn[data-v-ebaf611f]:hover{background:#fffbe6a6;box-shadow:0 0 4px #ffd70044}.favour-btn:active svg[data-v-ebaf611f]{filter:brightness(.85)}.disable-btn svg[data-v-ebaf611f]{fill:#1890ff}.enable-btn svg path[data-v-ebaf611f]{fill:green}.copy-btn svg[data-v-ebaf611f]{fill:#722ed1}.delete-btn:hover svg[data-v-ebaf611f]{transform:scale(1.1)}.settings-icon[data-v-ebaf611f]{width:24px;height:24px;fill:var(--weilin-prompt-ui-icon-color);transition:transform .3s ease}.token-item.punctuation[data-v-ebaf611f]{cursor:default;color:var(--weilin-prompt-ui-secondary-text)}.token-item.punctuation[data-v-ebaf611f]:hover{transform:none;box-shadow:none;background-color:var(--weilin-prompt-ui-secondary-bg)}.action-item button[data-v-ebaf611f]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color);transform:translateY(-1px)}.action-item button[data-v-ebaf611f]:active{transform:translateY(0)}.action-item[data-v-ebaf611f]{position:relative;z-index:9999}.fade-enter-active[data-v-ebaf611f],.fade-leave-active[data-v-ebaf611f]{transition:opacity .2s ease}.fade-enter-from[data-v-ebaf611f],.fade-leave-to[data-v-ebaf611f]{opacity:0}.settings-btn[data-v-ebaf611f]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:none;border-radius:8px;background:transparent;cursor:pointer;transition:all .2s ease}.settings-btn[data-v-ebaf611f]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.settings-icon[data-v-ebaf611f]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color);transition:transform .3s ease}.settings-btn:hover .settings-icon[data-v-ebaf611f]{transform:rotate(30deg)}.action-text[data-v-ebaf611f]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);white-space:nowrap;margin-top:2px}.language-switch-btn[data-v-ebaf611f]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:none;border-radius:8px;background:transparent;cursor:pointer;transition:all .2s ease}.language-switch-btn:hover .translate-icon[data-v-ebaf611f]{transform:rotate(10deg)}.language-switch-btn[data-v-ebaf611f]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.translate-icon[data-v-ebaf611f]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color)}.action-item[data-v-ebaf611f]:not(:last-child):after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);height:24px;width:1px;background-color:var(--weilin-prompt-ui-border-color);opacity:.5}.settings-btn[data-v-ebaf611f]:active,.tag-manager-btn[data-v-ebaf611f]:active,.language-switch-btn[data-v-ebaf611f]:active{transform:scale(.95)}.tag-manager-btn[data-v-ebaf611f]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 8px;border-radius:8px;background:none;border:none;cursor:pointer;transition:all .2s ease;min-width:48px}.tag-manager-btn:hover .tag-icon[data-v-ebaf611f]{transform:rotate(10deg)}.tag-icon[data-v-ebaf611f]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color)}.tag-manager-btn .action-text[data-v-ebaf611f]{font-size:12px;text-align:center}.tag-manager-container[data-v-ebaf611f]{margin-top:1px}.lora-manager-container[data-v-ebaf611f]{margin-top:1px;padding:6px;box-sizing:border-box;max-height:600px;min-height:200px;overflow:hidden;display:flex;flex-direction:column}.tag-manager-section[data-v-ebaf611f]{margin-top:16px;background:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;overflow:hidden}.tag-manager-header[data-v-ebaf611f]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .3s ease;background:var(--weilin-prompt-ui-secondary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.tag-manager-header[data-v-ebaf611f]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.header-left[data-v-ebaf611f]{display:flex;align-items:center;gap:8px}.tag-icon[data-v-ebaf611f]{width:18px;height:18px;fill:var(--weilin-prompt-ui-icon-color)}.section-title[data-v-ebaf611f]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text)}.header-right[data-v-ebaf611f]{display:flex;align-items:center}.collapse-icon[data-v-ebaf611f]{width:20px;height:20px;fill:var(--weilin-prompt-ui-secondary-text);transition:transform .3s ease}.collapse-icon.is-collapsed[data-v-ebaf611f]{transform:rotate(180deg)}.tag-manager-container[data-v-ebaf611f]{background:var(--weilin-prompt-ui-primary-bg);transition:all .3s ease}.translation-result[data-v-ebaf611f]{display:flex;align-items:center;margin-top:5px;font-size:12px}.translation-result .translate-button[data-v-ebaf611f]{margin-right:5px;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:background-color .3s;font-size:12px}.translation-result button[data-v-ebaf611f]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.translated-text[data-v-ebaf611f]{color:var(--weilin-prompt-ui-primary-text);font-weight:700;font-size:.9em}.token-item-box[data-v-ebaf611f]{display:inline-block;flex-direction:column;padding:3px 6px;background-color:var(--weilin-prompt-ui-token-bg);border-radius:6px;overflow:hidden;color:var(--weilin-prompt-ui-primary-text);transition:all .2s ease;border:1px solid transparent;font-size:14px;line-height:1.5;box-shadow:0 1px 2px var(--weilin-prompt-ui-shadow-color);cursor:grab}.token-item-box[data-v-ebaf611f]:active{cursor:grabbing}.token-item-box[data-v-ebaf611f]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color);border-color:var(--weilin-prompt-ui-border-color);transform:translateY(-1px);box-shadow:0 2px 4px var(--weilin-prompt-ui-shadow-color)}.autocomplete-container[data-v-ebaf611f]{position:absolute;z-index:12000;width:450px;max-height:350px;overflow-y:auto;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;padding:8px 0;margin-top:4px;background-color:var(--weilin-prompt-ui-primary-bg);max-width:calc(100% - 16px)}.autocomplete-container .close-autocomplete-btn[data-v-ebaf611f]{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background-color:var(--weilin-prompt-ui-primary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:50%;color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:background-color .2s ease}.autocomplete-container .close-autocomplete-btn[data-v-ebaf611f]:hover{background-color:var(--weilin-prompt-ui-danger-color)}.autocomplete-item[data-v-ebaf611f]{display:flex;flex-direction:row;padding:8px 12px;cursor:pointer;transition:background-color .2s ease;align-items:center}.autocomplete-item[data-v-ebaf611f]:hover{color:var(--weilin-prompt-ui-primary-text);background-color:var(--weilin-prompt-ui-hover-bg-color)}.autocomplete-item.selected[data-v-ebaf611f]{color:var(--weilin-prompt-ui-primary-text);background-color:var(--weilin-prompt-ui-primary-color)}.tag[data-v-ebaf611f]{width:65%;font-weight:500;color:var(--weilin-prompt-ui-primary-text);font-size:14px}.desc[data-v-ebaf611f]{width:35%;padding-left:20px;color:var(--weilin-prompt-ui-primary-text);font-size:14px;box-sizing:border-box}.prompt-input-translate-area[data-v-ebaf611f]{margin-top:10px;width:100%;display:flex;flex-direction:row-reverse}.prompt-input-translate-area-textarea[data-v-ebaf611f]{width:300px;height:45px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-input-bg);border-radius:8px;padding:6px}.prompt-input-translate-area-textarea[data-v-ebaf611f]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.weight-control[data-v-ebaf611f]{display:flex;align-items:center;margin-right:8px}.weight-input[data-v-ebaf611f]{width:50px;padding:4px;margin-right:4px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.weight-label[data-v-ebaf611f]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text)}.bracket-btn[data-v-ebaf611f]{padding:4px 8px;color:var(--weilin-prompt-ui-primary-text)}.translate-btn[data-v-ebaf611f]{padding:4px 8px;margin-right:4px;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:background .2s}.translate-btn[data-v-ebaf611f]:hover{background:var(--weilin-prompt-ui-primary-color-hover);color:#fff}.translate-btn:hover .action-text[data-v-ebaf611f]{color:#fff}.translate-btn:hover .token-item-icon[data-v-ebaf611f],.translate-btn:hover .utils-item-icon[data-v-ebaf611f]{fill:#fff}.bracket-btn-group[data-v-ebaf611f]{display:flex;gap:8px}.bracket-btn-container[data-v-ebaf611f]{display:flex;align-items:center;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px}.vertical-btn-group[data-v-ebaf611f]{display:flex;flex-direction:column;border-left:none}.vertical-btn[data-v-ebaf611f]{padding:2px 4px;border:1px solid var(--weilin-prompt-ui-border-color);background-color:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;font-size:12px;height:15px;width:15px;transition:background .2s;display:flex;align-items:center;justify-content:center}.vertical-btn[data-v-ebaf611f]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.tag-tips-box[data-v-ebaf611f]{position:fixed;z-index:1000;transform:translate(-50%);background-color:#000c;color:#fff;padding:8px 12px;border-radius:4px;font-size:14px;max-width:300px;box-shadow:0 2px 8px #0003;pointer-events:none}.tag-tips-content[data-v-ebaf611f]{margin:0}.tag-tips-content p[data-v-ebaf611f]{white-space:normal;line-height:1.5}.token-counter[data-v-ebaf611f]{position:absolute;bottom:5px;right:10px;font-size:12px;color:#888;background-color:#ffffffb3;padding:2px 5px;border-radius:3px;pointer-events:none}#weilin_comfyui_tools_prompt_ui_div[data-theme=dark] .token-counter[data-v-ebaf611f]{background-color:#00000080;color:#ccc}.random-tag-btn[data-v-ebaf611f],.random-tag-settings-btn[data-v-ebaf611f]{display:flex;align-items:center;justify-content:center}.random-tag-btn .action-text[data-v-ebaf611f],.random-tag-settings-btn .action-text[data-v-ebaf611f]{margin-left:4px}.utils-item-icon[data-v-ebaf611f]{fill:var(--weilin-prompt-ui-icon-color)}.lora-tag[data-v-ebaf611f]{background-color:#409eff1a!important;border:1px solid rgba(64,158,255,.5)!important;border-radius:4px}.lora-tag-icon[data-v-ebaf611f]{display:flex;align-items:center;justify-content:center;cursor:pointer;margin-right:4px}.lora-tag-icon svg[data-v-ebaf611f]{fill:#a7a8a9}.lora-weight-controls[data-v-ebaf611f]{display:flex;gap:5px;padding:5px;background-color:var(--weilin-prompt-ui-background);border-radius:4px;flex-direction:row;align-items:center}.lora-weight-controls .weight-control[data-v-ebaf611f]{display:flex;align-items:center;gap:5px}.lora-weight-controls .weight-input[data-v-ebaf611f]{width:50px;text-align:center;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:3px;background-color:var(--weilin-prompt-ui-input-background);color:var(--weilin-prompt-ui-primary-text)}.lora-weight-controls .weight-label[data-v-ebaf611f]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text)}.weilin-comfyui-sidebar-toggle-icon[data-v-ebaf611f]{fill:var(--weilin-prompt-ui-icon-color);transition:transform .3s ease;transform:rotate(180deg)}.weilin-comfyui-sidebar-toggle-icon.is-closed[data-v-ebaf611f]{transform:rotate(0)}.weilin-comfyui-selection-actions-content[data-v-ebaf611f]{display:flex;flex-direction:column;align-items:center;width:100%}.weilin-comfyui-selection-actions-count[data-v-ebaf611f]{margin-bottom:8px;font-size:12px;color:var(--weilin-prompt-ui-secondary-text);text-align:center}.weilin-comfyui-selection-actions-buttons[data-v-ebaf611f]{display:flex;gap:4px;padding:4px}.token-item-box-disabled[data-v-ebaf611f]{opacity:.5!important;position:relative;border:1px solid #ff4d4f!important}.token-item-box-disabled[data-v-ebaf611f]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent calc(50% - 1px),#ff4d4f calc(50% - 1px),#ff4d4f calc(50% + 1px),transparent calc(50% + 1px));pointer-events:none;z-index:1}.token-item-box-disabled[data-v-ebaf611f]>*{position:relative;z-index:2}.weilin-comfyui-toolbar-right[data-v-ebaf611f]{margin-left:auto}.token-item-box-selected[data-v-ebaf611f]{border:2px solid #4285f4!important;box-shadow:0 0 8px #4285f455;background-color:#4285f414!important;transition:border-color .2s,box-shadow .2s,background-color .2s;z-index:2}.center-container[data-v-ebaf611f]{display:flex;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;align-items:center;scrollbar-width:thin;margin-bottom:8px}.center-container[data-v-ebaf611f]::-webkit-scrollbar{height:8px}.center-container[data-v-ebaf611f]::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:4px}.center-container[data-v-ebaf611f]::-webkit-scrollbar-track{background:transparent}.line-token-btn[data-v-ebaf611f]{background:transparent;border:none;padding:2px 8px;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;transition:background .2s;font-size:14px}.line-token-btn svg[data-v-ebaf611f]{margin-right:2px;vertical-align:middle;transition:filter .2s}.line-token-btn[data-v-ebaf611f]:hover{background:#e6f7ff5d;box-shadow:0 0 4px #4285f444}.line-token-btn:active svg[data-v-ebaf611f]{filter:brightness(.85)}.quick-delete-btn[data-v-ebaf611f]{background:transparent;border:none;padding:2px;margin-left:2px;cursor:pointer;border-radius:3px;display:inline-flex;align-items:center;transition:background .2s;vertical-align:middle}.quick-delete-btn[data-v-ebaf611f]:hover{background:#fff1f0}.quick-delete-btn svg[data-v-ebaf611f]{display:block;transition:filter .2s}.quick-delete-btn:active svg[data-v-ebaf611f]{filter:brightness(.85)}.weilin-toast[data-v-ebaf611f]{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#000000d9;color:#fff;padding:12px 20px;border-radius:12px;font-size:16px;font-weight:500;line-height:1.4;box-shadow:0 8px 24px #00000040;pointer-events:none;z-index:9999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.weilin-fade-enter-active[data-v-ebaf611f],.weilin-fade-leave-active[data-v-ebaf611f]{transition:opacity .3s ease,transform .3s ease}.weilin-fade-enter-from[data-v-ebaf611f],.weilin-fade-leave-to[data-v-ebaf611f]{opacity:0;transform:translate(-50%,-50%) scale(.9)}.container[data-v-31204146]{margin:0 auto;padding:20px}h1[data-v-31204146]{font-size:28px;text-align:center;color:var(--weilin-prompt-ui-primary-text)}.tab-container[data-v-31204146]{display:flex;justify-content:center;margin-bottom:20px}.tab-button[data-v-31204146]{padding:10px 20px;border:none;border-radius:4px;background-color:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:background-color .3s;margin:0 5px}.tab-button.active[data-v-31204146]{background-color:var(--weilin-prompt-ui-primary-color);color:#fff}.tab-button[data-v-31204146]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.search-container[data-v-31204146]{display:flex;justify-content:space-between;margin-bottom:20px}.search-input[data-v-31204146]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px}.search-input[data-v-31204146]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.history-list[data-v-31204146]{list-style-type:none;padding:0}.history-item[data-v-31204146]{padding:10px;margin:5px 0;background-color:var(--weilin-prompt-ui-token-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;transition:box-shadow .3s}.history-item[data-v-31204146]:hover{box-shadow:0 2px 5px var(--weilin-prompt-ui-hover-bg-color)}.refresh-btn[data-v-31204146]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:all .2s ease;margin-right:10px}.refresh-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.refresh-icon[data-v-31204146]{fill:var(--weilin-prompt-ui-primary-text)}.action-buttons[data-v-31204146]{padding-top:10px;display:flex;gap:8px}.favorite-btn[data-v-31204146],.delete-favorite-btn[data-v-31204146],.use-btn[data-v-31204146]{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:transform .2s;width:25px;height:25px;font-size:20px;display:flex;justify-content:center;align-items:center}.favorite-btn[data-v-31204146]:hover,.delete-favorite-btn[data-v-31204146]:hover,.use-btn[data-v-31204146]:hover{transform:scale(1.1)}.favorite-icon[data-v-31204146],.delete-favorite-icon[data-v-31204146],.use-icon[data-v-31204146]{fill:var(--weilin-prompt-ui-primary-text)}.tag-checkbox[data-v-31204146]{margin-left:3px}.add-his-btn[data-v-31204146],.bulk-delete-btn[data-v-31204146]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg);cursor:pointer;transition:all .2s ease;margin-left:10px}.add-his-btn[data-v-31204146]:hover,.bulk-delete-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg);border-color:var(--weilin-prompt-ui-primary-color)}.add-icon[data-v-31204146],.bulk-delete-icon[data-v-31204146]{fill:var(--weilin-prompt-ui-primary-text)}.weilin-tools-dialog-overlay[data-v-31204146]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.weilin-tools-dialog-content[data-v-31204146]{background:var(--weilin-prompt-ui-primary-bg);border-radius:8px;min-width:400px;max-width:90%;box-shadow:0 2px 12px #00000026;box-sizing:border-box;z-index:1099}.weilin-tools-dialog-header[data-v-31204146]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.weilin-tools-dialog-header h2[data-v-31204146]{margin:0;font-size:18px;color:var(--primary-text)}.weilin-tools-dialog-body[data-v-31204146]{padding:20px;box-sizing:border-box}.weilin-tools-dialog-footer[data-v-31204146]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color)}.form-group[data-v-31204146]{margin-bottom:16px;box-sizing:border-box;width:100%}.form-group[data-v-31204146]:last-child{margin-bottom:0}.form-group label[data-v-31204146]{display:block;margin-bottom:8px;color:var(--primary-text)}.form-group input[data-v-31204146],.form-group textarea[data-v-31204146]{width:100%;padding:8px 12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:14px;transition:all .3s ease;box-sizing:border-box}.form-group textarea[data-v-31204146]{resize:vertical;min-height:100px}.form-group input[data-v-31204146]:focus,.form-group textarea[data-v-31204146]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px rgba(var(--weilin-prompt-ui-primary-color-rgb),.1)}.cancel-btn[data-v-31204146],.confirm-btn[data-v-31204146]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-btn[data-v-31204146]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text)}.confirm-btn[data-v-31204146]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff}.cancel-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.confirm-btn[data-v-31204146]:hover{opacity:.9}.close-btn[data-v-31204146]{border:none;background:none;font-size:20px;color:var(--weilin-prompt-ui-secondary-text);cursor:pointer;padding:4px;line-height:1}.close-btn[data-v-31204146]:hover{color:var(--weilin-prompt-ui-primary-text)}.confirm-weilin-tools-dialog[data-v-31204146]{min-width:300px!important;max-width:400px!important;width:90%;box-sizing:border-box}.confirm-message[data-v-31204146]{margin:0;color:var(--weilin-prompt-ui-primary-text);text-align:center}.delete-btn[data-v-31204146]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;background:var(--weilin-prompt-ui-danger-color, #ff4d4f);border:none;color:#fff;transition:all .3s ease}.delete-btn[data-v-31204146]:hover{opacity:.9}.has-delete-action-btn[data-v-31204146]{background:var(--weilin-prompt-ui-primary-color);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.has-delete-action-btn[data-v-31204146]:hover{opacity:.9}.cancel-delete-btn[data-v-31204146]{background:none;border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-secondary-text);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.cancel-delete-btn[data-v-31204146]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.weilin-tools-dialog-overlay[data-v-31204146]{animation:fadeIn-31204146 .2s ease}.weilin-tools-dialog-content[data-v-31204146]{animation:slideIn-31204146 .2s ease;z-index:1099}@keyframes fadeIn-31204146{0%{opacity:0}to{opacity:1}}@keyframes slideIn-31204146{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.color-picker[data-v-31204146]{display:flex;gap:12px;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-secondary-bg)}.color-preview[data-v-31204146]{width:48px;height:48px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0px}.color-controls[data-v-31204146]{flex:1;display:flex;flex-direction:column;gap:8px}.color-input[data-v-31204146]{width:100%;height:32px;padding:0;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;cursor:pointer}.alpha-control[data-v-31204146]{display:flex;align-items:center;gap:8px}.alpha-slider[data-v-31204146]{flex:1;height:8px;-webkit-appearance:none;background:linear-gradient(to right,transparent,currentColor);border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color)}.alpha-slider[data-v-31204146]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px #0000004d}.alpha-value[data-v-31204146]{min-width:48px;text-align:right;color:var(--weilin-prompt-ui-secondary-text)}.favor-name-box[data-v-31204146]{padding:4px 8px;border-radius:4px;margin-right:8px;display:inline-flex;align-items:center;min-width:40px;height:24px;box-shadow:0 1px 2px #0000001a;width:100%;margin-bottom:10px}.favor-name[data-v-31204146]{font-size:12px;font-weight:500;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.utils_tran_web__content[data-v-3647b8ec]{height:100%;padding:20px;overflow-y:auto;color:var(--weilin-prompt-ui-primary-text)}.drop-zone[data-v-3647b8ec]{width:100%;height:300px;border:2px dashed #ccc;display:flex;justify-content:center;align-items:center;color:#666;font-size:1.2em}.preview-container[data-v-3647b8ec]{display:flex;flex-direction:column;height:100%}.html-preview[data-v-3647b8ec]{flex:1;width:100%;border:1px solid #ccc;margin-bottom:10px}.action-buttons[data-v-3647b8ec]{display:flex;gap:10px}.action-buttons button[data-v-3647b8ec]{padding:8px 16px;background-color:var(--weilin-prompt-ui-primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.action-buttons button[data-v-3647b8ec]:hover{background-color:var(--weilin-prompt-ui-primary-hover)}.weilin_prompt_ui_floating-ball[data-v-728385cf]{cursor:pointer;display:flex;align-items:center;justify-content:center;transform:scale(1);font-size:24px;position:fixed;z-index:99970002999900;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_floating-ball[data-v-728385cf]:hover{box-shadow:0 6px 16px #0000004d}.weilin_prompt_ui_ball-content[data-v-728385cf]{color:#fff;font-size:16px;-webkit-user-select:none;user-select:none}.weilin_prompt_ui_menu-container[data-v-728385cf]{position:absolute;top:-320px;left:50%;max-height:330px;width:120px;transform:translate(-50%);background-color:var(--p-menubar-submenu-background);border:1px solid var(--p-menubar-submenu-border-color);border-radius:8px;box-shadow:0 4px 12px var(--weilin-prompt-ui-shadow-color);padding:8px 0;display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_menu-item[data-v-728385cf]{padding:8px 16px;cursor:pointer;transition:background-color .2s ease;font-size:12px}.weilin_prompt_ui_menu-item[data-v-728385cf]:hover{color:var(--p-menubar-item-focus-color);background-color:var(--p-menubar-item-focus-background)}.ai-chat-window[data-v-5271cf26]{display:flex;height:100%;background:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text)}.history-sidebar[data-v-5271cf26]{width:250px;border-right:1px solid var(--weilin-prompt-ui-border-color);padding:16px;background:var(--weilin-prompt-ui-secondary-bg)}.new-chat-btn[data-v-5271cf26]{width:100%;padding:8px 16px;margin-bottom:16px;background:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .3s ease}.new-chat-btn[data-v-5271cf26]:hover{background:var(--weilin-prompt-ui-primary-color-hover)}.history-list[data-v-5271cf26]{overflow-y:auto;height:calc(100% - 60px)}.history-item[data-v-5271cf26]{position:relative;padding:8px 12px;margin-bottom:8px;border-radius:4px;cursor:pointer;background:var(--weilin-prompt-ui-secondary-bg);transition:background .3s ease}.history-item[data-v-5271cf26]:hover{background:var(--weilin-prompt-ui-hover-bg-color)}.history-item.active[data-v-5271cf26]{background:var(--weilin-prompt-ui-primary-color);color:#fff}.rename-input[data-v-5271cf26]{width:100%;padding:4px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.item-actions[data-v-5271cf26]{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:none}.history-item:hover .item-actions[data-v-5271cf26]{display:flex;gap:4px}.rename-btn[data-v-5271cf26],.delete-btn[data-v-5271cf26]{background:none;border:none;padding:4px;cursor:pointer;color:var(--weilin-prompt-ui-secondary-text);transition:color .2s}.rename-btn[data-v-5271cf26]:hover,.delete-btn[data-v-5271cf26]:hover{color:var(--weilin-prompt-ui-warning-color)}.chat-main[data-v-5271cf26]{flex:1;display:flex;flex-direction:column;padding:16px}.message-list[data-v-5271cf26]{flex:1;overflow-y:auto;margin-bottom:16px}.message[data-v-5271cf26]{margin-bottom:16px;padding:12px 16px;border-radius:8px;max-width:80%;width:fit-content}.message.user[data-v-5271cf26]{margin-left:auto;background:var(--weilin-prompt-ui-primary-color);color:#fff}.message.assistant[data-v-5271cf26]{margin-right:auto;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color)}.message-content pre[data-v-5271cf26]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:inherit}.input-area[data-v-5271cf26]{display:flex;gap:8px;padding:16px;background:var(--weilin-prompt-ui-secondary-bg);border-radius:8px}.ai-chat-textarea[data-v-5271cf26]{flex:1;padding:12px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);resize:none}.ai-chat-btn[data-v-5271cf26]{padding:12px 24px;background:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .3s ease}.ai-chat-btn[data-v-5271cf26]:hover{background:var(--weilin-prompt-ui-primary-color-hover)}.ai-chat-btn[data-v-5271cf26]:disabled{background:var(--weilin-prompt-ui-secondary-bg);cursor:not-allowed;opacity:.7}.weilin_prompt_ui_lora-stack[data-v-43ee045e]{top:0;left:0;height:100%;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease;width:100%;overflow:hidden;box-sizing:border-box}.weilin_prompt_ui_lora-content[data-v-43ee045e]{width:100%;height:100%;display:flex;flex-direction:column;margin-left:0}.weilin_prompt_ui_lora-header[data-v-43ee045e]{padding:8px 16px;border-bottom:1px solid var(--weilin-prompt-ui-border-color);display:flex;justify-content:space-between;align-items:center;background:var(--weilin-prompt-ui-secondary-bg);border-top-right-radius:8px;border-top-left-radius:8px}.weilin_prompt_ui_lora-header h3[data-v-43ee045e]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-43ee045e]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_close-btn[data-v-43ee045e]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_close-btn svg[data-v-43ee045e]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-body[data-v-43ee045e]{flex:1;overflow-y:auto}.weilin_prompt_ui_lora-list[data-v-43ee045e]{display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_lora-title[data-v-43ee045e]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weilin_prompt_ui_add-btn[data-v-43ee045e]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_add-btn[data-v-43ee045e]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_add-btn svg[data-v-43ee045e]{fill:var(--weilin-prompt-ui-secondary-text)}.lora-item[data-v-43ee045e]{background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;margin-bottom:12px;overflow:hidden;transition:all .3s ease}.lora-item[data-v-43ee045e]:hover{border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color)}.lora-info[data-v-43ee045e]{display:flex;flex-direction:column;width:100%}.lora-header[data-v-43ee045e]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-primary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.lora-name[data-v-43ee045e]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.lora-weights[data-v-43ee045e]{padding:12px;background:var(--weilin-prompt-ui-secondary-bg);display:flex;flex-direction:column;gap:8px}.weight-item[data-v-43ee045e]{display:flex;align-items:center;gap:8px}.center-box[data-v-43ee045e]{width:100%;display:flex;justify-content:center;align-items:center}.text-label[data-v-43ee045e]{color:var(--weilin-prompt-ui-primary-text);width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.weight-item label[data-v-43ee045e]{font-size:12px;color:var(--weilin-prompt-ui-secondary-text);min-width:60px}.lora-weight[data-v-43ee045e]{flex:1;width:100%;padding:6px 8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:13px;transition:all .3s ease}.lora-weight[data-v-43ee045e]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.lora-weight[data-v-43ee045e]:focus{border-color:var(--weilin-prompt-ui-primary-color);outline:none;box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.open-button[data-v-43ee045e]{width:fit-content;padding:4px;background-color:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s;font-size:14px}.open-button[data-v-43ee045e]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover)}.cloud-manager[data-v-026f0961]{padding:16px}.file-list[data-v-026f0961]{max-height:500px}.file-item[data-v-026f0961]{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #eee}.file-info[data-v-026f0961]{display:flex;flex-direction:column}.file-name[data-v-026f0961]{font-weight:700}.file-type[data-v-026f0961]{color:#666;font-size:.8em}.open-btn[data-v-026f0961]{padding:4px 8px;background:var(--weilin-prompt-ui-secondary-bg);color:var(--weilin-prompt-ui-primary-text);border:none;border-radius:4px;cursor:pointer}.refresh-btn[data-v-026f0961]{background:none;border:none;cursor:pointer;padding:4px}.toolbar[data-v-026f0961]{display:flex;gap:8px;margin-bottom:16px}.database-btn[data-v-026f0961]{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);color:var(--weilin-prompt-ui-primary-text);border-radius:4px;cursor:pointer;color:var(--text-color)}.database-btn[data-v-026f0961]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.tag-icon[data-v-026f0961]{width:20px;height:20px;fill:var(--weilin-prompt-ui-icon-color)}.current-path[data-v-026f0961]{margin-left:auto;padding:4px 8px;background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:4px;color:var(--weilin-prompt-ui-primary-text)}.back-btn[data-v-026f0961]{display:flex;align-items:center;gap:4px;padding:8px;width:100%;background-color:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;color:var(--weilin-prompt-ui-primary-text);cursor:pointer;margin-bottom:8px}.back-btn[data-v-026f0961]:hover{background-color:var(--weilin-prompt-ui-primary-color)}.file-actions[data-v-026f0961]{display:flex;gap:8px}.install-container[data-v-026f0961]{display:flex;align-items:center}.installed-badge[data-v-026f0961]{padding:4px 8px;background-color:var(--weilin-prompt-ui-success-color, #4caf50);color:#fff;border-radius:4px;font-size:.8em}.install-btn[data-v-026f0961]{padding:4px 8px;background:var(--weilin-prompt-ui-primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer}.install-btn[data-v-026f0961]:hover{opacity:.9}.weilin_prompt_ui_lora-stack[data-v-c2ab38ea]{height:100%;width:100%;background:var(--weilin-prompt-ui-primary-bg);transition:width .3s ease;overflow:hidden;box-sizing:border-box}.weilin_prompt_ui_lora-content[data-v-c2ab38ea]{width:100%;height:100%;display:flex;flex-direction:column;margin-left:0}.weilin_prompt_ui_lora-header[data-v-c2ab38ea]{padding:8px 16px;border-bottom:1px solid var(--weilin-prompt-ui-border-color);display:flex;justify-content:flex-end;align-items:center;border-top-right-radius:8px;border-top-left-radius:8px}.weilin_prompt_ui_lora-header h3[data-v-c2ab38ea]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text)}.weilin_prompt_ui_close-btn[data-v-c2ab38ea]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_close-btn[data-v-c2ab38ea]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_close-btn svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-secondary-text)}.weilin_prompt_ui_lora-body[data-v-c2ab38ea]{flex:1;overflow-y:auto;padding:16px}.weilin_prompt_ui_lora-list[data-v-c2ab38ea]{display:flex;flex-direction:column;gap:8px}.weilin_prompt_ui_lora-title[data-v-c2ab38ea]{margin:0;font-size:16px;color:var(--weilin-prompt-ui-primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions[data-v-c2ab38ea]{display:flex;gap:8px;align-items:center}.weilin_prompt_ui_add-btn[data-v-c2ab38ea]{border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.weilin_prompt_ui_add-btn[data-v-c2ab38ea]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.weilin_prompt_ui_add-btn svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-secondary-text)}.lora-item[data-v-c2ab38ea]{background:var(--weilin-prompt-ui-secondary-bg);border:1px solid var(--weilin-prompt-ui-border-color);border-radius:8px;margin-bottom:12px;overflow:hidden;transition:all .3s ease}.lora-item[data-v-c2ab38ea]:hover{border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 2px 8px var(--weilin-prompt-ui-shadow-color)}.lora-info[data-v-c2ab38ea]{display:flex;flex-direction:column;width:100%}.hidden-lora[data-v-c2ab38ea]{background:#ffc8c833!important;border-color:#ff969680!important}.lora-header[data-v-c2ab38ea]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--weilin-prompt-ui-primary-bg);border-bottom:1px solid var(--weilin-prompt-ui-border-color)}.lora-name[data-v-c2ab38ea]{font-size:14px;font-weight:500;color:var(--weilin-prompt-ui-primary-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.lora-actions[data-v-c2ab38ea]{display:flex;align-items:center;gap:8px}.lora-weights-row[data-v-c2ab38ea]{display:flex;flex-direction:row;gap:5px;align-items:flex-end;padding:12px;background:var(--weilin-prompt-ui-secondary-bg)}.weight-item-col[data-v-c2ab38ea]{display:flex;flex-direction:column;gap:2px;width:60px}.weight-item-col label[data-v-c2ab38ea]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.switch-item-col[data-v-c2ab38ea]{display:flex;flex-direction:column;align-items:center;gap:2px}.switch-item-col label[data-v-c2ab38ea]{font-size:11px;color:var(--weilin-prompt-ui-secondary-text);margin-bottom:2px}.lora-weight[data-v-c2ab38ea]{flex:1;width:100%;padding:4px 6px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);font-size:12px;transition:all .3s ease}.lora-weight[data-v-c2ab38ea]:hover{border-color:var(--weilin-prompt-ui-primary-color)}.lora-weight[data-v-c2ab38ea]:focus{border-color:var(--weilin-prompt-ui-primary-color);outline:none;box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.remove-btn[data-v-c2ab38ea],.look-on-btn[data-v-c2ab38ea]{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:all .3s ease}.remove-btn[data-v-c2ab38ea]:hover,.look-on-btn[data-v-c2ab38ea]:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}.remove-btn svg[data-v-c2ab38ea],.look-on-btn svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-secondary-text)}.remove-btn:hover svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-danger-color)}.look-on-btn:hover svg[data-v-c2ab38ea]{fill:var(--weilin-prompt-ui-primary-color)}.switch-item[data-v-c2ab38ea]{display:flex;align-items:center;gap:6px}.switch[data-v-c2ab38ea]{position:relative;display:inline-block;width:36px;height:20px}.switch input[data-v-c2ab38ea]{opacity:0;width:0;height:0}.switch input:checked+.slider[data-v-c2ab38ea]:before{transform:translate(16px)}.slider[data-v-c2ab38ea]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:20px}.slider[data-v-c2ab38ea]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}.switch input:checked+.slider[data-v-c2ab38ea]{background-color:var(--weilin-prompt-ui-primary-color)}.settings-content[data-v-d9630f57]{display:flex;flex-direction:column;min-width:600px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);padding-bottom:20px;box-sizing:border-box;z-index:1099}input[data-v-d9630f57]{padding:8px;margin-right:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}input[data-v-d9630f57]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}button[data-v-d9630f57]{padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}button[data-v-d9630f57]:hover{background-color:#1976d2}button[data-v-d9630f57]:disabled{background-color:#8d8f91}.data-container[data-v-d9630f57]{margin-top:24px;padding:16px;color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);border-radius:4px;height:500px}.tag-group-container[data-v-d9630f57]{height:430px;overflow-y:auto}h3[data-v-d9630f57],h4[data-v-d9630f57]{margin:8px 0;text-align:center}p[data-v-d9630f57]{margin:4px 0;text-align:center}.loading-overlay[data-v-d9630f57]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.loading-spinner[data-v-d9630f57]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin-d9630f57 1s linear infinite}@keyframes spin-d9630f57{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.info-links[data-v-d9630f57]{margin-bottom:16px;padding:12px;background-color:var(--weilin-prompt-ui-secondary-bg);border-radius:8px;border:1px solid var(--weilin-prompt-ui-border-color)}.info-link-item[data-v-d9630f57]{display:flex;align-items:center;margin:6px 0;font-size:14px}.info-link-label[data-v-d9630f57]{color:var(--weilin-prompt-ui-secondary-text);min-width:80px;font-weight:500}.info-link[data-v-d9630f57]{color:var(--weilin-prompt-ui-primary-color);text-decoration:none;transition:color .2s}.info-link[data-v-d9630f57]:hover{color:var(--weilin-prompt-ui-primary-color-hover);text-decoration:underline}.danbooru-manager[data-v-f19f168a]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.title[data-v-f19f168a]{margin:0 0 20px;padding:10px 0;text-align:center;border-bottom:1px solid var(--weilin-prompt-ui-border-color, #ddd);color:var(--weilin-prompt-ui-primary-text, #333)}.action-bar[data-v-f19f168a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.search-box[data-v-f19f168a]{display:flex;flex:1;margin-right:10px}.search-box input[data-v-f19f168a]{flex:1;padding:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.search-btn[data-v-f19f168a],.add-btn[data-v-f19f168a],.page-btn[data-v-f19f168a]{padding:8px 16px;border:none;border-radius:4px;background-color:var(--weilin-prompt-ui-primary-color, #409eff);color:#fff;cursor:pointer;margin-left:10px}.search-btn[data-v-f19f168a]:hover,.add-btn[data-v-f19f168a]:hover,.page-btn[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-primary-color-hover, #66b1ff)}.search-btn[data-v-f19f168a]:disabled,.page-btn[data-v-f19f168a]:disabled{background-color:var(--weilin-prompt-ui-disabled-color, #a0cfff);cursor:not-allowed}.pagination[data-v-f19f168a]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;gap:15px;flex-wrap:wrap}.page-info[data-v-f19f168a]{margin:0 15px;color:var(--weilin-prompt-ui-primary-text, #333)}.page-size-control[data-v-f19f168a]{display:flex;align-items:center;gap:5px;color:var(--weilin-prompt-ui-primary-text, #333)}.page-size-input[data-v-f19f168a]{width:80px;padding:4px 8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text);text-align:center}.tag-list[data-v-f19f168a]{flex:1;overflow-y:auto;border:1px solid var(--weilin-prompt-ui-border-color, #ddd);border-radius:4px}table[data-v-f19f168a]{width:100%;border-collapse:collapse}th[data-v-f19f168a],td[data-v-f19f168a]{padding:12px 15px;text-align:left;border-bottom:1px solid var(--weilin-prompt-ui-border-color, #ddd);color:var(--weilin-prompt-ui-primary-text)}th[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-background-secondary, #f5f7fa);color:var(--weilin-prompt-ui-primary-text, #333);font-weight:700;position:sticky;top:0;z-index:10}.id-column[data-v-f19f168a]{width:60px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.tag-column[data-v-f19f168a],.translate-column[data-v-f19f168a]{width:20%;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.color-column[data-v-f19f168a]{width:120px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.hot-column[data-v-f19f168a]{width:80px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.aliases-column[data-v-f19f168a]{width:100px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.control-column[data-v-f19f168a]{width:160px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.checkbox-column[data-v-f19f168a]{width:50px;background-color:var(--weilin-prompt-ui-secondary-bg, #f5f7fa)}.checkbox-column input[type=checkbox][data-v-f19f168a]{margin:0;width:auto}tr[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-input-bg, #f5f7fa)}.color-box[data-v-f19f168a]{width:20px;height:20px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color, #ddd)}.edit-btn[data-v-f19f168a],.delete-btn[data-v-f19f168a]{padding:6px 12px;border:none;border-radius:4px;cursor:pointer}.edit-btn[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-warning-color, #e6a23c);color:#fff}.delete-btn[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-danger-color, #f56c6c);color:#fff}.edit-btn[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-warning-color-hover, #ebb563)}.delete-btn[data-v-f19f168a]:hover{background-color:var(--weilin-prompt-ui-danger-color-hover, #f78989)}.no-results[data-v-f19f168a]{padding:20px;text-align:center;color:var(--weilin-prompt-ui-secondary-text, #909399);font-style:italic}.weilin-tools-dialog[data-v-f19f168a]{position:fixed;display:flex;justify-content:center;align-items:center;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:10099}.weilin-tools-dialog-content[data-v-f19f168a]{padding:20px;width:400px;max-width:90%;background-color:var(--weilin-prompt-ui-primary-bg, #fff);border-radius:8px;box-shadow:0 2px 12px #0000001a;z-index:10100}.weilin-tools-dialog h3[data-v-f19f168a]{margin-top:0;margin-bottom:20px;color:var(--weilin-prompt-ui-primary-text, #333)}.form-group[data-v-f19f168a]{margin-bottom:15px}.form-group label[data-v-f19f168a]{display:block;margin-bottom:5px;color:var(--weilin-prompt-ui-primary-text, #333)}.form-group input[data-v-f19f168a],.form-group select[data-v-f19f168a]{width:100%;padding:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}.color-preview[data-v-f19f168a]{width:30px;height:30px;margin-top:5px;border-radius:4px;border:1px solid var(--weilin-prompt-ui-border-color, #ddd)}.weilin-tools-dialog-actions[data-v-f19f168a]{display:flex;justify-content:flex-end;margin-top:20px}.weilin-tools-dialog-actions button[data-v-f19f168a]{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;margin-left:10px}.weilin-tools-dialog-actions button[data-v-f19f168a]:first-child{background-color:var(--weilin-prompt-ui-cancel-color, #909399);color:#fff}.weilin-tools-dialog-actions button[data-v-f19f168a]:last-child{background-color:var(--weilin-prompt-ui-primary-color, #409eff);color:#fff}.overlay[data-v-f19f168a]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:1000}input[data-v-f19f168a]{padding:8px;margin-right:8px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background:var(--weilin-prompt-ui-input-bg);color:var(--weilin-prompt-ui-primary-text)}input[data-v-f19f168a]:focus{outline:none;border-color:var(--weilin-prompt-ui-primary-color);box-shadow:0 0 0 2px var(--weilin-prompt-ui-primary-color-fade)}.batch-delete-btn[data-v-f19f168a]{padding:8px 16px;border:none;border-radius:4px;background-color:var(--weilin-prompt-ui-danger-color, #f56c6c);color:#fff;cursor:pointer;transition:all .3s}.batch-delete-btn[data-v-f19f168a]:hover:not(.disabled){background-color:var(--weilin-prompt-ui-danger-color-hover, #f78989)}.batch-delete-btn.disabled[data-v-f19f168a]{background-color:var(--weilin-prompt-ui-disabled-color, #a0cfff);cursor:not-allowed;opacity:.6}.main-container[data-v-b041d233]{width:100%;height:100%}[data-v-b041d233] .dialog-overlay{z-index:9999!important}.version-update-notification[data-v-b041d233]{position:fixed;right:10px;bottom:10px;z-index:9999;background-color:var(--primary-color, #4caf50);color:#fff;padding:10px 15px;border-radius:4px;box-shadow:0 2px 8px #0003;max-width:350px;animation:slideIn-b041d233 .3s ease-out}.version-update-content[data-v-b041d233]{display:flex;flex-direction:column}.version-update-actions[data-v-b041d233]{display:flex;justify-content:flex-end;margin-top:10px}.goto-github-btn[data-v-b041d233]{background-color:#fff;color:var(--primary-color, #4caf50);border:none;border-radius:4px;padding:5px 10px;margin-right:10px;cursor:pointer;font-weight:700}.close-version-update[data-v-b041d233]{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0 5px}@keyframes slideIn-b041d233{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.no-remind-btn[data-v-b041d233]{background-color:#fffc;color:var(--primary-color, #4caf50);border:none;border-radius:4px;padding:5px 10px;margin-right:10px;cursor:pointer;font-weight:700;transition:background-color .2s ease}.no-remind-btn[data-v-b041d233]:hover{background-color:#ffffffe6}.version-update-actions[data-v-b041d233]{display:flex;justify-content:flex-end;margin-top:10px;gap:5px}#weilin_comfyui_tools_prompt_ui_div{--weilin-prompt-ui-primary-bg: #ffffff;--weilin-prompt-ui-secondary-bg: #f5f5f5;--weilin-prompt-ui-primary-text: #333333;--weilin-prompt-ui-secondary-text: #666666;--weilin-prompt-ui-border-color: #e8e8e8;--weilin-prompt-ui-hover-bg-color: rgba(0, 0, 0, .1);--weilin-prompt-ui-icon-color: #666666;--weilin-prompt-ui-input-bg: #ffffff;--weilin-prompt-ui-token-bg: #f0f0f0;--weilin-prompt-ui-shadow-color: rgba(0, 0, 0, .1);--weilin-prompt-ui-scrollbar-track: #f5f5f5;--weilin-prompt-ui-scrollbar-thumb: #d9d9d9;--weilin-prompt-ui-scrollbar-thumb-hover: #bfbfbf;--weilin-prompt-ui-tag-hover: #e6f7ff;--weilin-prompt-ui-primary-color: #1890ff;--weilin-prompt-ui-color-picker-bg: var(--weilin-prompt-ui-secondary-bg);--weilin-prompt-ui-color-picker-border: var(--weilin-prompt-ui-border-color);--weilin-prompt-ui-color-preview-size: 48px;--weilin-prompt-ui-color-input-height: 32px;--weilin-prompt-ui-slider-height: 8px;--weilin-prompt-ui-slider-thumb-size: 16px;--weilin-prompt-ui-danger-color: #ff4d4f;--weilin-prompt-ui-danger-color-hover: #ff7875;--weilin-prompt-ui-success-color: #52c41a;--weilin-prompt-ui-warning-color: #faad14;--weilin-prompt-ui-checkerboard-size: 10px;--weilin-prompt-ui-checkerboard-color: #ccc;--weilin-prompt-ui-button-bg: #ffffff;--weilin-prompt-ui-button-text: #333333;--weilin-prompt-ui-button-hover: #f5f5f5;--weilin-prompt-ui-input-text: #333333;--weilin-prompt-ui-tag-bg: #f5f5f5;--weilin-prompt-ui-tag-text: #333333;--weilin-prompt-ui-header-bg: #f5f5f5;--weilin-prompt-ui-primary-color-hover: #40a9ff;--weilin-prompt-ui-gradient-bg: linear-gradient(135deg, #f8fafc 0%, #e3eafc 100%);--weilin-prompt-ui-gradient-primary: linear-gradient(90deg, #6a11cb 0%, #2575fc 100%);--weilin-prompt-ui-gradient-primary-hover: linear-gradient(90deg, #2575fc 0%, #6a11cb 100%);--weilin-prompt-ui-card-bg: #f4f7fd;--weilin-prompt-ui-card-shadow: 0 2px 12px 0 rgba(80, 120, 200, .08);--weilin-prompt-ui-box-shadow: 0 6px 32px 0 rgba(80, 120, 200, .12);--weilin-prompt-ui-border-radius: 12px;--weilin-prompt-ui-title-color: #2a3a5a;--weilin-prompt-ui-label-color: #2a3a5a;--weilin-prompt-ui-input-bg: #fff;--weilin-prompt-ui-input-border: #b3c2e0;--weilin-prompt-ui-input-focus: #2575fc;--weilin-prompt-ui-btn-bg: #1890ff;--weilin-prompt-ui-btn-bg-hover: #1762b6;--weilin-prompt-ui-btn-text: #fff;--weilin-prompt-ui-btn-shadow: 0 2px 8px 0 rgba(24, 144, 255, .12);--weilin-prompt-ui-btn-gradient: #1890ff;--weilin-prompt-ui-btn-gradient-hover: #1762b6;--weilin-prompt-ui-btn-gradient-text: #fff}#weilin_comfyui_tools_prompt_ui_div[data-theme=dark]{--weilin-prompt-ui-primary-bg: #1a1a1a;--weilin-prompt-ui-secondary-bg: #2d2d2d;--weilin-prompt-ui-primary-text: #e0e0e0;--weilin-prompt-ui-secondary-text: #a0a0a0;--weilin-prompt-ui-border-color: #404040;--weilin-prompt-ui-hover-bg-color: rgba(255, 255, 255, .1);--weilin-prompt-ui-icon-color: #a0a0a0;--weilin-prompt-ui-token-bg: #404040;--weilin-prompt-ui-shadow-color: rgba(0, 0, 0, .3);--weilin-prompt-ui-scrollbar-track: #dfdfdf;--weilin-prompt-ui-scrollbar-thumb: #404040;--weilin-prompt-ui-scrollbar-thumb-hover: #505050;--weilin-prompt-ui-tag-hover: #111d2c;--weilin-prompt-ui-primary-color: #40a9ff;--weilin-prompt-ui-checkerboard-color: #404040;--weilin-prompt-ui-danger-color: #ff7875;--weilin-prompt-ui-danger-color-hover: #ffa39e;--weilin-prompt-ui-success-color: #73d13d;--weilin-prompt-ui-warning-color: #ffc53d;--weilin-prompt-ui-button-bg: #2d2d2d;--weilin-prompt-ui-button-text: #e0e0e0;--weilin-prompt-ui-button-hover: #404040;--weilin-prompt-ui-input-text: #e0e0e0;--weilin-prompt-ui-tag-bg: #2d2d2d;--weilin-prompt-ui-tag-text: #e0e0e0;--weilin-prompt-ui-header-bg: #2d2d2d;--weilin-prompt-ui-primary-color-hover: #69b3ff;--weilin-prompt-ui-gradient-bg: linear-gradient(135deg, #23243a 0%, #1a1a1a 100%);--weilin-prompt-ui-gradient-primary: linear-gradient(90deg, #2575fc 0%, #6a11cb 100%);--weilin-prompt-ui-gradient-primary-hover: linear-gradient(90deg, #6a11cb 0%, #2575fc 100%);--weilin-prompt-ui-card-bg: #23243a;--weilin-prompt-ui-card-shadow: 0 2px 12px 0 rgba(40, 60, 120, .18);--weilin-prompt-ui-box-shadow: 0 6px 32px 0 rgba(40, 60, 120, .22);--weilin-prompt-ui-border-radius: 12px;--weilin-prompt-ui-title-color: #e0e0e0;--weilin-prompt-ui-label-color: #e0e0e0;--weilin-prompt-ui-input-bg: #2d2d2d;--weilin-prompt-ui-input-border: #505070;--weilin-prompt-ui-input-focus: #69b3ff;--weilin-prompt-ui-btn-bg: #144077;--weilin-prompt-ui-btn-bg-hover: #1762b6;--weilin-prompt-ui-btn-text: #fff;--weilin-prompt-ui-btn-shadow: 0 2px 8px 0 rgba(20, 64, 119, .18);--weilin-prompt-ui-btn-gradient: #144077;--weilin-prompt-ui-btn-gradient-hover: #1762b6;--weilin-prompt-ui-btn-gradient-text: #fff}#weilin_comfyui_tools_prompt_ui_div .color-picker{background:var(--weilin-prompt-ui-color-picker-bg);border:1px solid var(--weilin-prompt-ui-color-picker-border);border-radius:4px;padding:12px}#weilin_comfyui_tools_prompt_ui_div .color-preview{width:var(--weilin-prompt-ui-color-preview-size);height:var(--weilin-prompt-ui-color-preview-size);border-radius:4px;border:1px solid var(--weilin-prompt-ui-color-picker-border);background-image:linear-gradient(45deg,var(--weilin-prompt-ui-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--weilin-prompt-ui-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--weilin-prompt-ui-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--weilin-prompt-ui-checkerboard-color) 75%);background-size:var(--weilin-prompt-ui-checkerboard-size) var(--weilin-prompt-ui-checkerboard-size);background-position:0 0,0 5px,5px -5px,-5px 0px}#weilin_comfyui_tools_prompt_ui_div input[type=range]{-webkit-appearance:none;width:100%;height:var(--weilin-prompt-ui-slider-height);border-radius:calc(var(--weilin-prompt-ui-slider-height) / 2);background:var(--weilin-prompt-ui-secondary-bg);outline:none;border:1px solid var(--weilin-prompt-ui-border-color)}#weilin_comfyui_tools_prompt_ui_div input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:var(--weilin-prompt-ui-slider-thumb-size);height:var(--weilin-prompt-ui-slider-thumb-size);border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px var(--weilin-prompt-ui-shadow-color)}#weilin_comfyui_tools_prompt_ui_div input[type=range]::-moz-range-thumb{width:var(--weilin-prompt-ui-slider-thumb-size);height:var(--weilin-prompt-ui-slider-thumb-size);border-radius:50%;background:var(--weilin-prompt-ui-primary-color);cursor:pointer;border:2px solid white;box-shadow:0 0 2px var(--weilin-prompt-ui-shadow-color)}#weilin_comfyui_tools_prompt_ui_div input[type=color]{-webkit-appearance:none;border:none;padding:0;width:100%;height:var(--weilin-prompt-ui-color-input-height)}#weilin_comfyui_tools_prompt_ui_div input[type=color]::-webkit-color-swatch-wrapper{padding:0}#weilin_comfyui_tools_prompt_ui_div input[type=color]::-webkit-color-swatch{border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px}#weilin_comfyui_tools_prompt_ui_div .add-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}#weilin_comfyui_tools_prompt_ui_div .add-btn:hover{background-color:var(--weilin-prompt-ui-hover-bg-color)}#weilin_comfyui_tools_prompt_ui_div .add-btn:disabled{opacity:.5;cursor:not-allowed;background-color:var(--weilin-prompt-ui-secondary-bg)}#weilin_comfyui_tools_prompt_ui_div .add-btn .plus-icon{font-size:18px;line-height:1}#weilin_comfyui_tools_prompt_ui_div .add-tab{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px dashed var(--weilin-prompt-ui-border-color);border-radius:4px;background-color:var(--weilin-prompt-ui-primary-bg);color:var(--weilin-prompt-ui-primary-text);cursor:pointer;transition:all .3s ease}#weilin_comfyui_tools_prompt_ui_div .add-tab:hover{border-color:var(--weilin-prompt-ui-primary-color);color:var(--weilin-prompt-ui-primary-color)}#weilin_comfyui_tools_prompt_ui_div .add-tab .plus-icon{font-size:18px;line-height:1}.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px #00000026;border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;white-space:nowrap;color:#525252;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;white-space:nowrap;color:#fff;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50;display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;user-select:none}.jv-container.jv-light .jv-button,.jv-container.jv-dark .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111}.jv-container.jv-dark .jv-item.jv-array{color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:initial!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url(./icon.svg);background-repeat:no-repeat;background-size:contain;background-position:center center;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(to bottom,#0000 20%,#e6e6e64d);transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(to bottom,#0000 20%,#e6e6e64d)}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-array:last-of-type,.jv-node .jv-toggle.open+.jv-key+.jv-push>.jv-item.jv-object:last-of-type{margin-left:12px}.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-array:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-item.jv-object:last-of-type,.jv-node .jv-toggle:not(.open)+.jv-key+.jv-push>.jv-node:last-of-type{margin-left:0}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px} diff --git a/pyproject.toml b/pyproject.toml index 3d46db7..e758858 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "weilin-comfyui-tools" description = "让你在 ComfyUI 中快捷的使用提示词工具 Quickly use the prompt word tool in ComfyUI" -version = "0.0.66" +version = "0.0.67" license = {file = "LICENSE"} dependencies = [] diff --git a/src/src/utils/version.js b/src/src/utils/version.js index 180ce7d..223e8b4 100644 --- a/src/src/utils/version.js +++ b/src/src/utils/version.js @@ -1 +1 @@ -export const version = "v0.0.66"; \ No newline at end of file +export const version = "v0.0.67"; \ No newline at end of file diff --git a/src/src/view/prompt_box/prompt_index.css b/src/src/view/prompt_box/prompt_index.css index 3651283..a872ee0 100644 --- a/src/src/view/prompt_box/prompt_index.css +++ b/src/src/view/prompt_box/prompt_index.css @@ -1100,3 +1100,26 @@ .line-token-btn:active svg { filter: brightness(0.85); } + +.quick-delete-btn { + background: transparent; + border: none; + padding: 2px 2px; + margin-left: 2px; + cursor: pointer; + border-radius: 3px; + display: inline-flex; + align-items: center; + transition: background 0.2s; + vertical-align: middle; +} +.quick-delete-btn:hover { + background: #fff1f0; +} +.quick-delete-btn svg { + display: block; + transition: filter 0.2s; +} +.quick-delete-btn:active svg { + filter: brightness(0.85); +} \ No newline at end of file diff --git a/src/src/view/prompt_box/prompt_index.vue b/src/src/view/prompt_box/prompt_index.vue index 906bc99..92506ba 100644 --- a/src/src/view/prompt_box/prompt_index.vue +++ b/src/src/view/prompt_box/prompt_index.vue @@ -349,6 +349,15 @@ + + @@ -1815,37 +1824,86 @@ const oneClickTranslatePrompt = async () => { // currentIndex = endIndex; // } - let needTranslateData = [] - for (let i = 0; i < tokens.value.length; i++) { - const token = tokens.value[i]; - // 检查translate是否包含英文字符 /[a-zA-Z]/.test(token.translate) - if (token.translate && token.translate === token.text) { - // 提取需要翻译的文本 - const textToTranslate = token.text; - needTranslateData.push({ index: token.id, text: textToTranslate, translate: '' }); + const batchSize = 2; // 每批最多2个 + let currentIndex = 0; + const MAX_TOKEN_LENGTH = 20; // 超过20单独翻译 + + while (currentIndex < tokens.value.length) { + let batchTranslateData = []; + let batchTokenIds = []; + let batchTokenLength = 0; + let batchCount = 0; + + // 收集本批次 + for (let i = currentIndex; i < tokens.value.length; i++) { + const token = tokens.value[i]; + if ( + token.translate && + /[a-zA-Z]/.test(token.translate) && + !(typeof token.text === 'string' && token.text.startsWith(' MAX_TOKEN_LENGTH) { + // 单独翻译 + const jsonString = JSON.stringify([{ index: token.id, text: textToTranslate, translate: '' }]); + await tryTranslate(jsonString, [token.id]); + currentIndex = i + 1; + break; + } else { + batchTranslateData.push({ index: token.id, text: textToTranslate, translate: '' }); + batchTokenIds.push(token.id); + batchTokenLength += textLen; + batchCount++; + } + } + + // 满2个就发起翻译 + if (batchCount === batchSize) { + break; + } } + + if (batchTranslateData.length > 0) { + const jsonString = JSON.stringify(batchTranslateData); + await tryTranslate(jsonString, batchTokenIds); + } + + // 跳过已处理的token + currentIndex += batchCount > 0 ? batchCount : 1; } - const jsonString = JSON.stringify(needTranslateData) +}; - translatorApi.translaterText(jsonString, "").then(res => { - if (res) { - if (res.data) { - const jsonData = JSON.parse(res.data) - // console.log(jsonData) - for (let i = 0; i < jsonData.length; i++) { - const item = jsonData[i]; +const tryTranslate = async (jsonString, tokenIds) => { + let retry = 0; + while (retry < 2) { + try { + const res = await translatorApi.translaterText(jsonString, ""); + if (res && res.data) { + const jsonData = JSON.parse(res.data); + for (let j = 0; j < jsonData.length; j++) { + const item = jsonData[j]; const tokenIndex = tokens.value.findIndex(t => t.id === item.index); if (tokenIndex !== -1) { tokens.value[tokenIndex].translate = item.translate; } } + return true; // 成功 + } + return false; + } catch (e) { + retry++; + if (retry >= 2) { + // 最多重试一次,失败则跳过 + return false; } } - }) + } + return false; }; - const tempInputText = ref('') const finishPromptPutItHistory = () => {