@inpageedit/core 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/dist/PluginPrefSync-PIoKRRu2.js +254 -0
- package/dist/PluginPrefSync-PIoKRRu2.js.map +1 -0
- package/dist/__test__/utils/constants.d.ts +3 -2
- package/dist/constants/endpoints.d.ts +1 -1
- package/dist/{index-BR6gK_ki.js → index-B5vDBMEh.js} +44 -38
- package/dist/index-B5vDBMEh.js.map +1 -0
- package/dist/{index-BnAhw94L.js → index-BP-e8PeH.js} +2 -2
- package/dist/{index-BnAhw94L.js.map → index-BP-e8PeH.js.map} +1 -1
- package/dist/{index-ByzgI28q.js → index-BVkdBJNf.js} +6 -2
- package/dist/index-BVkdBJNf.js.map +1 -0
- package/dist/{index-eOIVMf9E.js → index-BjwVNZ_h.js} +46 -35
- package/dist/index-BjwVNZ_h.js.map +1 -0
- package/dist/{index-Cx-YiN1j.js → index-BzCqww16.js} +22 -21
- package/dist/index-BzCqww16.js.map +1 -0
- package/dist/index-CFb1PSJg.js +185 -0
- package/dist/index-CFb1PSJg.js.map +1 -0
- package/dist/{index-ByJfEsN8.js → index-D7NpqwUe.js} +148 -110
- package/dist/index-D7NpqwUe.js.map +1 -0
- package/dist/{index-Z-_kjibx.js → index-DFPN4uYd.js} +757 -698
- package/dist/index-DFPN4uYd.js.map +1 -0
- package/dist/index-DGOY4X1J.js +4912 -0
- package/dist/{index-DqJUIV2e.js.map → index-DGOY4X1J.js.map} +1 -1
- package/dist/{index-CAiGct8U.js → index-DKDtc9IF.js} +42 -42
- package/dist/index-DKDtc9IF.js.map +1 -0
- package/dist/index-DkQLtTG0.js +211 -0
- package/dist/index-DkQLtTG0.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/models/WikiTitle/index.d.ts +2 -2
- package/dist/plugins/analytics/index.d.ts +41 -0
- package/dist/plugins/in-article-links/index.d.ts +14 -0
- package/dist/plugins/preferences-ui/PluginPrefSync.d.ts +2 -0
- package/dist/plugins/preferences-ui/index.d.ts +3 -1
- package/dist/plugins/quick-delete/index.d.ts +3 -0
- package/dist/plugins/quick-diff/index.d.ts +17 -0
- package/dist/plugins/quick-edit/index.d.ts +8 -0
- package/dist/plugins/quick-move/index.d.ts +16 -0
- package/dist/plugins/quick-redirect/index.d.ts +15 -0
- package/dist/plugins/toolbox/index.d.ts +9 -0
- package/dist/services/PreferencesService.d.ts +9 -2
- package/dist/services/WikiMetadataService.d.ts +23 -23
- package/dist/style.css +1 -1
- package/dist/types/WikiMetadata.d.ts +6 -8
- package/lib/index.umd.js +24 -24
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +3 -3
- package/dist/PluginPrefSync-CNCU2DJU.js +0 -171
- package/dist/PluginPrefSync-CNCU2DJU.js.map +0 -1
- package/dist/index-2mNdeL-V.js +0 -193
- package/dist/index-2mNdeL-V.js.map +0 -1
- package/dist/index-BR6gK_ki.js.map +0 -1
- package/dist/index-ByJfEsN8.js.map +0 -1
- package/dist/index-ByzgI28q.js.map +0 -1
- package/dist/index-CAiGct8U.js.map +0 -1
- package/dist/index-Cx-YiN1j.js.map +0 -1
- package/dist/index-DqJUIV2e.js +0 -4861
- package/dist/index-Z-_kjibx.js.map +0 -1
- package/dist/index-eOIVMf9E.js.map +0 -1
package/lib/index.umd.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
(function(Y,re){typeof exports=="object"&&typeof module<"u"?re(exports):typeof define=="function"&&define.amd?define(["exports"],re):(Y=typeof globalThis<"u"?globalThis:Y||self,re(Y.InPageEditBundle={}))})(this,function(Y){"use strict";var gb=Object.defineProperty;var ju=Y=>{throw TypeError(Y)};var yb=(Y,re,ve)=>re in Y?gb(Y,re,{enumerable:!0,configurable:!0,writable:!0,value:ve}):Y[re]=ve;var M=(Y,re,ve)=>yb(Y,typeof re!="symbol"?re+"":re,ve),To=(Y,re,ve)=>re.has(Y)||ju("Cannot "+ve);var J=(Y,re,ve)=>(To(Y,re,"read from private field"),ve?ve.call(Y):re.get(Y)),Ii=(Y,re,ve)=>re.has(Y)?ju("Cannot add the same private member more than once"):re instanceof WeakSet?re.add(Y):re.set(Y,ve),ze=(Y,re,ve,z)=>(To(Y,re,"write to private field"),z?z.call(Y,ve):re.set(Y,ve),ve),it=(Y,re,ve)=>(To(Y,re,"access private method"),ve);var et,$i,ni,Pi,Ci,Oi,Ti,we,Ge,ce,Be,Io,Hu,Ao,zu,Wu,vt,Vu,Gu,Qu,Yu,pr;const re=()=>{let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}};Promise.withResolvers||(Promise.withResolvers=re);var ve=Object.defineProperty,z=(t,e)=>ve(t,"name",{value:e,configurable:!0});function Ju(){}z(Ju,"noop");function me(t){return t==null}z(me,"isNullable");function Xu(t){return!me(t)}z(Xu,"isNonNullable");function br(t){return t&&typeof t=="object"&&!Array.isArray(t)}z(br,"isPlainObject");function Ro(t,e){return Object.fromEntries(Object.entries(t).filter(([i,r])=>e(i,r)))}z(Ro,"filterKeys");function Et(t,e){return Object.fromEntries(Object.entries(t).map(([i,r])=>[i,e(r,i)]))}z(Et,"mapValues");function Lo(t,e,i){if(!e)return{...t};const r={};for(const n of e)(i||t[n]!==void 0)&&(r[n]=t[n]);return r}z(Lo,"pick");function Zu(t,e){if(!e)return{...t};const i={...t};for(const r of e)Reflect.deleteProperty(i,r);return i}z(Zu,"omit");function Ce(t,e,i){return Object.defineProperty(t,e,{writable:!0,value:i,enumerable:!1})}z(Ce,"defineProperty");function ef(t,e){return e.every(i=>t.includes(i))}z(ef,"contain");function tf(t,e){return t.filter(i=>e.includes(i))}z(tf,"intersection");function rf(t,e){return t.filter(i=>!e.includes(i))}z(rf,"difference");function nf(t,e){return Array.from(new Set([...t,...e]))}z(nf,"union");function sf(t){return[...new Set(t)]}z(sf,"deduplicate");function Nt(t,e){const i=t?.indexOf(e);return i>=0?(t.splice(i,1),!0):!1}z(Nt,"remove");function of(t){return Array.isArray(t)?t:me(t)?[]:[t]}z(of,"makeArray");function Mt(t,e){return arguments.length===1?i=>Mt(t,i):t in globalThis&&e instanceof globalThis[t]||Object.prototype.toString.call(e).slice(8,-1)===t}z(Mt,"is");function Ai(t){return Mt("ArrayBuffer",t)||Mt("SharedArrayBuffer",t)}z(Ai,"isArrayBufferLike");function No(t){return Ai(t)||ArrayBuffer.isView(t)}z(No,"isArrayBufferSource");var lt;(t=>{t.is=Ai,t.isSource=No;function e(o){return ArrayBuffer.isView(o)?o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength):o}t.fromSource=e,z(e,"fromSource");function i(o){if(typeof Buffer<"u")return Buffer.from(o).toString("base64");let a="";const l=new Uint8Array(o);for(let c=0;c<l.byteLength;c++)a+=String.fromCharCode(l[c]);return btoa(a)}t.toBase64=i,z(i,"toBase64");function r(o){return typeof Buffer<"u"?e(Buffer.from(o,"base64")):Uint8Array.from(atob(o),a=>a.charCodeAt(0))}t.fromBase64=r,z(r,"fromBase64");function n(o){return typeof Buffer<"u"?Buffer.from(o).toString("hex"):Array.from(new Uint8Array(o),a=>a.toString(16).padStart(2,"0")).join("")}t.toHex=n,z(n,"toHex");function s(o){if(typeof Buffer<"u")return e(Buffer.from(o,"hex"));const a=o.length%2===0?o:o.slice(0,o.length-1),l=[];for(let c=0;c<a.length;c+=2)l.push(parseInt(`${a[c]}${a[c+1]}`,16));return Uint8Array.from(l).buffer}t.fromHex=s,z(s,"fromHex")})(lt||(lt={})),lt.fromBase64,lt.toBase64,lt.fromHex,lt.toHex;function wr(t,e=new Map){if(!t||typeof t!="object")return t;if(Mt("Date",t))return new Date(t.valueOf());if(Mt("RegExp",t))return new RegExp(t.source,t.flags);if(Ai(t))return t.slice(0);if(ArrayBuffer.isView(t))return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);const i=e.get(t);if(i)return i;if(Array.isArray(t)){const n=[];return e.set(t,n),t.forEach((s,o)=>{n[o]=Reflect.apply(wr,null,[s,e])}),n}const r=Object.create(Object.getPrototypeOf(t));e.set(t,r);for(const n of Reflect.ownKeys(t)){const s={...Reflect.getOwnPropertyDescriptor(t,n)};"value"in s&&(s.value=Reflect.apply(wr,null,[s.value,e])),Reflect.defineProperty(r,n,s)}return r}z(wr,"clone");function Vt(t,e,i){if(t===e||!i&&me(t)&&me(e))return!0;if(typeof t!=typeof e||typeof t!="object"||!t||!e)return!1;function r(n,s){return n(t)?n(e)?s(t,e):!1:n(e)?!1:void 0}return z(r,"check"),r(Array.isArray,(n,s)=>n.length===s.length&&n.every((o,a)=>Vt(o,s[a])))??r(Mt("Date"),(n,s)=>n.valueOf()===s.valueOf())??r(Mt("RegExp"),(n,s)=>n.source===s.source&&n.flags===s.flags)??r(Ai,(n,s)=>{if(n.byteLength!==s.byteLength)return!1;const o=new Uint8Array(n),a=new Uint8Array(s);for(let l=0;l<o.length;l++)if(o[l]!==a[l])return!1;return!0})??Object.keys({...t,...e}).every(n=>Vt(t[n],e[n],i))}z(Vt,"deepEqual");function af(t){return t.charAt(0).toUpperCase()+t.slice(1)}z(af,"capitalize");function lf(t){return t.charAt(0).toLowerCase()+t.slice(1)}z(lf,"uncapitalize");function cf(t){return t.replace(/[_-][a-z]/g,e=>e.slice(1).toUpperCase())}z(cf,"camelCase");function In(t,e,i){const r=[];let n=0;for(let s=0;s<t.length;s++){const o=t.charCodeAt(s);if(o>=65&&o<=90){if(n===1){const a=t.charCodeAt(s+1);a>=97&&a<=122&&r.push(i),r.push(o+32)}else n!==0&&r.push(i),r.push(o+32);n=1}else o>=97&&o<=122?(r.push(o),n=2):e.includes(o)?(n!==0&&r.push(i),n=0):r.push(o)}return String.fromCharCode(...r)}z(In,"tokenize");function uf(t){return In(t,[45,95],45)}z(uf,"paramCase");function ff(t){return In(t,[45,95],95)}z(ff,"snakeCase");function hf(t){return typeof t!="string"?`[${t.toString()}]`:/^[a-z_$][\w$]*$/i.test(t)?`.${t}`:`[${JSON.stringify(t)}]`}z(hf,"formatProperty");function Mo(t){return t.replace(/\/$/,"")}z(Mo,"trimSlash");function df(t){return t.startsWith("/")||(t="/"+t),Mo(t)}z(df,"sanitize");var Do;(t=>{t.millisecond=1,t.second=1e3,t.minute=t.second*60,t.hour=t.minute*60,t.day=t.hour*24,t.week=t.day*7;let e=new Date().getTimezoneOffset();function i(y){e=y}t.setTimezoneOffset=i,z(i,"setTimezoneOffset");function r(){return e}t.getTimezoneOffset=r,z(r,"getTimezoneOffset");function n(y=new Date,m){return typeof y=="number"&&(y=new Date(y)),m===void 0&&(m=e),Math.floor((y.valueOf()/t.minute-m)/1440)}t.getDateNumber=n,z(n,"getDateNumber");function s(y,m){const E=new Date(y*t.day);return m===void 0&&(m=e),new Date(+E+m*t.minute)}t.fromDateNumber=s,z(s,"fromDateNumber");const o=/\d+(?:\.\d+)?/.source,a=new RegExp(`^${["w(?:eek(?:s)?)?","d(?:ay(?:s)?)?","h(?:our(?:s)?)?","m(?:in(?:ute)?(?:s)?)?","s(?:ec(?:ond)?(?:s)?)?"].map(y=>`(${o}${y})?`).join("")}$`);function l(y){const m=a.exec(y);return m?(parseFloat(m[1])*t.week||0)+(parseFloat(m[2])*t.day||0)+(parseFloat(m[3])*t.hour||0)+(parseFloat(m[4])*t.minute||0)+(parseFloat(m[5])*t.second||0):0}t.parseTime=l,z(l,"parseTime");function c(y){const m=l(y);return m?y=Date.now()+m:/^\d{1,2}(:\d{1,2}){1,2}$/.test(y)?y=`${new Date().toLocaleDateString()}-${y}`:/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(y)&&(y=`${new Date().getFullYear()}-${y}`),y?new Date(y):new Date}t.parseDate=c,z(c,"parseDate");function u(y){const m=Math.abs(y);return m>=t.day-t.hour/2?Math.round(y/t.day)+"d":m>=t.hour-t.minute/2?Math.round(y/t.hour)+"h":m>=t.minute-t.second/2?Math.round(y/t.minute)+"m":m>=t.second?Math.round(y/t.second)+"s":y+"ms"}t.format=u,z(u,"format");function f(y,m=2){return y.toString().padStart(m,"0")}t.toDigits=f,z(f,"toDigits");function d(y,m=new Date){return y.replace("yyyy",m.getFullYear().toString()).replace("yy",m.getFullYear().toString().slice(2)).replace("MM",f(m.getMonth()+1)).replace("dd",f(m.getDate())).replace("hh",f(m.getHours())).replace("mm",f(m.getMinutes())).replace("ss",f(m.getSeconds())).replace("SSS",f(m.getMilliseconds(),3))}t.template=d,z(d,"template")})(Do||(Do={}));var pf=Object.defineProperty,W=(t,e)=>pf(t,"name",{value:e,configurable:!0}),L={shadow:Symbol.for("cordis.shadow"),receiver:Symbol.for("cordis.receiver"),original:Symbol.for("cordis.original"),store:Symbol.for("cordis.store"),events:Symbol.for("cordis.events"),static:Symbol.for("cordis.static"),filter:Symbol.for("cordis.filter"),expose:Symbol.for("cordis.expose"),isolate:Symbol.for("cordis.isolate"),internal:Symbol.for("cordis.internal"),intercept:Symbol.for("cordis.intercept"),setup:Symbol.for("cordis.setup"),invoke:Symbol.for("cordis.invoke"),extend:Symbol.for("cordis.extend"),tracker:Symbol.for("cordis.tracker"),provide:Symbol.for("cordis.provide"),immediate:Symbol.for("cordis.immediate")},mf=function*(){}.constructor,jo=async function*(){}.constructor;function An(t){return!(!t.prototype||t instanceof mf||jo!==Function&&t instanceof jo)}W(An,"isConstructor");function Ri(t,e){const i=t.Config||t.schema;return i&&t.schema!==!1&&(e=i(e)),e??{}}W(Ri,"resolveConfig");function Uo(t){return[Map,Set,Date,Promise].some(e=>t instanceof e)}W(Uo,"isUnproxyable");function Rn(t,e){if(t===Object.prototype)return e;const i=Object.create(Rn(Object.getPrototypeOf(t),e));for(const r of Reflect.ownKeys(t))Object.defineProperty(i,r,Object.getOwnPropertyDescriptor(t,r));return i}W(Rn,"joinPrototype");function Ln(t){return t&&(typeof t=="object"||typeof t=="function")}W(Ln,"isObject");function ct(t,e,i){if(!Ln(e))return e;if(Object.hasOwn(e,L.shadow))return Object.getPrototypeOf(e);const r=e[L.tracker];return r?_r(t,e,r,i):e}W(ct,"getTraceable");function Li(t,e){return e?new Proxy(t,{get:W((i,r,n)=>r in e&&r!=="constructor"?Reflect.get(e,r,n):Reflect.get(i,r,n),"get"),set:W((i,r,n,s)=>r in e&&r!=="constructor"?Reflect.set(e,r,n,s):Reflect.set(i,r,n,s),"set")}):t}W(Li,"withProps");function vr(t,e,i){return Li(t,Object.defineProperty(Object.create(null),e,{value:i,writable:!1}))}W(vr,"withProp");function Nn(t,e,i,r){if(!i)return r;const n=Reflect.getOwnPropertyDescriptor(e,i)?.value;return n?vr(r,i,t.extend({[L.shadow]:n})):r}W(Nn,"createShadow");function Fo(t,e,i,r){return new Proxy(e,{apply:W((n,s,o)=>(s===i&&(s=r),o=o.map(a=>typeof a!="function"||a[L.original]?a:new Proxy(a,{get:W((l,c,u)=>{if(c===L.original)return l;const f=Reflect.get(l,c,u);return c==="toString"&&f===Function.prototype.toString?function(...d){return Reflect.apply(f,this===u?l:this,d)}:f},"get"),apply:W((l,c,u)=>Reflect.apply(l,ct(t,c),u.map(f=>ct(t,f))),"apply"),construct:W((l,c,u)=>Reflect.construct(l,c.map(f=>ct(t,f)),u),"construct")})),ct(t,Reflect.apply(n,s,o))),"apply")})}W(Fo,"createShadowMethod");function _r(t,e,i,r){t[L.shadow]&&(t=Object.getPrototypeOf(t));const n=new Proxy(e,{get:W((s,o,a)=>{if(o===L.original)return s;if(o===i.property)return t;if(typeof o=="symbol")return Reflect.get(s,o,a);if(i.associate&&t[L.internal][`${i.associate}.${o}`])return Reflect.get(t,`${i.associate}.${o}`,vr(t,L.receiver,a));const l=Nn(t,s,i.property,a),c=Reflect.get(s,o,l),u=c?.[L.tracker];return u?_r(t,c,u):!r&&typeof c=="function"?Fo(t,c,a,l):c},"get"),set:W((s,o,a,l)=>{if(o===L.original||o===i.property)return!1;if(typeof o=="symbol")return Reflect.set(s,o,a,l);if(i.associate&&t[L.internal][`${i.associate}.${o}`])return Reflect.set(t,`${i.associate}.${o}`,a,vr(t,L.receiver,l));const c=Nn(t,s,i.property,l);return Reflect.set(s,o,a,c)},"set"),apply:W((s,o,a)=>Mn(n,s,o,a),"apply")});return n}W(_r,"createTraceable");function Mn(t,e,i,r){return e[L.invoke]?e[L.invoke].apply(t,r):Reflect.apply(e,i,r)}W(Mn,"applyTraceable");function Dn(t,e,i){const r=W(function(...n){const s=_r(r.ctx,r,i);return Mn(s,r,this,n)},"self");return Ce(r,"name",t),Object.setPrototypeOf(r,e)}W(Dn,"createCallable");var gf=(et=class{constructor(e){this.ctx=e,Ce(this,L.tracker,{associate:"reflect",property:"ctx"}),this._mixin("reflect",["get","set","provide","accessor","mixin","alias"]),this._mixin("scope",["config","runtime","effect","collect","accept","decline"]),this._mixin("registry",["using","inject","plugin"]),this._mixin("lifecycle",["on","once","parallel","emit","serial","bail","start","stop"])}static resolveInject(e,i){let r=e[L.internal][i];for(;r?.type==="alias";)i=r.name,r=e[L.internal][i];return[i,r]}static checkInject(e,i,r){if(e=e[L.shadow]??e,["prototype","then","registry","lifecycle"].includes(i)||i[0]==="$"||i[0]==="_"||!e.runtime.plugin||e.bail(e,"internal/inject",i))return;const n=r.stack.split(`
|
|
2
|
-
`);
|
|
3
|
-
`),e.emit(e,"internal/warning",r)}get(e){if(this.ctx[L.internal][e]?.type!=="service")return;const r=this.ctx[L.isolate][e],n=this.ctx[L.store][r]?.value;return ct(this.ctx,n)}set(e,i){this.provide(e);const r=this.ctx[L.isolate][e],n=this.ctx[L.store][r]?.value;i??(i=void 0);let s=W(()=>{},"dispose");if(n===i)return s;if(!me(i)&&!me(n))throw new Error(`service ${e} has been registered`);const o=this.ctx;me(i)||(s=o.effect(()=>()=>{o.set(e,void 0)})),Uo(i)&&o.emit(o,"internal/warning",new Error(`service ${e} is an unproxyable object, which may lead to unexpected behavior`));const a=Object.create(o);return a[L.filter]=l=>o[L.isolate][e]===l[L.isolate][e],o.emit(a,"internal/before-service",e,i),o[L.store][r]={value:i,source:o},o.emit(a,"internal/service",e,n),s}provide(e,i,r){const n=this.ctx.root[L.internal];if(e in n)return;const s=Symbol(e);n[e]={type:"service",builtin:r},this.ctx.root[L.isolate][e]=s,Ln(i)&&(this.ctx[L.store][s]={value:i,source:null},Ce(i,L.tracker,{associate:e,property:"ctx"}))}_accessor(e,i){const r=this.ctx.root[L.internal];return e in r?()=>{}:(r[e]={type:"accessor",...i},()=>delete this.ctx.root[L.isolate][e])}accessor(e,i){this.ctx.scope.effect(()=>this._accessor(e,i))}alias(e,i){const r=this.ctx.root[L.internal];if(!(e in r))for(const n of i)r[n]||(r[n]={type:"alias",name:e})}_mixin(e,i){const r=Array.isArray(i)?i.map(o=>[o,o]):Object.entries(i),n=typeof e=="string"?o=>o[e]:()=>e,s=r.map(([o,a])=>this._accessor(a,{get(l){const c=n(this);if(me(c))return c;const u=l?Li(l,c):c,f=Reflect.get(c,o,u);return typeof f!="function"?f:f.bind(u??c)},set(l,c){const u=n(this),f=c?Li(c,u):u;return Reflect.set(u,o,l,f)}}));return()=>s.forEach(o=>o())}mixin(e,i){this.ctx.scope.effect(()=>this._mixin(e,i))}trace(e){return ct(this.ctx,e)}bind(e){return new Proxy(e,{apply:W((i,r,n)=>i.apply(this.trace(r),n.map(s=>this.trace(s))),"apply")})}},W(et,"ReflectService"),M(et,"handler",{get:W((e,i,r)=>{if(typeof i!="string")return Reflect.get(e,i,r);if(Reflect.has(e,i))return ct(r,Reflect.get(e,i,r),!0);const[n,s]=et.resolveInject(e,i),o=new Error(`property ${n} is not registered, declare it as \`inject\` to suppress this warning`);return s?s.type==="accessor"?s.get.call(r,r[L.receiver]):(s.builtin||et.checkInject(r,n,o),r.reflect.get(n)):(et.checkInject(r,n,o),Reflect.get(e,n,r))},"get"),set:W((e,i,r,n)=>{if(typeof i!="string")return Reflect.set(e,i,r,n);const[s,o]=et.resolveInject(e,i);return o?o.type==="accessor"?o.set?o.set.call(n,r,n[L.receiver]):!1:(n.reflect.set(s,r),!0):Reflect.set(e,s,r,n)},"set"),has:W((e,i)=>{if(typeof i!="string")return Reflect.has(e,i);if(Reflect.has(e,i))return!0;const[,r]=et.resolveInject(e,i);return!!r},"has")}),et),jn=gf;function Un(t){return t!==null&&t!==!1&&t!==void 0}W(Un,"isBailed");var yf=($i=class{constructor(e){M(this,"isActive",!1);M(this,"_tasks",new Set);M(this,"_hooks",{});this.ctx=e,Ce(this,L.tracker,{associate:"lifecycle",property:"ctx"}),Ce(this.on("internal/listener",function(r,n,s){const o=s.prepend?"unshift":"push";if(r==="ready")return this.lifecycle.isActive?(this.scope.ensure(async()=>n()),()=>!1):void 0;if(r==="dispose")return this.scope.disposables[o](n),Ce(n,"name","event <dispose>"),()=>Nt(this.scope.disposables,n);if(r==="fork")return this.scope.runtime.forkables[o](n),this.scope.collect("event <fork>",()=>Nt(this.scope.runtime.forkables,n))}),Ne.static,e.scope);for(const r of["info","error","warning"])Ce(this.on(`internal/${r}`,(n,...s)=>{this._hooks[`internal/${r}`].length>1}),Ne.static,e.scope);Ce(this.on("internal/before-service",function(r){for(const n of this.registry.values()){if(!n.inject[r]?.required)continue;const s=n.isReusable?n.children:[n];for(const o of s)this[L.filter](o.ctx)&&(o.updateStatus(),o.reset())}},{global:!0}),Ne.static,e.scope),Ce(this.on("internal/service",function(r){for(const n of this.registry.values()){if(!n.inject[r]?.required)continue;const s=n.isReusable?n.children:[n];for(const o of s)this[L.filter](o.ctx)&&o.start()}},{global:!0}),Ne.static,e.scope);const i=W((r,n)=>{if(!r.runtime.plugin)return!1;for(const s in r.runtime.inject)if(n===jn.resolveInject(r.ctx,s)[0])return!0;return i(r.parent.scope,n)},"checkInject");Ce(this.on("internal/inject",function(r){return i(this.scope,r)},{global:!0}),Ne.static,e.scope)}async flush(){for(;this._tasks.size;)await Promise.all(Array.from(this._tasks))}filterHooks(e,i){return i=ct(this.ctx,i),e.slice().filter(r=>{const n=i?.[Ne.filter];return r.global||!n||n.call(i,r.ctx)})}*dispatch(e,i){const r=typeof i[0]=="object"||typeof i[0]=="function"?i.shift():null,n=i.shift();n!=="internal/event"&&this.emit("internal/event",e,n,i,r);for(const s of this.filterHooks(this._hooks[n]||[],r))yield s.callback.apply(r,i)}async parallel(...e){await Promise.all(this.dispatch("emit",e))}emit(...e){Array.from(this.dispatch("emit",e))}async serial(...e){for await(const i of this.dispatch("serial",e))if(Un(i))return i}bail(...e){for(const i of this.dispatch("bail",e))if(Un(i))return i}register(e,i,r,n){const s=n.prepend?"unshift":"push";return i[s]({ctx:this.ctx,callback:r,...n}),this.ctx.state.collect(e,()=>this.unregister(i,r))}unregister(e,i){const r=e.findIndex(n=>n.callback===i);if(r>=0)return e.splice(r,1),!0}on(e,i,r){var a;typeof r!="object"&&(r={prepend:r}),this.ctx.scope.assertActive(),i=this.ctx.reflect.bind(i);const n=this.bail(this.ctx,"internal/listener",e,i,r);if(n)return n;const s=(a=this._hooks)[e]||(a[e]=[]),o=typeof e=="string"?`event <${e}>`:"event (Symbol)";return this.register(o,s,i,r)}once(e,i,r){const n=this.on(e,function(...s){return n(),i.apply(this,s)},r);return n}async start(){this.isActive=!0;const e=this._hooks.ready||[];for(;e.length;){const{ctx:i,callback:r}=e.shift();i.scope.ensure(async()=>r())}await this.flush()}async stop(){this.isActive=!1,this.ctx.scope.reset()}},W($i,"Lifecycle"),$i),bf=yf,Fn=(ni=class extends Error{constructor(e,i){super(i??ni.Code[e]),this.code=e}},W(ni,"CordisError"),ni);(t=>{t.Code={INACTIVE_EFFECT:"cannot create effect on inactive context"}})(Fn||(Fn={}));var Bo=(Pi=class{constructor(e,i){M(this,"uid");M(this,"ctx");M(this,"disposables",[]);M(this,"error");M(this,"status",0);M(this,"isActive",!1);M(this,"context");M(this,"proxy");M(this,"acceptors",[]);M(this,"tasks",new Set);M(this,"hasError",!1);this.parent=e,this.config=i,this.uid=e.registry?e.registry.counter:0,this.ctx=this.context=e.extend({scope:this}),this.proxy=new Proxy({},{get:W((r,n)=>Reflect.get(this.config,n),"get")})}get _config(){return this.runtime.isReactive?this.proxy:this.config}assertActive(){if(!(this.uid!==null||this.isActive))throw new Fn("INACTIVE_EFFECT")}effect(e,i){this.assertActive();const r=An(e)?new e(this.ctx,i):e(this.ctx,i);let n=!1;const s=typeof r=="function"?r:r.dispose.bind(r),o=W((...a)=>{if(!n)return n=!0,Nt(this.disposables,o),s(...a)},"wrapped");return this.disposables.push(o),typeof r=="function"?o:(r.dispose=o,r)}collect(e,i){const r=Ce(()=>(Nt(this.disposables,r),i()),"name",e);return this.disposables.push(r),r}restart(){this.reset(),this.error=null,this.hasError=!1,this.status=0,this.start()}_getStatus(){return this.uid===null?4:this.hasError?3:this.tasks.size?1:this.ready?2:0}updateStatus(e){const i=this.status;e?.(),this.status=this._getStatus(),i!==this.status&&this.context.emit("internal/status",this,i)}ensure(e){const i=e().catch(r=>{this.context.emit(this.ctx,"internal/error",r),this.cancel(r)}).finally(()=>{this.updateStatus(()=>this.tasks.delete(i)),this.context.events._tasks.delete(i)});this.updateStatus(()=>this.tasks.add(i)),this.context.events._tasks.add(i)}cancel(e){this.error=e,this.updateStatus(()=>this.hasError=!0),this.reset()}get ready(){return Object.entries(this.runtime.inject).every(([e,i])=>!i.required||!me(this.ctx.get(e)))}reset(){this.isActive=!1,this.disposables=this.disposables.splice(0).filter(e=>{if(this.uid!==null&&e[Ne.static]===this)return!0;(async()=>e())().catch(i=>{this.context.emit(this.ctx,"internal/error",i)})})}init(e){this.config?this.start():this.cancel(e)}start(){if(!this.ready||this.isActive||this.uid===null)return!0;this.isActive=!0,this.updateStatus(()=>this.hasError=!1)}accept(...e){const r={keys:Array.isArray(e[0])?e.shift():null,callback:e[0],...e[1]};return this.effect(()=>(this.acceptors.push(r),r.immediate&&r.callback?.(this.config),()=>Nt(this.acceptors,r)))}decline(e){return this.accept(e,()=>!0)}checkUpdate(e,i){if(i||!this.config)return[!0,!0];if(i===!1)return[!1,!1];const r=Object.create(null),n=W(c=>{const u=r[c]??(r[c]=!Vt(this.config[c],e[c]));return o||(o=u),u},"checkPropertyUpdate"),s=new Set;let o=!1,a=!1,l=this.runtime.isReactive||null;for(const{keys:c,callback:u,passive:f}of this.acceptors){if(!c)l||(l=!f);else if(f)c?.forEach(y=>s.add(y));else{let y=!1;for(const m of c)y||(y=n(m));if(!y)continue}u?.(e)&&(a=!0)}for(const c in{...this.config,...e})if(l!==!1&&!(c in r)&&!s.has(c)){const u=n(c);l===null&&(a||(a=u))}return[o,a]}},W(Pi,"EffectScope"),Pi),wf=(Ci=class extends Bo{constructor(i,r,n,s){super(i,n);M(this,"dispose");this.runtime=r,this.dispose=Ce(i.scope.collect(`fork <${i.runtime.name}>`,()=>{this.uid=null,this.reset(),this.context.emit("internal/fork",this);const o=Nt(r.disposables,this.dispose);return Nt(r.children,this)&&!r.children.length&&i.registry.delete(r.plugin),o}),Ne.static,r),r.children.push(this),r.disposables.push(this.dispose),this.context.emit("internal/fork",this),this.init(s)}start(){if(super.start())return!0;for(const i of this.runtime.forkables)this.ensure(async()=>i(this.context,this._config))}update(i,r){const n=this.config,s=this.runtime.isForkable?this:this.runtime;if(s.config!==n)return;let o;try{o=Ri(this.runtime.plugin,i)}catch(c){return this.context.emit("internal/error",c),this.cancel(c)}const[a,l]=s.checkUpdate(o,r);this.context.emit("internal/before-update",this,i),this.config=o,s.config=o,a&&this.context.emit("internal/update",this,n),l&&s.restart()}},W(Ci,"ForkScope"),Ci),qo=(Oi=class extends Bo{constructor(i,r,n,s){super(i,n);M(this,"value");M(this,"runtime",this);M(this,"schema");M(this,"name");M(this,"inject",Object.create(null));M(this,"forkables",[]);M(this,"children",[]);M(this,"isReusable",!1);M(this,"isReactive",!1);M(this,"apply",W((i,r)=>{if(typeof this.plugin!="function")return this.plugin.apply(i,r);if(An(this.plugin)){const n=new this.plugin(i,r),s=n[Ne.expose];return s&&i.set(s,n),n.fork&&this.forkables.push(n.fork.bind(n)),n}else return this.plugin(i,r)},"apply"));this.plugin=r,r?(this.setup(),this.init(s)):(this.name="root",this.isActive=!0)}get isForkable(){return this.forkables.length>0}fork(i,r,n){return new wf(i,this,r,n)}dispose(){return this.uid=null,this.reset(),this.context.emit("internal/runtime",this),!0}setup(){const{name:i}=this.plugin;i&&i!=="apply"&&(this.name=i),this.schema=this.plugin.Config||this.plugin.schema,this.inject=ke.resolve(this.plugin.using||this.plugin.inject),this.isReusable=this.plugin.reusable,this.isReactive=this.plugin.reactive,this.context.emit("internal/runtime",this),this.isReusable&&this.forkables.push(this.apply)}reset(){super.reset();for(const i of this.children)i.reset()}start(){if(super.start())return!0;!this.isReusable&&this.plugin&&this.ensure(async()=>this.value=this.apply(this.ctx,this._config));for(const i of this.children)i.start()}update(i,r){if(this.isForkable){const c=new Error(`attempting to update forkable plugin "${this.plugin.name}", which may lead to unexpected behavior`);this.context.emit(this.ctx,"internal/warning",c)}const n=this.config;let s;try{s=Ri(this.runtime.plugin||this.context.constructor,i)}catch(c){return this.context.emit("internal/error",c),this.cancel(c)}const[o,a]=this.checkUpdate(s,r),l=this.children.find(c=>c.config===n);this.config=s,l&&(this.context.emit("internal/before-update",l,i),l.config=s,o&&this.context.emit("internal/update",l,n)),a&&this.restart()}},W(Oi,"MainScope"),Oi);function Ho(t){return t&&typeof t=="object"&&typeof t.apply=="function"}W(Ho,"isApplicable");function ke(t){return function(e,i){if(i.kind==="class")e.inject=t;else if(i.kind==="method")i.addInitializer(function(){const r=this[L.tracker]?.property;if(!r)throw new Error("missing context tracker");this[r].inject(t,n=>{e.call(Li(this,{[r]:n}))})});else throw new Error("@Inject can only be used on class or class methods")}}W(ke,"Inject"),(t=>{function e(i){if(!i)return{};if(Array.isArray(i))return Object.fromEntries(i.map(o=>[o,{required:!0}]));const{required:r,optional:n,...s}=i;return Array.isArray(r)&&Object.assign(s,Object.fromEntries(r.map(o=>[o,{required:!0}]))),Array.isArray(n)&&Object.assign(s,Object.fromEntries(n.map(o=>[o,{required:!1}]))),s}t.resolve=e,W(e,"resolve")})(ke||(ke={}));var vf=(Ti=class{constructor(e,i){M(this,"_counter",0);M(this,"_internal",new Map);M(this,"context");this.ctx=e,Ce(this,L.tracker,{associate:"registry",property:"ctx"}),this.context=e;const r=new qo(e,null,i);e.scope=r,r.ctx=e,this.set(null,r)}get counter(){return++this._counter}get size(){return this._internal.size}resolve(e,i=!1){if(e===null||typeof e=="function")return e;if(Ho(e))return e.apply;if(i)throw new Error('invalid plugin, expect function or object with an "apply" method, received '+typeof e)}get(e){const i=this.resolve(e);return i&&this._internal.get(i)}has(e){const i=this.resolve(e);return!!i&&this._internal.has(i)}set(e,i){const r=this.resolve(e);this._internal.set(r,i)}delete(e){const i=this.resolve(e),r=i&&this._internal.get(i);if(r)return this._internal.delete(i),r.dispose(),r}keys(){return this._internal.keys()}values(){return this._internal.values()}entries(){return this._internal.entries()}forEach(e){return this._internal.forEach(e)}using(e,i){return this.inject(e,i)}inject(e,i){return this.plugin({inject:e,apply:i,name:i.name})}plugin(e,i,r){if(this.resolve(e,!0),this.ctx.scope.assertActive(),!r)try{i=Ri(e,i)}catch(s){this.context.emit(this.ctx,"internal/error",s),r=s,i=null}let n=this.get(e);return n?(n.isForkable||this.context.emit(this.ctx,"internal/warning",new Error(`duplicate plugin detected: ${e.name}`)),n.fork(this.ctx,i,r)):(n=new qo(this.ctx,e,i,r),this.set(e,n),n.fork(this.ctx,i,r))}},W(Ti,"Registry"),Ti),_f=vf,Ne=(we=class{static is(e){return!!e?.[we.is]}static associate(e,i){return e}constructor(e){e=Ri(this.constructor,e),this[L.store]=Object.create(null),this[L.isolate]=Object.create(null),this[L.internal]=Object.create(null),this[L.intercept]=Object.create(null);const i=new Proxy(this,jn.handler);i.root=i,i.reflect=new jn(i),i.registry=new _f(i,e),i.lifecycle=new bf(i);const r=W(n=>{if(n){r(Object.getPrototypeOf(n));for(const s of Object.getOwnPropertyNames(n)){const o=n[s].prototype?.constructor;o&&(i[n[s].key]=new o(i,e),Ce(i[n[s].key],"ctx",i))}}},"attach");return r(this[L.internal]),i}[Symbol.for("nodejs.util.inspect.custom")](){return`Context <${this.name}>`}get name(){let e=this.runtime;for(;e&&!e.name;)e=e.parent.runtime;return e?.name}get events(){return this.lifecycle}get state(){return this.scope}extend(e={}){const i=Reflect.getOwnPropertyDescriptor(this,L.shadow)?.value,r=Object.assign(Object.create(ct(this,this)),e);return i?Object.assign(Object.create(r),{[L.shadow]:i}):r}isolate(e,i){const r=Object.create(this[L.isolate]);return r[e]=i??Symbol(e),this.extend({[L.isolate]:r})}intercept(e,i){const r=Object.create(this[L.intercept]);return r[e]=i,this.extend({[L.intercept]:r})}},W(we,"Context"),M(we,"store",L.store),M(we,"events",L.events),M(we,"static",L.static),M(we,"filter",L.filter),M(we,"expose",L.expose),M(we,"isolate",L.isolate),M(we,"internal",L.internal),M(we,"intercept",L.intercept),M(we,"origin","ctx"),M(we,"current","ctx"),we.is[Symbol.toPrimitive]=()=>Symbol.for("cordis.is"),we.prototype[we.is]=!0,we);Ne.prototype[Ne.internal]=Object.create(null);var $t=(Ge=class{constructor(...e){M(this,"ctx");M(this,"name");M(this,"config");let i,r,n,s;Ne.is(e[0])?(i=e[0],typeof e[1]=="string"?(r=e[1],n=e[2]):s=e[1]):s=e[0],r??(r=this.constructor[L.provide]),n??(n=this.constructor[L.immediate]);let o=this;const a={associate:r,property:"ctx"};return o[L.invoke]&&(o=Dn(r,Rn(Object.getPrototypeOf(this),Function.prototype),a)),i?o.ctx=i:o[L.setup](),o.name=r,o.config=s,Ce(o,L.tracker,a),o.ctx.provide(r),o.ctx.runtime.name=r,n&&(i?o[L.expose]=r:o.ctx.set(r,o)),o.ctx.on("ready",async()=>{await Promise.resolve(),await o.start(),n||o.ctx.set(r,o)}),o.ctx.on("dispose",()=>o.stop()),o}start(){}stop(){}[L.filter](e){return e[L.isolate][this.name]===this.ctx[L.isolate][this.name]}[L.setup](){this.ctx=new Ne}[L.extend](e){let i;return this[Ge.invoke]?i=Dn(this.name,this,this[L.tracker]):i=Object.create(this),Object.assign(i,e)}static[Symbol.hasInstance](e){let i=e.constructor;for(;i;){if(i=i.prototype?.constructor,i===this)return!0;i=Object.getPrototypeOf(i)}return!1}},W(Ge,"Service"),M(Ge,"setup",L.setup),M(Ge,"invoke",L.invoke),M(Ge,"extend",L.extend),M(Ge,"tracker",L.tracker),M(Ge,"provide",L.provide),M(Ge,"immediate",L.immediate),Ge),xf=Object.defineProperty,Sf=Object.getOwnPropertyNames,X=(t,e)=>xf(t,"name",{value:e,configurable:!0}),kf=(t,e)=>function(){return e||(0,t[Sf(t)[0]])((e={exports:{}}).exports,e),e.exports},Ef=kf({"src/index.ts"(t,e){var F;var i=Symbol.for("schemastery"),r=Symbol.for("ValidationError");globalThis.__schemastery_index__??(globalThis.__schemastery_index__=0);var n=(F=class extends TypeError{constructor(p,v){let x="$";for(const P of v.path||[])typeof P=="string"?x+="."+P:typeof P=="number"?x+="["+P+"]":typeof P=="symbol"&&(x+=`[Symbol(${P.toString()})]`);x.startsWith(".")&&(x=x.slice(1));super((x==="$"?"":`${x} `)+p);M(this,"name","ValidationError");this.options=v}static is(p){return!!p?.[r]}},X(F,"ValidationError"),F);Object.defineProperty(n.prototype,r,{value:!0});var s=X(function(b){const h=X(function(p,v={}){return s.resolve(p,h,v)[0]},"schema");if(b.refs){const p=Et(b.refs,x=>new s(x)),v=X(x=>p[x],"getRef");for(const x in p){const P=p[x];P.sKey=v(P.sKey),P.inner=v(P.inner),P.list=P.list&&P.list.map(v),P.dict=P.dict&&Et(P.dict,v)}return p[b.uid]}if(Object.assign(h,b),typeof h.callback=="string")try{h.callback=new Function("return "+h.callback)()}catch{}return Object.defineProperty(h,"uid",{value:globalThis.__schemastery_index__++}),Object.setPrototypeOf(h,s.prototype),h.meta||(h.meta={}),h.toString=h.toString.bind(h),h},"Schema");s.prototype=Object.create(Function.prototype),s.prototype[i]=!0,s.ValidationError=n;var o;s.prototype.toJSON=X(function(){var p;if(o)return o[p=this.uid]??(o[p]=JSON.parse(JSON.stringify({...this}))),this.uid;o={[this.uid]:{...this}},o[this.uid]=JSON.parse(JSON.stringify({...this}));const h={uid:this.uid,refs:o};return o=void 0,h},"toJSON"),s.prototype.set=X(function(h,p){return this.dict[h]=p,this},"set"),s.prototype.push=X(function(h){return this.list.push(h),this},"push");function a(b,h){const p=typeof b=="string"?{"":b}:{...b};for(const v in h){const x=h[v];x?.$description||x?.$desc?p[v]=x.$description||x.$desc:typeof x=="string"&&(p[v]=x)}return p}X(a,"mergeDesc");function l(b){return b?.$value??b?.$inner}X(l,"getInner");function c(b){return Ro(b??{},h=>!h.startsWith("$"))}X(c,"extractKeys"),s.prototype.i18n=X(function(h){const p=s(this),v=a(p.meta.description,h);return Object.keys(v).length&&(p.meta.description=v),p.dict&&(p.dict=Et(p.dict,(x,P)=>x.i18n(Et(h,R=>l(R)?.[P]??R?.[P])))),p.list&&(p.list=p.list.map((x,P)=>x.i18n(Et(h,(R={})=>Array.isArray(l(R))?l(R)[P]:Array.isArray(R)?R[P]:c(R))))),p.inner&&(p.inner=p.inner.i18n(Et(h,x=>l(x)?l(x):c(x)))),p.sKey&&(p.sKey=p.sKey.i18n(Et(h,x=>x?.$key))),p},"i18n"),s.prototype.extra=X(function(h,p){const v=s(this);return v.meta={...v.meta,[h]:p},v},"extra");for(const b of["required","disabled","collapse","hidden","loose"])Object.assign(s.prototype,{[b](h=!0){const p=s(this);return p.meta={...p.meta,[b]:h},p}});s.prototype.deprecated=X(function(){var p;const h=s(this);return(p=h.meta).badges||(p.badges=[]),h.meta.badges.push({text:"deprecated",type:"danger"}),h},"deprecated"),s.prototype.experimental=X(function(){var p;const h=s(this);return(p=h.meta).badges||(p.badges=[]),h.meta.badges.push({text:"experimental",type:"warning"}),h},"experimental"),s.prototype.pattern=X(function(h){const p=s(this),v=Lo(h,["source","flags"]);return p.meta={...p.meta,pattern:v},p},"pattern"),s.prototype.simplify=X(function(h){if(Vt(h,this.meta.default,this.type==="dict"))return null;if(me(h))return h;if(this.type==="object"||this.type==="dict"){const p={};for(const v in h){const P=(this.type==="object"?this.dict[v]:this.inner)?.simplify(h[v]);(this.type==="dict"||!me(P))&&(p[v]=P)}return Vt(p,this.meta.default,this.type==="dict")?null:p}else if(this.type==="array"||this.type==="tuple"){const p=[];return h.forEach((v,x)=>{const P=this.type==="array"?this.inner:this.list[x],R=P?P.simplify(v):v;p.push(R)}),p}else if(this.type==="intersect"){const p={};for(const v of this.list)Object.assign(p,v.simplify(h));return p}else if(this.type==="union")for(const p of this.list)try{return s.resolve(h,p,{}),p.simplify(h)}catch{}return h},"simplify"),s.prototype.toString=X(function(h){return j[this.type]?.(this,h)??`Schema<${this.type}>`},"toString"),s.prototype.role=X(function(b,h){const p=s(this);return p.meta={...p.meta,role:b,extra:h},p},"role");for(const b of["default","link","comment","description","max","min","step"])Object.assign(s.prototype,{[b](h){const p=s(this);return p.meta={...p.meta,[b]:h},p}});var u={};s.extend=X(function(h,p){u[h]=p},"extend"),s.resolve=X(function(h,p,v={},x=!1){if(!p)return[h];if(v.ignore?.(h,p))return[h];if(me(h)&&p.type!=="lazy"){if(p.meta.required)throw new n("missing required value",v);let R=p,B=p.meta.default;for(;R?.type==="intersect"&&me(B);)R=R.list[0],B=R?.meta.default;if(me(B))return[h];h=wr(B)}const P=u[p.type];if(!P)throw new n(`unsupported type "${p.type}"`,v);try{return P(h,p,v,x)}catch(R){if(!p.meta.loose)throw R;return[p.meta.default]}},"resolve"),s.from=X(function(h){if(me(h))return s.any();if(["string","number","boolean"].includes(typeof h))return s.const(h).required();if(h[i])return h;if(typeof h=="function")switch(h){case String:return s.string().required();case Number:return s.number().required();case Boolean:return s.boolean().required();case Function:return s.function().required();default:return s.is(h).required()}else throw new TypeError(`cannot infer schema from ${h}`)},"from"),s.lazy=X(function(h){const p=X(()=>(v.inner[i]||(v.inner=v.builder(),v.inner.meta={...v.meta,...v.inner.meta}),v.inner.toJSON()),"toJSON"),v=new s({type:"lazy",builder:h,inner:{toJSON:p}});return v},"lazy"),s.natural=X(function(){return s.number().step(1).min(0)},"natural"),s.percent=X(function(){return s.number().step(.01).min(0).max(1).role("slider")},"percent"),s.date=X(function(){return s.union([s.is(Date),s.transform(s.string().role("datetime"),(h,p)=>{const v=new Date(h);if(isNaN(+v))throw new n(`invalid date "${h}"`,p);return v},!0)])},"date"),s.regExp=X(function(h=""){return s.union([s.is(RegExp),s.transform(s.string().role("regexp",{flag:h}),(p,v)=>{try{return new RegExp(p,h)}catch(x){throw new n(x.message,v)}},!0)])},"regExp"),s.arrayBuffer=X(function(h){return s.union([s.is(ArrayBuffer),s.is(SharedArrayBuffer),s.transform(s.any(),(p,v)=>{if(lt.isSource(p))return lt.fromSource(p);throw new n(`expected ArrayBufferSource but got ${p}`,v)},!0),...h?[s.transform(s.string(),(p,v)=>{try{return h==="base64"?lt.fromBase64(p):lt.fromHex(p)}catch(x){throw new n(x.message,v)}},!0)]:[]])},"arrayBuffer"),s.extend("lazy",(b,h,p,v)=>(h.inner[i]||(h.inner=h.builder(),h.inner.meta={...h.meta,...h.inner.meta}),s.resolve(b,h.inner,p,v))),s.extend("any",b=>[b]),s.extend("never",(b,h,p)=>{throw new n(`expected nullable but got ${b}`,p)}),s.extend("const",(b,{value:h},p)=>{if(Vt(b,h))return[h];throw new n(`expected ${h} but got ${b}`,p)});function f(b,h,p,v,x=!1){const{max:P=1/0,min:R=-1/0}=h;if(b>P)throw new n(`expected ${p} <= ${P} but got ${b}`,v);if(b<R&&!x)throw new n(`expected ${p} >= ${R} but got ${b}`,v)}X(f,"checkWithinRange"),s.extend("string",(b,{meta:h},p)=>{if(typeof b!="string")throw new n(`expected string but got ${b}`,p);if(h.pattern){const v=new RegExp(h.pattern.source,h.pattern.flags);if(!v.test(b))throw new n(`expect string to match regexp ${v}`,p)}return f(b.length,h,"string length",p),[b]});function d(b,h){const p=b.toString();if(p.includes("e"))return b*Math.pow(10,h);const v=p.indexOf(".");if(v===-1)return b*Math.pow(10,h);const x=p.slice(v+1),P=p.slice(0,v);return x.length<=h?+(P+x.padEnd(h,"0")):+(P+x.slice(0,h)+"."+x.slice(h))}X(d,"decimalShift");function y(b,h,p){if(p=Math.abs(p),!/^\d+\.\d+$/.test(p.toString()))return(b-h)%p===0;const v=p.toString().indexOf("."),x=p.toString().slice(v+1).length;return Math.abs(d(b,x)-d(h,x))%d(p,x)===0}X(y,"isMultipleOf"),s.extend("number",(b,{meta:h},p)=>{if(typeof b!="number")throw new n(`expected number but got ${b}`,p);f(b,h,"number",p);const{step:v}=h;if(v&&!y(b,h.min??0,v))throw new n(`expected number multiple of ${v} but got ${b}`,p);return[b]}),s.extend("boolean",(b,h,p)=>{if(typeof b=="boolean")return[b];throw new n(`expected boolean but got ${b}`,p)}),s.extend("bitset",(b,{bits:h,meta:p},v)=>{let x=0,P=[];if(typeof b=="number"){x=b;for(const R in h)b&h[R]&&P.push(R)}else if(Array.isArray(b)){P=b;for(const R of P){if(typeof R!="string")throw new n(`expected string but got ${R}`,v);R in h&&(x|=h[R])}}else throw new n(`expected number or array but got ${b}`,v);return x===p.default?[x]:[x,P]}),s.extend("function",(b,h,p)=>{if(typeof b=="function")return[b];throw new n(`expected function but got ${b}`,p)}),s.extend("is",(b,{constructor:h},p)=>{if(typeof h=="function"){if(b instanceof h)return[b];throw new n(`expected ${h.name} but got ${b}`,p)}else{if(me(b))throw new n(`expected ${h} but got ${b}`,p);let v=Object.getPrototypeOf(b);for(;v;){if(v.constructor?.name===h)return[b];v=Object.getPrototypeOf(v)}throw new n(`expected ${h} but got ${b}`,p)}});function m(b,h,p,v){try{const[x,P]=s.resolve(b[h],p,{...v,path:[...v.path||[],h]});return P!==void 0&&(b[h]=P),x}catch(x){if(!v?.autofix)throw x;return delete b[h],p.meta.default}}X(m,"property"),s.extend("array",(b,{inner:h,meta:p},v)=>{if(!Array.isArray(b))throw new n(`expected array but got ${b}`,v);return f(b.length,p,"array length",v,!me(h.meta.default)),[b.map((x,P)=>m(b,P,h,v))]}),s.extend("dict",(b,{inner:h,sKey:p},v,x)=>{if(!br(b))throw new n(`expected object but got ${b}`,v);const P={};for(const R in b){let B;try{B=s.resolve(R,p,v)[0]}catch(Pe){if(x)continue;throw Pe}P[B]=m(b,R,h,v),b[B]=b[R],R!==B&&delete b[R]}return[P]}),s.extend("tuple",(b,{list:h},p,v)=>{if(!Array.isArray(b))throw new n(`expected array but got ${b}`,p);const x=h.map((P,R)=>m(b,R,P,p));return v?[x]:(x.push(...b.slice(h.length)),[x])});function E(b,h){for(const p in h)p in b||(b[p]=h[p])}X(E,"merge"),s.extend("object",(b,{dict:h},p,v)=>{if(!br(b))throw new n(`expected object but got ${b}`,p);const x={};for(const P in h){const R=m(b,P,h[P],p);(!me(R)||P in b)&&(x[P]=R)}return v||E(x,b),[x]}),s.extend("union",(b,{list:h,toString:p},v,x)=>{for(const P of h)try{return s.resolve(b,P,v,x)}catch{}throw new n(`expected ${p()} but got ${JSON.stringify(b)}`,v)}),s.extend("intersect",(b,{list:h,toString:p},v,x)=>{if(!h.length)return[b];let P;for(const R of h){const B=s.resolve(b,R,v,!0)[0];if(!me(B))if(me(P))P=B;else{if(typeof P!=typeof B)throw new n(`expected ${p()} but got ${JSON.stringify(b)}`,v);if(typeof B=="object")E(P??(P={}),B);else if(P!==B)throw new n(`expected ${p()} but got ${JSON.stringify(b)}`,v)}}return!x&&br(b)&&E(P,b),[P]}),s.extend("transform",(b,{inner:h,callback:p,preserve:v},x)=>{const[P,R=b]=s.resolve(b,h,x,!0);return v?[p(P)]:[p(P),p(R)]});var j={};function k(b,h,p){j[b]=p,Object.assign(s,{[b](...v){const x=new s({type:b});return h.forEach((P,R)=>{switch(P){case"sKey":x.sKey=v[R]??s.string();break;case"inner":x.inner=s.from(v[R]);break;case"list":x.list=v[R].map(s.from);break;case"dict":x.dict=Et(v[R],s.from);break;case"bits":{x.bits={};for(const B in v[R])typeof v[R][B]=="number"&&(x.bits[B]=v[R][B]);break}case"callback":{const B=x.callback=v[R];B.toJSON||(B.toJSON=()=>B.toString());break}case"constructor":{const B=x.constructor=v[R];typeof B=="function"&&(B.toJSON||(B.toJSON=()=>B.name));break}default:x[P]=v[R]}}),b==="object"||b==="dict"?x.meta.default={}:b==="array"||b==="tuple"?x.meta.default=[]:b==="bitset"&&(x.meta.default=0),x}})}X(k,"defineMethod"),k("is",["constructor"],({constructor:b})=>typeof b=="function"?b.name:b),k("any",[],()=>"any"),k("never",[],()=>"never"),k("const",["value"],({value:b})=>typeof b=="string"?JSON.stringify(b):b),k("string",[],()=>"string"),k("number",[],()=>"number"),k("boolean",[],()=>"boolean"),k("bitset",["bits"],()=>"bitset"),k("function",[],()=>"function"),k("array",["inner"],({inner:b})=>`${b.toString(!0)}[]`),k("dict",["inner","sKey"],({inner:b,sKey:h})=>`{ [key: ${h.toString()}]: ${b.toString()} }`),k("tuple",["list"],({list:b})=>`[${b.map(h=>h.toString()).join(", ")}]`),k("object",["dict"],({dict:b})=>Object.keys(b).length===0?"{}":`{ ${Object.entries(b).map(([h,p])=>`${h}${p.meta.required?"":"?"}: ${p.toString()}`).join(", ")} }`),k("union",["list"],({list:b},h)=>{const p=b.map(({toString:v})=>v()).join(" | ");return h?`(${p})`:p}),k("intersect",["list"],({list:b})=>`${b.map(h=>h.toString(!0)).join(" & ")}`),k("transform",["inner","callback","preserve"],({inner:b},h)=>b.toString(h)),e.exports=s}});const te=Ef();/**
|
|
1
|
+
(function(X,ne){typeof exports=="object"&&typeof module<"u"?ne(exports):typeof define=="function"&&define.amd?define(["exports"],ne):(X=typeof globalThis<"u"?globalThis:X||self,ne(X.InPageEditBundle={}))})(this,function(X){"use strict";var Bb=Object.defineProperty;var Xu=X=>{throw TypeError(X)};var qb=(X,ne,_e)=>ne in X?Bb(X,ne,{enumerable:!0,configurable:!0,writable:!0,value:_e}):X[ne]=_e;var j=(X,ne,_e)=>qb(X,typeof ne!="symbol"?ne+"":ne,_e),jo=(X,ne,_e)=>ne.has(X)||Xu("Cannot "+_e);var J=(X,ne,_e)=>(jo(X,ne,"read from private field"),_e?_e.call(X):ne.get(X)),Ni=(X,ne,_e)=>ne.has(X)?Xu("Cannot add the same private member more than once"):ne instanceof WeakSet?ne.add(X):ne.set(X,_e),We=(X,ne,_e,z)=>(jo(X,ne,"write to private field"),z?z.call(X,_e):ne.set(X,_e),_e),nt=(X,ne,_e)=>(jo(X,ne,"access private method"),_e);var tt,Ai,si,Ii,Ti,Ri,Li,ve,Ge,ue,qe,Uo,nf,Fo,rf,sf,_t,of,af,lf,cf,vn,oi;const ne=()=>{let t,e;return{promise:new Promise((n,r)=>{t=n,e=r}),resolve:t,reject:e}};Promise.withResolvers||(Promise.withResolvers=ne);var _e=Object.defineProperty,z=(t,e)=>_e(t,"name",{value:e,configurable:!0});function uf(){}z(uf,"noop");function ge(t){return t==null}z(ge,"isNullable");function ff(t){return!ge(t)}z(ff,"isNonNullable");function kn(t){return t&&typeof t=="object"&&!Array.isArray(t)}z(kn,"isPlainObject");function Bo(t,e){return Object.fromEntries(Object.entries(t).filter(([i,n])=>e(i,n)))}z(Bo,"filterKeys");function $t(t,e){return Object.fromEntries(Object.entries(t).map(([i,n])=>[i,e(n,i)]))}z($t,"mapValues");function qo(t,e,i){if(!e)return{...t};const n={};for(const r of e)(i||t[r]!==void 0)&&(n[r]=t[r]);return n}z(qo,"pick");function df(t,e){if(!e)return{...t};const i={...t};for(const n of e)Reflect.deleteProperty(i,n);return i}z(df,"omit");function Oe(t,e,i){return Object.defineProperty(t,e,{writable:!0,value:i,enumerable:!1})}z(Oe,"defineProperty");function hf(t,e){return e.every(i=>t.includes(i))}z(hf,"contain");function pf(t,e){return t.filter(i=>e.includes(i))}z(pf,"intersection");function mf(t,e){return t.filter(i=>!e.includes(i))}z(mf,"difference");function gf(t,e){return Array.from(new Set([...t,...e]))}z(gf,"union");function yf(t){return[...new Set(t)]}z(yf,"deduplicate");function Mt(t,e){const i=t?.indexOf(e);return i>=0?(t.splice(i,1),!0):!1}z(Mt,"remove");function bf(t){return Array.isArray(t)?t:ge(t)?[]:[t]}z(bf,"makeArray");function Dt(t,e){return arguments.length===1?i=>Dt(t,i):t in globalThis&&e instanceof globalThis[t]||Object.prototype.toString.call(e).slice(8,-1)===t}z(Dt,"is");function Mi(t){return Dt("ArrayBuffer",t)||Dt("SharedArrayBuffer",t)}z(Mi,"isArrayBufferLike");function Ho(t){return Mi(t)||ArrayBuffer.isView(t)}z(Ho,"isArrayBufferSource");var ct;(t=>{t.is=Mi,t.isSource=Ho;function e(o){return ArrayBuffer.isView(o)?o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength):o}t.fromSource=e,z(e,"fromSource");function i(o){if(typeof Buffer<"u")return Buffer.from(o).toString("base64");let a="";const l=new Uint8Array(o);for(let c=0;c<l.byteLength;c++)a+=String.fromCharCode(l[c]);return btoa(a)}t.toBase64=i,z(i,"toBase64");function n(o){return typeof Buffer<"u"?e(Buffer.from(o,"base64")):Uint8Array.from(atob(o),a=>a.charCodeAt(0))}t.fromBase64=n,z(n,"fromBase64");function r(o){return typeof Buffer<"u"?Buffer.from(o).toString("hex"):Array.from(new Uint8Array(o),a=>a.toString(16).padStart(2,"0")).join("")}t.toHex=r,z(r,"toHex");function s(o){if(typeof Buffer<"u")return e(Buffer.from(o,"hex"));const a=o.length%2===0?o:o.slice(0,o.length-1),l=[];for(let c=0;c<a.length;c+=2)l.push(parseInt(`${a[c]}${a[c+1]}`,16));return Uint8Array.from(l).buffer}t.fromHex=s,z(s,"fromHex")})(ct||(ct={})),ct.fromBase64,ct.toBase64,ct.fromHex,ct.toHex;function En(t,e=new Map){if(!t||typeof t!="object")return t;if(Dt("Date",t))return new Date(t.valueOf());if(Dt("RegExp",t))return new RegExp(t.source,t.flags);if(Mi(t))return t.slice(0);if(ArrayBuffer.isView(t))return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);const i=e.get(t);if(i)return i;if(Array.isArray(t)){const r=[];return e.set(t,r),t.forEach((s,o)=>{r[o]=Reflect.apply(En,null,[s,e])}),r}const n=Object.create(Object.getPrototypeOf(t));e.set(t,n);for(const r of Reflect.ownKeys(t)){const s={...Reflect.getOwnPropertyDescriptor(t,r)};"value"in s&&(s.value=Reflect.apply(En,null,[s.value,e])),Reflect.defineProperty(n,r,s)}return n}z(En,"clone");function Qt(t,e,i){if(t===e||!i&&ge(t)&&ge(e))return!0;if(typeof t!=typeof e||typeof t!="object"||!t||!e)return!1;function n(r,s){return r(t)?r(e)?s(t,e):!1:r(e)?!1:void 0}return z(n,"check"),n(Array.isArray,(r,s)=>r.length===s.length&&r.every((o,a)=>Qt(o,s[a])))??n(Dt("Date"),(r,s)=>r.valueOf()===s.valueOf())??n(Dt("RegExp"),(r,s)=>r.source===s.source&&r.flags===s.flags)??n(Mi,(r,s)=>{if(r.byteLength!==s.byteLength)return!1;const o=new Uint8Array(r),a=new Uint8Array(s);for(let l=0;l<o.length;l++)if(o[l]!==a[l])return!1;return!0})??Object.keys({...t,...e}).every(r=>Qt(t[r],e[r],i))}z(Qt,"deepEqual");function wf(t){return t.charAt(0).toUpperCase()+t.slice(1)}z(wf,"capitalize");function vf(t){return t.charAt(0).toLowerCase()+t.slice(1)}z(vf,"uncapitalize");function _f(t){return t.replace(/[_-][a-z]/g,e=>e.slice(1).toUpperCase())}z(_f,"camelCase");function Nr(t,e,i){const n=[];let r=0;for(let s=0;s<t.length;s++){const o=t.charCodeAt(s);if(o>=65&&o<=90){if(r===1){const a=t.charCodeAt(s+1);a>=97&&a<=122&&n.push(i),n.push(o+32)}else r!==0&&n.push(i),n.push(o+32);r=1}else o>=97&&o<=122?(n.push(o),r=2):e.includes(o)?(r!==0&&n.push(i),r=0):n.push(o)}return String.fromCharCode(...n)}z(Nr,"tokenize");function xf(t){return Nr(t,[45,95],45)}z(xf,"paramCase");function Sf(t){return Nr(t,[45,95],95)}z(Sf,"snakeCase");function kf(t){return typeof t!="string"?`[${t.toString()}]`:/^[a-z_$][\w$]*$/i.test(t)?`.${t}`:`[${JSON.stringify(t)}]`}z(kf,"formatProperty");function zo(t){return t.replace(/\/$/,"")}z(zo,"trimSlash");function Ef(t){return t.startsWith("/")||(t="/"+t),zo(t)}z(Ef,"sanitize");var Wo;(t=>{t.millisecond=1,t.second=1e3,t.minute=t.second*60,t.hour=t.minute*60,t.day=t.hour*24,t.week=t.day*7;let e=new Date().getTimezoneOffset();function i(g){e=g}t.setTimezoneOffset=i,z(i,"setTimezoneOffset");function n(){return e}t.getTimezoneOffset=n,z(n,"getTimezoneOffset");function r(g=new Date,m){return typeof g=="number"&&(g=new Date(g)),m===void 0&&(m=e),Math.floor((g.valueOf()/t.minute-m)/1440)}t.getDateNumber=r,z(r,"getDateNumber");function s(g,m){const k=new Date(g*t.day);return m===void 0&&(m=e),new Date(+k+m*t.minute)}t.fromDateNumber=s,z(s,"fromDateNumber");const o=/\d+(?:\.\d+)?/.source,a=new RegExp(`^${["w(?:eek(?:s)?)?","d(?:ay(?:s)?)?","h(?:our(?:s)?)?","m(?:in(?:ute)?(?:s)?)?","s(?:ec(?:ond)?(?:s)?)?"].map(g=>`(${o}${g})?`).join("")}$`);function l(g){const m=a.exec(g);return m?(parseFloat(m[1])*t.week||0)+(parseFloat(m[2])*t.day||0)+(parseFloat(m[3])*t.hour||0)+(parseFloat(m[4])*t.minute||0)+(parseFloat(m[5])*t.second||0):0}t.parseTime=l,z(l,"parseTime");function c(g){const m=l(g);return m?g=Date.now()+m:/^\d{1,2}(:\d{1,2}){1,2}$/.test(g)?g=`${new Date().toLocaleDateString()}-${g}`:/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(g)&&(g=`${new Date().getFullYear()}-${g}`),g?new Date(g):new Date}t.parseDate=c,z(c,"parseDate");function u(g){const m=Math.abs(g);return m>=t.day-t.hour/2?Math.round(g/t.day)+"d":m>=t.hour-t.minute/2?Math.round(g/t.hour)+"h":m>=t.minute-t.second/2?Math.round(g/t.minute)+"m":m>=t.second?Math.round(g/t.second)+"s":g+"ms"}t.format=u,z(u,"format");function f(g,m=2){return g.toString().padStart(m,"0")}t.toDigits=f,z(f,"toDigits");function p(g,m=new Date){return g.replace("yyyy",m.getFullYear().toString()).replace("yy",m.getFullYear().toString().slice(2)).replace("MM",f(m.getMonth()+1)).replace("dd",f(m.getDate())).replace("hh",f(m.getHours())).replace("mm",f(m.getMinutes())).replace("ss",f(m.getSeconds())).replace("SSS",f(m.getMilliseconds(),3))}t.template=p,z(p,"template")})(Wo||(Wo={}));var $f=Object.defineProperty,W=(t,e)=>$f(t,"name",{value:e,configurable:!0}),N={shadow:Symbol.for("cordis.shadow"),receiver:Symbol.for("cordis.receiver"),original:Symbol.for("cordis.original"),store:Symbol.for("cordis.store"),events:Symbol.for("cordis.events"),static:Symbol.for("cordis.static"),filter:Symbol.for("cordis.filter"),expose:Symbol.for("cordis.expose"),isolate:Symbol.for("cordis.isolate"),internal:Symbol.for("cordis.internal"),intercept:Symbol.for("cordis.intercept"),setup:Symbol.for("cordis.setup"),invoke:Symbol.for("cordis.invoke"),extend:Symbol.for("cordis.extend"),tracker:Symbol.for("cordis.tracker"),provide:Symbol.for("cordis.provide"),immediate:Symbol.for("cordis.immediate")},Pf=function*(){}.constructor,Ko=async function*(){}.constructor;function Mr(t){return!(!t.prototype||t instanceof Pf||Ko!==Function&&t instanceof Ko)}W(Mr,"isConstructor");function Di(t,e){const i=t.Config||t.schema;return i&&t.schema!==!1&&(e=i(e)),e??{}}W(Di,"resolveConfig");function Vo(t){return[Map,Set,Date,Promise].some(e=>t instanceof e)}W(Vo,"isUnproxyable");function Dr(t,e){if(t===Object.prototype)return e;const i=Object.create(Dr(Object.getPrototypeOf(t),e));for(const n of Reflect.ownKeys(t))Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n));return i}W(Dr,"joinPrototype");function jr(t){return t&&(typeof t=="object"||typeof t=="function")}W(jr,"isObject");function ut(t,e,i){if(!jr(e))return e;if(Object.hasOwn(e,N.shadow))return Object.getPrototypeOf(e);const n=e[N.tracker];return n?Pn(t,e,n,i):e}W(ut,"getTraceable");function ji(t,e){return e?new Proxy(t,{get:W((i,n,r)=>n in e&&n!=="constructor"?Reflect.get(e,n,r):Reflect.get(i,n,r),"get"),set:W((i,n,r,s)=>n in e&&n!=="constructor"?Reflect.set(e,n,r,s):Reflect.set(i,n,r,s),"set")}):t}W(ji,"withProps");function $n(t,e,i){return ji(t,Object.defineProperty(Object.create(null),e,{value:i,writable:!1}))}W($n,"withProp");function Ur(t,e,i,n){if(!i)return n;const r=Reflect.getOwnPropertyDescriptor(e,i)?.value;return r?$n(n,i,t.extend({[N.shadow]:r})):n}W(Ur,"createShadow");function Qo(t,e,i,n){return new Proxy(e,{apply:W((r,s,o)=>(s===i&&(s=n),o=o.map(a=>typeof a!="function"||a[N.original]?a:new Proxy(a,{get:W((l,c,u)=>{if(c===N.original)return l;const f=Reflect.get(l,c,u);return c==="toString"&&f===Function.prototype.toString?function(...p){return Reflect.apply(f,this===u?l:this,p)}:f},"get"),apply:W((l,c,u)=>Reflect.apply(l,ut(t,c),u.map(f=>ut(t,f))),"apply"),construct:W((l,c,u)=>Reflect.construct(l,c.map(f=>ut(t,f)),u),"construct")})),ut(t,Reflect.apply(r,s,o))),"apply")})}W(Qo,"createShadowMethod");function Pn(t,e,i,n){t[N.shadow]&&(t=Object.getPrototypeOf(t));const r=new Proxy(e,{get:W((s,o,a)=>{if(o===N.original)return s;if(o===i.property)return t;if(typeof o=="symbol")return Reflect.get(s,o,a);if(i.associate&&t[N.internal][`${i.associate}.${o}`])return Reflect.get(t,`${i.associate}.${o}`,$n(t,N.receiver,a));const l=Ur(t,s,i.property,a),c=Reflect.get(s,o,l),u=c?.[N.tracker];return u?Pn(t,c,u):!n&&typeof c=="function"?Qo(t,c,a,l):c},"get"),set:W((s,o,a,l)=>{if(o===N.original||o===i.property)return!1;if(typeof o=="symbol")return Reflect.set(s,o,a,l);if(i.associate&&t[N.internal][`${i.associate}.${o}`])return Reflect.set(t,`${i.associate}.${o}`,a,$n(t,N.receiver,l));const c=Ur(t,s,i.property,l);return Reflect.set(s,o,a,c)},"set"),apply:W((s,o,a)=>Fr(r,s,o,a),"apply")});return r}W(Pn,"createTraceable");function Fr(t,e,i,n){return e[N.invoke]?e[N.invoke].apply(t,n):Reflect.apply(e,i,n)}W(Fr,"applyTraceable");function Br(t,e,i){const n=W(function(...r){const s=Pn(n.ctx,n,i);return Fr(s,n,this,r)},"self");return Oe(n,"name",t),Object.setPrototypeOf(n,e)}W(Br,"createCallable");var Cf=(tt=class{constructor(e){this.ctx=e,Oe(this,N.tracker,{associate:"reflect",property:"ctx"}),this._mixin("reflect",["get","set","provide","accessor","mixin","alias"]),this._mixin("scope",["config","runtime","effect","collect","accept","decline"]),this._mixin("registry",["using","inject","plugin"]),this._mixin("lifecycle",["on","once","parallel","emit","serial","bail","start","stop"])}static resolveInject(e,i){let n=e[N.internal][i];for(;n?.type==="alias";)i=n.name,n=e[N.internal][i];return[i,n]}static checkInject(e,i,n){if(e=e[N.shadow]??e,["prototype","then","registry","lifecycle"].includes(i)||i[0]==="$"||i[0]==="_"||!e.runtime.plugin||e.bail(e,"internal/inject",i))return;const r=n.stack.split(`
|
|
2
|
+
`);r.splice(1,1),n.stack=r.join(`
|
|
3
|
+
`),e.emit(e,"internal/warning",n)}get(e){if(this.ctx[N.internal][e]?.type!=="service")return;const n=this.ctx[N.isolate][e],r=this.ctx[N.store][n]?.value;return ut(this.ctx,r)}set(e,i){this.provide(e);const n=this.ctx[N.isolate][e],r=this.ctx[N.store][n]?.value;i??(i=void 0);let s=W(()=>{},"dispose");if(r===i)return s;if(!ge(i)&&!ge(r))throw new Error(`service ${e} has been registered`);const o=this.ctx;ge(i)||(s=o.effect(()=>()=>{o.set(e,void 0)})),Vo(i)&&o.emit(o,"internal/warning",new Error(`service ${e} is an unproxyable object, which may lead to unexpected behavior`));const a=Object.create(o);return a[N.filter]=l=>o[N.isolate][e]===l[N.isolate][e],o.emit(a,"internal/before-service",e,i),o[N.store][n]={value:i,source:o},o.emit(a,"internal/service",e,r),s}provide(e,i,n){const r=this.ctx.root[N.internal];if(e in r)return;const s=Symbol(e);r[e]={type:"service",builtin:n},this.ctx.root[N.isolate][e]=s,jr(i)&&(this.ctx[N.store][s]={value:i,source:null},Oe(i,N.tracker,{associate:e,property:"ctx"}))}_accessor(e,i){const n=this.ctx.root[N.internal];return e in n?()=>{}:(n[e]={type:"accessor",...i},()=>delete this.ctx.root[N.isolate][e])}accessor(e,i){this.ctx.scope.effect(()=>this._accessor(e,i))}alias(e,i){const n=this.ctx.root[N.internal];if(!(e in n))for(const r of i)n[r]||(n[r]={type:"alias",name:e})}_mixin(e,i){const n=Array.isArray(i)?i.map(o=>[o,o]):Object.entries(i),r=typeof e=="string"?o=>o[e]:()=>e,s=n.map(([o,a])=>this._accessor(a,{get(l){const c=r(this);if(ge(c))return c;const u=l?ji(l,c):c,f=Reflect.get(c,o,u);return typeof f!="function"?f:f.bind(u??c)},set(l,c){const u=r(this),f=c?ji(c,u):u;return Reflect.set(u,o,l,f)}}));return()=>s.forEach(o=>o())}mixin(e,i){this.ctx.scope.effect(()=>this._mixin(e,i))}trace(e){return ut(this.ctx,e)}bind(e){return new Proxy(e,{apply:W((i,n,r)=>i.apply(this.trace(n),r.map(s=>this.trace(s))),"apply")})}},W(tt,"ReflectService"),j(tt,"handler",{get:W((e,i,n)=>{if(typeof i!="string")return Reflect.get(e,i,n);if(Reflect.has(e,i))return ut(n,Reflect.get(e,i,n),!0);const[r,s]=tt.resolveInject(e,i),o=new Error(`property ${r} is not registered, declare it as \`inject\` to suppress this warning`);return s?s.type==="accessor"?s.get.call(n,n[N.receiver]):(s.builtin||tt.checkInject(n,r,o),n.reflect.get(r)):(tt.checkInject(n,r,o),Reflect.get(e,r,n))},"get"),set:W((e,i,n,r)=>{if(typeof i!="string")return Reflect.set(e,i,n,r);const[s,o]=tt.resolveInject(e,i);return o?o.type==="accessor"?o.set?o.set.call(r,n,r[N.receiver]):!1:(r.reflect.set(s,n),!0):Reflect.set(e,s,n,r)},"set"),has:W((e,i)=>{if(typeof i!="string")return Reflect.has(e,i);if(Reflect.has(e,i))return!0;const[,n]=tt.resolveInject(e,i);return!!n},"has")}),tt),qr=Cf;function Hr(t){return t!==null&&t!==!1&&t!==void 0}W(Hr,"isBailed");var Of=(Ai=class{constructor(e){j(this,"isActive",!1);j(this,"_tasks",new Set);j(this,"_hooks",{});this.ctx=e,Oe(this,N.tracker,{associate:"lifecycle",property:"ctx"}),Oe(this.on("internal/listener",function(n,r,s){const o=s.prepend?"unshift":"push";if(n==="ready")return this.lifecycle.isActive?(this.scope.ensure(async()=>r()),()=>!1):void 0;if(n==="dispose")return this.scope.disposables[o](r),Oe(r,"name","event <dispose>"),()=>Mt(this.scope.disposables,r);if(n==="fork")return this.scope.runtime.forkables[o](r),this.scope.collect("event <fork>",()=>Mt(this.scope.runtime.forkables,r))}),Me.static,e.scope);for(const n of["info","error","warning"])Oe(this.on(`internal/${n}`,(r,...s)=>{this._hooks[`internal/${n}`].length>1}),Me.static,e.scope);Oe(this.on("internal/before-service",function(n){for(const r of this.registry.values()){if(!r.inject[n]?.required)continue;const s=r.isReusable?r.children:[r];for(const o of s)this[N.filter](o.ctx)&&(o.updateStatus(),o.reset())}},{global:!0}),Me.static,e.scope),Oe(this.on("internal/service",function(n){for(const r of this.registry.values()){if(!r.inject[n]?.required)continue;const s=r.isReusable?r.children:[r];for(const o of s)this[N.filter](o.ctx)&&o.start()}},{global:!0}),Me.static,e.scope);const i=W((n,r)=>{if(!n.runtime.plugin)return!1;for(const s in n.runtime.inject)if(r===qr.resolveInject(n.ctx,s)[0])return!0;return i(n.parent.scope,r)},"checkInject");Oe(this.on("internal/inject",function(n){return i(this.scope,n)},{global:!0}),Me.static,e.scope)}async flush(){for(;this._tasks.size;)await Promise.all(Array.from(this._tasks))}filterHooks(e,i){return i=ut(this.ctx,i),e.slice().filter(n=>{const r=i?.[Me.filter];return n.global||!r||r.call(i,n.ctx)})}*dispatch(e,i){const n=typeof i[0]=="object"||typeof i[0]=="function"?i.shift():null,r=i.shift();r!=="internal/event"&&this.emit("internal/event",e,r,i,n);for(const s of this.filterHooks(this._hooks[r]||[],n))yield s.callback.apply(n,i)}async parallel(...e){await Promise.all(this.dispatch("emit",e))}emit(...e){Array.from(this.dispatch("emit",e))}async serial(...e){for await(const i of this.dispatch("serial",e))if(Hr(i))return i}bail(...e){for(const i of this.dispatch("bail",e))if(Hr(i))return i}register(e,i,n,r){const s=r.prepend?"unshift":"push";return i[s]({ctx:this.ctx,callback:n,...r}),this.ctx.state.collect(e,()=>this.unregister(i,n))}unregister(e,i){const n=e.findIndex(r=>r.callback===i);if(n>=0)return e.splice(n,1),!0}on(e,i,n){var a;typeof n!="object"&&(n={prepend:n}),this.ctx.scope.assertActive(),i=this.ctx.reflect.bind(i);const r=this.bail(this.ctx,"internal/listener",e,i,n);if(r)return r;const s=(a=this._hooks)[e]||(a[e]=[]),o=typeof e=="string"?`event <${e}>`:"event (Symbol)";return this.register(o,s,i,n)}once(e,i,n){const r=this.on(e,function(...s){return r(),i.apply(this,s)},n);return r}async start(){this.isActive=!0;const e=this._hooks.ready||[];for(;e.length;){const{ctx:i,callback:n}=e.shift();i.scope.ensure(async()=>n())}await this.flush()}async stop(){this.isActive=!1,this.ctx.scope.reset()}},W(Ai,"Lifecycle"),Ai),Af=Of,zr=(si=class extends Error{constructor(e,i){super(i??si.Code[e]),this.code=e}},W(si,"CordisError"),si);(t=>{t.Code={INACTIVE_EFFECT:"cannot create effect on inactive context"}})(zr||(zr={}));var Yo=(Ii=class{constructor(e,i){j(this,"uid");j(this,"ctx");j(this,"disposables",[]);j(this,"error");j(this,"status",0);j(this,"isActive",!1);j(this,"context");j(this,"proxy");j(this,"acceptors",[]);j(this,"tasks",new Set);j(this,"hasError",!1);this.parent=e,this.config=i,this.uid=e.registry?e.registry.counter:0,this.ctx=this.context=e.extend({scope:this}),this.proxy=new Proxy({},{get:W((n,r)=>Reflect.get(this.config,r),"get")})}get _config(){return this.runtime.isReactive?this.proxy:this.config}assertActive(){if(!(this.uid!==null||this.isActive))throw new zr("INACTIVE_EFFECT")}effect(e,i){this.assertActive();const n=Mr(e)?new e(this.ctx,i):e(this.ctx,i);let r=!1;const s=typeof n=="function"?n:n.dispose.bind(n),o=W((...a)=>{if(!r)return r=!0,Mt(this.disposables,o),s(...a)},"wrapped");return this.disposables.push(o),typeof n=="function"?o:(n.dispose=o,n)}collect(e,i){const n=Oe(()=>(Mt(this.disposables,n),i()),"name",e);return this.disposables.push(n),n}restart(){this.reset(),this.error=null,this.hasError=!1,this.status=0,this.start()}_getStatus(){return this.uid===null?4:this.hasError?3:this.tasks.size?1:this.ready?2:0}updateStatus(e){const i=this.status;e?.(),this.status=this._getStatus(),i!==this.status&&this.context.emit("internal/status",this,i)}ensure(e){const i=e().catch(n=>{this.context.emit(this.ctx,"internal/error",n),this.cancel(n)}).finally(()=>{this.updateStatus(()=>this.tasks.delete(i)),this.context.events._tasks.delete(i)});this.updateStatus(()=>this.tasks.add(i)),this.context.events._tasks.add(i)}cancel(e){this.error=e,this.updateStatus(()=>this.hasError=!0),this.reset()}get ready(){return Object.entries(this.runtime.inject).every(([e,i])=>!i.required||!ge(this.ctx.get(e)))}reset(){this.isActive=!1,this.disposables=this.disposables.splice(0).filter(e=>{if(this.uid!==null&&e[Me.static]===this)return!0;(async()=>e())().catch(i=>{this.context.emit(this.ctx,"internal/error",i)})})}init(e){this.config?this.start():this.cancel(e)}start(){if(!this.ready||this.isActive||this.uid===null)return!0;this.isActive=!0,this.updateStatus(()=>this.hasError=!1)}accept(...e){const n={keys:Array.isArray(e[0])?e.shift():null,callback:e[0],...e[1]};return this.effect(()=>(this.acceptors.push(n),n.immediate&&n.callback?.(this.config),()=>Mt(this.acceptors,n)))}decline(e){return this.accept(e,()=>!0)}checkUpdate(e,i){if(i||!this.config)return[!0,!0];if(i===!1)return[!1,!1];const n=Object.create(null),r=W(c=>{const u=n[c]??(n[c]=!Qt(this.config[c],e[c]));return o||(o=u),u},"checkPropertyUpdate"),s=new Set;let o=!1,a=!1,l=this.runtime.isReactive||null;for(const{keys:c,callback:u,passive:f}of this.acceptors){if(!c)l||(l=!f);else if(f)c?.forEach(g=>s.add(g));else{let g=!1;for(const m of c)g||(g=r(m));if(!g)continue}u?.(e)&&(a=!0)}for(const c in{...this.config,...e})if(l!==!1&&!(c in n)&&!s.has(c)){const u=r(c);l===null&&(a||(a=u))}return[o,a]}},W(Ii,"EffectScope"),Ii),If=(Ti=class extends Yo{constructor(i,n,r,s){super(i,r);j(this,"dispose");this.runtime=n,this.dispose=Oe(i.scope.collect(`fork <${i.runtime.name}>`,()=>{this.uid=null,this.reset(),this.context.emit("internal/fork",this);const o=Mt(n.disposables,this.dispose);return Mt(n.children,this)&&!n.children.length&&i.registry.delete(n.plugin),o}),Me.static,n),n.children.push(this),n.disposables.push(this.dispose),this.context.emit("internal/fork",this),this.init(s)}start(){if(super.start())return!0;for(const i of this.runtime.forkables)this.ensure(async()=>i(this.context,this._config))}update(i,n){const r=this.config,s=this.runtime.isForkable?this:this.runtime;if(s.config!==r)return;let o;try{o=Di(this.runtime.plugin,i)}catch(c){return this.context.emit("internal/error",c),this.cancel(c)}const[a,l]=s.checkUpdate(o,n);this.context.emit("internal/before-update",this,i),this.config=o,s.config=o,a&&this.context.emit("internal/update",this,r),l&&s.restart()}},W(Ti,"ForkScope"),Ti),Go=(Ri=class extends Yo{constructor(i,n,r,s){super(i,r);j(this,"value");j(this,"runtime",this);j(this,"schema");j(this,"name");j(this,"inject",Object.create(null));j(this,"forkables",[]);j(this,"children",[]);j(this,"isReusable",!1);j(this,"isReactive",!1);j(this,"apply",W((i,n)=>{if(typeof this.plugin!="function")return this.plugin.apply(i,n);if(Mr(this.plugin)){const r=new this.plugin(i,n),s=r[Me.expose];return s&&i.set(s,r),r.fork&&this.forkables.push(r.fork.bind(r)),r}else return this.plugin(i,n)},"apply"));this.plugin=n,n?(this.setup(),this.init(s)):(this.name="root",this.isActive=!0)}get isForkable(){return this.forkables.length>0}fork(i,n,r){return new If(i,this,n,r)}dispose(){return this.uid=null,this.reset(),this.context.emit("internal/runtime",this),!0}setup(){const{name:i}=this.plugin;i&&i!=="apply"&&(this.name=i),this.schema=this.plugin.Config||this.plugin.schema,this.inject=xe.resolve(this.plugin.using||this.plugin.inject),this.isReusable=this.plugin.reusable,this.isReactive=this.plugin.reactive,this.context.emit("internal/runtime",this),this.isReusable&&this.forkables.push(this.apply)}reset(){super.reset();for(const i of this.children)i.reset()}start(){if(super.start())return!0;!this.isReusable&&this.plugin&&this.ensure(async()=>this.value=this.apply(this.ctx,this._config));for(const i of this.children)i.start()}update(i,n){if(this.isForkable){const c=new Error(`attempting to update forkable plugin "${this.plugin.name}", which may lead to unexpected behavior`);this.context.emit(this.ctx,"internal/warning",c)}const r=this.config;let s;try{s=Di(this.runtime.plugin||this.context.constructor,i)}catch(c){return this.context.emit("internal/error",c),this.cancel(c)}const[o,a]=this.checkUpdate(s,n),l=this.children.find(c=>c.config===r);this.config=s,l&&(this.context.emit("internal/before-update",l,i),l.config=s,o&&this.context.emit("internal/update",l,r)),a&&this.restart()}},W(Ri,"MainScope"),Ri);function Xo(t){return t&&typeof t=="object"&&typeof t.apply=="function"}W(Xo,"isApplicable");function xe(t){return function(e,i){if(i.kind==="class")e.inject=t;else if(i.kind==="method")i.addInitializer(function(){const n=this[N.tracker]?.property;if(!n)throw new Error("missing context tracker");this[n].inject(t,r=>{e.call(ji(this,{[n]:r}))})});else throw new Error("@Inject can only be used on class or class methods")}}W(xe,"Inject"),(t=>{function e(i){if(!i)return{};if(Array.isArray(i))return Object.fromEntries(i.map(o=>[o,{required:!0}]));const{required:n,optional:r,...s}=i;return Array.isArray(n)&&Object.assign(s,Object.fromEntries(n.map(o=>[o,{required:!0}]))),Array.isArray(r)&&Object.assign(s,Object.fromEntries(r.map(o=>[o,{required:!1}]))),s}t.resolve=e,W(e,"resolve")})(xe||(xe={}));var Tf=(Li=class{constructor(e,i){j(this,"_counter",0);j(this,"_internal",new Map);j(this,"context");this.ctx=e,Oe(this,N.tracker,{associate:"registry",property:"ctx"}),this.context=e;const n=new Go(e,null,i);e.scope=n,n.ctx=e,this.set(null,n)}get counter(){return++this._counter}get size(){return this._internal.size}resolve(e,i=!1){if(e===null||typeof e=="function")return e;if(Xo(e))return e.apply;if(i)throw new Error('invalid plugin, expect function or object with an "apply" method, received '+typeof e)}get(e){const i=this.resolve(e);return i&&this._internal.get(i)}has(e){const i=this.resolve(e);return!!i&&this._internal.has(i)}set(e,i){const n=this.resolve(e);this._internal.set(n,i)}delete(e){const i=this.resolve(e),n=i&&this._internal.get(i);if(n)return this._internal.delete(i),n.dispose(),n}keys(){return this._internal.keys()}values(){return this._internal.values()}entries(){return this._internal.entries()}forEach(e){return this._internal.forEach(e)}using(e,i){return this.inject(e,i)}inject(e,i){return this.plugin({inject:e,apply:i,name:i.name})}plugin(e,i,n){if(this.resolve(e,!0),this.ctx.scope.assertActive(),!n)try{i=Di(e,i)}catch(s){this.context.emit(this.ctx,"internal/error",s),n=s,i=null}let r=this.get(e);return r?(r.isForkable||this.context.emit(this.ctx,"internal/warning",new Error(`duplicate plugin detected: ${e.name}`)),r.fork(this.ctx,i,n)):(r=new Go(this.ctx,e,i,n),this.set(e,r),r.fork(this.ctx,i,n))}},W(Li,"Registry"),Li),Rf=Tf,Me=(ve=class{static is(e){return!!e?.[ve.is]}static associate(e,i){return e}constructor(e){e=Di(this.constructor,e),this[N.store]=Object.create(null),this[N.isolate]=Object.create(null),this[N.internal]=Object.create(null),this[N.intercept]=Object.create(null);const i=new Proxy(this,qr.handler);i.root=i,i.reflect=new qr(i),i.registry=new Rf(i,e),i.lifecycle=new Af(i);const n=W(r=>{if(r){n(Object.getPrototypeOf(r));for(const s of Object.getOwnPropertyNames(r)){const o=r[s].prototype?.constructor;o&&(i[r[s].key]=new o(i,e),Oe(i[r[s].key],"ctx",i))}}},"attach");return n(this[N.internal]),i}[Symbol.for("nodejs.util.inspect.custom")](){return`Context <${this.name}>`}get name(){let e=this.runtime;for(;e&&!e.name;)e=e.parent.runtime;return e?.name}get events(){return this.lifecycle}get state(){return this.scope}extend(e={}){const i=Reflect.getOwnPropertyDescriptor(this,N.shadow)?.value,n=Object.assign(Object.create(ut(this,this)),e);return i?Object.assign(Object.create(n),{[N.shadow]:i}):n}isolate(e,i){const n=Object.create(this[N.isolate]);return n[e]=i??Symbol(e),this.extend({[N.isolate]:n})}intercept(e,i){const n=Object.create(this[N.intercept]);return n[e]=i,this.extend({[N.intercept]:n})}},W(ve,"Context"),j(ve,"store",N.store),j(ve,"events",N.events),j(ve,"static",N.static),j(ve,"filter",N.filter),j(ve,"expose",N.expose),j(ve,"isolate",N.isolate),j(ve,"internal",N.internal),j(ve,"intercept",N.intercept),j(ve,"origin","ctx"),j(ve,"current","ctx"),ve.is[Symbol.toPrimitive]=()=>Symbol.for("cordis.is"),ve.prototype[ve.is]=!0,ve);Me.prototype[Me.internal]=Object.create(null);var Pt=(Ge=class{constructor(...e){j(this,"ctx");j(this,"name");j(this,"config");let i,n,r,s;Me.is(e[0])?(i=e[0],typeof e[1]=="string"?(n=e[1],r=e[2]):s=e[1]):s=e[0],n??(n=this.constructor[N.provide]),r??(r=this.constructor[N.immediate]);let o=this;const a={associate:n,property:"ctx"};return o[N.invoke]&&(o=Br(n,Dr(Object.getPrototypeOf(this),Function.prototype),a)),i?o.ctx=i:o[N.setup](),o.name=n,o.config=s,Oe(o,N.tracker,a),o.ctx.provide(n),o.ctx.runtime.name=n,r&&(i?o[N.expose]=n:o.ctx.set(n,o)),o.ctx.on("ready",async()=>{await Promise.resolve(),await o.start(),r||o.ctx.set(n,o)}),o.ctx.on("dispose",()=>o.stop()),o}start(){}stop(){}[N.filter](e){return e[N.isolate][this.name]===this.ctx[N.isolate][this.name]}[N.setup](){this.ctx=new Me}[N.extend](e){let i;return this[Ge.invoke]?i=Br(this.name,this,this[N.tracker]):i=Object.create(this),Object.assign(i,e)}static[Symbol.hasInstance](e){let i=e.constructor;for(;i;){if(i=i.prototype?.constructor,i===this)return!0;i=Object.getPrototypeOf(i)}return!1}},W(Ge,"Service"),j(Ge,"setup",N.setup),j(Ge,"invoke",N.invoke),j(Ge,"extend",N.extend),j(Ge,"tracker",N.tracker),j(Ge,"provide",N.provide),j(Ge,"immediate",N.immediate),Ge),Lf=Object.defineProperty,Nf=Object.getOwnPropertyNames,Z=(t,e)=>Lf(t,"name",{value:e,configurable:!0}),Mf=(t,e)=>function(){return e||(0,t[Nf(t)[0]])((e={exports:{}}).exports,e),e.exports},Df=Mf({"src/index.ts"(t,e){var I;var i=Symbol.for("schemastery"),n=Symbol.for("ValidationError");globalThis.__schemastery_index__??(globalThis.__schemastery_index__=0);var r=(I=class extends TypeError{constructor(y,v){let x="$";for(const E of v.path||[])typeof E=="string"?x+="."+E:typeof E=="number"?x+="["+E+"]":typeof E=="symbol"&&(x+=`[Symbol(${E.toString()})]`);x.startsWith(".")&&(x=x.slice(1));super((x==="$"?"":`${x} `)+y);j(this,"name","ValidationError");this.options=v}static is(y){return!!y?.[n]}},Z(I,"ValidationError"),I);Object.defineProperty(r.prototype,n,{value:!0});var s=Z(function(b){const d=Z(function(y,v={}){return s.resolve(y,d,v)[0]},"schema");if(b.refs){const y=$t(b.refs,x=>new s(x)),v=Z(x=>y[x],"getRef");for(const x in y){const E=y[x];E.sKey=v(E.sKey),E.inner=v(E.inner),E.list=E.list&&E.list.map(v),E.dict=E.dict&&$t(E.dict,v)}return y[b.uid]}if(Object.assign(d,b),typeof d.callback=="string")try{d.callback=new Function("return "+d.callback)()}catch{}return Object.defineProperty(d,"uid",{value:globalThis.__schemastery_index__++}),Object.setPrototypeOf(d,s.prototype),d.meta||(d.meta={}),d.toString=d.toString.bind(d),d},"Schema");s.prototype=Object.create(Function.prototype),s.prototype[i]=!0,s.ValidationError=r;var o;s.prototype.toJSON=Z(function(){var y;if(o)return o[y=this.uid]??(o[y]=JSON.parse(JSON.stringify({...this}))),this.uid;o={[this.uid]:{...this}},o[this.uid]=JSON.parse(JSON.stringify({...this}));const d={uid:this.uid,refs:o};return o=void 0,d},"toJSON"),s.prototype.set=Z(function(d,y){return this.dict[d]=y,this},"set"),s.prototype.push=Z(function(d){return this.list.push(d),this},"push");function a(b,d){const y=typeof b=="string"?{"":b}:{...b};for(const v in d){const x=d[v];x?.$description||x?.$desc?y[v]=x.$description||x.$desc:typeof x=="string"&&(y[v]=x)}return y}Z(a,"mergeDesc");function l(b){return b?.$value??b?.$inner}Z(l,"getInner");function c(b){return Bo(b??{},d=>!d.startsWith("$"))}Z(c,"extractKeys"),s.prototype.i18n=Z(function(d){const y=s(this),v=a(y.meta.description,d);return Object.keys(v).length&&(y.meta.description=v),y.dict&&(y.dict=$t(y.dict,(x,E)=>x.i18n($t(d,L=>l(L)?.[E]??L?.[E])))),y.list&&(y.list=y.list.map((x,E)=>x.i18n($t(d,(L={})=>Array.isArray(l(L))?l(L)[E]:Array.isArray(L)?L[E]:c(L))))),y.inner&&(y.inner=y.inner.i18n($t(d,x=>l(x)?l(x):c(x)))),y.sKey&&(y.sKey=y.sKey.i18n($t(d,x=>x?.$key))),y},"i18n"),s.prototype.extra=Z(function(d,y){const v=s(this);return v.meta={...v.meta,[d]:y},v},"extra");for(const b of["required","disabled","collapse","hidden","loose"])Object.assign(s.prototype,{[b](d=!0){const y=s(this);return y.meta={...y.meta,[b]:d},y}});s.prototype.deprecated=Z(function(){var y;const d=s(this);return(y=d.meta).badges||(y.badges=[]),d.meta.badges.push({text:"deprecated",type:"danger"}),d},"deprecated"),s.prototype.experimental=Z(function(){var y;const d=s(this);return(y=d.meta).badges||(y.badges=[]),d.meta.badges.push({text:"experimental",type:"warning"}),d},"experimental"),s.prototype.pattern=Z(function(d){const y=s(this),v=qo(d,["source","flags"]);return y.meta={...y.meta,pattern:v},y},"pattern"),s.prototype.simplify=Z(function(d){if(Qt(d,this.meta.default,this.type==="dict"))return null;if(ge(d))return d;if(this.type==="object"||this.type==="dict"){const y={};for(const v in d){const E=(this.type==="object"?this.dict[v]:this.inner)?.simplify(d[v]);(this.type==="dict"||!ge(E))&&(y[v]=E)}return Qt(y,this.meta.default,this.type==="dict")?null:y}else if(this.type==="array"||this.type==="tuple"){const y=[];return d.forEach((v,x)=>{const E=this.type==="array"?this.inner:this.list[x],L=E?E.simplify(v):v;y.push(L)}),y}else if(this.type==="intersect"){const y={};for(const v of this.list)Object.assign(y,v.simplify(d));return y}else if(this.type==="union")for(const y of this.list)try{return s.resolve(d,y,{}),y.simplify(d)}catch{}return d},"simplify"),s.prototype.toString=Z(function(d){return D[this.type]?.(this,d)??`Schema<${this.type}>`},"toString"),s.prototype.role=Z(function(b,d){const y=s(this);return y.meta={...y.meta,role:b,extra:d},y},"role");for(const b of["default","link","comment","description","max","min","step"])Object.assign(s.prototype,{[b](d){const y=s(this);return y.meta={...y.meta,[b]:d},y}});var u={};s.extend=Z(function(d,y){u[d]=y},"extend"),s.resolve=Z(function(d,y,v={},x=!1){if(!y)return[d];if(v.ignore?.(d,y))return[d];if(ge(d)&&y.type!=="lazy"){if(y.meta.required)throw new r("missing required value",v);let L=y,B=y.meta.default;for(;L?.type==="intersect"&&ge(B);)L=L.list[0],B=L?.meta.default;if(ge(B))return[d];d=En(B)}const E=u[y.type];if(!E)throw new r(`unsupported type "${y.type}"`,v);try{return E(d,y,v,x)}catch(L){if(!y.meta.loose)throw L;return[y.meta.default]}},"resolve"),s.from=Z(function(d){if(ge(d))return s.any();if(["string","number","boolean"].includes(typeof d))return s.const(d).required();if(d[i])return d;if(typeof d=="function")switch(d){case String:return s.string().required();case Number:return s.number().required();case Boolean:return s.boolean().required();case Function:return s.function().required();default:return s.is(d).required()}else throw new TypeError(`cannot infer schema from ${d}`)},"from"),s.lazy=Z(function(d){const y=Z(()=>(v.inner[i]||(v.inner=v.builder(),v.inner.meta={...v.meta,...v.inner.meta}),v.inner.toJSON()),"toJSON"),v=new s({type:"lazy",builder:d,inner:{toJSON:y}});return v},"lazy"),s.natural=Z(function(){return s.number().step(1).min(0)},"natural"),s.percent=Z(function(){return s.number().step(.01).min(0).max(1).role("slider")},"percent"),s.date=Z(function(){return s.union([s.is(Date),s.transform(s.string().role("datetime"),(d,y)=>{const v=new Date(d);if(isNaN(+v))throw new r(`invalid date "${d}"`,y);return v},!0)])},"date"),s.regExp=Z(function(d=""){return s.union([s.is(RegExp),s.transform(s.string().role("regexp",{flag:d}),(y,v)=>{try{return new RegExp(y,d)}catch(x){throw new r(x.message,v)}},!0)])},"regExp"),s.arrayBuffer=Z(function(d){return s.union([s.is(ArrayBuffer),s.is(SharedArrayBuffer),s.transform(s.any(),(y,v)=>{if(ct.isSource(y))return ct.fromSource(y);throw new r(`expected ArrayBufferSource but got ${y}`,v)},!0),...d?[s.transform(s.string(),(y,v)=>{try{return d==="base64"?ct.fromBase64(y):ct.fromHex(y)}catch(x){throw new r(x.message,v)}},!0)]:[]])},"arrayBuffer"),s.extend("lazy",(b,d,y,v)=>(d.inner[i]||(d.inner=d.builder(),d.inner.meta={...d.meta,...d.inner.meta}),s.resolve(b,d.inner,y,v))),s.extend("any",b=>[b]),s.extend("never",(b,d,y)=>{throw new r(`expected nullable but got ${b}`,y)}),s.extend("const",(b,{value:d},y)=>{if(Qt(b,d))return[d];throw new r(`expected ${d} but got ${b}`,y)});function f(b,d,y,v,x=!1){const{max:E=1/0,min:L=-1/0}=d;if(b>E)throw new r(`expected ${y} <= ${E} but got ${b}`,v);if(b<L&&!x)throw new r(`expected ${y} >= ${L} but got ${b}`,v)}Z(f,"checkWithinRange"),s.extend("string",(b,{meta:d},y)=>{if(typeof b!="string")throw new r(`expected string but got ${b}`,y);if(d.pattern){const v=new RegExp(d.pattern.source,d.pattern.flags);if(!v.test(b))throw new r(`expect string to match regexp ${v}`,y)}return f(b.length,d,"string length",y),[b]});function p(b,d){const y=b.toString();if(y.includes("e"))return b*Math.pow(10,d);const v=y.indexOf(".");if(v===-1)return b*Math.pow(10,d);const x=y.slice(v+1),E=y.slice(0,v);return x.length<=d?+(E+x.padEnd(d,"0")):+(E+x.slice(0,d)+"."+x.slice(d))}Z(p,"decimalShift");function g(b,d,y){if(y=Math.abs(y),!/^\d+\.\d+$/.test(y.toString()))return(b-d)%y===0;const v=y.toString().indexOf("."),x=y.toString().slice(v+1).length;return Math.abs(p(b,x)-p(d,x))%p(y,x)===0}Z(g,"isMultipleOf"),s.extend("number",(b,{meta:d},y)=>{if(typeof b!="number")throw new r(`expected number but got ${b}`,y);f(b,d,"number",y);const{step:v}=d;if(v&&!g(b,d.min??0,v))throw new r(`expected number multiple of ${v} but got ${b}`,y);return[b]}),s.extend("boolean",(b,d,y)=>{if(typeof b=="boolean")return[b];throw new r(`expected boolean but got ${b}`,y)}),s.extend("bitset",(b,{bits:d,meta:y},v)=>{let x=0,E=[];if(typeof b=="number"){x=b;for(const L in d)b&d[L]&&E.push(L)}else if(Array.isArray(b)){E=b;for(const L of E){if(typeof L!="string")throw new r(`expected string but got ${L}`,v);L in d&&(x|=d[L])}}else throw new r(`expected number or array but got ${b}`,v);return x===y.default?[x]:[x,E]}),s.extend("function",(b,d,y)=>{if(typeof b=="function")return[b];throw new r(`expected function but got ${b}`,y)}),s.extend("is",(b,{constructor:d},y)=>{if(typeof d=="function"){if(b instanceof d)return[b];throw new r(`expected ${d.name} but got ${b}`,y)}else{if(ge(b))throw new r(`expected ${d} but got ${b}`,y);let v=Object.getPrototypeOf(b);for(;v;){if(v.constructor?.name===d)return[b];v=Object.getPrototypeOf(v)}throw new r(`expected ${d} but got ${b}`,y)}});function m(b,d,y,v){try{const[x,E]=s.resolve(b[d],y,{...v,path:[...v.path||[],d]});return E!==void 0&&(b[d]=E),x}catch(x){if(!v?.autofix)throw x;return delete b[d],y.meta.default}}Z(m,"property"),s.extend("array",(b,{inner:d,meta:y},v)=>{if(!Array.isArray(b))throw new r(`expected array but got ${b}`,v);return f(b.length,y,"array length",v,!ge(d.meta.default)),[b.map((x,E)=>m(b,E,d,v))]}),s.extend("dict",(b,{inner:d,sKey:y},v,x)=>{if(!kn(b))throw new r(`expected object but got ${b}`,v);const E={};for(const L in b){let B;try{B=s.resolve(L,y,v)[0]}catch(Ce){if(x)continue;throw Ce}E[B]=m(b,L,d,v),b[B]=b[L],L!==B&&delete b[L]}return[E]}),s.extend("tuple",(b,{list:d},y,v)=>{if(!Array.isArray(b))throw new r(`expected array but got ${b}`,y);const x=d.map((E,L)=>m(b,L,E,y));return v?[x]:(x.push(...b.slice(d.length)),[x])});function k(b,d){for(const y in d)y in b||(b[y]=d[y])}Z(k,"merge"),s.extend("object",(b,{dict:d},y,v)=>{if(!kn(b))throw new r(`expected object but got ${b}`,y);const x={};for(const E in d){const L=m(b,E,d[E],y);(!ge(L)||E in b)&&(x[E]=L)}return v||k(x,b),[x]}),s.extend("union",(b,{list:d,toString:y},v,x)=>{for(const E of d)try{return s.resolve(b,E,v,x)}catch{}throw new r(`expected ${y()} but got ${JSON.stringify(b)}`,v)}),s.extend("intersect",(b,{list:d,toString:y},v,x)=>{if(!d.length)return[b];let E;for(const L of d){const B=s.resolve(b,L,v,!0)[0];if(!ge(B))if(ge(E))E=B;else{if(typeof E!=typeof B)throw new r(`expected ${y()} but got ${JSON.stringify(b)}`,v);if(typeof B=="object")k(E??(E={}),B);else if(E!==B)throw new r(`expected ${y()} but got ${JSON.stringify(b)}`,v)}}return!x&&kn(b)&&k(E,b),[E]}),s.extend("transform",(b,{inner:d,callback:y,preserve:v},x)=>{const[E,L=b]=s.resolve(b,d,x,!0);return v?[y(E)]:[y(E),y(L)]});var D={};function T(b,d,y){D[b]=y,Object.assign(s,{[b](...v){const x=new s({type:b});return d.forEach((E,L)=>{switch(E){case"sKey":x.sKey=v[L]??s.string();break;case"inner":x.inner=s.from(v[L]);break;case"list":x.list=v[L].map(s.from);break;case"dict":x.dict=$t(v[L],s.from);break;case"bits":{x.bits={};for(const B in v[L])typeof v[L][B]=="number"&&(x.bits[B]=v[L][B]);break}case"callback":{const B=x.callback=v[L];B.toJSON||(B.toJSON=()=>B.toString());break}case"constructor":{const B=x.constructor=v[L];typeof B=="function"&&(B.toJSON||(B.toJSON=()=>B.name));break}default:x[E]=v[L]}}),b==="object"||b==="dict"?x.meta.default={}:b==="array"||b==="tuple"?x.meta.default=[]:b==="bitset"&&(x.meta.default=0),x}})}Z(T,"defineMethod"),T("is",["constructor"],({constructor:b})=>typeof b=="function"?b.name:b),T("any",[],()=>"any"),T("never",[],()=>"never"),T("const",["value"],({value:b})=>typeof b=="string"?JSON.stringify(b):b),T("string",[],()=>"string"),T("number",[],()=>"number"),T("boolean",[],()=>"boolean"),T("bitset",["bits"],()=>"bitset"),T("function",[],()=>"function"),T("array",["inner"],({inner:b})=>`${b.toString(!0)}[]`),T("dict",["inner","sKey"],({inner:b,sKey:d})=>`{ [key: ${d.toString()}]: ${b.toString()} }`),T("tuple",["list"],({list:b})=>`[${b.map(d=>d.toString()).join(", ")}]`),T("object",["dict"],({dict:b})=>Object.keys(b).length===0?"{}":`{ ${Object.entries(b).map(([d,y])=>`${d}${y.meta.required?"":"?"}: ${y.toString()}`).join(", ")} }`),T("union",["list"],({list:b},d)=>{const y=b.map(({toString:v})=>v()).join(" | ");return d?`(${y})`:y}),T("intersect",["list"],({list:b})=>`${b.map(d=>d.toString(!0)).join(" & ")}`),T("transform",["inner","callback","preserve"],({inner:b},d)=>b.toString(d)),e.exports=s}});const Y=Df();/**
|
|
4
4
|
* @inpageedit/logger
|
|
5
5
|
*
|
|
6
6
|
* Flexible, Extensible Console Logger with Colored Labels and Hierarchical Loggers
|
|
7
7
|
*
|
|
8
8
|
* @author dragon-fish <dragon-fish@qq.com>
|
|
9
9
|
* @license MIT
|
|
10
|
-
*/var
|
|
10
|
+
*/var Wr=(t=>(t[t.debug=-1]="debug",t[t.log=0]="log",t[t.info=1]="info",t[t.warn=2]="warn",t[t.error=3]="error",t[t.silent=4]="silent",t))(Wr||{});const Kr=globalThis||window,Vr=Symbol.for("__IPE_LOGGER_COLOR_MAP__");Kr[Vr]||(Kr[Vr]=new Map);const Qr=Kr[Vr];function Cn(t){let e=2166136261;for(let i=0;i<t.length;i++)e^=t.charCodeAt(i),e=(e>>>0)*16777619;return e>>>0}const Jo=[[350,360],[0,15],[15,30],[200,230],[230,250],[250,280],[280,310],[310,330],[140,160],[160,180]];function jf(t,e){const i=Jo.length,n=Cn(t)%i,[r,s]=Jo[n],o=s-r,a=Cn(t+":"+e),l=r+a%(o||1),c=Cn(t+":s"),u=Cn(t+":l");let f,p;if(e==="name")f=62+c%18,p=30+u%12;else{const g=l>=0&&l<50||l>330&&l<360,m=l>=200&&l<=300;f=55+c%20,m?p=55+u%8:g?p=48+u%6:p=50+u%8,f<60&&(f+=5)}return`hsl(${l}, ${f}%, ${p}%)`}function On(t,e){if(e)return Qr.set(t,e),e;const i=Qr.get(t);if(i)return i;const n=t.startsWith("name:")?"name":"group",r=jf(t,n);return Qr.set(t,r),r}/**
|
|
11
11
|
* @inpageedit/logger
|
|
12
12
|
* Flexible, Extensible Console Logger with Colored Labels and Hierarchical Loggers
|
|
13
13
|
*
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
* logger.defineLevel('success', { level: LoggerLevel.info, label: '✅', method: 'info' })
|
|
27
27
|
* logger.success('User created successfully')
|
|
28
28
|
* ```
|
|
29
|
-
*/let Wo=class Uu{constructor(e={}){this._custom=i=>{if(!this._enabled(i.level))return Ko;const[r,n]=this._prefix(i.label);return this._consoleMethod(i.method).bind(console,r,...n)},this._name=e.name,this._nameColor=e.color,this._groupPath=e._groupPath?[...e._groupPath]:[],this._dynamicLevels={...e._dynamicLevels},this._levelRef=e._levelRef??{value:e.level??1},this._name&&Sr(`name:${this._name}`,this._nameColor),this._installBuiltinLevels();for(const i of Object.keys(this._dynamicLevels))this._installLevelGetter(i,this._dynamicLevels[i]);return Cf(this)}get level(){return this._levelRef.value}set level(e){this._levelRef.value=e}group(e,i){return e&&Sr(`group:${e}`,i?.color),new Uu({name:this._name,color:this._nameColor,_groupPath:[...this._groupPath,e],_dynamicLevels:this._dynamicLevels,_levelRef:this._levelRef})}defineLevel(e,i){this._dynamicLevels[e]={...i},this._installLevelGetter(e,i)}get debug(){return this._method("debug")}get log(){return this._method("log")}get info(){return this._method("info")}get warn(){return this._method("warn")}get error(){return this._method("error")}_installBuiltinLevels(){}_installLevelGetter(e,i){Object.defineProperty(this,e,{configurable:!0,enumerable:!1,get:()=>this._custom(i)})}_method(e){const i=Pf[e];if(!this._enabled(i.level))return Ko;const[r,n]=this._prefix(i.label);return this._consoleMethod(e).bind(console,r,...n)}_consoleMethod(e){return(console[e]||console.log).bind(console)}_enabled(e){return e>=this._levelRef.value&&this._levelRef.value!==4}_prefix(e){const i=[];let r="";if(this._name){const n=Sr(`name:${this._name}`,this._nameColor);r+=`%c${this._name}%c`,i.push(`background:${n}; color:#fff; padding:1px 4px; border-radius:2px; font-weight:700;`,Vo)}if(e&&(r+=` ${e}`),this._groupPath.length){const n=this._groupPath.join("/"),s=Sr(`group:${n}`);r+=` %c${n}%c`,i.push(`color:${s}; text-decoration: underline;`,Vo)}return[r,i]}};const Ko=()=>{},Vo="color:inherit; background:transparent; text-decoration:none;",Pf={debug:{level:-1,label:"",method:"debug"},log:{level:0,label:"",method:"log"},info:{level:1,label:"[I]",method:"info"},warn:{level:2,label:"[W]",method:"warn"},error:{level:3,label:"[E]",method:"error"}};function Cf(t){const e=function(i,r){return t.group(i,r)};return new Proxy(e,{get(i,r,n){return t[r]},set(i,r,n){return t[r]=n,!0},apply(i,r,n){return t.group(n[0],n[1])},has(i,r){return r in t}})}function Go(t){return new Wo(t)}var We=(t=>(t.BODY_USED="BODY_USED",t.NO_BODY_READER="NO_BODY_READER",t.TIMEOUT="TIMEOUT",t.NETWORK_ERROR="NETWORK_ERROR",t.BODY_NOT_ALLOWED="BODY_NOT_ALLOWED",t.HOOK_CONTEXT_CHANGED="HOOK_CONTEXT_CHANGED",t.ABORTED_BY_HOOK="ABORTED_BY_HOOK",t.INVALID_HOOK_CALLBACK="INVALID_HOOK_CALLBACK",t.UNEXPECTED_HOOK_RETURN="UNEXPECTED_HOOK_RETURN",t))(We||{});let Me=class Fu extends Error{constructor(i,r,n,s){super(r,s);M(this,"name","FexiosError");this.code=i,this.context=n}static is(i){return i?.constructor===Fu}},Of=class Bu extends Me{constructor(i,r,n){super(r.statusText,i,void 0,n);M(this,"name","FexiosResponseError");this.response=r}static is(i){return i?.constructor===Bu}};function Tf(t,e=2048){if(!(t instanceof Uint8Array))throw new TypeError("Input must be a Uint8Array");if(t.length===0)return!0;const i=Math.min(Math.max(t.length,256),e),r=t.slice(0,i);if(If(r))return!1;const n=Af(r);if(n.nullByteRatio>.05||n.highByteRatio>.95)return!1;const s=["utf-8","utf-16le","utf-16be","iso-8859-1"];let o=-1,a=!1;for(const l of s)try{const c=new TextDecoder(l,{fatal:!0}).decode(r),u=Rf(c);u>o&&(o=u,a=u>.7)}catch{continue}return a}function If(t){if(t.length<4)return!1;const e=[[137,80,78,71],[255,216,255],[71,73,70],[37,80,68,70],[80,75,3,4],[80,75,5,6],[80,75,7,8],[127,69,76,70],[77,90],[202,254,186,190],[0,0,1,0],[82,73,70,70]];for(const i of e)if(t.length>=i.length){let r=!0;for(let n=0;n<i.length;n++)if(t[n]!==i[n]){r=!1;break}if(r)return!0}return!1}function Af(t){let e=0,i=0,r=0;for(const n of t)n===0&&e++,n>127&&i++,(n<32&&n!==9&&n!==10&&n!==13||n===127)&&r++;return{nullByteRatio:e/t.length,highByteRatio:i/t.length,controlCharRatio:r/t.length}}function Rf(t){if(t.length===0)return 1;let e=1,i=0;for(let n=0;n<t.length;n++){const s=t[n].charCodeAt(0);s>=32&&s<=126||s===9||s===10||s===13||s===32?i++:s>127&&s<65534?!Lf(s)&&!Nf(s)&&i++:e-=.1}const r=i/t.length;return e*=r,Mf(t)&&(e*=1.1),Math.max(0,Math.min(1,e))}function Lf(t){return t>=0&&t<=31||t>=127&&t<=159}function Nf(t){return t>=57344&&t<=63743||t>=983040&&t<=1048573||t>=1048576&&t<=1114109}function Mf(t){return[/\b\w+\b/,/[.!?]+\s/,/\s+/,/[a-zA-Z]{3,}/,/[\u4e00-\u9fa5]+/,/\d+/].some(e=>e.test(t))}function rt(t){if(typeof t!="object"||t===null||Object.prototype.toString.call(t)!=="[object Object]")return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||e===null}const Ni=(t,...e)=>{const i=n=>{if(Array.isArray(n))return n.slice();if(rt(n)){const s={};for(const o of Reflect.ownKeys(n))s[o]=i(n[o]);return s}return n},r=i(t);for(const n of e)if(n!=null)for(const s of Reflect.ownKeys(n)){const o=n[s];if(typeof o>"u")continue;const a=r[s];rt(a)&&rt(o)?r[s]=Ni(a,o):r[s]=i(o)}return r};let Mi=class{constructor(e,i,r){M(this,"ok");M(this,"status");M(this,"statusText");M(this,"headers");this.rawResponse=e,this.data=i,this.ok=e.ok,this.status=e.status,this.statusText=e.statusText,this.headers=e.headers,Object.entries(r||{}).forEach(([n,s])=>{this[n]=s})}};async function Qo(t,e,i){if(t.bodyUsed)throw new Me(We.BODY_USED,"Response body has already been used or locked");const r=t.headers.get("content-type")||"",n=Number(t.headers.get("content-length"))||0,s=(a,l)=>l==="json"||a.startsWith("application/json"),o=(a,l,c)=>c==="blob"||a.startsWith("image/")&&!a.startsWith("image/svg")||a.startsWith("video/")||a.startsWith("audio/")||!Tf(l);if((t.status===101||t.status===426||t.headers.get("upgrade"))&&typeof globalThis.WebSocket<"u"){const a=new WebSocket(t.url);return await new Promise((l,c)=>{a.onopen=l,a.onerror=c}),new Mi(t,a,{ok:!0,status:101,statusText:"Switching Protocols"})}else if(r.startsWith("text/event-stream")&&!["text","json"].includes(e||"")&&typeof globalThis.EventSource<"u"){const a=new EventSource(t.url);return await new Promise((l,c)=>{a.onopen=l,a.onerror=c}),new Mi(t,a)}else{if(e==="stream")return new Mi(t,t.body);{const a=t.clone().body?.getReader();if(!a)throw new Me(We.NO_BODY_READER,"Failed to get ReadableStream from response body");let l=new Uint8Array;for(;;){const{done:u,value:f}=await a.read();if(u)break;if(f&&(l=new Uint8Array([...l,...f]),i&&n>0)){const d=Math.min(l.length/n,1);i(d,l)}}const c=new Mi(t,void 0);if(e==="arrayBuffer")return c.data=l.buffer,c;if(s(r,e))try{const u=new TextDecoder().decode(l);c.data=JSON.parse(u)}catch{}if(typeof c.data!="string"&&o(r,l,e)?c.data=new Blob([l],{type:t.headers.get("content-type")||void 0}):c.data=new TextDecoder().decode(l),typeof c.data=="string"&&e!=="text"){const u=c.data.trim(),f=u[0],d=u[u.length-1];if(f==="{"&&d==="}"||f==="["&&d==="]")try{c.data=JSON.parse(c.data)}catch{}}if(typeof c.data>"u"&&(c.data=l.length>0?l:void 0),c.ok)return c;throw new Of(`Request failed with status code ${t.status}`,c)}}}var kr;(t=>{t.makeSearchParams=n=>{if(!n)return new URLSearchParams;if(n instanceof URLSearchParams)return n;if(typeof n!="object"||n?.constructor!==Object)throw new TypeError("only plain object is supported");const s=new URLSearchParams,o=(c,u)=>{u!=null&&s.append(c,u)},a=(c,u)=>{u!=null&&s.set(c,u)},l=(c,u)=>{if(u!=null){if(Array.isArray(u)){for(const f of u)o(c,f?.toString());return}if(typeof u=="object"&&u.constructor===Object){for(const[f,d]of Object.entries(u)){if(d==null)continue;const y=f.endsWith("[]"),m=y?f.slice(0,-2):f,E=`${c}[${m}]`;if(y){const j=`${E}[]`;if(Array.isArray(d))for(const k of d)o(j,k?.toString());else typeof d=="object"&&d!==null&&d.constructor===Object?l(`${E}[]`,d):o(j,d?.toString())}else if(Array.isArray(d))for(const j of d)o(E,j?.toString());else typeof d=="object"&&d!==null&&d.constructor===Object?l(E,d):a(E,d?.toString())}return}a(c,u?.toString())}};for(const[c,u]of Object.entries(n))l(c,u);return s},t.makeQueryString=n=>(0,t.makeSearchParams)(n).toString(),t.makeURL=(n,s,o,a)=>{const l=typeof window<"u"&&window.location?.origin||"http://localhost",c=typeof n=="string"?new URL(n,a??l):new URL(n),u=(0,t.toQueryRecord)(c.searchParams),f=(0,t.mergeQueries)(u,s||{}),d=(0,t.makeSearchParams)(f);return c.search=d.toString(),c.hash=o||"",c},t.toQueryRecord=n=>{typeof n=="string"&&(n=(0,t.fromString)(n));const s={},o=l=>{if(!l.includes("["))return{path:[l],forceArray:!1};const c=[l.slice(0,l.indexOf("["))],u=/\[([^\]]*)\]/g;let f,d=!1,y=!1;for(;f=u.exec(l);)f[1]===""?(d=!0,y=!0):(c.push(f[1]),y=!1);return d&&y&&(c[c.length-1]=c[c.length-1]+"[]"),{path:c,forceArray:d}},a=(l,c,u,f)=>{let d=l;for(let y=0;y<c.length;y++){const m=c[y];y===c.length-1?f?d[m]===void 0?d[m]=[u]:Array.isArray(d[m])?d[m].push(u):d[m]=[d[m],u]:d[m]===void 0?d[m]=u:Array.isArray(d[m])?d[m].push(u):d[m]=[d[m],u]:((d[m]===void 0||typeof d[m]!="object"||Array.isArray(d[m]))&&(d[m]={}),d=d[m])}};for(const[l,c]of n.entries()){const{path:u,forceArray:f}=o(String(l));a(s,u,c?.toString(),f)}return s},t.fromString=n=>{const s=n.trim();if(!s)return new URLSearchParams;if(s.startsWith("?"))return new URLSearchParams(s.slice(1));const o=s.indexOf("?");if(o>=0){const a=s.indexOf("#",o+1),l=s.slice(o+1,a>=0?a:void 0);return new URLSearchParams(l)}return new URLSearchParams(s)},t.mergeQueries=(n,...s)=>{const o=e(i(n));for(const a of s)a!=null&&r(o,i(a));return o};function e(n){if(Array.isArray(n))return n.map(e);if(rt(n)){const s={};for(const[o,a]of Object.entries(n))s[o]=e(a);return s}if(n instanceof Map){const s={};for(const[o,a]of n.entries())s[o]=e(a);return s}return n}function i(n){if(!n)return{};if(n instanceof URLSearchParams||n instanceof FormData||n instanceof Map)return(0,t.toQueryRecord)(n);if(typeof n=="string")return(0,t.toQueryRecord)((0,t.fromString)(n));if(rt(n))return n;throw new TypeError(`unsupported type transformation, got: ${Object.prototype.toString.call(n)}`)}function r(n,s){for(const[o,a]of Object.entries(s)){if(a===void 0)continue;if(a===null){delete n[o];continue}const l=n[o];rt(l)&&rt(a)?r(l,a):n[o]=e(a)}}})(kr||(kr={}));const Yo=function(t){const e=this.constructor.prototype,i=Reflect.get(e,t,e);function r(...n){return Reflect.apply(i,r,n)}Reflect.setPrototypeOf(r,e);for(const n of Reflect.ownKeys(i)){const s=Reflect.getOwnPropertyDescriptor(i,n);s&&Reflect.defineProperty(r,n,s)}return r};Yo.prototype=Object.create(Function.prototype);var Di;(t=>{t.makeHeaders=e=>{if(!e)return new Headers;if(e instanceof Headers)return new Headers(e);const i=new Headers;if(e instanceof Map){for(const[r,n]of e.entries())if(n!=null)if(Array.isArray(n))for(const s of n)s!=null&&i.append(r,String(s));else i.append(r,String(n));return i}if(rt(e)){for(const[r,n]of Object.entries(e))if(n!=null)if(Array.isArray(n))for(const s of n)s!=null&&i.append(r,String(s));else i.append(r,String(n));return i}throw new TypeError("only plain object, Map/ReadonlyMap, or Headers is supported")},t.toHeaderRecord=e=>{if(e instanceof Headers){const i={};return e.forEach((r,n)=>{i[n]=i[n]?[...i[n],r]:[r]}),i}if(e instanceof Map){const i={};for(const[r,n]of e.entries())if(n!=null)if(Array.isArray(n)){const s=n.filter(o=>o!=null).map(o=>String(o));s.length&&(i[r]=(i[r]??[]).concat(s))}else{const s=String(n);i[r]=i[r]?[...i[r],s]:[s]}return i}throw new TypeError(`unsupported type transformation, got: ${Object.prototype.toString.call(e)}`)},t.mergeHeaders=(e,...i)=>{const r=e instanceof Headers?new Headers(e):(0,t.makeHeaders)(e),n=s=>{for(const[o,a]of Object.entries(s))if(a!==void 0){if(a===null){r.delete(o);continue}if(Array.isArray(a)){r.delete(o);for(const l of a)l!=null&&r.append(o,String(l))}else r.set(o,String(a))}};for(const s of i){if(s==null)continue;if(s instanceof Headers){s.forEach((a,l)=>{r.set(l,a)});continue}if(rt(s)){n(s);continue}const o=(0,t.toHeaderRecord)(s);for(const[a,l]of Object.entries(o)){r.delete(a);for(const c of l)r.append(a,c)}}return r}})(Di||(Di={}));let Wn=(ce=class extends Yo{constructor(i={}){super("request");M(this,"baseConfigs");M(this,"hooks",[]);M(this,"mergeQueries",kr.mergeQueries);M(this,"mergeHeaders",Di.mergeHeaders);M(this,"interceptors",{request:this.createInterceptor("beforeRequest"),response:this.createInterceptor("afterResponse")});M(this,"create",ce.create);M(this,"_plugins",new Map);M(this,"checkIsPlainObject",rt);M(this,"mergeQuery",this.mergeQueries);this.baseConfigs=Ni(ce.DEFAULT_CONFIGS,i),ce.ALL_METHODS.forEach(r=>this.createMethodShortcut(r.toLowerCase()))}async request(i,r){let n=r=r||{};if(typeof i=="string"||i instanceof URL?n.url=i.toString():typeof i=="object"&&(n=Ni(i,n)),n=await this.emit("beforeInit",n,{shouldAdjustRequestParams:!0,shouldHandleShortCircuitResponse:!0}),n[ce.FINAL_SYMBOL])return n;if(ce.METHODS_WITHOUT_BODY.includes(n.method?.toLocaleLowerCase())&&n.body)throw new Me(We.BODY_NOT_ALLOWED,`Request method "${n.method}" does not allow body`);if(n=await this.emit("beforeRequest",n,{shouldAdjustRequestParams:!0,shouldHandleShortCircuitResponse:!0,preAdjust:!0,requestOptionsOverridesURLSearchParams:!0,preRequestOptionsOverridesURLSearchParams:!0,postRequestOptionsOverridesURLSearchParams:!0}),n[ce.FINAL_SYMBOL])return n;let s;const o={};if(typeof n.body<"u"&&n.body!==null&&(n.body instanceof Blob||n.body instanceof FormData||n.body instanceof URLSearchParams?s=n.body:typeof n.body=="object"&&n.body!==null?(s=JSON.stringify(n.body),n.headers=this.mergeHeaders(n.headers,{"Content-Type":"application/json"})):s=n.body),!Di.makeHeaders(r.headers||{}).get("content-type")&&s&&(s instanceof FormData||s instanceof URLSearchParams?o["content-type"]=null:typeof s=="string"&&typeof n.body=="object"?o["content-type"]="application/json":s instanceof Blob&&(o["content-type"]=s.type||"application/octet-stream")),n.body=s,n=await this.emit("afterBodyTransformed",n,{shouldAdjustRequestParams:!0,shouldHandleShortCircuitResponse:!0,preAdjust:!0,postRequestOptionsOverridesURLSearchParams:!0}),n[ce.FINAL_SYMBOL])return n;const a=n.abortController||globalThis.AbortController?new AbortController:void 0,l=n.baseURL||this.baseConfigs.baseURL||globalThis.location?.href||"http://localhost",c=new URL(n.url.toString(),l),u=kr.makeURL(c,n.query,c.hash).toString(),f=new Request(u,{method:n.method||"GET",credentials:n.credentials,cache:n.cache,mode:n.mode,headers:Di.mergeHeaders(this.baseConfigs.headers,n.headers||{},o),body:n.body,signal:a?.signal});if(n.rawRequest=f,n=await this.emit("beforeActualFetch",n,{shouldHandleShortCircuitResponse:!0}),n[ce.FINAL_SYMBOL])return n;const d=n.timeout||this.baseConfigs.timeout||60*1e3;if(n.url.startsWith("ws"))try{const m=new WebSocket(n.url);return await new Promise((E,j)=>{const k=setTimeout(()=>{j(new Me(We.TIMEOUT,`WebSocket connection timed out after ${d}ms`,n))},d);m.onopen=()=>{clearTimeout(k),E()},m.onerror=F=>{clearTimeout(k),j(new Me(We.NETWORK_ERROR,"WebSocket connection failed",n))},m.onclose=F=>{F.code!==1e3&&(clearTimeout(k),j(new Me(We.NETWORK_ERROR,`WebSocket closed with code ${F.code}`,n)))}}),n.rawResponse=new Response,n.response=new Mi(n.rawResponse,m,{ok:!0,status:101,statusText:"Switching Protocols"}),n.data=m,n.headers=new Headers,this.emit("afterResponse",n)}catch(m){throw m instanceof Me?m:new Me(We.NETWORK_ERROR,`WebSocket creation failed: ${m}`,n)}let y;try{a&&(y=setTimeout(()=>{a.abort()},d));const m=await(r.fetch||this.baseConfigs.fetch||globalThis.fetch)(n.rawRequest).catch(E=>{throw y&&clearTimeout(y),a?.signal.aborted?new Me(We.TIMEOUT,`Request timed out after ${d}ms`,n):new Me(We.NETWORK_ERROR,E.message,n)});return y&&clearTimeout(y),n.rawResponse=m,n.response=await Qo(m,n.responseType,(E,j)=>{r?.onProgress?.(E,j)}),n.data=n.response.data,n.headers=n.response.headers,this.emit("afterResponse",n)}catch(m){throw y&&clearTimeout(y),m}}normalizeContext(i,r={}){const n=i,s=n.baseURL||this.baseConfigs.baseURL||globalThis.location?.href||"http://localhost",o=new URL(s,globalThis.location?.href||"http://localhost"),a=new URL(n.url.toString(),o),l=!!n[ce.NORMALIZED_SYMBOL];n.baseURL=o?o.origin:a.origin;let c;l?c=r.requestOptionsOverridesURLSearchParams?this.mergeQueries({},a.search,n.query):this.mergeQueries({},n.query,a.search):(c=r.requestOptionsOverridesURLSearchParams?this.mergeQueries(o?.search||"",this.baseConfigs.query,a.search,n.query):this.mergeQueries(o?.search||"",this.baseConfigs.query,n.query,a.search),n[ce.NORMALIZED_SYMBOL]=!0),n.query=c;const u=new URL(a);return u.search="",n.url=u.toString(),n}async emit(i,r,n={}){const s=this.hooks.filter(o=>o.event===i);if(n?.shouldAdjustRequestParams&&n?.preAdjust)try{r=this.normalizeContext(r,{requestOptionsOverridesURLSearchParams:n.preRequestOptionsOverridesURLSearchParams})}catch{}try{let o=0;for(const a of s){const l=`${i}#${a.action.name||`anonymous#${o}`}`,c=Symbol("FEXIOS_HOOK_CONTEXT");r[c]=c;const u=r.url;let f="";try{const y=this.mergeQueries({},r.query||{});f=JSON.stringify(y)}catch{}let d=await a.action.call(this,r);if(d===void 0&&(d=r),d===!1)throw new Me(We.ABORTED_BY_HOOK,`Request aborted by hook "${l}"`,r);if(d instanceof Response){const y=d,m={...r,rawResponse:y},E=await Qo(y,r.responseType,(j,k)=>{r.onProgress?.(j,k)});if(m.response=E,m.data=E.data,m.headers=E.headers,i!=="afterResponse"){const j=await this.emit("afterResponse",m);return j[ce.FINAL_SYMBOL]=!0,j}else return m[ce.FINAL_SYMBOL]=!0,m}else if(typeof d=="object"&&d[c]===c)r=d;else{const y=globalThis["".concat("console")];try{throw new Me(We.HOOK_CONTEXT_CHANGED,`Hook "${l}" should return the original FexiosContext or return false to abort the request, but got "${d}".`)}catch(m){y.warn(m.stack||m)}}if(n?.shouldAdjustRequestParams)try{const y=r.baseURL||this.baseConfigs.baseURL||globalThis.location?.href||"http://localhost",m=new URL(r.url.toString(),y);let E={};if(f)try{E=JSON.parse(f)}catch{}const j=r.query||{},k=this.mergeQueries(E,m.search,j);r.query=k;const F=new URL(m);F.search="",r.url=F.toString()}catch{}delete r[c],o++}}catch(o){return Promise.reject(o)}return r}on(i,r,n=!1){if(typeof r!="function")throw new Me(We.INVALID_HOOK_CALLBACK,`Hook should be a function, but got "${typeof r}"`);return this.hooks[n?"unshift":"push"]({event:i,action:r}),this}off(i,r){return i==="*"||!i?this.hooks=this.hooks.filter(n=>n.action!==r):this.hooks=this.hooks.filter(n=>n.event!==i||n.action!==r),this}createInterceptor(i){return{handlers:()=>this.hooks.filter(r=>r.event===i).map(r=>r.action),use:(r,n=!1)=>this.on(i,r,n),clear:()=>{this.hooks=this.hooks.filter(r=>r.event!==i)}}}createMethodShortcut(i){return Reflect.defineProperty(this,i,{get:()=>(r,n,s)=>(ce.METHODS_WITHOUT_BODY.includes(i.toLocaleLowerCase())?s=n:(s=s||{},s.body=n),this.request(r,{...s,method:i}))}),this}extends(i){const r=new ce(Ni(this.baseConfigs,i));return r.hooks=[...this.hooks],r._plugins=new Map(this._plugins),r._plugins.forEach(async n=>{await r.plugin(n)}),r}static create(i){return new ce(i)}async plugin(i){if(typeof i?.name=="string"&&typeof i?.install=="function"){if(this._plugins.has(i.name))return this;const r=await i.install(this);if(this._plugins.set(i.name,i),r instanceof ce)return r}return this}},M(ce,"FINAL_SYMBOL",Symbol("FEXIOS_FINAL_CONTEXT")),M(ce,"NORMALIZED_SYMBOL",Symbol("FEXIOS_NORMALIZED_QUERY")),M(ce,"DEFAULT_CONFIGS",{baseURL:"",timeout:60*1e3,credentials:"same-origin",headers:{},query:{},responseType:void 0,fetch:globalThis.fetch}),M(ce,"ALL_METHODS",["get","post","put","patch","delete","head","options","trace"]),M(ce,"METHODS_WITHOUT_BODY",["get","head","options","trace"]),ce);/**
|
|
29
|
+
*/let Zo=class Ju{constructor(e={}){this._custom=i=>{if(!this._enabled(i.level))return ea;const[n,r]=this._prefix(i.label);return this._consoleMethod(i.method).bind(console,n,...r)},this._name=e.name,this._nameColor=e.color,this._groupPath=e._groupPath?[...e._groupPath]:[],this._dynamicLevels={...e._dynamicLevels},this._levelRef=e._levelRef??{value:e.level??1},this._name&&On(`name:${this._name}`,this._nameColor),this._installBuiltinLevels();for(const i of Object.keys(this._dynamicLevels))this._installLevelGetter(i,this._dynamicLevels[i]);return Ff(this)}get level(){return this._levelRef.value}set level(e){this._levelRef.value=e}group(e,i){return e&&On(`group:${e}`,i?.color),new Ju({name:this._name,color:this._nameColor,_groupPath:[...this._groupPath,e],_dynamicLevels:this._dynamicLevels,_levelRef:this._levelRef})}defineLevel(e,i){this._dynamicLevels[e]={...i},this._installLevelGetter(e,i)}get debug(){return this._method("debug")}get log(){return this._method("log")}get info(){return this._method("info")}get warn(){return this._method("warn")}get error(){return this._method("error")}_installBuiltinLevels(){}_installLevelGetter(e,i){Object.defineProperty(this,e,{configurable:!0,enumerable:!1,get:()=>this._custom(i)})}_method(e){const i=Uf[e];if(!this._enabled(i.level))return ea;const[n,r]=this._prefix(i.label);return this._consoleMethod(e).bind(console,n,...r)}_consoleMethod(e){return(console[e]||console.log).bind(console)}_enabled(e){return e>=this._levelRef.value&&this._levelRef.value!==4}_prefix(e){const i=[];let n="";if(this._name){const r=On(`name:${this._name}`,this._nameColor);n+=`%c${this._name}%c`,i.push(`background:${r}; color:#fff; padding:1px 4px; border-radius:2px; font-weight:700;`,ta)}if(e&&(n+=` ${e}`),this._groupPath.length){const r=this._groupPath.join("/"),s=On(`group:${r}`);n+=` %c${r}%c`,i.push(`color:${s}; text-decoration: underline;`,ta)}return[n,i]}};const ea=()=>{},ta="color:inherit; background:transparent; text-decoration:none;",Uf={debug:{level:-1,label:"",method:"debug"},log:{level:0,label:"",method:"log"},info:{level:1,label:"[I]",method:"info"},warn:{level:2,label:"[W]",method:"warn"},error:{level:3,label:"[E]",method:"error"}};function Ff(t){const e=function(i,n){return t.group(i,n)};return new Proxy(e,{get(i,n,r){return t[n]},set(i,n,r){return t[n]=r,!0},apply(i,n,r){return t.group(r[0],r[1])},has(i,n){return n in t}})}function ia(t){return new Zo(t)}var Ke=(t=>(t.BODY_USED="BODY_USED",t.NO_BODY_READER="NO_BODY_READER",t.TIMEOUT="TIMEOUT",t.NETWORK_ERROR="NETWORK_ERROR",t.BODY_NOT_ALLOWED="BODY_NOT_ALLOWED",t.HOOK_CONTEXT_CHANGED="HOOK_CONTEXT_CHANGED",t.ABORTED_BY_HOOK="ABORTED_BY_HOOK",t.INVALID_HOOK_CALLBACK="INVALID_HOOK_CALLBACK",t.UNEXPECTED_HOOK_RETURN="UNEXPECTED_HOOK_RETURN",t))(Ke||{});let De=class Zu extends Error{constructor(i,n,r,s){super(n,s);j(this,"name","FexiosError");this.code=i,this.context=r}static is(i){return i?.constructor===Zu}},Bf=class ef extends De{constructor(i,n,r){super(n.statusText,i,void 0,r);j(this,"name","FexiosResponseError");this.response=n}static is(i){return i?.constructor===ef}};function qf(t,e=2048){if(!(t instanceof Uint8Array))throw new TypeError("Input must be a Uint8Array");if(t.length===0)return!0;const i=Math.min(Math.max(t.length,256),e),n=t.slice(0,i);if(Hf(n))return!1;const r=zf(n);if(r.nullByteRatio>.05||r.highByteRatio>.95)return!1;const s=["utf-8","utf-16le","utf-16be","iso-8859-1"];let o=-1,a=!1;for(const l of s)try{const c=new TextDecoder(l,{fatal:!0}).decode(n),u=Wf(c);u>o&&(o=u,a=u>.7)}catch{continue}return a}function Hf(t){if(t.length<4)return!1;const e=[[137,80,78,71],[255,216,255],[71,73,70],[37,80,68,70],[80,75,3,4],[80,75,5,6],[80,75,7,8],[127,69,76,70],[77,90],[202,254,186,190],[0,0,1,0],[82,73,70,70]];for(const i of e)if(t.length>=i.length){let n=!0;for(let r=0;r<i.length;r++)if(t[r]!==i[r]){n=!1;break}if(n)return!0}return!1}function zf(t){let e=0,i=0,n=0;for(const r of t)r===0&&e++,r>127&&i++,(r<32&&r!==9&&r!==10&&r!==13||r===127)&&n++;return{nullByteRatio:e/t.length,highByteRatio:i/t.length,controlCharRatio:n/t.length}}function Wf(t){if(t.length===0)return 1;let e=1,i=0;for(let r=0;r<t.length;r++){const s=t[r].charCodeAt(0);s>=32&&s<=126||s===9||s===10||s===13||s===32?i++:s>127&&s<65534?!Kf(s)&&!Vf(s)&&i++:e-=.1}const n=i/t.length;return e*=n,Qf(t)&&(e*=1.1),Math.max(0,Math.min(1,e))}function Kf(t){return t>=0&&t<=31||t>=127&&t<=159}function Vf(t){return t>=57344&&t<=63743||t>=983040&&t<=1048573||t>=1048576&&t<=1114109}function Qf(t){return[/\b\w+\b/,/[.!?]+\s/,/\s+/,/[a-zA-Z]{3,}/,/[\u4e00-\u9fa5]+/,/\d+/].some(e=>e.test(t))}function rt(t){if(typeof t!="object"||t===null||Object.prototype.toString.call(t)!=="[object Object]")return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||e===null}const Ui=(t,...e)=>{const i=r=>{if(Array.isArray(r))return r.slice();if(rt(r)){const s={};for(const o of Reflect.ownKeys(r))s[o]=i(r[o]);return s}return r},n=i(t);for(const r of e)if(r!=null)for(const s of Reflect.ownKeys(r)){const o=r[s];if(typeof o>"u")continue;const a=n[s];rt(a)&&rt(o)?n[s]=Ui(a,o):n[s]=i(o)}return n};let Fi=class{constructor(e,i,n){j(this,"ok");j(this,"status");j(this,"statusText");j(this,"headers");this.rawResponse=e,this.data=i,this.ok=e.ok,this.status=e.status,this.statusText=e.statusText,this.headers=e.headers,Object.entries(n||{}).forEach(([r,s])=>{this[r]=s})}};async function na(t,e,i){if(t.bodyUsed)throw new De(Ke.BODY_USED,"Response body has already been used or locked");const n=t.headers.get("content-type")||"",r=Number(t.headers.get("content-length"))||0,s=(a,l)=>l==="json"||a.startsWith("application/json"),o=(a,l,c)=>c==="blob"||a.startsWith("image/")&&!a.startsWith("image/svg")||a.startsWith("video/")||a.startsWith("audio/")||!qf(l);if((t.status===101||t.status===426||t.headers.get("upgrade"))&&typeof globalThis.WebSocket<"u"){const a=new WebSocket(t.url);return await new Promise((l,c)=>{a.onopen=l,a.onerror=c}),new Fi(t,a,{ok:!0,status:101,statusText:"Switching Protocols"})}else if(n.startsWith("text/event-stream")&&!["text","json"].includes(e||"")&&typeof globalThis.EventSource<"u"){const a=new EventSource(t.url);return await new Promise((l,c)=>{a.onopen=l,a.onerror=c}),new Fi(t,a)}else{if(e==="stream")return new Fi(t,t.body);{const a=t.clone().body?.getReader();if(!a)throw new De(Ke.NO_BODY_READER,"Failed to get ReadableStream from response body");let l=new Uint8Array;for(;;){const{done:u,value:f}=await a.read();if(u)break;if(f&&(l=new Uint8Array([...l,...f]),i&&r>0)){const p=Math.min(l.length/r,1);i(p,l)}}const c=new Fi(t,void 0);if(e==="arrayBuffer")return c.data=l.buffer,c;if(s(n,e))try{const u=new TextDecoder().decode(l);c.data=JSON.parse(u)}catch{}if(typeof c.data!="string"&&o(n,l,e)?c.data=new Blob([l],{type:t.headers.get("content-type")||void 0}):c.data=new TextDecoder().decode(l),typeof c.data=="string"&&e!=="text"){const u=c.data.trim(),f=u[0],p=u[u.length-1];if(f==="{"&&p==="}"||f==="["&&p==="]")try{c.data=JSON.parse(c.data)}catch{}}if(typeof c.data>"u"&&(c.data=l.length>0?l:void 0),c.ok)return c;throw new Bf(`Request failed with status code ${t.status}`,c)}}}var An;(t=>{t.makeSearchParams=r=>{if(!r)return new URLSearchParams;if(r instanceof URLSearchParams)return r;if(typeof r!="object"||r?.constructor!==Object)throw new TypeError("only plain object is supported");const s=new URLSearchParams,o=(c,u)=>{u!=null&&s.append(c,u)},a=(c,u)=>{u!=null&&s.set(c,u)},l=(c,u)=>{if(u!=null){if(Array.isArray(u)){for(const f of u)o(c,f?.toString());return}if(typeof u=="object"&&u.constructor===Object){for(const[f,p]of Object.entries(u)){if(p==null)continue;const g=f.endsWith("[]"),m=g?f.slice(0,-2):f,k=`${c}[${m}]`;if(g){const D=`${k}[]`;if(Array.isArray(p))for(const T of p)o(D,T?.toString());else typeof p=="object"&&p!==null&&p.constructor===Object?l(`${k}[]`,p):o(D,p?.toString())}else if(Array.isArray(p))for(const D of p)o(k,D?.toString());else typeof p=="object"&&p!==null&&p.constructor===Object?l(k,p):a(k,p?.toString())}return}a(c,u?.toString())}};for(const[c,u]of Object.entries(r))l(c,u);return s},t.makeQueryString=r=>(0,t.makeSearchParams)(r).toString(),t.makeURL=(r,s,o,a)=>{const l=typeof window<"u"&&window.location?.origin||"http://localhost",c=typeof r=="string"?new URL(r,a??l):new URL(r),u=(0,t.toQueryRecord)(c.searchParams),f=(0,t.mergeQueries)(u,s||{}),p=(0,t.makeSearchParams)(f);return c.search=p.toString(),c.hash=o||"",c},t.toQueryRecord=r=>{typeof r=="string"&&(r=(0,t.fromString)(r));const s={},o=l=>{if(!l.includes("["))return{path:[l],forceArray:!1};const c=[l.slice(0,l.indexOf("["))],u=/\[([^\]]*)\]/g;let f,p=!1,g=!1;for(;f=u.exec(l);)f[1]===""?(p=!0,g=!0):(c.push(f[1]),g=!1);return p&&g&&(c[c.length-1]=c[c.length-1]+"[]"),{path:c,forceArray:p}},a=(l,c,u,f)=>{let p=l;for(let g=0;g<c.length;g++){const m=c[g];g===c.length-1?f?p[m]===void 0?p[m]=[u]:Array.isArray(p[m])?p[m].push(u):p[m]=[p[m],u]:p[m]===void 0?p[m]=u:Array.isArray(p[m])?p[m].push(u):p[m]=[p[m],u]:((p[m]===void 0||typeof p[m]!="object"||Array.isArray(p[m]))&&(p[m]={}),p=p[m])}};for(const[l,c]of r.entries()){const{path:u,forceArray:f}=o(String(l));a(s,u,c?.toString(),f)}return s},t.fromString=r=>{const s=r.trim();if(!s)return new URLSearchParams;if(s.startsWith("?"))return new URLSearchParams(s.slice(1));const o=s.indexOf("?");if(o>=0){const a=s.indexOf("#",o+1),l=s.slice(o+1,a>=0?a:void 0);return new URLSearchParams(l)}return new URLSearchParams(s)},t.mergeQueries=(r,...s)=>{const o=e(i(r));for(const a of s)a!=null&&n(o,i(a));return o};function e(r){if(Array.isArray(r))return r.map(e);if(rt(r)){const s={};for(const[o,a]of Object.entries(r))s[o]=e(a);return s}if(r instanceof Map){const s={};for(const[o,a]of r.entries())s[o]=e(a);return s}return r}function i(r){if(!r)return{};if(r instanceof URLSearchParams||r instanceof FormData||r instanceof Map)return(0,t.toQueryRecord)(r);if(typeof r=="string")return(0,t.toQueryRecord)((0,t.fromString)(r));if(rt(r))return r;throw new TypeError(`unsupported type transformation, got: ${Object.prototype.toString.call(r)}`)}function n(r,s){for(const[o,a]of Object.entries(s)){if(a===void 0)continue;if(a===null){delete r[o];continue}const l=r[o];rt(l)&&rt(a)?n(l,a):r[o]=e(a)}}})(An||(An={}));const ra=function(t){const e=this.constructor.prototype,i=Reflect.get(e,t,e);function n(...r){return Reflect.apply(i,n,r)}Reflect.setPrototypeOf(n,e);for(const r of Reflect.ownKeys(i)){const s=Reflect.getOwnPropertyDescriptor(i,r);s&&Reflect.defineProperty(n,r,s)}return n};ra.prototype=Object.create(Function.prototype);var Bi;(t=>{t.makeHeaders=e=>{if(!e)return new Headers;if(e instanceof Headers)return new Headers(e);const i=new Headers;if(e instanceof Map){for(const[n,r]of e.entries())if(r!=null)if(Array.isArray(r))for(const s of r)s!=null&&i.append(n,String(s));else i.append(n,String(r));return i}if(rt(e)){for(const[n,r]of Object.entries(e))if(r!=null)if(Array.isArray(r))for(const s of r)s!=null&&i.append(n,String(s));else i.append(n,String(r));return i}throw new TypeError("only plain object, Map/ReadonlyMap, or Headers is supported")},t.toHeaderRecord=e=>{if(e instanceof Headers){const i={};return e.forEach((n,r)=>{i[r]=i[r]?[...i[r],n]:[n]}),i}if(e instanceof Map){const i={};for(const[n,r]of e.entries())if(r!=null)if(Array.isArray(r)){const s=r.filter(o=>o!=null).map(o=>String(o));s.length&&(i[n]=(i[n]??[]).concat(s))}else{const s=String(r);i[n]=i[n]?[...i[n],s]:[s]}return i}throw new TypeError(`unsupported type transformation, got: ${Object.prototype.toString.call(e)}`)},t.mergeHeaders=(e,...i)=>{const n=e instanceof Headers?new Headers(e):(0,t.makeHeaders)(e),r=s=>{for(const[o,a]of Object.entries(s))if(a!==void 0){if(a===null){n.delete(o);continue}if(Array.isArray(a)){n.delete(o);for(const l of a)l!=null&&n.append(o,String(l))}else n.set(o,String(a))}};for(const s of i){if(s==null)continue;if(s instanceof Headers){s.forEach((a,l)=>{n.set(l,a)});continue}if(rt(s)){r(s);continue}const o=(0,t.toHeaderRecord)(s);for(const[a,l]of Object.entries(o)){n.delete(a);for(const c of l)n.append(a,c)}}return n}})(Bi||(Bi={}));let Yr=(ue=class extends ra{constructor(i={}){super("request");j(this,"baseConfigs");j(this,"hooks",[]);j(this,"mergeQueries",An.mergeQueries);j(this,"mergeHeaders",Bi.mergeHeaders);j(this,"interceptors",{request:this.createInterceptor("beforeRequest"),response:this.createInterceptor("afterResponse")});j(this,"create",ue.create);j(this,"_plugins",new Map);j(this,"checkIsPlainObject",rt);j(this,"mergeQuery",this.mergeQueries);this.baseConfigs=Ui(ue.DEFAULT_CONFIGS,i),ue.ALL_METHODS.forEach(n=>this.createMethodShortcut(n.toLowerCase()))}async request(i,n){let r=n=n||{};if(typeof i=="string"||i instanceof URL?r.url=i.toString():typeof i=="object"&&(r=Ui(i,r)),r=await this.emit("beforeInit",r,{shouldAdjustRequestParams:!0,shouldHandleShortCircuitResponse:!0}),r[ue.FINAL_SYMBOL])return r;if(ue.METHODS_WITHOUT_BODY.includes(r.method?.toLocaleLowerCase())&&r.body)throw new De(Ke.BODY_NOT_ALLOWED,`Request method "${r.method}" does not allow body`);if(r=await this.emit("beforeRequest",r,{shouldAdjustRequestParams:!0,shouldHandleShortCircuitResponse:!0,preAdjust:!0,requestOptionsOverridesURLSearchParams:!0,preRequestOptionsOverridesURLSearchParams:!0,postRequestOptionsOverridesURLSearchParams:!0}),r[ue.FINAL_SYMBOL])return r;let s;const o={};if(typeof r.body<"u"&&r.body!==null&&(r.body instanceof Blob||r.body instanceof FormData||r.body instanceof URLSearchParams?s=r.body:typeof r.body=="object"&&r.body!==null?(s=JSON.stringify(r.body),r.headers=this.mergeHeaders(r.headers,{"Content-Type":"application/json"})):s=r.body),!Bi.makeHeaders(n.headers||{}).get("content-type")&&s&&(s instanceof FormData||s instanceof URLSearchParams?o["content-type"]=null:typeof s=="string"&&typeof r.body=="object"?o["content-type"]="application/json":s instanceof Blob&&(o["content-type"]=s.type||"application/octet-stream")),r.body=s,r=await this.emit("afterBodyTransformed",r,{shouldAdjustRequestParams:!0,shouldHandleShortCircuitResponse:!0,preAdjust:!0,postRequestOptionsOverridesURLSearchParams:!0}),r[ue.FINAL_SYMBOL])return r;const a=r.abortController||globalThis.AbortController?new AbortController:void 0,l=r.baseURL||this.baseConfigs.baseURL||globalThis.location?.href||"http://localhost",c=new URL(r.url.toString(),l),u=An.makeURL(c,r.query,c.hash).toString(),f=new Request(u,{method:r.method||"GET",credentials:r.credentials,cache:r.cache,mode:r.mode,headers:Bi.mergeHeaders(this.baseConfigs.headers,r.headers||{},o),body:r.body,signal:a?.signal});if(r.rawRequest=f,r=await this.emit("beforeActualFetch",r,{shouldHandleShortCircuitResponse:!0}),r[ue.FINAL_SYMBOL])return r;const p=r.timeout||this.baseConfigs.timeout||60*1e3;if(r.url.startsWith("ws"))try{const m=new WebSocket(r.url);return await new Promise((k,D)=>{const T=setTimeout(()=>{D(new De(Ke.TIMEOUT,`WebSocket connection timed out after ${p}ms`,r))},p);m.onopen=()=>{clearTimeout(T),k()},m.onerror=I=>{clearTimeout(T),D(new De(Ke.NETWORK_ERROR,"WebSocket connection failed",r))},m.onclose=I=>{I.code!==1e3&&(clearTimeout(T),D(new De(Ke.NETWORK_ERROR,`WebSocket closed with code ${I.code}`,r)))}}),r.rawResponse=new Response,r.response=new Fi(r.rawResponse,m,{ok:!0,status:101,statusText:"Switching Protocols"}),r.data=m,r.headers=new Headers,this.emit("afterResponse",r)}catch(m){throw m instanceof De?m:new De(Ke.NETWORK_ERROR,`WebSocket creation failed: ${m}`,r)}let g;try{a&&(g=setTimeout(()=>{a.abort()},p));const m=await(n.fetch||this.baseConfigs.fetch||globalThis.fetch)(r.rawRequest).catch(k=>{throw g&&clearTimeout(g),a?.signal.aborted?new De(Ke.TIMEOUT,`Request timed out after ${p}ms`,r):new De(Ke.NETWORK_ERROR,k.message,r)});return g&&clearTimeout(g),r.rawResponse=m,r.response=await na(m,r.responseType,(k,D)=>{n?.onProgress?.(k,D)}),r.data=r.response.data,r.headers=r.response.headers,this.emit("afterResponse",r)}catch(m){throw g&&clearTimeout(g),m}}normalizeContext(i,n={}){const r=i,s=r.baseURL||this.baseConfigs.baseURL||globalThis.location?.href||"http://localhost",o=new URL(s,globalThis.location?.href||"http://localhost"),a=new URL(r.url.toString(),o),l=!!r[ue.NORMALIZED_SYMBOL];r.baseURL=o?o.origin:a.origin;let c;l?c=n.requestOptionsOverridesURLSearchParams?this.mergeQueries({},a.search,r.query):this.mergeQueries({},r.query,a.search):(c=n.requestOptionsOverridesURLSearchParams?this.mergeQueries(o?.search||"",this.baseConfigs.query,a.search,r.query):this.mergeQueries(o?.search||"",this.baseConfigs.query,r.query,a.search),r[ue.NORMALIZED_SYMBOL]=!0),r.query=c;const u=new URL(a);return u.search="",r.url=u.toString(),r}async emit(i,n,r={}){const s=this.hooks.filter(o=>o.event===i);if(r?.shouldAdjustRequestParams&&r?.preAdjust)try{n=this.normalizeContext(n,{requestOptionsOverridesURLSearchParams:r.preRequestOptionsOverridesURLSearchParams})}catch{}try{let o=0;for(const a of s){const l=`${i}#${a.action.name||`anonymous#${o}`}`,c=Symbol("FEXIOS_HOOK_CONTEXT");n[c]=c;const u=n.url;let f="";try{const g=this.mergeQueries({},n.query||{});f=JSON.stringify(g)}catch{}let p=await a.action.call(this,n);if(p===void 0&&(p=n),p===!1)throw new De(Ke.ABORTED_BY_HOOK,`Request aborted by hook "${l}"`,n);if(p instanceof Response){const g=p,m={...n,rawResponse:g},k=await na(g,n.responseType,(D,T)=>{n.onProgress?.(D,T)});if(m.response=k,m.data=k.data,m.headers=k.headers,i!=="afterResponse"){const D=await this.emit("afterResponse",m);return D[ue.FINAL_SYMBOL]=!0,D}else return m[ue.FINAL_SYMBOL]=!0,m}else if(typeof p=="object"&&p[c]===c)n=p;else{const g=globalThis["".concat("console")];try{throw new De(Ke.HOOK_CONTEXT_CHANGED,`Hook "${l}" should return the original FexiosContext or return false to abort the request, but got "${p}".`)}catch(m){g.warn(m.stack||m)}}if(r?.shouldAdjustRequestParams)try{const g=n.baseURL||this.baseConfigs.baseURL||globalThis.location?.href||"http://localhost",m=new URL(n.url.toString(),g);let k={};if(f)try{k=JSON.parse(f)}catch{}const D=n.query||{},T=this.mergeQueries(k,m.search,D);n.query=T;const I=new URL(m);I.search="",n.url=I.toString()}catch{}delete n[c],o++}}catch(o){return Promise.reject(o)}return n}on(i,n,r=!1){if(typeof n!="function")throw new De(Ke.INVALID_HOOK_CALLBACK,`Hook should be a function, but got "${typeof n}"`);return this.hooks[r?"unshift":"push"]({event:i,action:n}),this}off(i,n){return i==="*"||!i?this.hooks=this.hooks.filter(r=>r.action!==n):this.hooks=this.hooks.filter(r=>r.event!==i||r.action!==n),this}createInterceptor(i){return{handlers:()=>this.hooks.filter(n=>n.event===i).map(n=>n.action),use:(n,r=!1)=>this.on(i,n,r),clear:()=>{this.hooks=this.hooks.filter(n=>n.event!==i)}}}createMethodShortcut(i){return Reflect.defineProperty(this,i,{get:()=>(n,r,s)=>(ue.METHODS_WITHOUT_BODY.includes(i.toLocaleLowerCase())?s=r:(s=s||{},s.body=r),this.request(n,{...s,method:i}))}),this}extends(i){const n=new ue(Ui(this.baseConfigs,i));return n.hooks=[...this.hooks],n._plugins=new Map(this._plugins),n._plugins.forEach(async r=>{await n.plugin(r)}),n}static create(i){return new ue(i)}async plugin(i){if(typeof i?.name=="string"&&typeof i?.install=="function"){if(this._plugins.has(i.name))return this;const n=await i.install(this);if(this._plugins.set(i.name,i),n instanceof ue)return n}return this}},j(ue,"FINAL_SYMBOL",Symbol("FEXIOS_FINAL_CONTEXT")),j(ue,"NORMALIZED_SYMBOL",Symbol("FEXIOS_NORMALIZED_QUERY")),j(ue,"DEFAULT_CONFIGS",{baseURL:"",timeout:60*1e3,credentials:"same-origin",headers:{},query:{},responseType:void 0,fetch:globalThis.fetch}),j(ue,"ALL_METHODS",["get","post","put","patch","delete","head","options","trace"]),j(ue,"METHODS_WITHOUT_BODY",["get","head","options","trace"]),ue);/**
|
|
30
30
|
* Fexios
|
|
31
31
|
* @desc Fetch based HTTP client with similar API to axios for browser and Node.js
|
|
32
32
|
*
|
|
33
33
|
* @license MIT
|
|
34
34
|
* @author dragon-fish <dragon-fish@qq.com>
|
|
35
|
-
*/const
|
|
36
|
-
`),this.code=this.isBadTokenError()?"badtoken":this.errors[0]?.code||"Unknown Error"}get firstError(){return this.errors[0]}isBadTokenError(){return this.errors.some(e=>e.code==="badtoken")||["NeedToken","WrongToken"].includes(this.cause?.data?.login?.result)}toString(){return`[${this.name} ${this.code}]`}static is(e){return e instanceof this}static normalizeErrors(e){return Array.isArray(e)===!1?[]:e.filter(i=>typeof i=="object"&&!!i?.code).map(i=>i.text?i:i.info?{...i,text:i.info}:i["*"]?{...i,text:i["*"]}:{...i,text:""})}};(t=>{function e(s){if(s==null)return;if(s?.response?.data!==void 0)return s.response.data;if(s?.data!==void 0)return s.data;const o=s instanceof Error?s.cause:void 0;return o?.response?.data!==void 0?o.response.data:o?.data!==void 0?o.data:s||void 0}function i(s){return
|
|
35
|
+
*/const Yf=Yr.create,sa=Yf();/* v8 ignore else -- @preserve */typeof globalThis<"u"?globalThis.fexios=sa:typeof window<"u"&&(window.fexios=sa);var In;(t=>{function e(n){return Array.isArray(n)?n.join("|"):typeof n=="boolean"||n===null?n?"1":void 0:typeof n=="number"?""+n:n}t.normalizeParamValue=e;function i(n){const r=o=>o&&(o instanceof URLSearchParams||o instanceof FormData);if(n==null)return;const s=new FormData;if(r(n))return n.forEach((o,a)=>{const l=e(o);l!=null&&s.append(a,l)}),s;if(rt(n))return Object.entries(n).forEach(([o,a])=>{const l=e(a);l!=null&&s.append(o,l)}),s}t.normalizeBody=i})(In||(In={}));var qi=(t=>(t.HTTP_ERROR="HTTP_ERROR",t.LOGIN_FAILED="LOGIN_FAILED",t.LOGIN_RETRY_LIMIT_EXCEEDED="LOGIN_RETRY_LIMIT_EXCEEDED",t.TOKEN_RETRY_LIMIT_EXCEEDED="TOKEN_RETRY_LIMIT_EXCEEDED",t))(qi||{});let je=class extends Error{constructor(e,i="",n){super(),this.code=e,this.message=i,this.cause=n,this.name="WikiSaikouError"}static is(e,i){return e instanceof this&&(i===void 0||e.code===i)}},li=class tf extends Error{constructor(e,i){super(),this.errors=e,this.cause=i,this.name="MediaWikiApiError",this.errors=tf.normalizeErrors(e),this.message=e.map(n=>n.text).filter(Boolean).join(`
|
|
36
|
+
`),this.code=this.isBadTokenError()?"badtoken":this.errors[0]?.code||"Unknown Error"}get firstError(){return this.errors[0]}isBadTokenError(){return this.errors.some(e=>e.code==="badtoken")||["NeedToken","WrongToken"].includes(this.cause?.data?.login?.result)}toString(){return`[${this.name} ${this.code}]`}static is(e){return e instanceof this}static normalizeErrors(e){return Array.isArray(e)===!1?[]:e.filter(i=>typeof i=="object"&&!!i?.code).map(i=>i.text?i:i.info?{...i,text:i.info}:i["*"]?{...i,text:i["*"]}:{...i,text:""})}};(t=>{function e(s){if(s==null)return;if(s?.response?.data!==void 0)return s.response.data;if(s?.data!==void 0)return s.data;const o=s instanceof Error?s.cause:void 0;return o?.response?.data!==void 0?o.response.data:o?.data!==void 0?o.data:s||void 0}function i(s){return n(s).length>0}t.includesMediaWikiApiError=i,t.normalizeMwApiErrors=li.normalizeErrors;function n(s){let o=e(s);if(typeof o!="object"||o===null)return[];const a=o?.error,l=o?.errors,c=[];return a&&c.push(a),Array.isArray(l)&&c.push(...l),(0,t.normalizeMwApiErrors)(c)}t.extractMediaWikiApiErrors=n;function r(s){if(li.is(s))return s.isBadTokenError();{const o=n(s);return new li(o).isBadTokenError()}}t.isBadTokenError=r})(je||(je={}));const oa=Symbol.for("__FEXIOS_SAIKOU__");/**
|
|
37
37
|
* FexiosSaikou
|
|
38
38
|
*
|
|
39
39
|
* A pre-configured Fexios instance with MediaWiki-friendly defaults:
|
|
@@ -46,24 +46,24 @@
|
|
|
46
46
|
*
|
|
47
47
|
* @param {string|URL} payload create a new FexiosSaikou instance with the given baseURL
|
|
48
48
|
* @param {Fexios} payload or make the given Fexios instance a FexiosSaikou instance
|
|
49
|
-
*/function
|
|
49
|
+
*/function aa(t){const e=t instanceof Yr?t:new Yr({baseURL:t instanceof URL?t.toString():String(t),responseType:"json"});return e[oa]||(Reflect.defineProperty(e,oa,{get:()=>!0,enumerable:!1,configurable:!1}),e._tokens=new Map,e.on("afterResponse",i=>{const{data:n,rawRequest:r}=i,s=r?.headers.get("x-mw-token-name");s&&je.isBadTokenError(n)&&e._tokens.delete(s);const o=n?.query?.tokens;o&&typeof o=="object"&&Object.entries(o).forEach(([l,c])=>{typeof c=="string"&&e._tokens.set(l.replace(/token$/i,"").toLowerCase(),c)});const a=n?.login?.token;return typeof a=="string"&&e._tokens.set("login",a),i}),e.on("beforeInit",i=>{if(i.method?.toLowerCase()!=="post")return i;if(i.body===void 0||i.body===null)return i.body=void 0,i;const n=i.body=In.normalizeBody(i.body),r=new URLSearchParams(i.query);return n.has("format")&&r.delete("format"),n.has("formatversion")&&r.delete("formatversion"),n.has("action")&&r.delete("action"),n.has("origin")&&(r.set("origin",""+n.get("origin")),n.delete("origin")),i.query=Object.fromEntries(r.entries()),i}),e.on("beforeInit",i=>(i.query=In.normalizeBody(i.query)||{},i)),e.on("beforeRequest",i=>{const n=new URL(i.url),r=n.searchParams;if(globalThis.location&&(!r.has("origin")&&location.origin!==n.origin?(r.set("origin",location.origin),e.baseConfigs.credentials="include",e.baseConfigs.mode="cors"):location.origin===n.origin&&(r.delete("origin"),e.baseConfigs.credentials=void 0,e.baseConfigs.mode=void 0)),n.searchParams.has("origin")){const s=encodeURIComponent(n.searchParams.get("origin")||"").replace(/\./g,"%2E");i.query={},n.searchParams.delete("origin"),i.url=`${n}${n.search?"&":"?"}origin=${s}`}return i})),e}const Yt=(t,...e)=>{const i=s=>Object.prototype.toString.call(s)==="[object Object]",n=s=>{if(Array.isArray(s))return s.slice();if(i(s)){const o={};for(const a of Reflect.ownKeys(s))o[a]=n(s[a]);return o}return s},r=n(t);for(const s of e)if(s!=null)for(const o of Reflect.ownKeys(s)){const a=s[o];if(typeof a>"u")continue;const l=r[o];i(l)&&i(a)?r[o]=Yt(l,a):r[o]=n(a)}return r},Gf=(t,e,i)=>{let n={...la.DEFAULT_CONFIGS};if(typeof t=="string"?n=Yt(n,{baseURL:t,fexiosConfigs:e||{},defaultParams:i||{}}):typeof t=="object"&&t!==null&&(n=Yt(n,t)),!n.baseURL&&typeof window=="object"&&window.mediaWiki){const{wgServer:r,wgScriptPath:s}=window.mediaWiki?.config?.get(["wgServer","wgScriptPath"])||{};typeof r=="string"&&typeof s=="string"&&(n.baseURL=`${r}${s}/api.php`)}if(typeof n.baseURL!="string")throw new Error("baseURL is required");return n},Xf=()=>{},Jf=async(t,e)=>{let i=0;const{retry:n=3,onRetry:r=Xf,shouldRetry:s=()=>!0}=e;let o;do try{return await t()}catch(a){if(o=a,s(a,i))r(a,i),i++;else throw a}while(i<n);throw o||new Error("Retry failed")};/**
|
|
50
50
|
* WikiSaikou Core class
|
|
51
51
|
* @internal You **SHOULD NOT** use this class directly, instead, use the `MediaWikiApi` class.
|
|
52
52
|
* @author dragon-fish <dragon-fish@qq.com>
|
|
53
53
|
* @license MIT
|
|
54
|
-
*/const
|
|
54
|
+
*/const Hi=class{constructor(e,i,n){this.version="7.1.2",this.token=this.getToken;const r=this.config=Gf(e,i,n);this.request=aa(r.baseURL)}setBaseURL(e){return this.config.baseURL=e,this.request.baseConfigs.baseURL=e,this}async get(e,i){return this.runRequestWithApiErrorMapping(()=>this.request.get("",Yt({},this.config.fexiosConfigs,{query:Yt(this.config.defaultParams,e)},i)))}async post(e,i){return this.runRequestWithApiErrorMapping(()=>this.request.post("",e,Yt({},this.config.fexiosConfigs,{query:this.config.defaultParams},i)))}async runRequestWithApiErrorMapping(e){try{const i=await e();return this.handleApiResponse(i)}catch(i){throw this.config.throwOnApiError&&je.includesMediaWikiApiError(i)?new li(je.extractMediaWikiApiErrors(i),i):i}}throwIfApiError(e){const i=je.extractMediaWikiApiErrors(e);if(i.length>0)throw new li(i,e)}handleApiResponse(e){return this.config.throwOnApiError&&this.throwIfApiError(e.data),e}get tokens(){return this.request._tokens}async fetchTokens(e=["csrf"]){return this.config.fexiosConfigs.credentials="include",await this.get({action:"query",meta:"tokens",type:e}),this.tokens}async getToken(e="csrf",i=!1){return(!this.tokens.get(e)||i)&&(this.tokens.delete(e),await this.fetchTokens([e])),this.tokens.get(e)}badToken(e){return this.tokens.delete(e),this.tokens}async postWithToken(e,i,n){const{tokenName:r="token",retry:s=3,noCache:o=!1,fexiosOptions:a}=n||{};if(s<1)throw new je(qi.TOKEN_RETRY_LIMIT_EXCEEDED,"The limit of the number of times to automatically re-acquire the token has been exceeded");let l=0;return Jf(async()=>{const c=await this.getToken(e,o||l>0);try{const u=await this.post({[r]:c,...i},Yt(a||{},{headers:{"x-mw-token-name":e}}));if(je.isBadTokenError(u.data))throw u;return u}catch(u){throw je.isBadTokenError(u)||u?.ok===!1||li.is(u)?u:new je(qi.HTTP_ERROR,"Network/transport or SDK-internal error (not a MediaWiki API error)",u)}},{retry:s,onRetry:(c,u)=>{l=u+1},shouldRetry:c=>je.isBadTokenError(c)||c?.ok===!1}).catch(c=>{throw je.isBadTokenError(c)||c?.ok===!1?new je(qi.TOKEN_RETRY_LIMIT_EXCEEDED,"Retry attempts for acquiring/using token exhausted",c):c})}postWithEditToken(e){return this.postWithToken("csrf",e)}get baseURL(){return this.config.baseURL}get defaultParams(){return this.config.defaultParams}get defaultOptions(){return this.config.fexiosConfigs}};Hi.INIT_DEFAULT_PARAMS={action:"query",errorformat:"plaintext",format:"json",formatversion:2},Hi.DEFAULT_CONFIGS={baseURL:void 0,fexiosConfigs:{responseType:"json"},defaultParams:Hi.INIT_DEFAULT_PARAMS,throwOnApiError:!1},Hi.createRequestHandler=aa;let la=Hi;/**
|
|
55
55
|
* WikiSaikou
|
|
56
56
|
* @description Standalone MediaWiki API SDK with `mw.Api`-like API in any environments
|
|
57
57
|
* @author Dragon-Fish <dragon-fish@qq.com>
|
|
58
58
|
* @license MIT
|
|
59
|
-
*/let Bf=class extends ea{async clientLogin(e,i,r){r||(r={}),!r.logincontinue&&!r.loginreturnurl&&(r.loginreturnurl=location?.origin);const n=await this.postWithToken("login",{action:"clientlogin",username:e,password:i,...r},{tokenName:"logintoken"});if(n?.data?.clientlogin?.status==="PASS")return n.data.clientlogin;throw new De(ji.LOGIN_FAILED,n.data.clientlogin.message,n)}};class qf{constructor(e,i={}){this.ctx=e,location?.href&&i?.baseURL?.toString()?.startsWith("/")&&(i.baseURL=new URL(i.baseURL,location.origin));const r=new Bf({baseURL:i.baseURL.toString(),fexiosConfigs:{headers:{"x-api-user-agent":`InPageEdit-NEXT ${e.version}`,...i.headers},...i},throwOnApiError:!0});e.set("api",r)}}var Hf=Object.create,Kn=Object.defineProperty,zf=Object.getOwnPropertyDescriptor,ta=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),ia=t=>{throw TypeError(t)},Wf=(t,e,i)=>e in t?Kn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Kf=(t,e)=>Kn(t,"name",{value:e,configurable:!0}),Vf=t=>[,,,Hf(t?.[ta("metadata")]??null)],Gf=["class","method","getter","setter","accessor","field","value","get","set"],ra=t=>t!==void 0&&typeof t!="function"?ia("Function expected"):t,Qf=(t,e,i,r,n)=>({kind:Gf[t],name:e,metadata:r,addInitializer:s=>i._?ia("Already initialized"):n.push(ra(s||null))}),Yf=(t,e)=>Wf(e,ta("metadata"),t[3]),Jf=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},Xf=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&zf(n,i));Kf(n,i);for(var m=r.length-1;m>=0;m--)l=Qf(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,ra(o)&&(n=o);return Yf(t,n),y&&Kn(n,i,y),u?c^4?s:y:n},na,Vn,sa;na=[ke(["wiki","wikiTitle"])];class $r extends(sa=$t){constructor(i){super(i,"currentPage",!1);Ii(this,Be);this.ctx=i,this.url=new URL(window.location.href),this.isMainPage=void 0,this.wikiTitle=void 0}get logger(){return this.ctx.logger("CURRENT_PAGE")}async start(){await it(this,Be,Io).call(this),it(this,Be,Hu).call(this),window.addEventListener("popstate",it(this,Be,Ao).bind(this)),this.logger.info("initialized",this.wikiTitle)}stop(){window.removeEventListener("popstate",it(this,Be,Ao).bind(this))}get params(){return this.url.searchParams}get canonicalUrl(){const i=document.querySelector('link[rel="canonical"]')?.href;let r=null;return i&&(r=new URL(i,location.origin)),Reflect.defineProperty(this,"canonicalUrl",{get:()=>r}),r}get wikiAction(){return this.params.get("action")||"view"}}Be=new WeakSet,Io=async function(){await it(this,Be,Wu).call(this),await it(this,Be,zu).call(this)},Hu=function(){const i=Symbol.for("InPageEdit.CurrentPageService.UrlChangeListenerInstalled");if(window[i])return;const r=history.pushState,n=history.replaceState;history.pushState=function(s,o,a){r.apply(this,[s,o,a]),window.dispatchEvent(new PopStateEvent("popstate",{state:s}))},history.replaceState=function(s,o,a){n.apply(this,[s,o,a]),window.dispatchEvent(new PopStateEvent("popstate",{state:s}))},window[i]=!0},Ao=async function(i){const r=this.url,n=new URL(window.location.href);this.url=n,(r.pathname!==n.pathname||r.searchParams.get("title")!==n.searchParams.get("title")||r.searchParams.get("curid")!==n.searchParams.get("curid"))&&(await it(this,Be,Io).call(this),this.logger.info("location changed",n,this.wikiTitle))},zu=async function(){const r=this.wikiTitle?.getMainDBKey()===this.ctx.wiki.mainPageName;return Reflect.defineProperty(this,"isMainPage",{get:()=>r}),r},Wu=async function(){let i=null;return this.canonicalUrl?i=await this.ctx.wikiTitle.newTitleFromUrl(this.canonicalUrl):i=await this.ctx.wikiTitle.newTitleFromUrl(this.url),Object.freeze(i),Reflect.defineProperty(this,"wikiTitle",{get:()=>i}),i},Vn=Vf(sa),$r=Xf(Vn,0,"CurrentPageService",na,$r),Jf(Vn,1,$r);class Zf extends $t{constructor(e){super(e,"resourceLoader",!0),this.ctx=e}stop(){}loadScript(e,i){if(!e)return Promise.resolve(null);const r=`script:${e}`,n=document.querySelector(`[data-ipe="${r}"]`);return n?Promise.resolve(n):new Promise((o,a)=>{const l=document.createElement("script");l.src=e,l.dataset.ipe=r,i&&Object.entries(i).forEach(([c,u])=>{typeof u>"u"||u===!1||u===null?l.removeAttribute(c):l.setAttribute(c,u)}),document.body.appendChild(l),l.onload=()=>o(l),l.onerror=c=>a(c)})}loadStyle(e,i){if(!e)return Promise.resolve(null);const r=`style:${e}`,n=document.querySelector(`[data-ipe="${r}"]`);return n?Promise.resolve(n):new Promise((o,a)=>{const l=document.createElement("link");l.rel="stylesheet",l.href=e,l.dataset.ipe=r,i&&Object.entries(i).forEach(([u,f])=>{typeof f>"u"||f===!1||f===null?l.removeAttribute(u):l.setAttribute(u,f)}),(document.querySelector('meta[name="ipe-styles"]')||(()=>{const u=document.createElement("meta");return u.id="ipe-styles",u.name="ipe-styles",document.head.insertAdjacentElement("afterbegin",u),u})()).before(l),l.onload=()=>o(l),l.onerror=u=>a(u)})}resolveImportPath(e){if(e.startsWith("http")||e.startsWith("//"))return e;const i=document.currentScript?.src;if(!i)return`https://unpkg.com/mediawiki-inpageedit@latest/dist/${e}`;const r=new URL(i);return r.pathname.endsWith(".js")||(r.pathname=r.pathname+"/"),new URL(e,r.toString()).toString()}}const Pr=Object.keys;function eh(t){return typeof t=="boolean"}function th(t){return t&&typeof t.nodeType=="number"}function Cr(t){return typeof t=="string"}function oa(t){return typeof t=="number"}function Qt(t){return typeof t=="object"?t!==null:Fi(t)}function Fi(t){return typeof t=="function"}function ih(t){return!!(t&&t.isComponent)}function rh(t){return Qt(t)&&typeof t.length=="number"&&typeof t.nodeType!="number"}function Gn(t,e){if(t)for(const i of Pr(t))e(t[i],i)}function nh(t){return Qt(t)&&"current"in t}const Qn={animationIterationCount:0,borderImageOutset:0,borderImageSlice:0,borderImageWidth:0,boxFlex:0,boxFlexGroup:0,boxOrdinalGroup:0,columnCount:0,columns:0,flex:0,flexGrow:0,flexPositive:0,flexShrink:0,flexNegative:0,flexOrder:0,gridArea:0,gridRow:0,gridRowEnd:0,gridRowSpan:0,gridRowStart:0,gridColumn:0,gridColumnEnd:0,gridColumnSpan:0,gridColumnStart:0,fontWeight:0,lineClamp:0,lineHeight:0,opacity:0,order:0,orphans:0,tabSize:0,widows:0,zIndex:0,zoom:0,fillOpacity:0,floodOpacity:0,stopOpacity:0,strokeDasharray:0,strokeDashoffset:0,strokeMiterlimit:0,strokeOpacity:0,strokeWidth:0};function sh(t,e){return t+e.charAt(0).toUpperCase()+e.substring(1)}const oh=["Webkit","ms","Moz","O"];Pr(Qn).forEach(t=>{oh.forEach(e=>{Qn[sh(e,t)]=0})});const ah=Symbol.for("jsx-dom:type");var aa=function(t){return t.ShadowRoot="ShadowRoot",t}(aa||{});function lh(t){return t!=null&&t[ah]===aa.ShadowRoot}const ch="http://www.w3.org/2000/svg",uh="http://www.w3.org/1999/xlink",fh="http://www.w3.org/XML/1998/namespace";function la(t){return!eh(t)&&t!=null}function Yn(t){return Array.isArray(t)?t.map(Yn).filter(Boolean).join(" "):Qt(t)?Symbol.iterator in t?Yn(Array.from(t)):Pr(t).filter(e=>t[e]).join(" "):la(t)?""+t:""}const hh={animate:0,circle:0,clipPath:0,defs:0,desc:0,ellipse:0,feBlend:0,feColorMatrix:0,feComponentTransfer:0,feComposite:0,feConvolveMatrix:0,feDiffuseLighting:0,feDisplacementMap:0,feDistantLight:0,feFlood:0,feFuncA:0,feFuncB:0,feFuncG:0,feFuncR:0,feGaussianBlur:0,feImage:0,feMerge:0,feMergeNode:0,feMorphology:0,feOffset:0,fePointLight:0,feSpecularLighting:0,feSpotLight:0,feTile:0,feTurbulence:0,filter:0,foreignObject:0,g:0,image:0,line:0,linearGradient:0,marker:0,mask:0,metadata:0,path:0,pattern:0,polygon:0,polyline:0,radialGradient:0,rect:0,stop:0,svg:0,switch:0,symbol:0,text:0,textPath:0,tspan:0,use:0,view:0},dh=/^(a(ll|t|u)|base[FP]|c(al|lipPathU|on)|di|ed|ex|filter[RU]|g(lyphR|r)|ke|l(en|im)|ma(rker[HUW]|s)|n|pat|pr|point[^e]|re[^n]|s[puy]|st[^or]|ta|textL|vi|xC|y|z)/;function Pt(t){const e=document.createDocumentFragment();return Or(t.children,e),e}function ph(t,e,i){e={...e,children:i};const r=new t(e),n=r.render();return"ref"in e&&Jn(e.ref,r),n}function g(t,e){let{children:i,...r}=e;!r.namespaceURI&&hh[t]===0&&(r={...r,namespaceURI:ch});let n;if(Cr(t)){if(n=r.namespaceURI?document.createElementNS(r.namespaceURI,t):document.createElement(t),bh(r,n),Or(i,n),n instanceof window.HTMLSelectElement&&r.value!=null)if(r.multiple===!0&&Array.isArray(r.value)){const s=r.value.map(o=>String(o));n.querySelectorAll("option").forEach(o=>o.selected=s.includes(o.value))}else n.value=r.value;Jn(r.ref,n)}else if(Fi(t))Qt(t.defaultProps)&&(r={...t.defaultProps,...r}),n=ih(t)?ph(t,r,i):t({...r,children:i});else throw new TypeError(`Invalid JSX element type: ${t}`);return n}function mh(t,e){for(var i=arguments.length,r=new Array(i>2?i-2:0),n=2;n<i;n++)r[n-2]=arguments[n];return(Cr(e)||Array.isArray(e))&&(r.unshift(e),e={}),e=e||{},e.children!=null&&!r.length&&({children:r,...e}=e),g(t,{...e,children:r},e.key)}function Jn(t,e){nh(t)?t.current=e:Fi(t)&&t(e)}function Or(t,e){if(rh(t))gh(t,e);else if(Cr(t)||oa(t))Xn(document.createTextNode(t),e);else if(t===null)Xn(document.createComment(""),e);else if(th(t))Xn(t,e);else if(lh(t)){const i=e.attachShadow(t.attr);Or(t.children,i),Jn(t.ref,i)}}function gh(t,e){for(const i of[...t])Or(i,e);return e}function Xn(t,e){e instanceof window.HTMLTemplateElement?e.content.appendChild(t):e.appendChild(t)}function Tr(t,e){return t.replace(/[A-Z]/g,i=>e+i.toLowerCase())}function ca(t,e){e==null||e===!1||(Array.isArray(e)?e.forEach(i=>ca(t,i)):Cr(e)?t.setAttribute("style",e):Qt(e)&&Gn(e,(i,r)=>{r.indexOf("-")===0?t.style.setProperty(r,i):oa(i)&&Qn[r]!==0?t.style[r]=i+"px":t.style[r]=i}))}function yh(t,e,i){switch(t){case"xlinkActuate":case"xlinkArcrole":case"xlinkHref":case"xlinkRole":case"xlinkShow":case"xlinkTitle":case"xlinkType":ua(i,uh,Tr(t,":"),e);return;case"xmlnsXlink":ai(i,Tr(t,":"),e);return;case"xmlBase":case"xmlLang":case"xmlSpace":ua(i,fh,Tr(t,":"),e);return}switch(t){case"htmlFor":ai(i,"for",e);return;case"dataset":Gn(e,(r,n)=>{r!=null&&(i.dataset[n]=r)});return;case"innerHTML":case"innerText":case"textContent":la(e)&&(i[t]=e);return;case"dangerouslySetInnerHTML":Qt(e)&&(i.innerHTML=e.__html);return;case"value":if(e==null||i instanceof window.HTMLSelectElement)return;if(i instanceof window.HTMLTextAreaElement){i.value=e;return}break;case"spellCheck":i.spellcheck=e;return;case"class":case"className":Fi(e)?e(i):ai(i,"class",Yn(e));return;case"ref":case"namespaceURI":return;case"style":ca(i,e);return;case"on":case"onCapture":Gn(e,(r,n)=>{i.addEventListener(n,r,t==="onCapture")});return}if(Fi(e)){if(t[0]==="o"&&t[1]==="n"){let r=t.toLowerCase();const n=r.endsWith("capture");if(r==="ondoubleclick"?r="ondblclick":n&&r==="ondoubleclickcapture"&&(r="ondblclickcapture"),!n&&i[r]===null)i[r]=e;else if(n)i.addEventListener(r.substring(2,r.length-7),e,!0);else{let s;r in window?s=r.substring(2):s=r[2]+t.slice(3),i.addEventListener(s,e)}}}else Qt(e)?i[t]=e:e===!0?ai(i,t,""):e!==!1&&e!=null&&(i instanceof SVGElement&&!dh.test(t)?ai(i,Tr(t,"-"),e):ai(i,t,e))}function ai(t,e,i){t.setAttribute(e,i)}function ua(t,e,i,r){t.setAttributeNS(e,i,r)}function bh(t,e){for(const i of Pr(t))yh(i,t[i],e);return e}const Ir=Object.keys;function wh(t){return typeof t=="boolean"}function vh(t){return t&&typeof t.nodeType=="number"}function Zn(t){return typeof t=="string"}function fa(t){return typeof t=="number"}function Yt(t){return typeof t=="object"?t!==null:Bi(t)}function Bi(t){return typeof t=="function"}function _h(t){return!!(t&&t.isComponent)}function xh(t){return Yt(t)&&typeof t.length=="number"&&typeof t.nodeType!="number"}function es(t,e){if(t)for(const i of Ir(t))e(t[i],i)}function Sh(t){return Yt(t)&&"current"in t}const ts={animationIterationCount:0,borderImageOutset:0,borderImageSlice:0,borderImageWidth:0,boxFlex:0,boxFlexGroup:0,boxOrdinalGroup:0,columnCount:0,columns:0,flex:0,flexGrow:0,flexPositive:0,flexShrink:0,flexNegative:0,flexOrder:0,gridArea:0,gridRow:0,gridRowEnd:0,gridRowSpan:0,gridRowStart:0,gridColumn:0,gridColumnEnd:0,gridColumnSpan:0,gridColumnStart:0,fontWeight:0,lineClamp:0,lineHeight:0,opacity:0,order:0,orphans:0,tabSize:0,widows:0,zIndex:0,zoom:0,fillOpacity:0,floodOpacity:0,stopOpacity:0,strokeDasharray:0,strokeDashoffset:0,strokeMiterlimit:0,strokeOpacity:0,strokeWidth:0};function kh(t,e){return t+e.charAt(0).toUpperCase()+e.substring(1)}const Eh=["Webkit","ms","Moz","O"];Ir(ts).forEach(t=>{Eh.forEach(e=>{ts[kh(e,t)]=0})});const $h=Symbol.for("jsx-dom:type");var ha=function(t){return t.ShadowRoot="ShadowRoot",t}(ha||{});function Ph(t){return t!=null&&t[$h]===ha.ShadowRoot}const Ch="http://www.w3.org/2000/svg",Oh="http://www.w3.org/1999/xlink",Th="http://www.w3.org/XML/1998/namespace";function da(t){return!wh(t)&&t!=null}function is(t){return Array.isArray(t)?t.map(is).filter(Boolean).join(" "):Yt(t)?Symbol.iterator in t?is(Array.from(t)):Ir(t).filter(e=>t[e]).join(" "):da(t)?""+t:""}const Ih={animate:0,circle:0,clipPath:0,defs:0,desc:0,ellipse:0,feBlend:0,feColorMatrix:0,feComponentTransfer:0,feComposite:0,feConvolveMatrix:0,feDiffuseLighting:0,feDisplacementMap:0,feDistantLight:0,feFlood:0,feFuncA:0,feFuncB:0,feFuncG:0,feFuncR:0,feGaussianBlur:0,feImage:0,feMerge:0,feMergeNode:0,feMorphology:0,feOffset:0,fePointLight:0,feSpecularLighting:0,feSpotLight:0,feTile:0,feTurbulence:0,filter:0,foreignObject:0,g:0,image:0,line:0,linearGradient:0,marker:0,mask:0,metadata:0,path:0,pattern:0,polygon:0,polyline:0,radialGradient:0,rect:0,stop:0,svg:0,switch:0,symbol:0,text:0,textPath:0,tspan:0,use:0,view:0},Ah=/^(a(ll|t|u)|base[FP]|c(al|lipPathU|on)|di|ed|ex|filter[RU]|g(lyphR|r)|ke|l(en|im)|ma(rker[HUW]|s)|n|pat|pr|point[^e]|re[^n]|s[puy]|st[^or]|ta|textL|vi|xC|y|z)/;function Rh(t){const e=document.createDocumentFragment();return Ar(t.children,e),e}function Lh(t,e,i){e={...e,children:i};const r=new t(e),n=r.render();return"ref"in e&&rs(e.ref,r),n}function de(t,e){let{children:i,...r}=e;!r.namespaceURI&&Ih[t]===0&&(r={...r,namespaceURI:Ch});let n;if(Zn(t)){if(n=r.namespaceURI?document.createElementNS(r.namespaceURI,t):document.createElement(t),Dh(r,n),Ar(i,n),n instanceof window.HTMLSelectElement&&r.value!=null)if(r.multiple===!0&&Array.isArray(r.value)){const s=r.value.map(o=>String(o));n.querySelectorAll("option").forEach(o=>o.selected=s.includes(o.value))}else n.value=r.value;rs(r.ref,n)}else if(Bi(t))Yt(t.defaultProps)&&(r={...t.defaultProps,...r}),n=_h(t)?Lh(t,r,i):t({...r,children:i});else throw new TypeError(`Invalid JSX element type: ${t}`);return n}function rs(t,e){Sh(t)?t.current=e:Bi(t)&&t(e)}function Ar(t,e){if(xh(t))Nh(t,e);else if(Zn(t)||fa(t))ns(document.createTextNode(t),e);else if(t===null)ns(document.createComment(""),e);else if(vh(t))ns(t,e);else if(Ph(t)){const i=e.attachShadow(t.attr);Ar(t.children,i),rs(t.ref,i)}}function Nh(t,e){for(const i of[...t])Ar(i,e);return e}function ns(t,e){e instanceof window.HTMLTemplateElement?e.content.appendChild(t):e.appendChild(t)}function Rr(t,e){return t.replace(/[A-Z]/g,i=>e+i.toLowerCase())}function pa(t,e){e==null||e===!1||(Array.isArray(e)?e.forEach(i=>pa(t,i)):Zn(e)?t.setAttribute("style",e):Yt(e)&&es(e,(i,r)=>{r.indexOf("-")===0?t.style.setProperty(r,i):fa(i)&&ts[r]!==0?t.style[r]=i+"px":t.style[r]=i}))}function Mh(t,e,i){switch(t){case"xlinkActuate":case"xlinkArcrole":case"xlinkHref":case"xlinkRole":case"xlinkShow":case"xlinkTitle":case"xlinkType":ma(i,Oh,Rr(t,":"),e);return;case"xmlnsXlink":li(i,Rr(t,":"),e);return;case"xmlBase":case"xmlLang":case"xmlSpace":ma(i,Th,Rr(t,":"),e);return}switch(t){case"htmlFor":li(i,"for",e);return;case"dataset":es(e,(r,n)=>{r!=null&&(i.dataset[n]=r)});return;case"innerHTML":case"innerText":case"textContent":da(e)&&(i[t]=e);return;case"dangerouslySetInnerHTML":Yt(e)&&(i.innerHTML=e.__html);return;case"value":if(e==null||i instanceof window.HTMLSelectElement)return;if(i instanceof window.HTMLTextAreaElement){i.value=e;return}break;case"spellCheck":i.spellcheck=e;return;case"class":case"className":Bi(e)?e(i):li(i,"class",is(e));return;case"ref":case"namespaceURI":return;case"style":pa(i,e);return;case"on":case"onCapture":es(e,(r,n)=>{i.addEventListener(n,r,t==="onCapture")});return}if(Bi(e)){if(t[0]==="o"&&t[1]==="n"){let r=t.toLowerCase();const n=r.endsWith("capture");if(r==="ondoubleclick"?r="ondblclick":n&&r==="ondoubleclickcapture"&&(r="ondblclickcapture"),!n&&i[r]===null)i[r]=e;else if(n)i.addEventListener(r.substring(2,r.length-7),e,!0);else{let s;r in window?s=r.substring(2):s=r[2]+t.slice(3),i.addEventListener(s,e)}}}else Yt(e)?i[t]=e:e===!0?li(i,t,""):e!==!1&&e!=null&&(i instanceof SVGElement&&!Ah.test(t)?li(i,Rr(t,"-"),e):li(i,t,e))}function li(t,e,i){t.setAttribute(e,i)}function ma(t,e,i,r){t.setAttributeNS(e,i,r)}function Dh(t,e){for(const i of Ir(t))Mh(i,t[i],e);return e}var ss=(t=>(t.Init="modal.init",t.BeforeShow="modal.beforeShow",t.Show="modal.show",t.BeforeClose="modal.beforeClose",t.Close="modal.close",t.Destroy="modal.destroy",t.ToastShow="toast.show",t.ToastClose="toast.close",t))(ss||{});let jh=0;const ga=t=>`${t}-${++jh}`;function qi(t){return t instanceof Node?t:document.createTextNode(String(t))}function Ct(t,e){if(!t)throw new Error(`${e??"Element"} not found`);return t}function ya(t){const e=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");return Array.from(t.querySelectorAll(e)).filter(i=>!!(i.offsetWidth||i.offsetHeight||i.getClientRects().length))}function Te(t,e={}){const i=document.createElement(t);if(e.className&&(i.className=e.className),e.html!=null&&(i.innerHTML=e.html),e.text!=null&&(i.textContent=e.text),e.attrs)for(const[r,n]of Object.entries(e.attrs))i.setAttribute(r,n);return i}const Uh=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/i.test(navigator.platform),ba=["ctrl","alt","shift","meta"];function Fh(t){if(!t)return null;const e=String(t).trim().toLowerCase().split(/[+\-\s]+/g).filter(Boolean),i=[];let r=null;const n=o=>{i.includes(o)||i.push(o)};for(const o of e){let a=o;if(a==="control"||a==="ctrl"){n("ctrl");continue}if(a==="alt"||a==="option"){n("alt");continue}if(a==="shift"){n("shift");continue}if(a==="meta"||a==="cmd"||a==="command"||a==="super"){n("meta");continue}if(a==="mod"){n(Uh?"meta":"ctrl");continue}a==="esc"&&(a="escape"),a==="return"&&(a="enter"),(a==="space"||a==="spacebar")&&(a="space"),r=a}const s=ba.filter(o=>i.includes(o));return!r||r===""?s.length?s.join("+"):null:s.length?`${s.join("+")}+${r}`:r}function Bh(t){const e=[];t.ctrlKey&&e.push("ctrl"),t.altKey&&e.push("alt"),t.shiftKey&&e.push("shift"),t.metaKey&&e.push("meta");let i=t.key;i===" "&&(i="space");const r=(i.length,i.toLowerCase()),n=ba.filter(s=>e.includes(s));return n.length?`${n.join("+")}+${r}`:r}class qh{constructor(){this.zBase=1e3,this.stack=[]}push(e){this.stack.push(e),this.syncZ()}remove(e){this.stack=this.stack.filter(i=>i!==e),this.syncZ()}top(){return this.stack[this.stack.length-1]}closeAll(e,i){const r=new Set((Array.isArray(i)?i:i?[i]:[]).map(String)),n=new Set((Array.isArray(e)?e:e?[e]:[]).map(String));[...this.stack].reverse().forEach(s=>{const o=s.modalId,a=n.size?n.has(s.pluginName):!0,l=r.has(o);a&&!l&&s.close()})}removeAll(){[...this.stack].forEach(e=>e.destroy()),this.stack=[]}syncZ(){this.stack.forEach((e,i)=>e.setZIndex(this.zBase+i*2))}lockBodyScroll(){document.body.classList.add("ipe-modal-no-scroll")}unlockBodyScroll(){document.body.classList.remove("ipe-modal-no-scroll")}}const je=new qh;let Hh=class Ku{constructor(e={}){this.backdropId=ga("ipe-modal-backdrop"),this.modalId=ga("ipe-modal"),this.numberId=this.modalId.split("-")[1],this._isDestroyed=!1,this.pluginName="normalModal",this.buttonElsLeft=[],this.buttonElsRight=[],this.keyMap=new Map,this.isOpen=!1,this.isToast=!1,this.isDragging=!1,this.dragStartX=0,this.dragStartY=0,this.modalStartX=0,this.modalStartY=0,this.Event=ss,this.DEFAULT_OPTIONS={className:"",sizeClass:"auto",center:!0,fitScreen:!1,closeIcon:!0,bodyScroll:!1,outSideClose:!0,backdrop:!0,animation:!1,animationSpeed:200},this._hooks=[],this.startCloseTimer=i=>{this.stopCloseTimer(),this.closeTimer=window.setTimeout(()=>this.close(),i)},this.stopCloseTimer=()=>{this.closeTimer&&window.clearTimeout(this.closeTimer),this.closeTimer=void 0},this.onDragMove=i=>{if(!this.isDragging)return;i.preventDefault();const r=i.clientX-this.dragStartX,n=i.clientY-this.dragStartY,s=this.get$modal(),o=this.modalStartX+r,a=this.modalStartY+n;s.style.left=`${o}px`,s.style.top=`${a}px`},this.onDragEnd=()=>{if(!this.isDragging)return;this.isDragging=!1,document.removeEventListener("pointermove",this.onDragMove),document.removeEventListener("pointerup",this.onDragEnd);const i=this.get$modal(),r=this.get$window();i.classList.remove("is-dragging"),r.style.animation="none",requestAnimationFrame(()=>{this.applyAnimation(!0)})},this.options={...this.DEFAULT_OPTIONS,...e},this.options.backdrop===!1&&e.bodyScroll===void 0&&(this.options.bodyScroll=!0)}get isDestroyed(){return this._isDestroyed}init(){if(this.$modal)return this;const e=this.options.backdrop!==!1;let i;e&&(i=Te("div",{className:"ipe-modal-backdrop",attrs:{id:this.backdropId,"data-modal-id":this.modalId}}));const r=Te("div",{className:"ipe-modal-modal",attrs:{id:this.modalId,role:"dialog","aria-modal":"true",tabindex:"-1"}});if(r.modal=this,!e){r.classList.add("no-backdrop");const y=window.pageYOffset||document.documentElement.scrollTop,m=window.pageXOffset||document.documentElement.scrollLeft,E=window.innerWidth;r.style.top=`${y+60}px`,this.once("modal.show",()=>{r.style.left=`${m+E/2-r.offsetWidth/2}px`})}const n=Te("div",{className:`ipe-modal-modal__window size--${this.options.sizeClass||"auto"} plugin--${this.pluginName}`});n.modal=this;const s=Te("div",{className:"ipe-modal-modal__header"}),o=`${this.modalId}-title`,a=Te("h2",{className:"ipe-modal-modal__title",attrs:{id:o,role:"heading","aria-level":"2"}});r.setAttribute("aria-labelledby",o);const l=Te("div",{className:"ipe-modal-modal__icons"});if(this.options.closeIcon){const y=Te("button",{className:"ipe-modal-modal__close",attrs:{type:"button","aria-label":"Close"},html:"×"});y.addEventListener("click",()=>{let m=!0;typeof this.options.onClickClose=="function"?this.options.onClickClose(this)===!1&&(m=!1):this.options.onClickClose===!1&&(m=!1),m&&this.close()}),l.appendChild(y)}s.append(a,l),!e&&this.options.draggable&&(s.style.cursor="move",s.style.userSelect="none",s.addEventListener("pointerdown",this.onDragStart.bind(this)));const c=Te("div",{className:"ipe-modal-modal__content"}),u=Te("div",{className:"ipe-modal-modal__footer"}),f=Te("div",{className:"ipe-modal-modal__buttons ipe-modal-modal__buttons--left"}),d=Te("div",{className:"ipe-modal-modal__buttons ipe-modal-modal__buttons--right"});return u.append(f,d),n.append(s,c,u),r.appendChild(n),this.$backdrop=i,this.$modal=r,this.$window=n,this.$header=s,this.$title=a,this.$icons=l,this.$content=c,this.$footer=u,this.$buttonsLeft=f,this.$buttonsRight=d,this.options.title&&this.setTitle(this.options.title),this.options.content&&this.setContent(this.options.content),this.options.buttons?.length?this.setButtons(this.options.buttons):u.style.display="none",this.options.center&&this.$modal.classList.add("is-centered"),this.options.fitScreen&&this.$modal.classList.add("is-fullscreen"),this.options.iconButtons&&this.$header.classList.add("has-icon-buttons"),this.options.className&&this.$window.classList.add(...this.options.className.split(/[\s\.#+]+/g).filter(Boolean)),typeof this.options.fixedHeight=="number"?this.$window.style.height=`${Math.max(0,this.options.fixedHeight)}px`:this.options.fixedHeight===!0&&this.$window.classList.add("is-fixed-height"),i&&i.addEventListener("pointerdown",y=>{this.options.outSideClose&&y.target===i&&this.close()}),this.onKeyDown=this.onKeyDown.bind(this),this.emit("modal.init"),this}show(){if(this.$modal||this.init(),!this.$modal)throw new Error("Failed to initialize modal");if(this.isOpen)return this;{const r=this.emit("modal.beforeShow",!0),n=this.options.beforeShow?this.options.beforeShow(this)!==!1:!0;if(!r||!n)return this}this.lastFocused=document.activeElement??null,this.$backdrop&&document.body.appendChild(this.$backdrop),document.body.appendChild(this.$modal),this.shouldLockBodyOnOpen()&&je.lockBodyScroll(),requestAnimationFrame(()=>{this.$backdrop?.classList.add("is-open"),this.$modal.classList.add("is-open"),this.applyAnimation(!0),this.focusFirst()}),document.addEventListener("keydown",this.onKeyDown),je.push(this),this.isOpen=!0,this.options.onShow?.(this),this.emit("modal.show");const e=typeof this.options.closeAfter=="number"?this.options.closeAfter:this.options.closeAfter?.time,i=typeof this.options.closeAfter=="number"?!0:this.options.closeAfter?.resetOnHover;return e&&(this.startCloseTimer(e),i&&(this.$window?.addEventListener("mouseenter",this.stopCloseTimer),this.$window?.addEventListener("mouseleave",()=>this.startCloseTimer(e)))),this}close(){if(!this.isOpen)return this;{const s=this.emit("modal.beforeClose",!0),o=this.options.beforeClose?this.options.beforeClose(this)!==!1:!0;if(!s||!o)return this}if(this.isToast){this.applyAnimation(!1),this.emit("modal.close"),this.emit("toast.close");const s=this.isAnimationDisabled()?0:this.options.animationSpeed??200;let o=!1;const a=()=>{o||(o=!0,this.destroy(),this.options.onClose?.(this))},l=(c,u)=>{const f=()=>{c.removeEventListener(u,f),a()};c.addEventListener(u,f,{once:!0})};return s>0&&this.$window?(l(this.$window,"transitionend"),l(this.$window,"animationend"),window.setTimeout(a,s+20)):window.setTimeout(a,s),this}this.applyAnimation(!1),this.$backdrop?.classList.remove("is-open"),this.$modal?.classList.remove("is-open"),this.emit("modal.close");const e=this.isAnimationDisabled()?0:this.options.animationSpeed??200;let i=!1;const r=()=>{i||(i=!0,this.destroy(),this.options.onClose?.(this))},n=(s,o)=>{const a=()=>{s.removeEventListener(o,a),r()};s.addEventListener(o,a,{once:!0})};return e>0&&this.$window?(n(this.$window,"transitionend"),n(this.$window,"animationend"),window.setTimeout(r,e+20)):window.setTimeout(r,e),this}destroy(){if(this._isDestroyed)return this;if(this.stopCloseTimer(),document.removeEventListener("keydown",this.onKeyDown),this.isDragging&&this.onDragEnd(),this.$window?.removeEventListener("mouseenter",this.stopCloseTimer),this.isToast){this.$window?.parentElement&&this.$window.parentElement.removeChild(this.$window);const e=Jt.indexOf(this);e!==-1&&Jt.splice(e,1)}else this.$backdrop?.parentElement&&this.$backdrop.parentElement.removeChild(this.$backdrop),this.$modal?.parentElement&&this.$modal.parentElement.removeChild(this.$modal),je.remove(this),this.shouldUnlockBodyOnClose()&&je.unlockBodyScroll();return this.isOpen=!1,this.lastFocused?.focus?.(),this.emit("modal.destroy"),this._isDestroyed=!0,this}get$backdrop(){return this.$backdrop}get$modal(){return Ct(this.$modal,"modal")}get$window(){return Ct(this.$window,"window")}get$header(){return Ct(this.$header,"header")}get$title(){return Ct(this.$title,"title")}get$content(){return Ct(this.$content,"content")}get$icons(){return Ct(this.$icons,"icons")}get$buttons(e){return e==="leftButtons"?Ct(this.$buttonsLeft,"leftButtons"):e==="rightButtons"?Ct(this.$buttonsRight,"rightButtons"):Ct(this.$footer,"buttons")}setTitle(e){const i=this.get$title();return i.innerHTML="",i.append(qi(e)),this}setContent(e,i="replace"){const r=this.get$content();return i==="replace"?(r.innerHTML="",r.append(qi(e))):i==="append"?r.append(qi(e)):r.prepend(qi(e)),this}setIcons(e){const i=this.get$icons();i.innerHTML="";for(const r of e){const n=Te("button",{className:`ipe-modal-modal__icon ${r.className}`,attrs:{type:"button"}});n.addEventListener("click",r.method),i.appendChild(n)}return this}setButtons(e,i){const r=this.$buttonsLeft,n=this.$buttonsRight;[r,n].forEach(o=>o.innerHTML=""),this.buttonElsLeft=[],this.buttonElsRight=[],this.keyMap.clear();const s=i??this.$footer;if(s===this.$footer)e.forEach(o=>this.addButton(o)),e.length===0&&(this.$footer.style.display="none");else{s.innerHTML="";for(const o of e){const a=this.generateButton(o);s.appendChild(a)}}return this}generateButton(e){const i=e.type??"button",r=i==="link"?Te("a"):Te("button",{attrs:{type:"button"}});e.id&&(r.id=e.id),r.className=`ipe-modal-btn ${e.className??""}`.trim();const n=qi(e.label??"OK");if(r.append(n),i==="link"&&e.href&&(r.href=e.href),e.method&&r.addEventListener("click",s=>{if(r._ipe_tmpDisabled){s.preventDefault(),s.stopPropagation();return}e.method.call(r,s,this)}),typeof e.closeAfter=="number"&&e.closeAfter>=0&&r.addEventListener("click",()=>{window.setTimeout(()=>this.close(),e.closeAfter)}),typeof e.enableAfter=="number"&&e.enableAfter>0){i==="button"&&r.setAttribute("disabled","true"),r._ipe_tmpDisabled=!0,r.setAttribute("aria-disabled","true");const s=()=>{i==="button"&&r.removeAttribute("disabled"),delete r._ipe_tmpDisabled,r.removeAttribute("aria-disabled")};window.setTimeout(s,e.enableAfter)}if(e.keyPress){const s=String(e.keyPress).split(/[\,\|]+/g).map(o=>o.trim()).filter(Boolean);for(const o of s){const a=Fh(o);a&&this.keyMap.set(a,r)}}return r}addButton(e,i){this.$footer&&(this.$footer.style.display="");const r=e.side??"right",n=r==="left"?this.$buttonsLeft:this.$buttonsRight,s=r==="left"?this.buttonElsLeft:this.buttonElsRight,o=this.generateButton(e),a=Math.max(0,Math.min(i??s.length,s.length));return a>=n.children.length?n.appendChild(o):n.insertBefore(o,n.children[a]),s.splice(a,0,o),this}removeButton(e){const i=this.buttonElsLeft,r=this.buttonElsRight,n=[...i,...r];let s=null;if(e==="*")return n.forEach(a=>{this.keyMap.delete(a.id),a.parentElement?.removeChild(a)}),this.$footer&&(this.$footer.style.display="none"),this;if(typeof e=="number"?s=n[e]??null:typeof e=="string"?s=n.find(a=>a.id===e)??null:e instanceof HTMLElement&&(s=n.find(a=>a===e)??null),!s)return this;for(const[a,l]of this.keyMap.entries())l===s&&this.keyMap.delete(a);let o=i.indexOf(s);return o!==-1?(i.splice(o,1),s.parentElement?.removeChild(s)):(o=r.indexOf(s),o!==-1&&(r.splice(o,1),s.parentElement?.removeChild(s))),i.length===0&&r.length===0&&this.$footer&&(this.$footer.style.display="none"),this}changePreviewState(){return this.get$modal().classList.toggle("is-fullscreen"),this}setModalHeight(e,i="height"){const r=this.get$window(),n=Math.max(0,window.innerHeight-e);return r.style[i]=`${n}px`,n}setOptions(e,i){return typeof e=="string"?this.options[e]=i:Object.assign(this.options,e),this}setPluginName(e){return this.$window&&(this.$window.className=this.$window.className.replace(`plugin--${this.pluginName}`,`plugin--${e}`)),this.pluginName=e,this}applyAnimation(e){const i=this.get$modal(),r=this.get$window(),n=this.$backdrop,s=this.options.modalAnimation??this.options.animation,o=typeof s=="string"?s:s&&(e?s.show:s.hide),a=this.options.backdropAnimation??this.options.animation,l=typeof a=="string"?a:a&&(e?a.show:a.hide);!o||o===!1?(i.style.transition="none",r.style.animation="none",r.style.removeProperty("--ipe-modal-anim")):(i.style.removeProperty("transition"),r.style.setProperty("--ipe-modal-anim",o)),n&&(!l||l===!1?n.style.transition="none":n.style.removeProperty("transition"))}on(e,i){return this._hooks.push({type:e,listener:i}),()=>this.off(e,i)}off(e,i){return this._hooks=this._hooks.filter(r=>r.type!==e&&(i?r.listener!==i:!0)),this}once(e,i){const r=this.on(e,n=>(r(),i(n)));return r}emit(e,i){const r=this._hooks.filter(a=>a.type===e);let n=!0;for(const a of r){const l=new CustomEvent(e,{detail:this,cancelable:i}),c=a.listener(l);if(l.defaultPrevented&&(n=!1),c===!1&&(n=!1),!n)break}const s=this.$modal??document.body,o=new CustomEvent(e,{detail:this,cancelable:i});return(!s.dispatchEvent(o)||o.defaultPrevented)&&(n=!1),n}focusFirst(){const e=this.get$modal(),i=ya(e);i.length?i[0].focus():e.focus({preventScroll:!0})}onKeyDown(e){if(je.top()!==this)return;if(e.key==="Escape"){e.preventDefault(),this.close();return}const i=this.get$modal();if(!i.contains(document.activeElement))return;if(e.key==="Tab"){const a=ya(i);if(!a.length)return;const l=a[0],c=a[a.length-1],u=document.activeElement;e.shiftKey&&u===l?(e.preventDefault(),c.focus()):!e.shiftKey&&u===c&&(e.preventDefault(),l.focus())}const r=e.ctrlKey||e.altKey||e.metaKey,n=e.target;if(!r&&(n&&["INPUT","TEXTAREA"].includes(n.tagName)||n.contentEditable==="true"))return;const s=Bh(e),o=this.keyMap.get(s);if(o){e.preventDefault(),o.click();return}}setZIndex(e){this.$backdrop&&(this.$backdrop.style.zIndex=String(e)),this.$modal&&(this.$modal.style.zIndex=String(e+1))}bringToFront(){return je.remove(this),je.push(this),this}isAnimationDisabled(){const e=this.options.modalAnimation??this.options.animation;return e===!1||e==null}shouldLockBodyOnOpen(){return this.options.backdrop===!1||this.options.bodyScroll!==!1?!1:!je.stack.some(e=>e!==this&&e.options.backdrop!==!1&&e.options.bodyScroll===!1)}shouldUnlockBodyOnClose(){return this.options.backdrop===!1||this.options.bodyScroll!==!1?!1:!je.stack.some(e=>e!==this&&e.options.backdrop!==!1&&e.options.bodyScroll===!1)}onDragStart(e){if(this.options.backdrop!==!1||!this.options.draggable)return;e.preventDefault(),this.isDragging=!0,this.bringToFront(),this.dragStartX=e.clientX,this.dragStartY=e.clientY;const i=this.get$modal(),r=i.getBoundingClientRect();this.modalStartX=r.left+window.pageXOffset,this.modalStartY=r.top+window.pageYOffset,i.style.transform="none",i.style.left=`${this.modalStartX}px`,i.style.top=`${this.modalStartY}px`,document.addEventListener("pointermove",this.onDragMove),document.addEventListener("pointerup",this.onDragEnd),i.classList.add("is-dragging")}showToast(e){this.$window||this.init();const i=zh(e.position??"top right"),r=this.get$window();this.isToast=!0,r.style.pointerEvents="auto",this.applyAnimation(!0),i.appendChild(r);const n=(typeof this.options.closeAfter=="number"?this.options.closeAfter:this.options.closeAfter?.time)??3e3,s=(typeof this.options.closeAfter=="number"?!0:this.options.closeAfter?.resetOnHover)??!0;return n>0&&(this.startCloseTimer(n),s&&(r.addEventListener("mouseenter",this.stopCloseTimer),r.addEventListener("mouseleave",()=>this.startCloseTimer(n)))),this.isOpen=!0,this.options.onShow?.(this),Jt.push(this),this.emit("toast.show"),this.emit("modal.show"),this}static show(e,i){return new this(e).init().show()}static createObject(e,i){return new this(e)}static close(e){if(!e){const s=je.top();return s?.close(),s}const i=typeof e=="string"?e:e.id,r=je.stack.find(s=>s.modalId===i);if(r)return r.close(),r;const n=Jt.find(s=>s.modalId===i);return n?.close(),n}static closeAll(e,i){const r=new Set((Array.isArray(i)?i:i?[i]:[]).map(String)),n=new Set((Array.isArray(e)?e:e?[e]:[]).map(String));return je.closeAll(e,i),[...Jt].forEach(s=>{const o=s.modalId,a=n.size?n.has(s.pluginName):!0,l=r.has(o);a&&!l&&s.close()}),je.top()??new Ku}static removeAll(){je.removeAll(),[...Jt].forEach(e=>e.destroy())}static dialog(e,i){const r=new this({sizeClass:"dialog",buttons:[{label:"OK",className:"is-primary is-ghost",method:(n,s)=>{i?.(n,s),n.defaultPrevented||r.close()},keyPress:"Enter"}],...e});return r.init().show()}static confirm(e,i){e.title??(e.title="Confirm"),e.content??(e.content="Are you sure you want to perform this action?");const r=e.okBtn??{label:"OK",className:"is-primary is-ghost"},n=e.cancelBtn??{label:"Cancel",className:"is-danger is-ghost"},s=new this({sizeClass:"dialog",...e,buttons:[{label:n.label,className:n.className,keyPress:"n",method:()=>s.close()},{label:r.label,className:r.className,keyPress:"y",method:o=>{i?.(o,s),o.defaultPrevented||s.close()}}]});return s.init().show()}static getDefaultNotifyIcon(e){switch(e){case"success":return de("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-circle-check",children:[de("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),de("path",{d:"M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z"})]});case"error":return de("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-alert-triangle",children:[de("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),de("path",{d:"M12 1.67c.955 0 1.845 .467 2.39 1.247l.105 .16l8.114 13.548a2.914 2.914 0 0 1 -2.307 4.363l-.195 .008h-16.225a2.914 2.914 0 0 1 -2.582 -4.2l.099 -.185l8.11 -13.538a2.914 2.914 0 0 1 2.491 -1.403zm.01 13.33l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -7a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z"})]});case"warning":return de("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-alert-circle",children:[de("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),de("path",{d:"M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -19.995 .324l-.005 -.324l.004 -.28c.148 -5.393 4.566 -9.72 9.996 -9.72zm.01 13l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -8a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z"})]});case"info":return de("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-info-circle",children:[de("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),de("path",{d:"M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -19.995 .324l-.005 -.324l.004 -.28c.148 -5.393 4.566 -9.72 9.996 -9.72zm0 9h-1l-.117 .007a1 1 0 0 0 0 1.986l.117 .007v3l.007 .117a1 1 0 0 0 .876 .876l.117 .007h1l.117 -.007a1 1 0 0 0 .876 -.876l.007 -.117l-.007 -.117a1 1 0 0 0 -.764 -.857l-.112 -.02l-.117 -.006v-3l-.007 -.117a1 1 0 0 0 -.876 -.876l-.117 -.007zm.01 -3l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007z"})]});case"dialog":return de("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-message-dots",children:[de("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),de("path",{d:"M12 11v.01"}),de("path",{d:"M8 11v.01"}),de("path",{d:"M16 11v.01"}),de("path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3z"})]});case"confirm":return de("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-copy-check",children:[de("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),de("path",{d:"M18.333 6a3.667 3.667 0 0 1 3.667 3.667v8.666a3.667 3.667 0 0 1 -3.667 3.667h-8.666a3.667 3.667 0 0 1 -3.667 -3.667v-8.666a3.667 3.667 0 0 1 3.667 -3.667zm-3.333 -4c1.094 0 1.828 .533 2.374 1.514a1 1 0 1 1 -1.748 .972c-.221 -.398 -.342 -.486 -.626 -.486h-10c-.548 0 -1 .452 -1 1v9.998c0 .32 .154 .618 .407 .805l.1 .065a1 1 0 1 1 -.99 1.738a3 3 0 0 1 -1.517 -2.606v-10c0 -1.652 1.348 -3 3 -3zm1.293 9.293l-3.293 3.292l-1.293 -1.292a1 1 0 0 0 -1.414 1.414l2 2a1 1 0 0 0 1.414 0l4 -4a1 1 0 0 0 -1.414 -1.414"})]});default:return null}}static notify(e,i,r){var a,l,c,u;if(i?.overrideOther&&[...Jt].forEach(f=>f.close()),typeof i.title>"u"){const f=e||"Notification";i.title=f[0].toUpperCase()+f.slice(1).toLowerCase()}const n=i.icon??this.getDefaultNotifyIcon(e);n&&(n instanceof Element&&n.classList.add("ipe-modal-notify-icon"),i.title=de(Rh,{children:[n,i.title]})),i.okBtn&&((a=i.okBtn).label??(a.label="OK"),(l=i.okBtn).className??(l.className="is-primary is-ghost ok-btn"),i.okBtn.method=()=>{r?.(!0),o.close()}),i.cancelBtn&&((c=i.cancelBtn).label??(c.label="Cancel"),(u=i.cancelBtn).className??(u.className="is-danger is-ghost cancel-btn"),i.cancelBtn.method=()=>{r?.(!1),o.close()}),i.buttons=[i.cancelBtn,i.okBtn,...i.buttons??[]].filter(Boolean);const s=`is-notify type-${e||"default"} ${i.className??""}`,o=new this({...i,className:s,sizeClass:"auto",center:!1,fitScreen:!1,closeIcon:!0,outSideClose:!1,bodyScroll:!0,animation:i.animation??{show:"fadeIn",hide:"fadeOut"},buttons:i.buttons??[]});return o.setPluginName("toast"),o.showToast({position:i.position??"top right"})}};const Jt=[];function zh(t="top right"){const e="ipe-modal-toast-container",i=`${e}-${t.replace(/[\s-\.|\/]+/g,"-")}`;let r=document.getElementById(i);return r||(r=Te("div",{className:`${e} ${t}`,attrs:{id:i,"data-position":t}}),document.body.appendChild(r)),r}const Wh={ipe_progress:"_ipe_progress_so6hn_1"},Dt=t=>{const e=t.indeterminate??!0,i=g("div",{class:`${Wh.ipe_progress}`,"data-indeterminate":`${e}`,style:{width:"100%","--progress":t.progress?`${t.progress}%`:"0%"},...t});return i.setProgress=r=>{typeof r=="number"?(i.dataset.indeterminate="false",i.style.setProperty("--progress",`${r}%`)):(i.dataset.indeterminate="true",i.style.setProperty("--progress","0%"))},i};class _e extends Hh{constructor(e={}){e.className||(e.className=""),e.className+=" theme-ipe",e.modalAnimation||(e.modalAnimation={show:"ipe-modal-fade-in",hide:"ipe-modal-fade-out"}),super(e)}setLoadingState(e){if(this.get$window().classList.toggle("loading",e),e){const i=this.get$window().querySelectorAll("input:not([disabled]),button:not([disabled])");this._tmpDisabledActiveInputs=i,i.forEach(r=>{r.disabled=!0}),this.get$content().append(g("div",{id:"ipe-modalLoadingWrapper",style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"rgba(255, 255, 255, 0.5)",zIndex:2e3},children:g(Dt,{style:{width:"80%",maxWidth:"800px"}})}))}else{this.get$window().querySelector("#ipe-modalLoadingWrapper")?.remove();const i=this._tmpDisabledActiveInputs;i&&i.forEach(r=>{r.disabled=!1})}}}class Kh{constructor(e){this.ctx=e,this.IPEModal=_e,this.IPEModalEvent=ss,this.show=_e.show.bind(_e),this.createObject=_e.createObject.bind(_e),this.close=_e.close.bind(_e),this.closeAll=_e.closeAll.bind(_e),this.removeAll=_e.removeAll.bind(_e),this.dialog=_e.dialog.bind(_e),this.confirm=_e.confirm.bind(_e),this.notify=_e.notify.bind(_e),e.set("modal",this),e.on("dispose",()=>{_e.closeAll()})}}const wa=t=>{if(!t)return new URLSearchParams;if(t instanceof URLSearchParams)return t;if(typeof t!="object"||t?.constructor!==Object)throw new TypeError("only plain object is supported");const e=new URLSearchParams;for(const[i,r]of Object.entries(t))if(r!=null){if(Array.isArray(r)){for(const n of r)e.append(i,n?.toString());continue}if(typeof r=="object"&&r!==null&&r.constructor===Object){for(const[n,s]of Object.entries(r))s!=null&&e.set(`${i}[${n}]`,s?.toString());continue}e.set(i,r?.toString())}return e},va=(t,e,i)=>{const r=typeof t=="string"?new URL(t,window?.location?.origin):new URL(t),n=new URLSearchParams(r.search),s=wa(e);for(const[o,a]of s.entries())n.set(o,a);return r.search=n.toString(),r.hash="",r};var Vh=Object.create,os=Object.defineProperty,Gh=Object.getOwnPropertyDescriptor,_a=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),xa=t=>{throw TypeError(t)},Qh=(t,e,i)=>e in t?os(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Yh=(t,e)=>os(t,"name",{value:e,configurable:!0}),Jh=t=>[,,,Vh(t?.[_a("metadata")]??null)],Xh=["class","method","getter","setter","accessor","field","value","get","set"],Sa=t=>t!==void 0&&typeof t!="function"?xa("Function expected"):t,Zh=(t,e,i,r,n)=>({kind:Xh[t],name:e,metadata:r,addInitializer:s=>i._?xa("Already initialized"):n.push(Sa(s||null))}),ed=(t,e)=>Qh(e,_a("metadata"),t[3]),td=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},id=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&Gh(n,i));Yh(n,i);for(var m=r.length-1;m>=0;m--)l=Zh(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,Sa(o)&&(n=o);return ed(t,n),y&&os(n,i,y),u?c^4?s:y:n},ka,as,Ea;ka=[ke(["api","storage"])];class Lr extends(Ea=$t){constructor(e){super(e,"wiki",!1),this.ctx=e,this._data=void 0,this.CACHE_TTL=1e3*60*60*24,this.VERSION=2,this.db=void 0,this.logger=void 0,this.queryData={meta:"siteinfo|userinfo",siprop:"general|specialpagealiases|namespacealiases|namespaces|magicwords",uiprop:"groups|rights|blockinfo|options"},this.mwConfig={get:(i,r)=>window?.mw?.config?.get?.(i,r)??r,has:i=>window?.mw?.config?.exists?.(i)??!1,get values(){return window?.mw?.config?.values||{}}},this.db=e.storage.createDatabse("wiki-metadata",this.CACHE_TTL,this.VERSION),this.logger=e.logger("WIKI_METADATA")}get api(){return this.ctx.api}async start(){const e=await this.fetchFromCache();if(e)this._data=e,this.logger.debug("Using cached");else{const i=await this.fetchFromApi();this.saveToCache(i),this._data=i,this.logger.debug("Fetched from API")}this.logger.info("loaded",this._data),this.ctx.set("getUrl",this.getUrl.bind(this)),this.ctx.set("getSciprtUrl",this.getSciprtUrl.bind(this)),this.ctx.set("getMainpageUrl",this.getMainpageUrl.bind(this)),this.ctx.inject(["preferences"],i=>{i.preferences.registerCustomConfig("WikiMetadataService",te.object({WikiMetadataService:te.const(g("div",{children:[g("h3",{children:"Wiki Informations"}),g("ul",{children:[g("li",{children:[g("strong",{children:"Site:"})," ",this.general.sitename," (",this.landingPageUrl,")"]}),g("li",{children:[g("strong",{children:"User"}),": ",this.userInfo.name," (ID: ",this.userInfo.id,")"]}),g("li",{children:[g("strong",{children:"Groups"}),": ",this.userGroups.join(", ")||"None"]})]}),g("p",{children:g("button",{onClick:r=>{r.preventDefault(),this.invalidateCache().then(()=>{window.location.reload()})},children:"Clear caches and reload page"})})]})).role("raw-html")}).description("WikiMetadataService"),"general")})}get metadataCacheId(){return this.ctx.api.config.baseURL}async fetchFromApi(){return this.api.get({action:"query",...this.queryData}).then(({data:e})=>{if(typeof e?.query?.general>"u")throw new Error("Invalid siteinfo");return e.query}).catch(e=>(this.logger.error("Failed to fetch metadata",e),Promise.reject(e)))}async fetchFromCache(){const e=this.metadataCacheId,i=this.mwConfig.get("wgUserId",0),r=await this.db.get(e);return r&&typeof r=="object"&&r.general&&r.userinfo.id===i?r:(this.logger.info(r?"Cache mis-match":"Missing cache"),this.invalidateCache(),null)}async saveToCache(e){const i=this.metadataCacheId;return this.db.set(i,e)}async invalidateCache(){const e=this.metadataCacheId;return this.db.delete(e)}get _raw(){return this._data}get general(){return this._data.general}get specialPageAliases(){return this._data.specialpagealiases}get namespaceAliases(){return this._data.namespacealiases}get namespaces(){return this._data.namespaces}get namespaceMap(){const e=Object.values(this.namespaces).map(i=>({id:i.id,canonical:i.canonical,aliases:this.namespaceAliases.filter(r=>r.id===i.id).map(r=>r.alias)})).sort((i,r)=>i.id-r.id);return Reflect.defineProperty(this,"namespaceMap",{get:()=>e}),e}get magicWords(){return this._data.magicwords}get userInfo(){return this._data.userinfo}get userOptions(){return this.userInfo.options}get isUserBlocked(){return this.userInfo.blockedbyid&&this.userInfo.blockexpiry&&new Date(this.userInfo.blockexpiry).getTime()>Date.now()}get userGroups(){return this.userInfo.groups}get userRights(){return this.userInfo.rights}get baseUrl(){const e=this.general.server;return e.startsWith("//")?`${window?.location?.protocol||"https:"}//${e.slice(2)}`:e}get landingPageUrl(){return this.general.base}get mainPageName(){return this.general.mainpage}get mainPageUrl(){return this.getUrl(this.mainPageName)}get articlePath(){return this.general.articlepath}get scriptPath(){return this.general.scriptpath}get articleBaseUrl(){return`${this.baseUrl}${this.articlePath}`}get scriptBaseUrl(){return`${this.baseUrl}${this.scriptPath}`}getSciprtUrl(e="index"){return`${this.scriptBaseUrl}/${e.replace(/\.php$/,"")}.php`}getMainpageUrl(e){return va(this._data.general.base,e).toString()}getUrl(e,i){const r=wa(i);let n;return typeof e=="string"&&e!==""?n=new URL(`${this.articleBaseUrl.replace("$1",e)}`):typeof e=="number"?(r.set("curid",e.toString()),n=new URL(this.getSciprtUrl("index"))):n=new URL(this.getSciprtUrl("index")),n.search=r.toString(),n.toString()}hasRight(e){return this.userRights.includes(e)}hasAnyRight(...e){return e.some(i=>this.hasRight(i))}hasEveryRights(...e){return e.every(i=>this.hasRight(i))}inGroup(e){return this.userGroups.includes(e)}inAnyGroup(...e){return this.userGroups.some(i=>e.includes(i))}getBlockInfo(){return this.isUserBlocked?{blockid:this.userInfo.blockid,blockedby:this.userInfo.blockedbyid,blockedbyid:this.userInfo.blockedbyid,blockreason:this.userInfo.blockreason,blockedtimestamp:this.userInfo.blockedtimestamp,blockexpiry:this.userInfo.blockexpiry}:null}}as=Jh(Ea),Lr=id(as,0,"WikiMetadataService",ka,Lr),td(as,1,Lr);var ge;(t=>{function e(h){return new Promise((p,v)=>{h.onsuccess=()=>p(h.result),h.onerror=()=>v(h.error)})}t.promisifyRequest=e;const i=new Map,r=new Map;function n(h,p){const v=(r.get(h)??Promise.resolve()).then(p,p);return r.set(h,v.catch(()=>{})),v}function s(h){return new Promise(p=>setTimeout(p,h+Math.floor(Math.random()*8)))}function o(h){if(!(h instanceof DOMException))return!1;const p=h.name,v=String(h?.message??"");return p==="InvalidStateError"||p==="TransactionInactiveError"||p==="NotFoundError"||p==="AbortError"&&/versionchange|closing|internal/i.test(v)}function a(h){const p=i.get(h);if(p)return p;const v=new Promise((x,P)=>{const R=indexedDB.open(h);R.onupgradeneeded=()=>{},R.onsuccess=()=>{const B=R.result;B.onversionchange=()=>{try{B.close()}finally{i.delete(h)}},x(B)},R.onerror=()=>P(R.error),R.onblocked=()=>{}});return i.set(h,v),v}t.openDatabase=a;async function l(h){const p=i.get(h);if(p)try{(await p).close()}finally{i.delete(h)}}t.closeDatabase=l;async function c(){const h=Array.from(i.keys());await Promise.all(h.map(l))}t.closeAllDatabases=c;async function u(h){await l(h),await new Promise((p,v)=>{const x=indexedDB.deleteDatabase(h);x.onsuccess=()=>p(),x.onerror=()=>v(x.error),x.onblocked=()=>{}})}t.deleteDatabase=u;async function f(h,p,v={}){return n(h,async()=>{let x=await a(h);const P=!x.objectStoreNames.contains(p),R=!P&&v.indexes&&v.indexes.length>0;if(!P&&!R)return x;const B=x.version+1;x.close();const Pe=new Promise((Le,Se)=>{const be=indexedDB.open(h,B);be.onupgradeneeded=()=>{const he=be.result;let oe;if(he.objectStoreNames.contains(p)?oe=be.transaction.objectStore(p):oe=he.createObjectStore(p,{keyPath:v.keyPath??void 0,autoIncrement:!!v.autoIncrement}),v.indexes&&v.indexes.length>0)for(const{name:ae,keyPath:Q,options:tt}of v.indexes)oe.indexNames.contains(ae)||oe.createIndex(ae,Q,tt)},be.onsuccess=()=>{const he=be.result;he.onversionchange=()=>{try{he.close()}finally{i.delete(h)}},Le(he)},be.onerror=()=>Se(be.error),be.onblocked=()=>{}});return i.set(h,Pe),Pe})}t.ensureStore=f;async function d(h,p,v={}){return await f(h,p,v),{dbName:h,storeName:p,getDb:()=>a(h)}}t.createStore=d;async function y(h,p,v,x={}){const{dbName:P,storeName:R}=h,B=x.attempts??2,Pe=x.baseDelayMs??16;let Le;for(let Se=0;Se<=B;Se++)try{Se===0&&await f(P,R);const be=await a(P);let he;try{he=be.transaction(R,p)}catch(Q){if(o(Q)&&Se<B){await l(P),await s(Pe*(1<<Se)),Le=Q;continue}throw Q}const oe=he.objectStore(R),ae=new Promise((Q,tt)=>{he.oncomplete=()=>Q(),he.onerror=()=>tt(he.error),he.onabort=()=>tt(he.error)});try{const Q=await v(oe);return await ae,Q}catch(Q){if(o(Q)&&Se<B){try{he.abort()}catch{}await l(P),await s(Pe*(1<<Se)),Le=Q;continue}try{he.abort()}catch{}throw Q}}catch(be){if(o(be)&&Se<B){await l(P),await s(Pe*(1<<Se)),Le=be;continue}throw be}throw Le}t.withObjectStore=y;async function m(h,p){return y(h,"readonly",async v=>{const x=v.get(p);return e(x)})}t.get=m;async function E(h,p,v){return y(h,"readwrite",async x=>{const P=x.put(v,p);await e(P)})}t.set=E;async function j(h,p){return y(h,"readwrite",async v=>{const x=v.delete(p);await e(x)})}t.del=j;async function k(h){return y(h,"readwrite",async p=>{const v=p.clear();await e(v)})}t.clear=k;function F(h,p=100){return{[Symbol.asyncIterator](){let v=[],x=!1,P;const R=async()=>{x||(v=[],await y(h,"readonly",async B=>{const Pe=P===void 0?void 0:IDBKeyRange.lowerBound(P,!0);await new Promise((Le,Se)=>{let be=0;const he=B.openCursor(Pe,"next");he.onsuccess=()=>{const oe=he.result;if(!oe||be>=p){Le();return}v.push([oe.key,oe.value]),P=oe.key,be++,oe.continue()},he.onerror=()=>Se(he.error)}),v.length===0&&(x=!0)}))};return{async next(){return v.length===0&&!x&&await R(),v.length===0?{value:void 0,done:!0}:{value:v.shift(),done:!1}}}}}}t.entries=F;function b(h,p=200){const v=F(h,p);return{[Symbol.asyncIterator](){const x=v[Symbol.asyncIterator]();return{async next(){const P=await x.next();return P.done?{value:void 0,done:!0}:{value:P.value[0],done:!1}}}}}}t.keys=b})(ge||(ge={}));/**
|
|
59
|
+
*/let Zf=class extends la{async clientLogin(e,i,n){n||(n={}),!n.logincontinue&&!n.loginreturnurl&&(n.loginreturnurl=location?.origin);const r=await this.postWithToken("login",{action:"clientlogin",username:e,password:i,...n},{tokenName:"logintoken"});if(r?.data?.clientlogin?.status==="PASS")return r.data.clientlogin;throw new je(qi.LOGIN_FAILED,r.data.clientlogin.message,r)}};class ed{constructor(e,i={}){this.ctx=e,location?.href&&i?.baseURL?.toString()?.startsWith("/")&&(i.baseURL=new URL(i.baseURL,location.origin));const n=new Zf({baseURL:i.baseURL.toString(),fexiosConfigs:{headers:{"x-api-user-agent":`InPageEdit-NEXT ${e.version}`,...i.headers},...i},throwOnApiError:!0});e.set("api",n)}}var td=Object.create,Gr=Object.defineProperty,id=Object.getOwnPropertyDescriptor,ca=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),ua=t=>{throw TypeError(t)},nd=(t,e,i)=>e in t?Gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,rd=(t,e)=>Gr(t,"name",{value:e,configurable:!0}),sd=t=>[,,,td(t?.[ca("metadata")]??null)],od=["class","method","getter","setter","accessor","field","value","get","set"],fa=t=>t!==void 0&&typeof t!="function"?ua("Function expected"):t,ad=(t,e,i,n,r)=>({kind:od[t],name:e,metadata:n,addInitializer:s=>i._?ua("Already initialized"):r.push(fa(s||null))}),ld=(t,e)=>nd(e,ca("metadata"),t[3]),cd=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},ud=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&id(r,i));rd(r,i);for(var m=n.length-1;m>=0;m--)l=ad(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,fa(o)&&(r=o);return ld(t,r),g&&Gr(r,i,g),u?c^4?s:g:r},da,Xr,ha;da=[xe(["wiki","wikiTitle"])];class Tn extends(ha=Pt){constructor(i){super(i,"currentPage",!1);Ni(this,qe);this.ctx=i,this.url=new URL(window.location.href),this.isMainPage=void 0,this.wikiTitle=void 0}get logger(){return this.ctx.logger("CURRENT_PAGE")}async start(){await nt(this,qe,Uo).call(this),nt(this,qe,nf).call(this),window.addEventListener("popstate",nt(this,qe,Fo).bind(this)),this.logger.info("initialized",this.wikiTitle)}stop(){window.removeEventListener("popstate",nt(this,qe,Fo).bind(this))}get params(){return this.url.searchParams}get canonicalUrl(){const i=document.querySelector('link[rel="canonical"]')?.href;let n=null;return i&&(n=new URL(i,location.origin)),Reflect.defineProperty(this,"canonicalUrl",{get:()=>n}),n}get wikiAction(){return this.params.get("action")||"view"}}qe=new WeakSet,Uo=async function(){await nt(this,qe,sf).call(this),await nt(this,qe,rf).call(this)},nf=function(){const i=Symbol.for("InPageEdit.CurrentPageService.UrlChangeListenerInstalled");if(window[i])return;const n=history.pushState,r=history.replaceState;history.pushState=function(s,o,a){n.apply(this,[s,o,a]),window.dispatchEvent(new PopStateEvent("popstate",{state:s}))},history.replaceState=function(s,o,a){r.apply(this,[s,o,a]),window.dispatchEvent(new PopStateEvent("popstate",{state:s}))},window[i]=!0},Fo=async function(i){const n=this.url,r=new URL(window.location.href);this.url=r,(n.pathname!==r.pathname||n.searchParams.get("title")!==r.searchParams.get("title")||n.searchParams.get("curid")!==r.searchParams.get("curid"))&&(await nt(this,qe,Uo).call(this),this.logger.info("location changed",r,this.wikiTitle))},rf=async function(){const n=this.wikiTitle?.getMainDBKey()===this.ctx.wiki.mainPageName;return Reflect.defineProperty(this,"isMainPage",{get:()=>n}),n},sf=async function(){let i=null;return this.canonicalUrl?i=await this.ctx.wikiTitle.newTitleFromUrl(this.canonicalUrl):i=await this.ctx.wikiTitle.newTitleFromUrl(this.url),Object.freeze(i),Reflect.defineProperty(this,"wikiTitle",{get:()=>i}),i},Xr=sd(ha),Tn=ud(Xr,0,"CurrentPageService",da,Tn),cd(Xr,1,Tn);class fd extends Pt{constructor(e){super(e,"resourceLoader",!0),this.ctx=e}stop(){}loadScript(e,i){if(!e)return Promise.resolve(null);const n=`script:${e}`,r=document.querySelector(`[data-ipe="${n}"]`);return r?Promise.resolve(r):new Promise((o,a)=>{const l=document.createElement("script");l.src=e,l.dataset.ipe=n,i&&Object.entries(i).forEach(([c,u])=>{typeof u>"u"||u===!1||u===null?l.removeAttribute(c):l.setAttribute(c,u)}),document.body.appendChild(l),l.onload=()=>o(l),l.onerror=c=>a(c)})}loadStyle(e,i){if(!e)return Promise.resolve(null);const n=`style:${e}`,r=document.querySelector(`[data-ipe="${n}"]`);return r?Promise.resolve(r):new Promise((o,a)=>{const l=document.createElement("link");l.rel="stylesheet",l.href=e,l.dataset.ipe=n,i&&Object.entries(i).forEach(([u,f])=>{typeof f>"u"||f===!1||f===null?l.removeAttribute(u):l.setAttribute(u,f)}),(document.querySelector('meta[name="ipe-styles"]')||(()=>{const u=document.createElement("meta");return u.id="ipe-styles",u.name="ipe-styles",document.head.insertAdjacentElement("afterbegin",u),u})()).before(l),l.onload=()=>o(l),l.onerror=u=>a(u)})}resolveImportPath(e){if(e.startsWith("http")||e.startsWith("//"))return e;const i=document.currentScript?.src;if(!i)return`https://unpkg.com/mediawiki-inpageedit@latest/dist/${e}`;const n=new URL(i);return n.pathname.endsWith(".js")||(n.pathname=n.pathname+"/"),new URL(e,n.toString()).toString()}}const Rn=Object.keys;function dd(t){return typeof t=="boolean"}function hd(t){return t&&typeof t.nodeType=="number"}function Ln(t){return typeof t=="string"}function pa(t){return typeof t=="number"}function Gt(t){return typeof t=="object"?t!==null:zi(t)}function zi(t){return typeof t=="function"}function pd(t){return!!(t&&t.isComponent)}function md(t){return Gt(t)&&typeof t.length=="number"&&typeof t.nodeType!="number"}function Jr(t,e){if(t)for(const i of Rn(t))e(t[i],i)}function gd(t){return Gt(t)&&"current"in t}const Zr={animationIterationCount:0,borderImageOutset:0,borderImageSlice:0,borderImageWidth:0,boxFlex:0,boxFlexGroup:0,boxOrdinalGroup:0,columnCount:0,columns:0,flex:0,flexGrow:0,flexPositive:0,flexShrink:0,flexNegative:0,flexOrder:0,gridArea:0,gridRow:0,gridRowEnd:0,gridRowSpan:0,gridRowStart:0,gridColumn:0,gridColumnEnd:0,gridColumnSpan:0,gridColumnStart:0,fontWeight:0,lineClamp:0,lineHeight:0,opacity:0,order:0,orphans:0,tabSize:0,widows:0,zIndex:0,zoom:0,fillOpacity:0,floodOpacity:0,stopOpacity:0,strokeDasharray:0,strokeDashoffset:0,strokeMiterlimit:0,strokeOpacity:0,strokeWidth:0};function yd(t,e){return t+e.charAt(0).toUpperCase()+e.substring(1)}const bd=["Webkit","ms","Moz","O"];Rn(Zr).forEach(t=>{bd.forEach(e=>{Zr[yd(e,t)]=0})});const wd=Symbol.for("jsx-dom:type");var ma=function(t){return t.ShadowRoot="ShadowRoot",t}(ma||{});function vd(t){return t!=null&&t[wd]===ma.ShadowRoot}const _d="http://www.w3.org/2000/svg",xd="http://www.w3.org/1999/xlink",Sd="http://www.w3.org/XML/1998/namespace";function ga(t){return!dd(t)&&t!=null}function es(t){return Array.isArray(t)?t.map(es).filter(Boolean).join(" "):Gt(t)?Symbol.iterator in t?es(Array.from(t)):Rn(t).filter(e=>t[e]).join(" "):ga(t)?""+t:""}const kd={animate:0,circle:0,clipPath:0,defs:0,desc:0,ellipse:0,feBlend:0,feColorMatrix:0,feComponentTransfer:0,feComposite:0,feConvolveMatrix:0,feDiffuseLighting:0,feDisplacementMap:0,feDistantLight:0,feFlood:0,feFuncA:0,feFuncB:0,feFuncG:0,feFuncR:0,feGaussianBlur:0,feImage:0,feMerge:0,feMergeNode:0,feMorphology:0,feOffset:0,fePointLight:0,feSpecularLighting:0,feSpotLight:0,feTile:0,feTurbulence:0,filter:0,foreignObject:0,g:0,image:0,line:0,linearGradient:0,marker:0,mask:0,metadata:0,path:0,pattern:0,polygon:0,polyline:0,radialGradient:0,rect:0,stop:0,svg:0,switch:0,symbol:0,text:0,textPath:0,tspan:0,use:0,view:0},Ed=/^(a(ll|t|u)|base[FP]|c(al|lipPathU|on)|di|ed|ex|filter[RU]|g(lyphR|r)|ke|l(en|im)|ma(rker[HUW]|s)|n|pat|pr|point[^e]|re[^n]|s[puy]|st[^or]|ta|textL|vi|xC|y|z)/;function Ct(t){const e=document.createDocumentFragment();return Nn(t.children,e),e}function $d(t,e,i){e={...e,children:i};const n=new t(e),r=n.render();return"ref"in e&&ts(e.ref,n),r}function h(t,e){let{children:i,...n}=e;!n.namespaceURI&&kd[t]===0&&(n={...n,namespaceURI:_d});let r;if(Ln(t)){if(r=n.namespaceURI?document.createElementNS(n.namespaceURI,t):document.createElement(t),Ad(n,r),Nn(i,r),r instanceof window.HTMLSelectElement&&n.value!=null)if(n.multiple===!0&&Array.isArray(n.value)){const s=n.value.map(o=>String(o));r.querySelectorAll("option").forEach(o=>o.selected=s.includes(o.value))}else r.value=n.value;ts(n.ref,r)}else if(zi(t))Gt(t.defaultProps)&&(n={...t.defaultProps,...n}),r=pd(t)?$d(t,n,i):t({...n,children:i});else throw new TypeError(`Invalid JSX element type: ${t}`);return r}function Pd(t,e){for(var i=arguments.length,n=new Array(i>2?i-2:0),r=2;r<i;r++)n[r-2]=arguments[r];return(Ln(e)||Array.isArray(e))&&(n.unshift(e),e={}),e=e||{},e.children!=null&&!n.length&&({children:n,...e}=e),h(t,{...e,children:n},e.key)}function ts(t,e){gd(t)?t.current=e:zi(t)&&t(e)}function Nn(t,e){if(md(t))Cd(t,e);else if(Ln(t)||pa(t))is(document.createTextNode(t),e);else if(t===null)is(document.createComment(""),e);else if(hd(t))is(t,e);else if(vd(t)){const i=e.attachShadow(t.attr);Nn(t.children,i),ts(t.ref,i)}}function Cd(t,e){for(const i of[...t])Nn(i,e);return e}function is(t,e){e instanceof window.HTMLTemplateElement?e.content.appendChild(t):e.appendChild(t)}function Mn(t,e){return t.replace(/[A-Z]/g,i=>e+i.toLowerCase())}function ya(t,e){e==null||e===!1||(Array.isArray(e)?e.forEach(i=>ya(t,i)):Ln(e)?t.setAttribute("style",e):Gt(e)&&Jr(e,(i,n)=>{n.indexOf("-")===0?t.style.setProperty(n,i):pa(i)&&Zr[n]!==0?t.style[n]=i+"px":t.style[n]=i}))}function Od(t,e,i){switch(t){case"xlinkActuate":case"xlinkArcrole":case"xlinkHref":case"xlinkRole":case"xlinkShow":case"xlinkTitle":case"xlinkType":ba(i,xd,Mn(t,":"),e);return;case"xmlnsXlink":ci(i,Mn(t,":"),e);return;case"xmlBase":case"xmlLang":case"xmlSpace":ba(i,Sd,Mn(t,":"),e);return}switch(t){case"htmlFor":ci(i,"for",e);return;case"dataset":Jr(e,(n,r)=>{n!=null&&(i.dataset[r]=n)});return;case"innerHTML":case"innerText":case"textContent":ga(e)&&(i[t]=e);return;case"dangerouslySetInnerHTML":Gt(e)&&(i.innerHTML=e.__html);return;case"value":if(e==null||i instanceof window.HTMLSelectElement)return;if(i instanceof window.HTMLTextAreaElement){i.value=e;return}break;case"spellCheck":i.spellcheck=e;return;case"class":case"className":zi(e)?e(i):ci(i,"class",es(e));return;case"ref":case"namespaceURI":return;case"style":ya(i,e);return;case"on":case"onCapture":Jr(e,(n,r)=>{i.addEventListener(r,n,t==="onCapture")});return}if(zi(e)){if(t[0]==="o"&&t[1]==="n"){let n=t.toLowerCase();const r=n.endsWith("capture");if(n==="ondoubleclick"?n="ondblclick":r&&n==="ondoubleclickcapture"&&(n="ondblclickcapture"),!r&&i[n]===null)i[n]=e;else if(r)i.addEventListener(n.substring(2,n.length-7),e,!0);else{let s;n in window?s=n.substring(2):s=n[2]+t.slice(3),i.addEventListener(s,e)}}}else Gt(e)?i[t]=e:e===!0?ci(i,t,""):e!==!1&&e!=null&&(i instanceof SVGElement&&!Ed.test(t)?ci(i,Mn(t,"-"),e):ci(i,t,e))}function ci(t,e,i){t.setAttribute(e,i)}function ba(t,e,i,n){t.setAttributeNS(e,i,n)}function Ad(t,e){for(const i of Rn(t))Od(i,t[i],e);return e}const Dn=Object.keys;function Id(t){return typeof t=="boolean"}function Td(t){return t&&typeof t.nodeType=="number"}function ns(t){return typeof t=="string"}function wa(t){return typeof t=="number"}function Xt(t){return typeof t=="object"?t!==null:Wi(t)}function Wi(t){return typeof t=="function"}function Rd(t){return!!(t&&t.isComponent)}function Ld(t){return Xt(t)&&typeof t.length=="number"&&typeof t.nodeType!="number"}function rs(t,e){if(t)for(const i of Dn(t))e(t[i],i)}function Nd(t){return Xt(t)&&"current"in t}const ss={animationIterationCount:0,borderImageOutset:0,borderImageSlice:0,borderImageWidth:0,boxFlex:0,boxFlexGroup:0,boxOrdinalGroup:0,columnCount:0,columns:0,flex:0,flexGrow:0,flexPositive:0,flexShrink:0,flexNegative:0,flexOrder:0,gridArea:0,gridRow:0,gridRowEnd:0,gridRowSpan:0,gridRowStart:0,gridColumn:0,gridColumnEnd:0,gridColumnSpan:0,gridColumnStart:0,fontWeight:0,lineClamp:0,lineHeight:0,opacity:0,order:0,orphans:0,tabSize:0,widows:0,zIndex:0,zoom:0,fillOpacity:0,floodOpacity:0,stopOpacity:0,strokeDasharray:0,strokeDashoffset:0,strokeMiterlimit:0,strokeOpacity:0,strokeWidth:0};function Md(t,e){return t+e.charAt(0).toUpperCase()+e.substring(1)}const Dd=["Webkit","ms","Moz","O"];Dn(ss).forEach(t=>{Dd.forEach(e=>{ss[Md(e,t)]=0})});const jd=Symbol.for("jsx-dom:type");var va=function(t){return t.ShadowRoot="ShadowRoot",t}(va||{});function Ud(t){return t!=null&&t[jd]===va.ShadowRoot}const Fd="http://www.w3.org/2000/svg",Bd="http://www.w3.org/1999/xlink",qd="http://www.w3.org/XML/1998/namespace";function _a(t){return!Id(t)&&t!=null}function os(t){return Array.isArray(t)?t.map(os).filter(Boolean).join(" "):Xt(t)?Symbol.iterator in t?os(Array.from(t)):Dn(t).filter(e=>t[e]).join(" "):_a(t)?""+t:""}const Hd={animate:0,circle:0,clipPath:0,defs:0,desc:0,ellipse:0,feBlend:0,feColorMatrix:0,feComponentTransfer:0,feComposite:0,feConvolveMatrix:0,feDiffuseLighting:0,feDisplacementMap:0,feDistantLight:0,feFlood:0,feFuncA:0,feFuncB:0,feFuncG:0,feFuncR:0,feGaussianBlur:0,feImage:0,feMerge:0,feMergeNode:0,feMorphology:0,feOffset:0,fePointLight:0,feSpecularLighting:0,feSpotLight:0,feTile:0,feTurbulence:0,filter:0,foreignObject:0,g:0,image:0,line:0,linearGradient:0,marker:0,mask:0,metadata:0,path:0,pattern:0,polygon:0,polyline:0,radialGradient:0,rect:0,stop:0,svg:0,switch:0,symbol:0,text:0,textPath:0,tspan:0,use:0,view:0},zd=/^(a(ll|t|u)|base[FP]|c(al|lipPathU|on)|di|ed|ex|filter[RU]|g(lyphR|r)|ke|l(en|im)|ma(rker[HUW]|s)|n|pat|pr|point[^e]|re[^n]|s[puy]|st[^or]|ta|textL|vi|xC|y|z)/;function Wd(t){const e=document.createDocumentFragment();return jn(t.children,e),e}function Kd(t,e,i){e={...e,children:i};const n=new t(e),r=n.render();return"ref"in e&&as(e.ref,n),r}function pe(t,e){let{children:i,...n}=e;!n.namespaceURI&&Hd[t]===0&&(n={...n,namespaceURI:Fd});let r;if(ns(t)){if(r=n.namespaceURI?document.createElementNS(n.namespaceURI,t):document.createElement(t),Yd(n,r),jn(i,r),r instanceof window.HTMLSelectElement&&n.value!=null)if(n.multiple===!0&&Array.isArray(n.value)){const s=n.value.map(o=>String(o));r.querySelectorAll("option").forEach(o=>o.selected=s.includes(o.value))}else r.value=n.value;as(n.ref,r)}else if(Wi(t))Xt(t.defaultProps)&&(n={...t.defaultProps,...n}),r=Rd(t)?Kd(t,n,i):t({...n,children:i});else throw new TypeError(`Invalid JSX element type: ${t}`);return r}function as(t,e){Nd(t)?t.current=e:Wi(t)&&t(e)}function jn(t,e){if(Ld(t))Vd(t,e);else if(ns(t)||wa(t))ls(document.createTextNode(t),e);else if(t===null)ls(document.createComment(""),e);else if(Td(t))ls(t,e);else if(Ud(t)){const i=e.attachShadow(t.attr);jn(t.children,i),as(t.ref,i)}}function Vd(t,e){for(const i of[...t])jn(i,e);return e}function ls(t,e){e instanceof window.HTMLTemplateElement?e.content.appendChild(t):e.appendChild(t)}function Un(t,e){return t.replace(/[A-Z]/g,i=>e+i.toLowerCase())}function xa(t,e){e==null||e===!1||(Array.isArray(e)?e.forEach(i=>xa(t,i)):ns(e)?t.setAttribute("style",e):Xt(e)&&rs(e,(i,n)=>{n.indexOf("-")===0?t.style.setProperty(n,i):wa(i)&&ss[n]!==0?t.style[n]=i+"px":t.style[n]=i}))}function Qd(t,e,i){switch(t){case"xlinkActuate":case"xlinkArcrole":case"xlinkHref":case"xlinkRole":case"xlinkShow":case"xlinkTitle":case"xlinkType":Sa(i,Bd,Un(t,":"),e);return;case"xmlnsXlink":ui(i,Un(t,":"),e);return;case"xmlBase":case"xmlLang":case"xmlSpace":Sa(i,qd,Un(t,":"),e);return}switch(t){case"htmlFor":ui(i,"for",e);return;case"dataset":rs(e,(n,r)=>{n!=null&&(i.dataset[r]=n)});return;case"innerHTML":case"innerText":case"textContent":_a(e)&&(i[t]=e);return;case"dangerouslySetInnerHTML":Xt(e)&&(i.innerHTML=e.__html);return;case"value":if(e==null||i instanceof window.HTMLSelectElement)return;if(i instanceof window.HTMLTextAreaElement){i.value=e;return}break;case"spellCheck":i.spellcheck=e;return;case"class":case"className":Wi(e)?e(i):ui(i,"class",os(e));return;case"ref":case"namespaceURI":return;case"style":xa(i,e);return;case"on":case"onCapture":rs(e,(n,r)=>{i.addEventListener(r,n,t==="onCapture")});return}if(Wi(e)){if(t[0]==="o"&&t[1]==="n"){let n=t.toLowerCase();const r=n.endsWith("capture");if(n==="ondoubleclick"?n="ondblclick":r&&n==="ondoubleclickcapture"&&(n="ondblclickcapture"),!r&&i[n]===null)i[n]=e;else if(r)i.addEventListener(n.substring(2,n.length-7),e,!0);else{let s;n in window?s=n.substring(2):s=n[2]+t.slice(3),i.addEventListener(s,e)}}}else Xt(e)?i[t]=e:e===!0?ui(i,t,""):e!==!1&&e!=null&&(i instanceof SVGElement&&!zd.test(t)?ui(i,Un(t,"-"),e):ui(i,t,e))}function ui(t,e,i){t.setAttribute(e,i)}function Sa(t,e,i,n){t.setAttributeNS(e,i,n)}function Yd(t,e){for(const i of Dn(t))Qd(i,t[i],e);return e}var cs=(t=>(t.Init="modal.init",t.BeforeShow="modal.beforeShow",t.Show="modal.show",t.BeforeClose="modal.beforeClose",t.Close="modal.close",t.Destroy="modal.destroy",t.ToastShow="toast.show",t.ToastClose="toast.close",t))(cs||{});let Gd=0;const ka=t=>`${t}-${++Gd}`;function Ki(t){return t instanceof Node?t:document.createTextNode(String(t))}function Ot(t,e){if(!t)throw new Error(`${e??"Element"} not found`);return t}function Ea(t){const e=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");return Array.from(t.querySelectorAll(e)).filter(i=>!!(i.offsetWidth||i.offsetHeight||i.getClientRects().length))}function Ie(t,e={}){const i=document.createElement(t);if(e.className&&(i.className=e.className),e.html!=null&&(i.innerHTML=e.html),e.text!=null&&(i.textContent=e.text),e.attrs)for(const[n,r]of Object.entries(e.attrs))i.setAttribute(n,r);return i}const Xd=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/i.test(navigator.platform),$a=["ctrl","alt","shift","meta"];function Jd(t){if(!t)return null;const e=String(t).trim().toLowerCase().split(/[+\-\s]+/g).filter(Boolean),i=[];let n=null;const r=o=>{i.includes(o)||i.push(o)};for(const o of e){let a=o;if(a==="control"||a==="ctrl"){r("ctrl");continue}if(a==="alt"||a==="option"){r("alt");continue}if(a==="shift"){r("shift");continue}if(a==="meta"||a==="cmd"||a==="command"||a==="super"){r("meta");continue}if(a==="mod"){r(Xd?"meta":"ctrl");continue}a==="esc"&&(a="escape"),a==="return"&&(a="enter"),(a==="space"||a==="spacebar")&&(a="space"),n=a}const s=$a.filter(o=>i.includes(o));return!n||n===""?s.length?s.join("+"):null:s.length?`${s.join("+")}+${n}`:n}function Zd(t){const e=[];t.ctrlKey&&e.push("ctrl"),t.altKey&&e.push("alt"),t.shiftKey&&e.push("shift"),t.metaKey&&e.push("meta");let i=t.key;i===" "&&(i="space");const n=(i.length,i.toLowerCase()),r=$a.filter(s=>e.includes(s));return r.length?`${r.join("+")}+${n}`:n}class eh{constructor(){this.zBase=1e3,this.stack=[]}push(e){this.stack.push(e),this.syncZ()}remove(e){this.stack=this.stack.filter(i=>i!==e),this.syncZ()}top(){return this.stack[this.stack.length-1]}closeAll(e,i){const n=new Set((Array.isArray(i)?i:i?[i]:[]).map(String)),r=new Set((Array.isArray(e)?e:e?[e]:[]).map(String));[...this.stack].reverse().forEach(s=>{const o=s.modalId,a=r.size?r.has(s.pluginName):!0,l=n.has(o);a&&!l&&s.close()})}removeAll(){[...this.stack].forEach(e=>e.destroy()),this.stack=[]}syncZ(){this.stack.forEach((e,i)=>e.setZIndex(this.zBase+i*2))}lockBodyScroll(){document.body.classList.add("ipe-modal-no-scroll")}unlockBodyScroll(){document.body.classList.remove("ipe-modal-no-scroll")}}const Ue=new eh,yn=class yn{constructor(e={}){this.backdropId=ka("ipe-modal-backdrop"),this.modalId=ka("ipe-modal"),this.numberId=this.modalId.split("-")[1],this._isDestroyed=!1,this.pluginName="normalModal",this.buttonElsLeft=[],this.buttonElsRight=[],this.keyMap=new Map,this.isOpen=!1,this.isToast=!1,this.isDragging=!1,this.dragStartX=0,this.dragStartY=0,this.modalStartX=0,this.modalStartY=0,this.Event=cs,this._hooks=[],this.startCloseTimer=i=>{this.stopCloseTimer(),this.closeTimer=window.setTimeout(()=>this.close(),i)},this.stopCloseTimer=()=>{this.closeTimer&&window.clearTimeout(this.closeTimer),this.closeTimer=void 0},this.onDragMove=i=>{if(!this.isDragging)return;i.preventDefault();const n=i.clientX-this.dragStartX,r=i.clientY-this.dragStartY,s=this.get$modal(),o=this.modalStartX+n,a=this.modalStartY+r;s.style.left=`${o}px`,s.style.top=`${a}px`},this.onDragEnd=()=>{if(!this.isDragging)return;this.isDragging=!1,document.removeEventListener("pointermove",this.onDragMove),document.removeEventListener("pointerup",this.onDragEnd);const i=this.get$modal(),n=this.get$window();i.classList.remove("is-dragging"),n.style.animation="none",requestAnimationFrame(()=>{this.applyAnimation(!0)})},this.options={...yn.DEFAULT_OPTIONS,...e},this.options.backdrop===!1&&e.bodyScroll===void 0&&(this.options.bodyScroll=!0)}get isDestroyed(){return this._isDestroyed}static extends(e={}){return class extends this{constructor(i={}){super({...e,...i})}}}init(){if(this.$modal)return this;const e=this.options.backdrop!==!1;let i;e&&(i=Ie("div",{className:"ipe-modal-backdrop",attrs:{id:this.backdropId,"data-modal-id":this.modalId}}));const n=Ie("div",{className:"ipe-modal-modal",attrs:{id:this.modalId,role:"dialog","aria-modal":"true",tabindex:"-1"}});if(n.modal=this,!e){n.classList.add("no-backdrop");const g=window.pageYOffset||document.documentElement.scrollTop,m=window.pageXOffset||document.documentElement.scrollLeft,k=window.innerWidth;n.style.top=`${g+60}px`,this.once("modal.show",()=>{n.style.left=`${m+k/2-n.offsetWidth/2}px`})}const r=Ie("div",{className:`ipe-modal-modal__window size--${this.options.sizeClass||"auto"} plugin--${this.pluginName}`});r.modal=this;const s=Ie("div",{className:"ipe-modal-modal__header"}),o=`${this.modalId}-title`,a=Ie("h2",{className:"ipe-modal-modal__title",attrs:{id:o,role:"heading","aria-level":"2"}});n.setAttribute("aria-labelledby",o);const l=Ie("div",{className:"ipe-modal-modal__icons"});if(this.options.closeIcon){const g=Ie("button",{className:"ipe-modal-modal__close",attrs:{type:"button","aria-label":"Close"},html:"×"});g.addEventListener("click",()=>{let m=!0;typeof this.options.onClickClose=="function"?this.options.onClickClose(this)===!1&&(m=!1):this.options.onClickClose===!1&&(m=!1),m&&this.close()}),l.appendChild(g)}s.append(a,l),!e&&this.options.draggable&&(s.style.cursor="move",s.style.userSelect="none",s.addEventListener("pointerdown",this.onDragStart.bind(this)));const c=Ie("div",{className:"ipe-modal-modal__content"}),u=Ie("div",{className:"ipe-modal-modal__footer"}),f=Ie("div",{className:"ipe-modal-modal__buttons ipe-modal-modal__buttons--left"}),p=Ie("div",{className:"ipe-modal-modal__buttons ipe-modal-modal__buttons--right"});return u.append(f,p),r.append(s,c,u),n.appendChild(r),this.$backdrop=i,this.$modal=n,this.$window=r,this.$header=s,this.$title=a,this.$icons=l,this.$content=c,this.$footer=u,this.$buttonsLeft=f,this.$buttonsRight=p,this.options.title&&this.setTitle(this.options.title),this.options.content&&this.setContent(this.options.content),this.options.buttons?.length?this.setButtons(this.options.buttons):u.style.display="none",this.options.center&&this.$modal.classList.add("is-centered"),this.options.fitScreen&&this.$modal.classList.add("is-fullscreen"),this.options.iconButtons&&this.$header.classList.add("has-icon-buttons"),this.options.className&&this.$window.classList.add(...this.options.className.split(/[\s\.#+]+/g).filter(Boolean)),typeof this.options.fixedHeight=="number"?this.$window.style.height=`${Math.max(0,this.options.fixedHeight)}px`:this.options.fixedHeight===!0&&this.$window.classList.add("is-fixed-height"),i&&i.addEventListener("pointerdown",g=>{this.options.outSideClose&&g.target===i&&this.close()}),this.onKeyDown=this.onKeyDown.bind(this),this.emit("modal.init"),this}show(){if(this.$modal||this.init(),!this.$modal)throw new Error("Failed to initialize modal");if(this.isOpen)return this;{const n=this.emit("modal.beforeShow",!0),r=this.options.beforeShow?this.options.beforeShow(this)!==!1:!0;if(!n||!r)return this}this.lastFocused=document.activeElement??null,this.$backdrop&&document.body.appendChild(this.$backdrop),document.body.appendChild(this.$modal),this.shouldLockBodyOnOpen()&&Ue.lockBodyScroll(),requestAnimationFrame(()=>{this.$backdrop?.classList.add("is-open"),this.$modal.classList.add("is-open"),this.applyAnimation(!0),this.focusFirst()}),document.addEventListener("keydown",this.onKeyDown),Ue.push(this),this.isOpen=!0,this.options.onShow?.(this),this.emit("modal.show");const e=typeof this.options.closeAfter=="number"?this.options.closeAfter:this.options.closeAfter?.time,i=typeof this.options.closeAfter=="number"?!0:this.options.closeAfter?.resetOnHover;return e&&(this.startCloseTimer(e),i&&(this.$window?.addEventListener("mouseenter",this.stopCloseTimer),this.$window?.addEventListener("mouseleave",()=>this.startCloseTimer(e)))),this}close(){if(!this.isOpen)return this;{const s=this.emit("modal.beforeClose",!0),o=this.options.beforeClose?this.options.beforeClose(this)!==!1:!0;if(!s||!o)return this}if(this.isToast){this.applyAnimation(!1),this.emit("modal.close"),this.emit("toast.close");const s=this.isAnimationDisabled()?0:this.options.animationSpeed??200;let o=!1;const a=()=>{o||(o=!0,this.destroy(),this.options.onClose?.(this))},l=(c,u)=>{const f=()=>{c.removeEventListener(u,f),a()};c.addEventListener(u,f,{once:!0})};return s>0&&this.$window?(l(this.$window,"transitionend"),l(this.$window,"animationend"),window.setTimeout(a,s+20)):window.setTimeout(a,s),this}this.applyAnimation(!1),this.$backdrop?.classList.remove("is-open"),this.$modal?.classList.remove("is-open"),this.emit("modal.close");const e=this.isAnimationDisabled()?0:this.options.animationSpeed??200;let i=!1;const n=()=>{i||(i=!0,this.destroy(),this.options.onClose?.(this))},r=(s,o)=>{const a=()=>{s.removeEventListener(o,a),n()};s.addEventListener(o,a,{once:!0})};return e>0&&this.$window?(r(this.$window,"transitionend"),r(this.$window,"animationend"),window.setTimeout(n,e+20)):window.setTimeout(n,e),this}destroy(){if(this._isDestroyed)return this;if(this.stopCloseTimer(),document.removeEventListener("keydown",this.onKeyDown),this.isDragging&&this.onDragEnd(),this.$window?.removeEventListener("mouseenter",this.stopCloseTimer),this.isToast){this.$window?.parentElement&&this.$window.parentElement.removeChild(this.$window);const e=Jt.indexOf(this);e!==-1&&Jt.splice(e,1)}else this.$backdrop?.parentElement&&this.$backdrop.parentElement.removeChild(this.$backdrop),this.$modal?.parentElement&&this.$modal.parentElement.removeChild(this.$modal),Ue.remove(this),this.shouldUnlockBodyOnClose()&&Ue.unlockBodyScroll();return this.isOpen=!1,this.lastFocused?.focus?.(),this.emit("modal.destroy"),this._isDestroyed=!0,this}get$backdrop(){return this.$backdrop}get$modal(){return Ot(this.$modal,"modal")}get$window(){return Ot(this.$window,"window")}get$header(){return Ot(this.$header,"header")}get$title(){return Ot(this.$title,"title")}get$content(){return Ot(this.$content,"content")}get$icons(){return Ot(this.$icons,"icons")}get$buttons(e){return e==="leftButtons"?Ot(this.$buttonsLeft,"leftButtons"):e==="rightButtons"?Ot(this.$buttonsRight,"rightButtons"):Ot(this.$footer,"buttons")}setTitle(e){const i=this.get$title();return i.innerHTML="",i.append(Ki(e)),this}setContent(e,i="replace"){const n=this.get$content();return i==="replace"?(n.innerHTML="",n.append(Ki(e))):i==="append"?n.append(Ki(e)):n.prepend(Ki(e)),this}setIcons(e){const i=this.get$icons();i.innerHTML="";for(const n of e){const r=Ie("button",{className:`ipe-modal-modal__icon ${n.className}`,attrs:{type:"button"}});r.addEventListener("click",n.method),i.appendChild(r)}return this}setButtons(e,i){const n=this.$buttonsLeft,r=this.$buttonsRight;[n,r].forEach(o=>o.innerHTML=""),this.buttonElsLeft=[],this.buttonElsRight=[],this.keyMap.clear();const s=i??this.$footer;if(s===this.$footer)e.forEach(o=>this.addButton(o)),e.length===0&&(this.$footer.style.display="none");else{s.innerHTML="";for(const o of e){const a=this.generateButton(o);s.appendChild(a)}}return this}generateButton(e){const i=e.type??"button",n=i==="link"?Ie("a"):Ie("button",{attrs:{type:"button"}});e.id&&(n.id=e.id),n.className=`ipe-modal-btn ${e.className??""}`.trim();const r=Ki(e.label??"OK");if(n.append(r),i==="link"&&e.href&&(n.href=e.href),e.method&&n.addEventListener("click",s=>{if(n._ipe_tmpDisabled){s.preventDefault(),s.stopPropagation();return}e.method.call(n,s,this)}),typeof e.closeAfter=="number"&&e.closeAfter>=0&&n.addEventListener("click",()=>{window.setTimeout(()=>this.close(),e.closeAfter)}),typeof e.enableAfter=="number"&&e.enableAfter>0){i==="button"&&n.setAttribute("disabled","true"),n._ipe_tmpDisabled=!0,n.setAttribute("aria-disabled","true");const s=()=>{i==="button"&&n.removeAttribute("disabled"),delete n._ipe_tmpDisabled,n.removeAttribute("aria-disabled")};window.setTimeout(s,e.enableAfter)}if(e.keyPress){const s=String(e.keyPress).split(/[\,\|]+/g).map(o=>o.trim()).filter(Boolean);for(const o of s){const a=Jd(o);a&&this.keyMap.set(a,n)}}return n}addButton(e,i){this.$footer&&(this.$footer.style.display="");const n=e.side??"right",r=n==="left"?this.$buttonsLeft:this.$buttonsRight,s=n==="left"?this.buttonElsLeft:this.buttonElsRight,o=this.generateButton(e),a=Math.max(0,Math.min(i??s.length,s.length));return a>=r.children.length?r.appendChild(o):r.insertBefore(o,r.children[a]),s.splice(a,0,o),this}removeButton(e){const i=this.buttonElsLeft,n=this.buttonElsRight,r=[...i,...n];let s=null;if(e==="*")return r.forEach(a=>{this.keyMap.delete(a.id),a.parentElement?.removeChild(a)}),this.$footer&&(this.$footer.style.display="none"),this;if(typeof e=="number"?s=r[e]??null:typeof e=="string"?s=r.find(a=>a.id===e)??null:e instanceof HTMLElement&&(s=r.find(a=>a===e)??null),!s)return this;for(const[a,l]of this.keyMap.entries())l===s&&this.keyMap.delete(a);let o=i.indexOf(s);return o!==-1?(i.splice(o,1),s.parentElement?.removeChild(s)):(o=n.indexOf(s),o!==-1&&(n.splice(o,1),s.parentElement?.removeChild(s))),i.length===0&&n.length===0&&this.$footer&&(this.$footer.style.display="none"),this}changePreviewState(){return this.get$modal().classList.toggle("is-fullscreen"),this}setModalHeight(e,i="height"){const n=this.get$window(),r=Math.max(0,window.innerHeight-e);return n.style[i]=`${r}px`,r}setOptions(e,i){return typeof e=="string"?this.options[e]=i:Object.assign(this.options,e),this}setPluginName(e){return this.$window&&(this.$window.className=this.$window.className.replace(`plugin--${this.pluginName}`,`plugin--${e}`)),this.pluginName=e,this}applyAnimation(e){const i=this.get$modal(),n=this.get$window(),r=this.$backdrop,s=this.options.modalAnimation??this.options.animation,o=typeof s=="string"?s:s&&(e?s.show:s.hide),a=this.options.backdropAnimation??this.options.animation,l=typeof a=="string"?a:a&&(e?a.show:a.hide);!o||o===!1?(i.style.transition="none",n.style.animation="none",n.style.removeProperty("--ipe-modal-anim")):(i.style.removeProperty("transition"),n.style.setProperty("--ipe-modal-anim",o)),r&&(!l||l===!1?r.style.transition="none":r.style.removeProperty("transition"))}on(e,i){return this._hooks.push({type:e,listener:i}),()=>this.off(e,i)}off(e,i){return this._hooks=this._hooks.filter(n=>n.type!==e&&(i?n.listener!==i:!0)),this}once(e,i){const n=this.on(e,r=>(n(),i(r)));return n}emit(e,i){const n=this._hooks.filter(a=>a.type===e);let r=!0;for(const a of n){const l=new CustomEvent(e,{detail:this,cancelable:i}),c=a.listener(l);if(l.defaultPrevented&&(r=!1),c===!1&&(r=!1),!r)break}const s=this.$modal??document.body,o=new CustomEvent(e,{detail:this,cancelable:i});return(!s.dispatchEvent(o)||o.defaultPrevented)&&(r=!1),r}focusFirst(){const e=this.get$modal(),i=Ea(e);i.length?i[0].focus():e.focus({preventScroll:!0})}onKeyDown(e){if(Ue.top()!==this)return;if(e.key==="Escape"){e.preventDefault(),this.close();return}const i=this.get$modal();if(!i.contains(document.activeElement))return;if(e.key==="Tab"){const a=Ea(i);if(!a.length)return;const l=a[0],c=a[a.length-1],u=document.activeElement;e.shiftKey&&u===l?(e.preventDefault(),c.focus()):!e.shiftKey&&u===c&&(e.preventDefault(),l.focus())}const n=e.ctrlKey||e.altKey||e.metaKey,r=e.target;if(!n&&(r&&["INPUT","TEXTAREA"].includes(r.tagName)||r.contentEditable==="true"))return;const s=Zd(e),o=this.keyMap.get(s);if(o){e.preventDefault(),o.click();return}}setZIndex(e){this.$backdrop&&(this.$backdrop.style.zIndex=String(e)),this.$modal&&(this.$modal.style.zIndex=String(e+1))}bringToFront(){return Ue.remove(this),Ue.push(this),this}isAnimationDisabled(){const e=this.options.modalAnimation??this.options.animation;return e===!1||e==null}shouldLockBodyOnOpen(){return this.options.backdrop===!1||this.options.bodyScroll!==!1?!1:!Ue.stack.some(e=>e!==this&&e.options.backdrop!==!1&&e.options.bodyScroll===!1)}shouldUnlockBodyOnClose(){return this.options.backdrop===!1||this.options.bodyScroll!==!1?!1:!Ue.stack.some(e=>e!==this&&e.options.backdrop!==!1&&e.options.bodyScroll===!1)}onDragStart(e){if(this.options.backdrop!==!1||!this.options.draggable)return;e.preventDefault(),this.isDragging=!0,this.bringToFront(),this.dragStartX=e.clientX,this.dragStartY=e.clientY;const i=this.get$modal(),n=i.getBoundingClientRect();this.modalStartX=n.left+window.pageXOffset,this.modalStartY=n.top+window.pageYOffset,i.style.transform="none",i.style.left=`${this.modalStartX}px`,i.style.top=`${this.modalStartY}px`,document.addEventListener("pointermove",this.onDragMove),document.addEventListener("pointerup",this.onDragEnd),i.classList.add("is-dragging")}showToast(e){this.$window||this.init();const i=th(e.position??"top right"),n=this.get$window();this.isToast=!0,n.style.pointerEvents="auto",this.applyAnimation(!0),i.appendChild(n);const r=(typeof this.options.closeAfter=="number"?this.options.closeAfter:this.options.closeAfter?.time)??3e3,s=(typeof this.options.closeAfter=="number"?!0:this.options.closeAfter?.resetOnHover)??!0;return r>0&&(this.startCloseTimer(r),s&&(n.addEventListener("mouseenter",this.stopCloseTimer),n.addEventListener("mouseleave",()=>this.startCloseTimer(r)))),this.isOpen=!0,this.options.onShow?.(this),Jt.push(this),this.emit("toast.show"),this.emit("modal.show"),this}static show(e,i){return new this(e).init().show()}static createObject(e,i){return new this(e)}static close(e){if(!e){const s=Ue.top();return s?.close(),s}const i=typeof e=="string"?e:e.id,n=Ue.stack.find(s=>s.modalId===i);if(n)return n.close(),n;const r=Jt.find(s=>s.modalId===i);return r?.close(),r}static closeAll(e,i){const n=new Set((Array.isArray(i)?i:i?[i]:[]).map(String)),r=new Set((Array.isArray(e)?e:e?[e]:[]).map(String));return Ue.closeAll(e,i),[...Jt].forEach(s=>{const o=s.modalId,a=r.size?r.has(s.pluginName):!0,l=n.has(o);a&&!l&&s.close()}),Ue.top()??new yn}static removeAll(){Ue.removeAll(),[...Jt].forEach(e=>e.destroy())}static dialog(e,i){const n=new this({sizeClass:"dialog",buttons:[{label:"OK",className:"is-primary is-ghost",method:(r,s)=>{i?.(r,s),r.defaultPrevented||n.close()},keyPress:"Enter"}],...e});return n.init().show()}static confirm(e,i){e.title??(e.title="Confirm"),e.content??(e.content="Are you sure you want to perform this action?");const n=e.okBtn??{label:"OK",className:"is-primary is-ghost"},r=e.cancelBtn??{label:"Cancel",className:"is-danger is-ghost"};return new this({sizeClass:"dialog",...e,buttons:[{label:r.label,className:r.className,keyPress:"n",method:(s,o)=>{i?.(!1,o,s),o.close()}},{label:n.label,className:n.className,keyPress:"y",method:(s,o)=>{i?.(!0,o,s),s.defaultPrevented||o.close()}}]}).init().show()}static getDefaultNotifyIcon(e){switch(e){case"success":return pe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-circle-check",children:[pe("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),pe("path",{d:"M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z"})]});case"error":return pe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-alert-triangle",children:[pe("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),pe("path",{d:"M12 1.67c.955 0 1.845 .467 2.39 1.247l.105 .16l8.114 13.548a2.914 2.914 0 0 1 -2.307 4.363l-.195 .008h-16.225a2.914 2.914 0 0 1 -2.582 -4.2l.099 -.185l8.11 -13.538a2.914 2.914 0 0 1 2.491 -1.403zm.01 13.33l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -7a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z"})]});case"warning":return pe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-alert-circle",children:[pe("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),pe("path",{d:"M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -19.995 .324l-.005 -.324l.004 -.28c.148 -5.393 4.566 -9.72 9.996 -9.72zm.01 13l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -8a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z"})]});case"info":return pe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-info-circle",children:[pe("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),pe("path",{d:"M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -19.995 .324l-.005 -.324l.004 -.28c.148 -5.393 4.566 -9.72 9.996 -9.72zm0 9h-1l-.117 .007a1 1 0 0 0 0 1.986l.117 .007v3l.007 .117a1 1 0 0 0 .876 .876l.117 .007h1l.117 -.007a1 1 0 0 0 .876 -.876l.007 -.117l-.007 -.117a1 1 0 0 0 -.764 -.857l-.112 -.02l-.117 -.006v-3l-.007 -.117a1 1 0 0 0 -.876 -.876l-.117 -.007zm.01 -3l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007z"})]});case"dialog":return pe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-message-dots",children:[pe("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),pe("path",{d:"M12 11v.01"}),pe("path",{d:"M8 11v.01"}),pe("path",{d:"M16 11v.01"}),pe("path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3z"})]});case"confirm":return pe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-copy-check",children:[pe("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),pe("path",{d:"M18.333 6a3.667 3.667 0 0 1 3.667 3.667v8.666a3.667 3.667 0 0 1 -3.667 3.667h-8.666a3.667 3.667 0 0 1 -3.667 -3.667v-8.666a3.667 3.667 0 0 1 3.667 -3.667zm-3.333 -4c1.094 0 1.828 .533 2.374 1.514a1 1 0 1 1 -1.748 .972c-.221 -.398 -.342 -.486 -.626 -.486h-10c-.548 0 -1 .452 -1 1v9.998c0 .32 .154 .618 .407 .805l.1 .065a1 1 0 1 1 -.99 1.738a3 3 0 0 1 -1.517 -2.606v-10c0 -1.652 1.348 -3 3 -3zm1.293 9.293l-3.293 3.292l-1.293 -1.292a1 1 0 0 0 -1.414 1.414l2 2a1 1 0 0 0 1.414 0l4 -4a1 1 0 0 0 -1.414 -1.414"})]});default:return null}}static notify(e,i,n){var a,l,c,u;if(i?.overrideOther&&[...Jt].forEach(f=>f.close()),typeof i.title>"u"){const f=e||"Notification";i.title=f[0].toUpperCase()+f.slice(1).toLowerCase()}const r=i.icon??this.getDefaultNotifyIcon(e);r&&(r instanceof Element&&r.classList.add("ipe-modal-notify-icon"),i.title=pe(Wd,{children:[r,i.title]})),e==="confirm"&&(typeof i.closeAfter>"u"&&(i.closeAfter=0),i.okBtn||(i.okBtn={label:"OK"})),i.okBtn&&(typeof i.okBtn!="object"&&(i.okBtn={label:"OK"}),(a=i.okBtn).label??(a.label="OK"),(l=i.okBtn).className??(l.className="is-primary is-text ok-btn"),i.okBtn.method=(f,p)=>{n?.(!0,p,f),p.close()}),i.cancelBtn&&(typeof i.cancelBtn!="object"&&(i.cancelBtn={label:"Cancel"}),(c=i.cancelBtn).label??(c.label="Cancel"),(u=i.cancelBtn).className??(u.className="is-danger is-text cancel-btn"),i.cancelBtn.method=(f,p)=>{n?.(!1,p,f),p.close()}),i.buttons=[i.cancelBtn,i.okBtn,...i.buttons??[]].filter(Boolean);const s=`is-notify type-${e||"default"} ${i.className??""}`,o=new this({...i,className:s,sizeClass:"auto",center:!1,fitScreen:!1,closeIcon:!0,outSideClose:!1,bodyScroll:!0,buttons:i.buttons??[]});return o.setPluginName("toast"),o.showToast({position:i.position??"top right"})}};yn.DEFAULT_OPTIONS={className:"",sizeClass:"auto",center:!0,fitScreen:!1,closeIcon:!0,bodyScroll:!1,outSideClose:!0,backdrop:!0,animation:{show:"ipe-modal-fade-in",hide:"ipe-modal-fade-out"},animationSpeed:200};let us=yn;const Jt=[];function th(t="top right"){const e="ipe-modal-toast-container",i=`${e}-${t.replace(/[\s-\.|\/]+/g,"-")}`;let n=document.getElementById(i);return n||(n=Ie("div",{className:`${e} ${t}`,attrs:{id:i,"data-position":t}}),document.body.appendChild(n)),n}const ih={ipe_progress:"_ipe_progress_so6hn_1"},jt=t=>{const e=t.indeterminate??!0,i=h("div",{class:`${ih.ipe_progress}`,"data-indeterminate":`${e}`,style:{width:"100%","--progress":t.progress?`${t.progress}%`:"0%"},...t});return i.setProgress=n=>{typeof n=="number"?(i.dataset.indeterminate="false",i.style.setProperty("--progress",`${n}%`)):(i.dataset.indeterminate="true",i.style.setProperty("--progress","0%"))},i};class Se extends us{constructor(e={}){e.className||(e.className=""),e.className+=" theme-ipe",e.modalAnimation||(e.modalAnimation={show:"ipe-modal-fade-in",hide:"ipe-modal-fade-out"}),super(e)}setLoadingState(e){if(this.get$window().classList.toggle("loading",e),e){const i=this.get$window().querySelectorAll("input:not([disabled]),button:not([disabled])");this._tmpDisabledActiveInputs=i,i.forEach(n=>{n.disabled=!0}),this.get$content().append(h("div",{id:"ipe-modalLoadingWrapper",style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"rgba(255, 255, 255, 0.5)",zIndex:2e3},children:h(jt,{style:{width:"80%",maxWidth:"800px"}})}))}else{this.get$window().querySelector("#ipe-modalLoadingWrapper")?.remove();const i=this._tmpDisabledActiveInputs;i&&i.forEach(n=>{n.disabled=!1})}}}class nh{constructor(e){this.ctx=e,this.IPEModal=Se,this.IPEModalEvent=cs,this.show=Se.show.bind(Se),this.createObject=Se.createObject.bind(Se),this.close=Se.close.bind(Se),this.closeAll=Se.closeAll.bind(Se),this.removeAll=Se.removeAll.bind(Se),this.dialog=Se.dialog.bind(Se),this.confirm=Se.confirm.bind(Se),this.notify=Se.notify.bind(Se),e.set("modal",this),e.on("dispose",()=>{Se.closeAll()})}}const Pa=t=>{if(!t)return new URLSearchParams;if(t instanceof URLSearchParams)return t;if(typeof t!="object"||t?.constructor!==Object)throw new TypeError("only plain object is supported");const e=new URLSearchParams;for(const[i,n]of Object.entries(t))if(n!=null){if(Array.isArray(n)){for(const r of n)e.append(i,r?.toString());continue}if(typeof n=="object"&&n!==null&&n.constructor===Object){for(const[r,s]of Object.entries(n))s!=null&&e.set(`${i}[${r}]`,s?.toString());continue}e.set(i,n?.toString())}return e},Ca=(t,e,i)=>{const n=typeof t=="string"?new URL(t,window?.location?.origin):new URL(t),r=new URLSearchParams(n.search),s=Pa(e);for(const[o,a]of s.entries())r.set(o,a);return n.search=r.toString(),n.hash="",n};var rh=Object.create,fs=Object.defineProperty,sh=Object.getOwnPropertyDescriptor,Oa=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Aa=t=>{throw TypeError(t)},oh=(t,e,i)=>e in t?fs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ah=(t,e)=>fs(t,"name",{value:e,configurable:!0}),lh=t=>[,,,rh(t?.[Oa("metadata")]??null)],ch=["class","method","getter","setter","accessor","field","value","get","set"],Ia=t=>t!==void 0&&typeof t!="function"?Aa("Function expected"):t,uh=(t,e,i,n,r)=>({kind:ch[t],name:e,metadata:n,addInitializer:s=>i._?Aa("Already initialized"):r.push(Ia(s||null))}),fh=(t,e)=>oh(e,Oa("metadata"),t[3]),dh=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},hh=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&sh(r,i));ah(r,i);for(var m=n.length-1;m>=0;m--)l=uh(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,Ia(o)&&(r=o);return fh(t,r),g&&fs(r,i,g),u?c^4?s:g:r},Ta,ds,Ra;Ta=[xe(["api","storage"])];class Fn extends(Ra=Pt){constructor(e){super(e,"wiki",!1),this.ctx=e,this._data={},this.CACHE_VERSION=3,this.CACHE_TTL={siteinfo:1e3*60*60*24*3,userinfo:1e3*60*30},this.QUERY_DATA={siteinfo:{meta:"siteinfo",siprop:"general|specialpagealiases|namespacealiases|namespaces|magicwords"},userinfo:{meta:"userinfo",uiprop:"groups|rights|blockinfo|options"}},this.CACHE_DB=void 0,this.mwConfig={get:(i,n)=>window?.mw?.config?.get?.(i,n)??n,has:i=>window?.mw?.config?.exists?.(i)??!1,get values(){return window?.mw?.config?.values||{}}},this.CACHE_DB=e.storage.createDatabse("wiki-metadata",1/0,this.CACHE_VERSION)}get logger(){return this.ctx.logger("WIKI_METADATA")}get api(){return this.ctx.api}async start(){await Promise.all(Object.keys(this.QUERY_DATA).map(e=>this.initData(e))),this.ctx.set("getUrl",this.getUrl.bind(this)),this.ctx.set("getSciprtUrl",this.getSciprtUrl.bind(this)),this.ctx.set("getMainpageUrl",this.getMainpageUrl.bind(this)),this.ctx.inject(["preferences"],e=>{e.preferences.registerCustomConfig("WikiMetadataService",Y.object({WikiMetadataService:Y.const(h("div",{children:[h("h3",{children:"Wiki Informations"}),h("ul",{children:[h("li",{children:[h("strong",{children:"Site:"})," ",this.general.sitename," (",this.landingPageUrl,")"]}),h("li",{children:[h("strong",{children:"User"}),": ",this.userInfo.name," (ID: ",this.userInfo.id,")"]}),h("li",{children:[h("strong",{children:"Groups"}),": ",this.userGroups.join(", ")||"None"]})]}),h("div",{children:[h("p",{style:{fontStyle:"italic"},children:"If the information shown above is incorrect (for example, the user is not you), click the button below."}),h("button",{onClick:i=>{i.preventDefault(),Promise.all(Object.keys(this.QUERY_DATA).map(n=>this.invalidateCache(n))).then(()=>{window.location.reload()})},children:"🧹 Clear caches & Reload"})]})]})).role("raw-html")}).description("WikiMetadataService"),"general")}),this.logger.info("All initialized",this._data)}async initData(e,i=!1){const n=i?null:await this.fetchFromCache(e);if(n)return this._data[e]=n,this.logger.debug("Using cached",e,n),n;{const r=await this.fetchFromApi(e);return this.saveToCache(e,r),this._data[e]=r,this.logger.debug("Fetched from API",e,r),r}}getCacheKey(e){return`${e}:${new URL(this.ctx.api.config.baseURL).pathname.replace(/^\//,"")}`}async fetchFromApi(e){return this.api.get({action:"query",...this.QUERY_DATA[e]}).then(({data:i})=>{if(typeof i?.query!="object"||i.query===null)throw new Error("Invalid query data",{cause:i});return e==="siteinfo"?i.query:i.query?.[e]||i.query}).catch(i=>(this.logger.error("Failed to fetch",i),Promise.reject(i)))}async fetchFromCache(e){const i=this.getCacheKey(e);return await this.CACHE_DB.get(i,this.CACHE_TTL[e])}async saveToCache(e,i){const n=this.getCacheKey(e);return this.CACHE_DB.set(n,i)}async invalidateCache(e){const i=this.getCacheKey(e);return this.CACHE_DB.delete(i)}get _raw(){return this._data}get siteInfo(){return this._data.siteinfo}get general(){return this.siteInfo.general}get specialPageAliases(){return this.siteInfo.specialpagealiases}get namespaceAliases(){return this.siteInfo.namespacealiases}get namespaces(){return this.siteInfo.namespaces}get namespaceMap(){const e=Object.values(this.namespaces).map(i=>({id:i.id,canonical:i.canonical,aliases:this.namespaceAliases.filter(n=>n.id===i.id).map(n=>n.alias)})).sort((i,n)=>i.id-n.id);return Reflect.defineProperty(this,"namespaceMap",{get:()=>e}),e}get magicWords(){return this.siteInfo.magicwords}get userInfo(){return this._data.userinfo}get userOptions(){return this.userInfo.options}get isUserBlocked(){return this.userInfo.blockedbyid&&this.userInfo.blockexpiry&&new Date(this.userInfo.blockexpiry).getTime()>Date.now()}get userGroups(){return this.userInfo.groups}get userRights(){return this.userInfo.rights}get baseUrl(){const e=this.general.server;return e.startsWith("//")?`${window?.location?.protocol||"https:"}//${e.slice(2)}`:e}get landingPageUrl(){return this.general.base}get mainPageName(){return this.general.mainpage}get mainPageUrl(){return this.getUrl(this.mainPageName)}get articlePath(){return this.general.articlepath}get scriptPath(){return this.general.scriptpath}get articleBaseUrl(){return`${this.baseUrl}${this.articlePath}`}get scriptBaseUrl(){return`${this.baseUrl}${this.scriptPath}`}getSciprtUrl(e="index"){return`${this.scriptBaseUrl}/${e.replace(/\.php$/,"")}.php`}getMainpageUrl(e){return Ca(this.siteInfo.general.base,e).toString()}getUrl(e,i){const n=Pa(i);let r;return typeof e=="string"&&e!==""?r=new URL(`${this.articleBaseUrl.replace("$1",e)}`):typeof e=="number"?(n.set("curid",e.toString()),r=new URL(this.getSciprtUrl("index"))):r=new URL(this.getSciprtUrl("index")),r.search=n.toString(),r.toString()}hasRight(e){return this.userRights.includes(e)}hasAnyRight(...e){return e.some(i=>this.hasRight(i))}hasEveryRights(...e){return e.every(i=>this.hasRight(i))}inGroup(e){return this.userGroups.includes(e)}inAnyGroup(...e){return this.userGroups.some(i=>e.includes(i))}getBlockInfo(){return this.isUserBlocked?{blockid:this.userInfo.blockid,blockedby:this.userInfo.blockedbyid,blockedbyid:this.userInfo.blockedbyid,blockreason:this.userInfo.blockreason,blockedtimestamp:this.userInfo.blockedtimestamp,blockexpiry:this.userInfo.blockexpiry}:null}}ds=lh(Ra),Fn=hh(ds,0,"WikiMetadataService",Ta,Fn),dh(ds,1,Fn);var ye;(t=>{function e(d){return new Promise((y,v)=>{d.onsuccess=()=>y(d.result),d.onerror=()=>v(d.error)})}t.promisifyRequest=e;const i=new Map,n=new Map;function r(d,y){const v=(n.get(d)??Promise.resolve()).then(y,y);return n.set(d,v.catch(()=>{})),v}function s(d){return new Promise(y=>setTimeout(y,d+Math.floor(Math.random()*8)))}function o(d){if(!(d instanceof DOMException))return!1;const y=d.name,v=String(d?.message??"");return y==="InvalidStateError"||y==="TransactionInactiveError"||y==="NotFoundError"||y==="AbortError"&&/versionchange|closing|internal/i.test(v)}function a(d){const y=i.get(d);if(y)return y;const v=new Promise((x,E)=>{const L=indexedDB.open(d);L.onupgradeneeded=()=>{},L.onsuccess=()=>{const B=L.result;B.onversionchange=()=>{try{B.close()}finally{i.delete(d)}},x(B)},L.onerror=()=>E(L.error),L.onblocked=()=>{}});return i.set(d,v),v}t.openDatabase=a;async function l(d){const y=i.get(d);if(y)try{(await y).close()}finally{i.delete(d)}}t.closeDatabase=l;async function c(){const d=Array.from(i.keys());await Promise.all(d.map(l))}t.closeAllDatabases=c;async function u(d){await l(d),await new Promise((y,v)=>{const x=indexedDB.deleteDatabase(d);x.onsuccess=()=>y(),x.onerror=()=>v(x.error),x.onblocked=()=>{}})}t.deleteDatabase=u;async function f(d,y,v={}){return r(d,async()=>{let x=await a(d);const E=!x.objectStoreNames.contains(y),L=!E&&v.indexes&&v.indexes.length>0;if(!E&&!L)return x;const B=x.version+1;x.close();const Ce=new Promise((Ne,Ee)=>{const we=indexedDB.open(d,B);we.onupgradeneeded=()=>{const he=we.result;let ae;if(he.objectStoreNames.contains(y)?ae=we.transaction.objectStore(y):ae=he.createObjectStore(y,{keyPath:v.keyPath??void 0,autoIncrement:!!v.autoIncrement}),v.indexes&&v.indexes.length>0)for(const{name:le,keyPath:G,options:it}of v.indexes)ae.indexNames.contains(le)||ae.createIndex(le,G,it)},we.onsuccess=()=>{const he=we.result;he.onversionchange=()=>{try{he.close()}finally{i.delete(d)}},Ne(he)},we.onerror=()=>Ee(we.error),we.onblocked=()=>{}});return i.set(d,Ce),Ce})}t.ensureStore=f;async function p(d,y,v={}){return await f(d,y,v),{dbName:d,storeName:y,getDb:()=>a(d)}}t.createStore=p;async function g(d,y,v,x={}){const{dbName:E,storeName:L}=d,B=x.attempts??2,Ce=x.baseDelayMs??16;let Ne;for(let Ee=0;Ee<=B;Ee++)try{Ee===0&&await f(E,L);const we=await a(E);let he;try{he=we.transaction(L,y)}catch(G){if(o(G)&&Ee<B){await l(E),await s(Ce*(1<<Ee)),Ne=G;continue}throw G}const ae=he.objectStore(L),le=new Promise((G,it)=>{he.oncomplete=()=>G(),he.onerror=()=>it(he.error),he.onabort=()=>it(he.error)});try{const G=await v(ae);return await le,G}catch(G){if(o(G)&&Ee<B){try{he.abort()}catch{}await l(E),await s(Ce*(1<<Ee)),Ne=G;continue}try{he.abort()}catch{}throw G}}catch(we){if(o(we)&&Ee<B){await l(E),await s(Ce*(1<<Ee)),Ne=we;continue}throw we}throw Ne}t.withObjectStore=g;async function m(d,y){return g(d,"readonly",async v=>{const x=v.get(y);return e(x)})}t.get=m;async function k(d,y,v){return g(d,"readwrite",async x=>{const E=x.put(v,y);await e(E)})}t.set=k;async function D(d,y){return g(d,"readwrite",async v=>{const x=v.delete(y);await e(x)})}t.del=D;async function T(d){return g(d,"readwrite",async y=>{const v=y.clear();await e(v)})}t.clear=T;function I(d,y=100){return{[Symbol.asyncIterator](){let v=[],x=!1,E;const L=async()=>{x||(v=[],await g(d,"readonly",async B=>{const Ce=E===void 0?void 0:IDBKeyRange.lowerBound(E,!0);await new Promise((Ne,Ee)=>{let we=0;const he=B.openCursor(Ce,"next");he.onsuccess=()=>{const ae=he.result;if(!ae||we>=y){Ne();return}v.push([ae.key,ae.value]),E=ae.key,we++,ae.continue()},he.onerror=()=>Ee(he.error)}),v.length===0&&(x=!0)}))};return{async next(){return v.length===0&&!x&&await L(),v.length===0?{value:void 0,done:!0}:{value:v.shift(),done:!1}}}}}}t.entries=I;function b(d,y=200){const v=I(d,y);return{[Symbol.asyncIterator](){const x=v[Symbol.asyncIterator]();return{async next(){const E=await x.next();return E.done?{value:void 0,done:!0}:{value:E.value[0],done:!1}}}}}}t.keys=b})(ye||(ye={}));/**
|
|
60
60
|
* IDB Plus
|
|
61
61
|
*
|
|
62
62
|
* 🗄️ Minimal Promise based IndexedDB Wrapper with Map-like API
|
|
63
63
|
*
|
|
64
64
|
* @author dragon-fish <dragon-fish@qq.com>
|
|
65
65
|
* @license MIT
|
|
66
|
-
*/class rd{constructor(e,i,r={}){M(this,"iterBatch");M(this,"retry");M(this,"inlineKey");M(this,"idbStoreHandle");this.dbName=e,this.storeName=i,this.iterBatch=(r.iterBatch??100)|0,this.retry=r.retry,this.inlineKey=!!r.ensure?.keyPath,this.idbStoreHandle=ge.createStore(e,i,r.ensure??{})}async get(e){const i=await this.idbStoreHandle;return ge.get(i,e)}async set(e,i){const r=await this.idbStoreHandle;return this.inlineKey?ge.withObjectStore(r,"readwrite",async n=>{const s=n.put(i);await ge.promisifyRequest(s)},this.retry):ge.set(r,e,i)}async delete(e){const i=await this.idbStoreHandle;return ge.del(i,e)}async clear(){const e=await this.idbStoreHandle;return ge.clear(e)}async has(e){const i=await this.idbStoreHandle;return ge.withObjectStore(i,"readonly",async r=>{const n=r.count(e);return await ge.promisifyRequest(n)>0},this.retry)}async count(){const e=await this.idbStoreHandle;return ge.withObjectStore(e,"readonly",async i=>{const r=i.count();return ge.promisifyRequest(r)},this.retry)}entries(){const e=this;return{[Symbol.asyncIterator](){let i=null;return{async next(){if(!i){const r=await e.idbStoreHandle;i=ge.entries(r,e.iterBatch)[Symbol.asyncIterator]()}return await i.next()}}}}}keys(){const e=this;return{[Symbol.asyncIterator](){let i=null;return{async next(){if(!i){const r=await e.idbStoreHandle;i=ge.keys(r,e.iterBatch)[Symbol.asyncIterator]()}return await i.next()}}}}}values(){const e=this;return{[Symbol.asyncIterator](){const i=e.entries()[Symbol.asyncIterator]();return{async next(){const r=await i.next();return r.done?{value:void 0,done:!0}:{value:r.value[1],done:!1}}}}}}[Symbol.asyncIterator](){return this.entries()[Symbol.asyncIterator]()}async forEach(e){for await(const[i,r]of this.entries())await e(r,i,this)}async setMany(e){const i=await this.idbStoreHandle;await ge.withObjectStore(i,"readwrite",async r=>{for await(const[n,s]of $a(e)){const o=this.inlineKey?r.put(s):r.put(s,n);await ge.promisifyRequest(o)}},this.retry)}async deleteMany(e){const i=await this.idbStoreHandle;await ge.withObjectStore(i,"readwrite",async r=>{for await(const n of $a(e)){const s=r.delete(n);await ge.promisifyRequest(s)}},this.retry)}async tx(e,i){const r=await this.idbStoreHandle;return ge.withObjectStore(r,e,i,this.retry)}async close(){await ge.closeDatabase(this.dbName)}}function $a(t){return t[Symbol.asyncIterator]?t:{async*[Symbol.asyncIterator](){for(const e of t)yield e}}}class nd{constructor(e,i,r=1/0,n){this.dbName=e,this.storeName=i,this.ttl=r,this.version=n,this.db=new rd(e,i),this.keys=this.db.keys.bind(this.db),this.values=this.db.values.bind(this.db),this.entries=this.db.entries.bind(this.db)}async get(e,i=this.ttl,r){const n=await this.loadFromDB(e),s=this.checkIfExpired(n,i);if(!n||s){if(typeof r=="function"){const o=await r();return await this.set(e,o),o}return null}return n.value}async set(e,i){if(i===null||typeof i>"u")return this.delete(e);const r={time:Date.now(),value:i,version:this.version};return await this.db.set(e,r),r}async has(e,i=this.ttl){const r=await this.loadFromDB(e),n=this.checkIfExpired(r,i);return r!==null&&!n}async delete(e){await this.db.delete(e)}async loadFromDB(e){const i=await this.db.get(e);if(i===void 0)return null;if(typeof i.time!="number"||typeof i.value>"u"){try{await this.delete(e)}catch{}return null}if(typeof this.version=="number"&&i.version!==this.version){try{await this.delete(e)}catch{}return null}return i}checkIfExpired(e,i=this.ttl){return e?Date.now()-e.time>i:!1}async clear(){return await this.db.clear(),this}}class sd extends $t{constructor(e){super(e,"storage",!1)}createDatabse(e,i,r){return new nd("InPageEdit",e,i,r)}}var Ye=(t=>(t.preferences="preferences",t.watch="watch",t.unwatch="unwatch",t.nochange="nochange",t))(Ye||{});function od(t){const i=class i{constructor(n,s=!0){this._loaded=s,this.api=t,n.revisions?.forEach(o=>{typeof o?.slots?.main=="object"&&Object.assign(o,o.slots.main)}),this.pageInfo={...i.DEFAULT_PAGE_INFO,...n}}static async newFromApi(n){const{data:s}=await this.api.get({...i.DEFAULT_QUERY_PARAMS,...n}),o=s?.query?.pages?.[0];if(!o||!o.title)throw new Error("Invalid page info",{cause:s});return new i(o,!0)}static newBlankPage(n={}){return new i(n,!1)}async parse(n){return this.api.post({action:"parse",page:this.pageInfo.title,prop:"text|langlinks|categories|links|templates|images|externallinks|sections|revid|displaytitle|iwlinks|properties|parsewarnings",...n})}async preview(n,s){return this.parse({action:"parse",page:void 0,title:this.title,text:n,pst:1,preview:1,disableeditsection:1,disablelimitreport:1,...s})}async edit(n,s){const{text:o,prependtext:a,appendtext:l,summary:c="",watchlist:u=Ye.preferences,section:f}=n;return this.api.postWithEditToken({action:"edit",title:this.title,starttimestamp:this.pageInfo.touched,basetimestamp:this.revisions[0]?.timestamp,text:o,prependtext:a,appendtext:l,summary:c,watchlist:u,section:f,...s})}async createOnly(n,s){return this.edit(n,{createonly:1,...s})}async delete(n,s){return this.api.postWithEditToken({action:"delete",pageid:this.pageInfo.pageid,reason:n,...s})}async moveTo(n,s,o){return this.api.postWithEditToken({action:"move",from:this.pageInfo.title,to:n,reason:s,movetalk:1,movesubpages:1,...o})}userCan(n){return!!this.pageInfo?.actions?.[n]}userCanEdit(){return this.userCan("edit")}async reloadSelfInfo(){const n=await i.newFromApi({pageids:this.pageInfo.pageid,titles:this.pageInfo.title}),s=(this.pageInfo.revisions||[]).concat(n.revisions||[]).sort((o,a)=>o.revid-a.revid).reduce((o,a)=>(o.find(l=>l.revid===a.revid)||o.push(a),o),[]);return this.pageInfo=n.pageInfo,this.pageInfo.revisions=s,this._loaded=!0,this}get pageid(){return this.pageInfo.pageid}get title(){return this.pageInfo.title}get ns(){return this.pageInfo.ns}get contentmodel(){return this.pageInfo.contentmodel}get fullurl(){return this.pageInfo.fullurl}get canonicalurl(){return this.pageInfo.canonicalurl}get editurl(){return this.pageInfo.editurl}get revisions(){return this.pageInfo.revisions||[]}get lastrevid(){return this.pageInfo.lastrevid}get templates(){return this.pageInfo.templates||[]}get images(){return this.pageInfo.images||[]}};i.api=t,i.DEFAULT_QUERY_PARAMS={action:"query",prop:"info|templates|transcludedin|images|pageimages|revisions",inprop:"protection|url|varianttitles",intestactions:"edit|move|delete",tllimit:"max",tilimit:"max",imlimit:"max",piprop:"thumbnail|name|original",pithumbsize:"200",pilimit:"max",rvprop:"ids|timestamp|flags|comment|user|content",rvslots:"main"},i.DEFAULT_PAGE_INFO={pageid:0,ns:0,title:"",contentmodel:"wikitext",pagelanguage:"",pagelanguagehtmlcode:"",pagelanguagedir:"ltr",touched:new Date().toISOString(),lastrevid:0,length:0,protection:[],restrictiontypes:[],fullurl:"",canonicalurl:"",editurl:"",varianttitles:{},actions:{edit:!0,move:!1,delete:!1},revisions:[],templates:[],images:[]};let e=i;return e}const Po=class Po extends $t{constructor(e){super(e,"wikiPage",!0),this.ctx=e,this.WikiPage=od(this.ctx.api)}async createInstance(e,i=!1){return await this.WikiPage.newFromApi(e)}async newFromTitle(e,i=!1,r,n=!1){return this.createInstance({titles:e.toString(),converttitles:i,rvsection:r},n)}async newFromPageId(e,i,r=!1){return this.createInstance({pageids:e,rvsection:i},r)}async newFromRevision(e,i,r=!1){return await this.createInstance({revids:e,rvsection:i},r)}newBlankPage(e={}){return this.WikiPage.newBlankPage(e)}};Po.inject=["api"];let ls=Po;const Pa=new WeakMap,ut={toDBKey:t=>t.replace(/ /g,"_"),toNormalText:t=>t.replace(/_/g," "),ensureCase:(t,e)=>e==="first-letter"?t.charAt(0).toUpperCase()+t.slice(1):t},ci={normalizeSpecialPageName:t=>t.toLowerCase(),buildSpecialPageIndex:t=>{const e=new Map,i=new Map,r=new Map;for(const n of t.specialpagealiases){const s=n.realname;e.set(s,s);const o=ci.normalizeSpecialPageName(s);r.set(o,s);for(const a of n.aliases){i.set(a,s);const l=ci.normalizeSpecialPageName(a);r.set(l,s)}}return{byRealName:e,byAlias:i,byNormalized:r}},findSpecialPageRealName:(t,e)=>{const i=t.split("/")[0];let r=e.byRealName.get(i)??e.byAlias.get(i);if(r!==void 0)return r;const n=ci.normalizeSpecialPageName(i);return e.byNormalized.get(n)??null}},nt={normalizeNamespaceText:t=>t.replace(/[_\s]+/g,"_").toLowerCase().replace(/^_+|_+$/g,""),buildIndex:t=>{const e=new Map,i=new Map,r=new Map,n=new Map;for(const[s,o]of Object.entries(t.namespaces)){const a=parseInt(s);e.set(o.name,a),i.set(o.canonical??"",a);const l=nt.normalizeNamespaceText(o.name),c=nt.normalizeNamespaceText(o.canonical??"");n.set(l,a),n.set(c,a)}for(const s of t.namespacealiases){r.set(s.alias,s.id);const o=nt.normalizeNamespaceText(s.alias);n.set(o,s.id)}return{byName:e,byCanonical:i,byAlias:r,byNormalized:n}},findNamespaceId:(t,e)=>{let i=e.byName.get(t)??e.byCanonical.get(t)??e.byAlias.get(t);if(i!==void 0)return i;const r=nt.normalizeNamespaceText(t);return e.byNormalized.get(r)??null},isTalkPage:t=>t%2===1&&t>0,getDefaultNamespaceInfo:t=>({id:t,name:"",canonical:"",case:"first-letter",content:!1,nonincludable:!1,subpages:!1})};function ad(t){var s,o;const e=Pa.get(t);if(e)return e;const i=nt.buildIndex(t),r=ci.buildSpecialPageIndex(t),a=class a{constructor(c,u){Ii(this,s);Ii(this,o);if(this.newTitle=a.create.bind(a),this.toText=this.getPrefixedText.bind(this),this.toString=this.getPrefixedDBKey.bind(this),ze(this,s,c||""),ze(this,o,u??0),u===void 0?this.fixNSByTitle():this.stripNamespaceFromTitle(),this.getMainText()==="")throw new Error("Invalid title")}static create(c,u){return new a(c,u)}fixNSByTitle(){const c=J(this,s).indexOf(":");if(c===-1)return;if(c===0){ze(this,s,J(this,s).substring(1));return}const u=J(this,s).substring(0,c),f=J(this,s).substring(c+1),d=nt.findNamespaceId(u,a._namespaceIndex);d!==null&&(ze(this,s,f),ze(this,o,d))}stripNamespaceFromTitle(){const c=J(this,s).indexOf(":");if(c===-1)return;if(c===0){ze(this,s,J(this,s).substring(1));return}const u=J(this,s).substring(0,c),f=J(this,s).substring(c+1);nt.findNamespaceId(u,a._namespaceIndex)!==null&&ze(this,s,f)}getNamespaceInfo(){return a._meta.namespaces[J(this,o)]??nt.getDefaultNamespaceInfo(J(this,o))}getMainDBKey(){const c=this.getNamespaceInfo();if(J(this,o)===-1){const u=ci.findSpecialPageRealName(J(this,s),a._specialPageIndex);if(u){const f=J(this,s).includes("/")?J(this,s).substring(J(this,s).indexOf("/")):"",d=u+f;return ut.ensureCase(ut.toDBKey(d),c.case)}}return ut.ensureCase(ut.toDBKey(J(this,s)),c.case)}getMainText(){const c=this.getNamespaceInfo();if(J(this,o)===-1){const u=ci.findSpecialPageRealName(J(this,s),a._specialPageIndex);if(u){const f=J(this,s).includes("/")?J(this,s).substring(J(this,s).indexOf("/")):"",d=u+f;return ut.ensureCase(ut.toNormalText(d),c.case)}}return ut.ensureCase(ut.toNormalText(J(this,s)),c.case)}getMainRootText(){return this.getMainText().split("/")[0]}getPrefixedDBKey(){return J(this,o)===0?this.getMainDBKey():`${this.getNamespaceDBKey()}:${this.getMainDBKey()}`}getPrefixedText(){return J(this,o)===0?this.getMainText():`${this.getNamespaceText()}:${this.getMainText()}`}getNamespaceId(){return J(this,o)}getNamespaceText(){return this.getNamespaceInfo().name??""}getNamespaceDBKey(){const c=this.getNamespaceInfo();return ut.ensureCase(ut.toDBKey(this.getNamespaceText()),c.case)}getSubjectPage(){if(nt.isTalkPage(J(this,o))){const c=J(this,o)-1;return new a(J(this,s),c)}return this}getTalkPage(){if(nt.isTalkPage(J(this,o)))return this;if(J(this,o)<0)return null;const c=J(this,o)+1;return a._meta.namespaces[c.toString()]?new a(J(this,s),c):null}getURL(c){const u=a._meta.general.articlepath,f=this.getPrefixedDBKey(),d=u.replace("$1",f),y=new URL(d,location.origin);return c&&(c instanceof URLSearchParams?c:new URLSearchParams(c)).forEach((E,j)=>{y.searchParams.set(j,E)}),y}setTitle(c){return ze(this,s,c),ze(this,o,0),this.fixNSByTitle(),this}setMainText(c){return ze(this,s,c),this}setNamespaceText(c){const u=nt.findNamespaceId(c,a._namespaceIndex);return u!==null&&ze(this,o,u),this}setNamespaceId(c){return ze(this,o,c),this}equals(c){return typeof c=="string"&&(c=new a(c)),this.getPrefixedDBKey()===c.getPrefixedDBKey()}isSpecial(c){if(J(this,o)!==-1)return!1;const u=new a(c,-1);return this.getMainRootText()===u.getMainRootText()}toJSON(){return{ns:J(this,o),text:this.getMainText(),title:this.getPrefixedText(),url:this.getURL().toString(),isSpecial:J(this,o)<0}}};s=new WeakMap,o=new WeakMap,a._meta=t,a._namespaceIndex=i,a._specialPageIndex=r;let n=a;return Pa.set(t,n),n}const hr=class hr extends $t{constructor(e){super(e,"wikiTitle",!0),this.ctx=e,this.logger=this.ctx.logger("WikiTitleService"),this._cachedTitles=new Map,this.wiki=this.ctx.wiki,this.wikiBaseUrl=this.wiki.baseUrl,this.wikiArticlePath=this.wiki.articlePath.replace("$1",""),this.wikiArticleBaseUrl=this.wiki.articleBaseUrl.replace("$1",""),this.wikiIndexPhpUrl=this.wiki.getSciprtUrl("index.php"),this.Title=ad(this.ctx.wiki._raw)}newTitle(e,i){return new this.Title(e,i)}newMainPageTitle(){return this.newTitle(this.ctx.wiki.mainPageName)}async newTitleFromUrl(e){const i=this.parseWikiLink(e);return i?.title?i.title:i?.pageId?this.newTitleFromPageId(i.pageId):null}async newTitleFromAnyId(e,i=!1){const{title:r,pageId:n,revId:s}=e??{};if(typeof r=="string")return this.newTitle(r);let o,a;if(s?(o=parseInt(s.toString(),10),a="revid"):n&&(o=parseInt(n.toString(),10),a="pageid"),!o||!a||isNaN(o)||o<=0)throw new Error("Invalid id or kind",{cause:e});if(!i&&this._cachedTitles.has(`${a}:${o}`))return await this._cachedTitles.get(`${a}:${o}`);const{promise:l,resolve:c,reject:u}=re();this._cachedTitles.set(`${a}:${o}`,l);try{const{wikiPage:f}=await this.ctx.useScope(["wikiPage"]);let d=null;if(a==="pageid")d=await f.newFromPageId(o);else if(a==="revid")d=await f.newFromRevision(o);else throw new Error(`Invalid kind: ${a}`);c(this.newTitle(d.title))}catch(f){this._cachedTitles.delete(`${a}:${o}`),u(f)}return l}async newTitleFromPageId(e){return this.newTitleFromAnyId({pageId:e})}async newTitleFromRevision(e){return this.newTitleFromAnyId({revId:e})}resolveSpecialPageTarget(e){const i=typeof e=="string"?this.newTitle(e):e;if(!i||i.getNamespaceId()!==-1)return null;let r,n,s="view";const o=i.getMainDBKey().split("/").slice(1).join("/")||"";if(i.isSpecial("edit")&&o)r=o,s="edit";else if(i.isSpecial("talkpage")&&o){const a=i.newTitle(o).getTalkPage();if(!a)return null;r=a.getPrefixedDBKey()}else if(i.isSpecial("mypage"))r=i.newTitle(this.ctx.wiki.userInfo.name,2).getPrefixedDBKey()+(o?`/${o}`:"");else if(i.isSpecial("mytalk"))r=i.newTitle(this.ctx.wiki.userInfo.name,3).getPrefixedDBKey()+(o?`/${o}`:"");else if(i.isSpecial("newsection")&&o)r=o,n="new",s="edit";else return null;return{title:new this.Title(r),section:n,action:s}}isWikiLink(e){return e.startsWith(this.wikiArticleBaseUrl)||e.startsWith(this.wikiIndexPhpUrl)||e.startsWith(`${this.wikiBaseUrl}/?`)}validateHrefAttr(e){return typeof e!="string"?!1:!hr.REG_SKIPPED_HREF.test(e)}parseWikiLink(e){if(!e||typeof e=="string"&&!this.validateHrefAttr(e))return null;const i=va(e);if(!this.isWikiLink(i.toString()))return null;const r=i.searchParams,n=i.hash.replace("#",""),s=r.get("action")||"view",o=r.get("title")||"",a=parseInt(r.get("curid")||"0",10),l=parseInt(r.get("oldid")||"0",10);let c=o||(()=>{try{return decodeURIComponent(i.pathname.substring(this.wikiArticlePath.length))}catch(y){return this.logger.error("parseLink",i,y),""}})();c.endsWith("index.php")&&(c="");let u,f,d;if(l)d=l;else if(a)f=a;else if(c)u=this.newTitle(c);else if(i.origin+i.pathname===this.ctx.wiki.landingPageUrl)u=this.newMainPageTitle();else return null;return{title:u,pageId:f,revId:d,url:i,params:r,hash:n,action:s}}};hr.inject=["wiki"],hr.REG_SKIPPED_HREF=/^(#|javascript:|vbscript:|file:)/i;let cs=hr;const ld=t=>typeof t=="function";async function cd(t){return ld(t)?await t():t}var ud=Object.create,us=Object.defineProperty,fd=Object.getOwnPropertyDescriptor,Ca=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Oa=t=>{throw TypeError(t)},hd=(t,e,i)=>e in t?us(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,dd=(t,e)=>us(t,"name",{value:e,configurable:!0}),pd=t=>[,,,ud(t?.[Ca("metadata")]??null)],md=["class","method","getter","setter","accessor","field","value","get","set"],Ta=t=>t!==void 0&&typeof t!="function"?Oa("Function expected"):t,gd=(t,e,i,r,n)=>({kind:md[t],name:e,metadata:r,addInitializer:s=>i._?Oa("Already initialized"):n.push(Ta(s||null))}),yd=(t,e)=>hd(e,Ca("metadata"),t[3]),bd=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},wd=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&fd(n,i));dd(n,i);for(var m=r.length-1;m>=0;m--)l=gd(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,Ta(o)&&(n=o);return yd(t,n),y&&us(n,i,y),u?c^4?s:y:n},Ia,fs,Aa;Ia=[ke(["storage"])];class Nr extends(Aa=$t){constructor(e){super(e,"preferences",!0),this.ctx=e,this.db=void 0,this.customRegistries=[],this.categoryDefinitions=[],this._defaultPreferences={},this.db=e.storage.createDatabse("preferences",1/0)}get logger(){return this.ctx.logger("PREFERENCES")}async start(){this.defineCategory({name:"general",label:"General",description:"General settings"}),this.defineCategory({name:"edit",label:"Editing",description:"Settings related to editing content"})}async get(e,i){i??(i=()=>{const n=this.getDefaultValue(e);return this.logger.debug(e,`(fallback value: ${n})`),n});const r=await this.db.get(e,void 0);return r!==null?r:await cd(i)}getDefaultValue(e){var i;return(i=this._defaultPreferences)[e]??(i[e]=this.loadDefaultConfigs()[e])}set(e,i){const r=this.getDefaultValue(e);return i===r?this.db.delete(e):this.db.set(e,i)}async getAll(){const e=this.loadDefaultConfigs();for await(const[i,r]of this.db.entries())i!=="_touched"&&(e[i]=r.value);return e}async getExportable(){const e=await this.getAll(),i=this.loadDefaultConfigs(),r={};return Object.entries(i).forEach(([n,s])=>{const o=e[n];o!==s&&(r[n]=o)}),r}loadDefaultConfigs(){const e={};return this.getConfigRegistries().forEach(i=>{try{const r=i.schema({});Object.entries(r).forEach(([n,s])=>{e[n]=s})}catch{}}),Object.entries(e).forEach(([i,r])=>{this._defaultPreferences[i]=r}),e}registerCustomConfig(e,i,r){return this.customRegistries.push({name:e,schema:i,category:r}),this}getConfigRegistries(e){return Array.from(this.ctx.registry.entries()).map(([i])=>i===null?{name:"@root",schema:ui?.PreferencesSchema||null}:{name:i.name,schema:i?.PreferencesSchema||null}).filter(i=>i.schema!==null).map(i=>({...i,category:i.schema.meta.category||"general"})).concat(this.customRegistries).filter(i=>!e||i.category===e)}defineCategory(e){const i=this.categoryDefinitions.findIndex(r=>r.name===e.name);return i<0?this.categoryDefinitions.push(e):this.categoryDefinitions[i]=e,this.categoryDefinitions.sort((r,n)=>(r.index??0)-(n.index??0)),this}getConfigCategories(){return this.categoryDefinitions}}fs=pd(Aa),Nr=wd(fs,0,"PreferencesService",Ia,Nr),bd(fs,1,Nr);var Mr=(t=>(t.ANALYTICS_API_BASE="https://analytics.ipe.wiki/api",t.ANALYTICS_DASH_URL="https://analytics.ipe.wiki",t.GITHUB_URL="https://github.com/inpageedit/inpageedit-next",t.HOME_URL="https://www.ipe.wiki/",t.UPDATE_LOGS_URL="https://www.ipe.wiki/changelogs/",t))(Mr||{});/**
|
|
66
|
+
*/class ph{constructor(e,i,n={}){j(this,"iterBatch");j(this,"retry");j(this,"inlineKey");j(this,"idbStoreHandle");this.dbName=e,this.storeName=i,this.iterBatch=(n.iterBatch??100)|0,this.retry=n.retry,this.inlineKey=!!n.ensure?.keyPath,this.idbStoreHandle=ye.createStore(e,i,n.ensure??{})}async get(e){const i=await this.idbStoreHandle;return ye.get(i,e)}async set(e,i){const n=await this.idbStoreHandle;return this.inlineKey?ye.withObjectStore(n,"readwrite",async r=>{const s=r.put(i);await ye.promisifyRequest(s)},this.retry):ye.set(n,e,i)}async delete(e){const i=await this.idbStoreHandle;return ye.del(i,e)}async clear(){const e=await this.idbStoreHandle;return ye.clear(e)}async has(e){const i=await this.idbStoreHandle;return ye.withObjectStore(i,"readonly",async n=>{const r=n.count(e);return await ye.promisifyRequest(r)>0},this.retry)}async count(){const e=await this.idbStoreHandle;return ye.withObjectStore(e,"readonly",async i=>{const n=i.count();return ye.promisifyRequest(n)},this.retry)}entries(){const e=this;return{[Symbol.asyncIterator](){let i=null;return{async next(){if(!i){const n=await e.idbStoreHandle;i=ye.entries(n,e.iterBatch)[Symbol.asyncIterator]()}return await i.next()}}}}}keys(){const e=this;return{[Symbol.asyncIterator](){let i=null;return{async next(){if(!i){const n=await e.idbStoreHandle;i=ye.keys(n,e.iterBatch)[Symbol.asyncIterator]()}return await i.next()}}}}}values(){const e=this;return{[Symbol.asyncIterator](){const i=e.entries()[Symbol.asyncIterator]();return{async next(){const n=await i.next();return n.done?{value:void 0,done:!0}:{value:n.value[1],done:!1}}}}}}[Symbol.asyncIterator](){return this.entries()[Symbol.asyncIterator]()}async forEach(e){for await(const[i,n]of this.entries())await e(n,i,this)}async setMany(e){const i=await this.idbStoreHandle;await ye.withObjectStore(i,"readwrite",async n=>{for await(const[r,s]of La(e)){const o=this.inlineKey?n.put(s):n.put(s,r);await ye.promisifyRequest(o)}},this.retry)}async deleteMany(e){const i=await this.idbStoreHandle;await ye.withObjectStore(i,"readwrite",async n=>{for await(const r of La(e)){const s=n.delete(r);await ye.promisifyRequest(s)}},this.retry)}async tx(e,i){const n=await this.idbStoreHandle;return ye.withObjectStore(n,e,i,this.retry)}async close(){await ye.closeDatabase(this.dbName)}}function La(t){return t[Symbol.asyncIterator]?t:{async*[Symbol.asyncIterator](){for(const e of t)yield e}}}class mh{constructor(e,i,n=1/0,r){this.dbName=e,this.storeName=i,this.ttl=n,this.version=r,this.db=new ph(e,i),this.keys=this.db.keys.bind(this.db),this.values=this.db.values.bind(this.db),this.entries=this.db.entries.bind(this.db),typeof this.ttl!="number"&&(this.ttl=Number(this.ttl)),(isNaN(this.ttl)||this.ttl<=0)&&(this.ttl=1/0)}async get(e,i=this.ttl,n){const r=await this.loadFromDB(e),s=this.checkIfExpired(r,i);if(!r||s){if(typeof n=="function"){const o=await n();return await this.set(e,o),o}return null}return r.value}async set(e,i){if(i===null||typeof i>"u")return this.delete(e);const n={time:Date.now(),value:i,version:this.version};return await this.db.set(e,n),n}async has(e,i=this.ttl){const n=await this.loadFromDB(e),r=this.checkIfExpired(n,i);return n!==null&&!r}async delete(e){await this.db.delete(e)}async loadFromDB(e){const i=await this.db.get(e);if(i===void 0)return null;if(typeof i.time!="number"||typeof i.value>"u"){try{await this.delete(e)}catch{}return null}if(typeof this.version=="number"&&i.version!==this.version){try{await this.delete(e)}catch{}return null}return i}checkIfExpired(e,i=this.ttl){return e?Date.now()-e.time>i:!1}async clear(){return await this.db.clear(),this}}class gh extends Pt{constructor(e){super(e,"storage",!1)}createDatabse(e,i,n){return new mh("InPageEdit",e,i,n)}}var Je=(t=>(t.preferences="preferences",t.watch="watch",t.unwatch="unwatch",t.nochange="nochange",t))(Je||{});function yh(t){const i=class i{constructor(r,s=!0){this._loaded=s,this.api=t,r.revisions?.forEach(o=>{typeof o?.slots?.main=="object"&&Object.assign(o,o.slots.main)}),this.pageInfo={...i.DEFAULT_PAGE_INFO,...r}}static async newFromApi(r){const{data:s}=await this.api.get({...i.DEFAULT_QUERY_PARAMS,...r}),o=s?.query?.pages?.[0];if(!o||!o.title)throw new Error("Invalid page info",{cause:s});return new i(o,!0)}static newBlankPage(r={}){return new i(r,!1)}async parse(r){return this.api.post({action:"parse",page:this.pageInfo.title,prop:"text|langlinks|categories|links|templates|images|externallinks|sections|revid|displaytitle|iwlinks|properties|parsewarnings",...r})}async preview(r,s){return this.parse({action:"parse",page:void 0,title:this.title,text:r,pst:1,preview:1,disableeditsection:1,disablelimitreport:1,...s})}async edit(r,s){const{text:o,prependtext:a,appendtext:l,summary:c="",watchlist:u=Je.preferences,section:f}=r;return this.api.postWithEditToken({action:"edit",title:this.title,starttimestamp:this.pageInfo.touched,basetimestamp:this.revisions[0]?.timestamp,text:o,prependtext:a,appendtext:l,summary:c,watchlist:u,section:f,...s})}async createOnly(r,s){return this.edit(r,{createonly:1,...s})}async delete(r,s){return this.api.postWithEditToken({action:"delete",pageid:this.pageInfo.pageid,reason:r,...s})}async moveTo(r,s,o){return this.api.postWithEditToken({action:"move",from:this.pageInfo.title,to:r,reason:s,movetalk:1,movesubpages:1,...o})}userCan(r){return!!this.pageInfo?.actions?.[r]}userCanEdit(){return this.userCan("edit")}async reloadSelfInfo(){const r=await i.newFromApi({pageids:this.pageInfo.pageid,titles:this.pageInfo.title}),s=(this.pageInfo.revisions||[]).concat(r.revisions||[]).sort((o,a)=>o.revid-a.revid).reduce((o,a)=>(o.find(l=>l.revid===a.revid)||o.push(a),o),[]);return this.pageInfo=r.pageInfo,this.pageInfo.revisions=s,this._loaded=!0,this}get pageid(){return this.pageInfo.pageid}get title(){return this.pageInfo.title}get ns(){return this.pageInfo.ns}get contentmodel(){return this.pageInfo.contentmodel}get fullurl(){return this.pageInfo.fullurl}get canonicalurl(){return this.pageInfo.canonicalurl}get editurl(){return this.pageInfo.editurl}get revisions(){return this.pageInfo.revisions||[]}get lastrevid(){return this.pageInfo.lastrevid}get templates(){return this.pageInfo.templates||[]}get images(){return this.pageInfo.images||[]}};i.api=t,i.DEFAULT_QUERY_PARAMS={action:"query",prop:"info|templates|transcludedin|images|pageimages|revisions",inprop:"protection|url|varianttitles",intestactions:"edit|move|delete",tllimit:"max",tilimit:"max",imlimit:"max",piprop:"thumbnail|name|original",pithumbsize:"200",pilimit:"max",rvprop:"ids|timestamp|flags|comment|user|content",rvslots:"main"},i.DEFAULT_PAGE_INFO={pageid:0,ns:0,title:"",contentmodel:"wikitext",pagelanguage:"",pagelanguagehtmlcode:"",pagelanguagedir:"ltr",touched:new Date().toISOString(),lastrevid:0,length:0,protection:[],restrictiontypes:[],fullurl:"",canonicalurl:"",editurl:"",varianttitles:{},actions:{edit:!0,move:!1,delete:!1},revisions:[],templates:[],images:[]};let e=i;return e}const No=class No extends Pt{constructor(e){super(e,"wikiPage",!0),this.ctx=e,this.WikiPage=yh(this.ctx.api)}async createInstance(e,i=!1){return await this.WikiPage.newFromApi(e)}async newFromTitle(e,i=!1,n,r=!1){return this.createInstance({titles:e.toString(),converttitles:i,rvsection:n},r)}async newFromPageId(e,i,n=!1){return this.createInstance({pageids:e,rvsection:i},n)}async newFromRevision(e,i,n=!1){return await this.createInstance({revids:e,rvsection:i},n)}newBlankPage(e={}){return this.WikiPage.newBlankPage(e)}};No.inject=["api"];let hs=No;const Na=new WeakMap,ft={toDBKey:t=>t.replace(/ /g,"_"),toNormalText:t=>t.replace(/_/g," "),ensureCase:(t,e)=>e==="first-letter"?t.charAt(0).toUpperCase()+t.slice(1):t},fi={normalizeSpecialPageName:t=>t.toLowerCase(),buildSpecialPageIndex:t=>{const e=new Map,i=new Map,n=new Map;for(const r of t.specialpagealiases){const s=r.realname;e.set(s,s);const o=fi.normalizeSpecialPageName(s);n.set(o,s);for(const a of r.aliases){i.set(a,s);const l=fi.normalizeSpecialPageName(a);n.set(l,s)}}return{byRealName:e,byAlias:i,byNormalized:n}},findSpecialPageRealName:(t,e)=>{const i=t.split("/")[0];let n=e.byRealName.get(i)??e.byAlias.get(i);if(n!==void 0)return n;const r=fi.normalizeSpecialPageName(i);return e.byNormalized.get(r)??null}},st={normalizeNamespaceText:t=>t.replace(/[_\s]+/g,"_").toLowerCase().replace(/^_+|_+$/g,""),buildIndex:t=>{const e=new Map,i=new Map,n=new Map,r=new Map;for(const[s,o]of Object.entries(t.namespaces)){const a=parseInt(s);e.set(o.name,a),i.set(o.canonical??"",a);const l=st.normalizeNamespaceText(o.name),c=st.normalizeNamespaceText(o.canonical??"");r.set(l,a),r.set(c,a)}for(const s of t.namespacealiases){n.set(s.alias,s.id);const o=st.normalizeNamespaceText(s.alias);r.set(o,s.id)}return{byName:e,byCanonical:i,byAlias:n,byNormalized:r}},findNamespaceId:(t,e)=>{let i=e.byName.get(t)??e.byCanonical.get(t)??e.byAlias.get(t);if(i!==void 0)return i;const n=st.normalizeNamespaceText(t);return e.byNormalized.get(n)??null},isTalkPage:t=>t%2===1&&t>0,getDefaultNamespaceInfo:t=>({id:t,name:"",canonical:"",case:"first-letter",content:!1,nonincludable:!1,subpages:!1})};function bh(t){var s,o;const e=Na.get(t);if(e)return e;const i=st.buildIndex(t),n=fi.buildSpecialPageIndex(t),a=class a{constructor(c,u){Ni(this,s);Ni(this,o);if(this.newTitle=a.create.bind(a),this.toText=this.getPrefixedText.bind(this),this.toString=this.getPrefixedDBKey.bind(this),We(this,s,c||""),We(this,o,u??0),u===void 0?this.fixNSByTitle():this.stripNamespaceFromTitle(),this.getMainText()==="")throw new Error("Invalid title")}static create(c,u){return new a(c,u)}fixNSByTitle(){const c=J(this,s).indexOf(":");if(c===-1)return;if(c===0){We(this,s,J(this,s).substring(1));return}const u=J(this,s).substring(0,c),f=J(this,s).substring(c+1),p=st.findNamespaceId(u,a._namespaceIndex);p!==null&&(We(this,s,f),We(this,o,p))}stripNamespaceFromTitle(){const c=J(this,s).indexOf(":");if(c===-1)return;if(c===0){We(this,s,J(this,s).substring(1));return}const u=J(this,s).substring(0,c),f=J(this,s).substring(c+1);st.findNamespaceId(u,a._namespaceIndex)!==null&&We(this,s,f)}getNamespaceInfo(){return a._meta.namespaces[J(this,o)]??st.getDefaultNamespaceInfo(J(this,o))}getMainDBKey(){const c=this.getNamespaceInfo();if(J(this,o)===-1){const u=fi.findSpecialPageRealName(J(this,s),a._specialPageIndex);if(u){const f=J(this,s).includes("/")?J(this,s).substring(J(this,s).indexOf("/")):"",p=u+f;return ft.ensureCase(ft.toDBKey(p),c.case)}}return ft.ensureCase(ft.toDBKey(J(this,s)),c.case)}getMainText(){const c=this.getNamespaceInfo();if(J(this,o)===-1){const u=fi.findSpecialPageRealName(J(this,s),a._specialPageIndex);if(u){const f=J(this,s).includes("/")?J(this,s).substring(J(this,s).indexOf("/")):"",p=u+f;return ft.ensureCase(ft.toNormalText(p),c.case)}}return ft.ensureCase(ft.toNormalText(J(this,s)),c.case)}getMainRootText(){return this.getMainText().split("/")[0]}getPrefixedDBKey(){return J(this,o)===0?this.getMainDBKey():`${this.getNamespaceDBKey()}:${this.getMainDBKey()}`}getPrefixedText(){return J(this,o)===0?this.getMainText():`${this.getNamespaceText()}:${this.getMainText()}`}getNamespaceId(){return J(this,o)}getNamespaceText(){return this.getNamespaceInfo().name??""}getNamespaceDBKey(){const c=this.getNamespaceInfo();return ft.ensureCase(ft.toDBKey(this.getNamespaceText()),c.case)}getSubjectPage(){if(st.isTalkPage(J(this,o))){const c=J(this,o)-1;return new a(J(this,s),c)}return this}getTalkPage(){if(st.isTalkPage(J(this,o)))return this;if(J(this,o)<0)return null;const c=J(this,o)+1;return a._meta.namespaces[c.toString()]?new a(J(this,s),c):null}getURL(c){const u=a._meta.general.articlepath,f=this.getPrefixedDBKey(),p=u.replace("$1",f),g=new URL(p,location.origin);return c&&(c instanceof URLSearchParams?c:new URLSearchParams(c)).forEach((k,D)=>{g.searchParams.set(D,k)}),g}setTitle(c){return We(this,s,c),We(this,o,0),this.fixNSByTitle(),this}setMainText(c){return We(this,s,c),this}setNamespaceText(c){const u=st.findNamespaceId(c,a._namespaceIndex);return u!==null&&We(this,o,u),this}setNamespaceId(c){return We(this,o,c),this}equals(c){return typeof c=="string"&&(c=new a(c)),this.getPrefixedDBKey()===c.getPrefixedDBKey()}isSpecial(c){if(J(this,o)!==-1)return!1;const u=new a(c,-1);return this.getMainRootText()===u.getMainRootText()}toJSON(){return{ns:J(this,o),text:this.getMainText(),title:this.getPrefixedText(),url:this.getURL().toString(),isSpecial:J(this,o)<0}}};s=new WeakMap,o=new WeakMap,a._meta=t,a._namespaceIndex=i,a._specialPageIndex=n;let r=a;return Na.set(t,r),r}const bn=class bn extends Pt{constructor(e){super(e,"wikiTitle",!0),this.ctx=e,this.logger=this.ctx.logger("WikiTitleService"),this._cachedTitles=new Map,this.wiki=this.ctx.wiki,this.wikiBaseUrl=this.wiki.baseUrl,this.wikiArticlePath=this.wiki.articlePath.replace("$1",""),this.wikiArticleBaseUrl=this.wiki.articleBaseUrl.replace("$1",""),this.wikiIndexPhpUrl=this.wiki.getSciprtUrl("index.php"),this.Title=bh(this.ctx.wiki.siteInfo)}newTitle(e,i){return new this.Title(e,i)}newMainPageTitle(){return this.newTitle(this.ctx.wiki.mainPageName)}async newTitleFromUrl(e){const i=this.parseWikiLink(e);return i?.title?i.title:i?.pageId?this.newTitleFromPageId(i.pageId):null}async newTitleFromAnyId(e,i=!1){const{title:n,pageId:r,revId:s}=e??{};if(typeof n=="string")return this.newTitle(n);let o,a;if(s?(o=parseInt(s.toString(),10),a="revid"):r&&(o=parseInt(r.toString(),10),a="pageid"),!o||!a||isNaN(o)||o<=0)throw new Error("Invalid id or kind",{cause:e});if(!i&&this._cachedTitles.has(`${a}:${o}`))return await this._cachedTitles.get(`${a}:${o}`);const{promise:l,resolve:c,reject:u}=ne();this._cachedTitles.set(`${a}:${o}`,l);try{const{wikiPage:f}=await this.ctx.useScope(["wikiPage"]);let p=null;if(a==="pageid")p=await f.newFromPageId(o);else if(a==="revid")p=await f.newFromRevision(o);else throw new Error(`Invalid kind: ${a}`);c(this.newTitle(p.title))}catch(f){this._cachedTitles.delete(`${a}:${o}`),u(f)}return l}async newTitleFromPageId(e){return this.newTitleFromAnyId({pageId:e})}async newTitleFromRevision(e){return this.newTitleFromAnyId({revId:e})}resolveSpecialPageTarget(e){const i=typeof e=="string"?this.newTitle(e):e;if(!i||i.getNamespaceId()!==-1)return null;let n,r,s="view";const o=i.getMainDBKey().split("/").slice(1).join("/")||"";if(i.isSpecial("edit")&&o)n=o,s="edit";else if(i.isSpecial("talkpage")&&o){const a=i.newTitle(o).getTalkPage();if(!a)return null;n=a.getPrefixedDBKey()}else if(i.isSpecial("mypage"))n=i.newTitle(this.ctx.wiki.userInfo.name,2).getPrefixedDBKey()+(o?`/${o}`:"");else if(i.isSpecial("mytalk"))n=i.newTitle(this.ctx.wiki.userInfo.name,3).getPrefixedDBKey()+(o?`/${o}`:"");else if(i.isSpecial("newsection")&&o)n=o,r="new",s="edit";else return null;return{title:new this.Title(n),section:r,action:s}}isWikiLink(e){return e.startsWith(this.wikiArticleBaseUrl)||e.startsWith(this.wikiIndexPhpUrl)||e.startsWith(`${this.wikiBaseUrl}/?`)}validateHrefAttr(e){return typeof e!="string"?!1:!bn.REG_SKIPPED_HREF.test(e)}parseWikiLink(e){if(!e||typeof e=="string"&&!this.validateHrefAttr(e))return null;const i=Ca(e);if(!this.isWikiLink(i.toString()))return null;const n=i.searchParams,r=i.hash.replace("#",""),s=n.get("action")||"view",o=n.get("title")||"",a=parseInt(n.get("curid")||"0",10),l=parseInt(n.get("oldid")||"0",10);let c=o||(()=>{try{return decodeURIComponent(i.pathname.substring(this.wikiArticlePath.length))}catch(g){return this.logger.error("parseLink",i,g),""}})();c.endsWith("index.php")&&(c="");let u,f,p;if(l)p=l;else if(a)f=a;else if(c)u=this.newTitle(c);else if(i.origin+i.pathname===this.ctx.wiki.landingPageUrl)u=this.newMainPageTitle();else return null;return{title:u,pageId:f,revId:p,url:i,params:n,hash:r,action:s}}};bn.inject=["wiki"],bn.REG_SKIPPED_HREF=/^(#|javascript:|vbscript:|file:)/i;let ps=bn;const wh=t=>typeof t=="function";async function vh(t){return wh(t)?await t():t}var _h=Object.create,ms=Object.defineProperty,xh=Object.getOwnPropertyDescriptor,Ma=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Da=t=>{throw TypeError(t)},Sh=(t,e,i)=>e in t?ms(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,kh=(t,e)=>ms(t,"name",{value:e,configurable:!0}),Eh=t=>[,,,_h(t?.[Ma("metadata")]??null)],$h=["class","method","getter","setter","accessor","field","value","get","set"],ja=t=>t!==void 0&&typeof t!="function"?Da("Function expected"):t,Ph=(t,e,i,n,r)=>({kind:$h[t],name:e,metadata:n,addInitializer:s=>i._?Da("Already initialized"):r.push(ja(s||null))}),Ch=(t,e)=>Sh(e,Ma("metadata"),t[3]),Oh=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},Ah=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&xh(r,i));kh(r,i);for(var m=n.length-1;m>=0;m--)l=Ph(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,ja(o)&&(r=o);return Ch(t,r),g&&ms(r,i,g),u?c^4?s:g:r},Ua,gs,Fa;Ua=[xe(["storage"])];class Bn extends(Fa=Pt){constructor(e){super(e,"preferences",!0),this.ctx=e,this.db=void 0,this.customRegistries=[],this.categoryDefinitions=[],this._defaultPreferences={},e.set("prefs",this),this.db=e.storage.createDatabse("preferences",1/0)}get logger(){return this.ctx.logger("PREFERENCES")}async start(){this.defineCategory({name:"general",label:"General",description:"General settings"}),this.defineCategory({name:"edit",label:"Editing",description:"Settings related to editing content"})}async get(e,i){i??(i=()=>{const r=this.getDefaultValue(e);return this.logger.debug(e,`(fallback value: ${r})`),r});const n=await this.db.get(e,void 0);return n!==null?n:await vh(i)}getDefaultValue(e){var i;return(i=this._defaultPreferences)[e]??(i[e]=this.loadDefaultConfigs()[e])}set(e,i){const n=this.getDefaultValue(e);return i===n?this.db.delete(e):this.db.set(e,i)}async setMany(e){const i=this.loadDefaultConfigs(),n=Object.fromEntries(Object.entries(e).filter(([r,s])=>{const o=i[r];return s!==void 0&&s!==o}));return await Promise.all(Object.entries(n).map(([r,s])=>this.set(r,s))),n}async getAll(){const e=this.loadDefaultConfigs();for await(const[i,n]of this.db.entries())i!=="_touched"&&(e[i]=n.value);return e}async getExportableRecord(e){e??(e=await this.getAll());const i=this.loadDefaultConfigs(),n={};return Object.entries(i).sort(([r],[s])=>r.localeCompare(s)).forEach(([r,s])=>{const o=e[r];o!==void 0&&o!==s&&(n[r]=o)}),n}loadDefaultConfigs(){const e={};return this.getConfigRegistries().forEach(i=>{try{const n=i.schema({});Object.entries(n).forEach(([r,s])=>{e[r]=s})}catch{}}),Object.entries(e).forEach(([i,n])=>{this._defaultPreferences[i]=n}),e}registerCustomConfig(e,i,n){return this.customRegistries.push({name:e,schema:i,category:n}),this}getConfigRegistries(e){return Array.from(this.ctx.registry.entries()).map(([i])=>i===null?{name:"@root",schema:hi?.PreferencesSchema||null}:{name:i.name,schema:i?.PreferencesSchema||null}).filter(i=>i.schema!==null).map(i=>({...i,category:i.schema.meta.category||"general"})).concat(this.customRegistries).filter(i=>!e||i.category===e)}defineCategory(e){const i=this.categoryDefinitions.findIndex(n=>n.name===e.name);return i<0?this.categoryDefinitions.push(e):this.categoryDefinitions[i]=e,this.categoryDefinitions.sort((n,r)=>(n.index??0)-(r.index??0)),this}getConfigCategories(){return this.categoryDefinitions}}gs=Eh(Fa),Bn=Ah(gs,0,"PreferencesService",Ua,Bn),Oh(gs,1,Bn);var di=(t=>(t.ANALYTICS_API_BASE="https://analytics.ipe.wiki/api/v6",t.ANALYTICS_DASH_URL="https://analytics.ipe.wiki",t.GITHUB_URL="https://github.com/inpageedit/inpageedit-next",t.HOME_URL="https://www.ipe.wiki/",t.UPDATE_LOGS_URL="https://www.ipe.wiki/changelogs/",t))(di||{});/**
|
|
67
67
|
* ✏️ InPageEdit NEXT
|
|
68
68
|
*
|
|
69
69
|
* 🚀 Modular, Extensible Supercharged Plugin for MediaWiki
|
|
@@ -72,35 +72,35 @@
|
|
|
72
72
|
* @license MIT
|
|
73
73
|
* @see https://github.com/inpageedit/inpageedit-next
|
|
74
74
|
* @see https://www.ipe.wiki/
|
|
75
|
-
*/const
|
|
75
|
+
*/const wn=class wn extends Me{constructor(i){super({name:"InPageEdit"});Ni(this,_t);this.version="0.11.0",this.Endpoints=di,this.schema=Y,this.config=Ui(wn.DEFAULT_CONFIG,i),this.logger=ia({name:"IPE",color:"#33aaff",level:this.config.logLevel}),nt(this,_t,of).call(this),nt(this,_t,lf).call(this),nt(this,_t,cf).call(this)}async useScope(i){const{promise:n,resolve:r}=ne();return this.inject(i,s=>{r(s)}),n}};_t=new WeakSet,of=async function(){this.plugin(ed,this.config.apiConfigs),this.plugin(Tn),this.plugin(fd),this.plugin(nh),this.plugin(Bn),this.plugin(gh),this.plugin(Fn),this.plugin(hs),this.plugin(ps),nt(this,_t,af).call(this,["api","currentPage","resourceLoader","modal","preferences","storage","wikiPage","wikiTitle","wiki","getUrl","getSciprtUrl","getMainpageUrl"])},af=function(i){if(typeof i=="string"&&(i=[i]),!Array.isArray(i)||i.length===0)return this;for(const n of i){const r=this[wn.internal][n];r?.type==="service"&&(r.builtin=!0)}return this},lf=async function(){[Promise.resolve().then(()=>Wh).then(({PluginAnalytics:n})=>n),Promise.resolve().then(()=>ip).then(({PluginInArticleLinks:n})=>n),Promise.resolve().then(()=>ry).then(({PluginPreferencesUI:n})=>n),Promise.resolve().then(()=>wy).then(({PluginQuickEdit:n})=>n),Promise.resolve().then(()=>Ay).then(({PluginQuickDelete:n})=>n),Promise.resolve().then(()=>By).then(({PluginQuickMove:n})=>n),Promise.resolve().then(()=>Jy).then(({PluginQuickPreview:n})=>n),Promise.resolve().then(()=>mb).then(({PluginQuickDiff:n})=>n),Promise.resolve().then(()=>gb).then(({PluginQuickRedirect:n})=>n),Promise.resolve().then(()=>Pb).then(({PluginToolbox:n})=>n)].forEach(async n=>{this.plugin(await n)})},cf=async function(){this.inject(["resourceLoader"],i=>{})},wn.DEFAULT_CONFIG={apiConfigs:{},legacyPreferences:{},logLevel:Wr.info,autoloadStyles:!0};let hi=wn;function Ba(t){return t.charAt(0).toLowerCase()+t.slice(1)}function Ih(t){return Ba(t).replace(/_/g,"-").replace(/.[A-Z]+/g,e=>e[0]+"-"+e.slice(1).toLowerCase())}function Th(t){return Ba(t).replace(/-/g,"_").replace(/.[A-Z]+/g,e=>e[0]+"_"+e.slice(1).toLowerCase())}const Ir=class Ir{constructor(e,i=void 0,n){Ni(this,vn);this.ctx=e,this.disposeHandlers=[],this.name=n||"",this.config=i||{};const{promise:r,resolve:s,reject:o}=Promise.withResolvers();queueMicrotask(()=>{this.name||(this.name=this.constructor.name);try{const a=this.start();a&&typeof a.then=="function"?a.then(()=>s()).catch(l=>{this.logger.error("start() returns a rejected promise",l),o(l)}):s()}catch(a){this.logger.error("start() threw synchronously",a),o(a)}r.then(()=>{this.logger.debug("started")}),r.catch(a=>{this.logger.error("start failed",a),this.ctx.scope.dispose()})}),this.ctx.once("dispose",()=>{this.disposeHandlers.forEach(a=>a(this.ctx)),this.stop(),this.logger.debug("disposed")})}start(){}stop(){}addDisposeHandler(e){this.disposeHandlers.push(e)}removeDisposeHandler(e){this.disposeHandlers=this.disposeHandlers.filter(i=>i!==e)}set name(e){We(this,vn,Th(e).toUpperCase())}get name(){return J(this,vn)}get logger(){return this.ctx.logger(this.name)}};vn=new WeakMap,Ir.inject=[],Ir.reusable=!1;let Ve=Ir;window.RLQ||(window.RLQ=[]),window.__IPE_MODULES__||(window.__IPE_MODULES__=[]),Lh("InPageEdit#autoload",()=>{const t=qa();t&&Rh({baseURL:t,CoreClass:hi})});async function Rh(t={baseURL:qa(),CoreClass:hi}){const{baseURL:e,CoreClass:i}=t;typeof window?.ipe?.stop=="function"&&await window.ipe.stop();const n=window.InPageEdit||{},r=new i({apiConfigs:{baseURL:e},legacyPreferences:n?.myPreferences||{}});if(window.InPageEdit=i,window.ipe=r,await r.start(),window.RLQ.push(()=>{mw.hook("InPageEdit.ready").fire(r)}),Array.isArray(window.__IPE_MODULES__)){const s=[];for(;window.__IPE_MODULES__.length;)try{const o=window.__IPE_MODULES__.shift();typeof o=="function"&&o?.(r),s.push(o)}catch{}window.__IPE_MODULES__={push:o=>{typeof o=="function"&&o(r),s.push(o)}},r.on("dispose",()=>{window.__IPE_MODULES__=s})}r.logger("AUTOLOAD").info(`
|
|
76
76
|
____ ____ ______ ___ __
|
|
77
77
|
/ _/___ / __ \\____ _____ ____ / ____/___/ (_) /_
|
|
78
78
|
/ // __ \\/ /_/ / __ \`/ __ \`/ _ \\/ __/ / __ / / __/
|
|
79
79
|
_/ // / / / ____/ /_/ / /_/ / __/ /___/ /_/ / / /_
|
|
80
80
|
/___/_/ /_/_/ \\__,_/\\__, /\\___/_____/\\__,_/_/\\__/
|
|
81
|
-
/____/ v`+
|
|
81
|
+
/____/ v`+r.version+`
|
|
82
82
|
- Wiki API Endpoint: ${e}
|
|
83
|
-
- Documentation: ${
|
|
84
|
-
- Bug Reports: ${Mr.GITHUB_URL}`)}function Ra(){const t=document.querySelector('meta[name="generator"][content^="MediaWiki"]')!==null,e=document.querySelector('link[rel="EditURI"]')?.href?.split("?")[0];return t&&e?e:void 0}function Sd(t,e){const i=Symbol.for(t);return window[i]?!1:(window[i]=!0,e(),!0)}function fi(t){return function(e){return e.PreferencesSchema=t,e}}const La=t=>g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",...t,class:`icon icon-tabler icons-tabler-outline icon-tabler-pencil-bolt ${t.className||""}`,children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4"}),g("path",{d:"M13.5 6.5l4 4"}),g("path",{d:"M19 16l-2 3h4l-2 3"})]});var kd=Object.create,hs=Object.defineProperty,Ed=Object.getOwnPropertyDescriptor,Na=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Ma=t=>{throw TypeError(t)},$d=(t,e,i)=>e in t?hs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Pd=(t,e)=>hs(t,"name",{value:e,configurable:!0}),Cd=t=>[,,,kd(t?.[Na("metadata")]??null)],Od=["class","method","getter","setter","accessor","field","value","get","set"],Da=t=>t!==void 0&&typeof t!="function"?Ma("Function expected"):t,Td=(t,e,i,r,n)=>({kind:Od[t],name:e,metadata:r,addInitializer:s=>i._?Ma("Already initialized"):n.push(Da(s||null))}),Id=(t,e)=>$d(e,Na("metadata"),t[3]),Ad=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},Rd=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&Ed(n,i));Pd(n,i);for(var m=r.length-1;m>=0;m--)l=Td(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,Da(o)&&(n=o);return Id(t,n),y&&hs(n,i,y),u?c^4?s:y:n},ja,ds,Ua;ja=[ke(["wiki","wikiTitle","preferences"]),fi(te.object({"inArticleLinks.enable":te.boolean().description("Whether to enable in-article links").default(!0),"inArticleLinks.quickDiff.enable":te.boolean().description("Whether to enable in-article links for quick diff").default(!0),"inArticleLinks.quickEdit.enable":te.boolean().description("Whether to enable in-article links for quick edit").default(!0),"inArticleLinks.quickEdit.redlinks":te.boolean().description("Whether to show quick edit button for redlinks").default(!0)}).description("In-article links preferences").extra("category","in-article-links"))];class Dr extends(Ua=Je){constructor(e){super(e,{linkClassName:"ipe__in-article-link"},"InArticleLinks"),this._cachedAnchorInfo=new WeakMap,this.ctx.set("inArticleLinks",this),this.ctx.preferences.defineCategory({label:"In Article Links",name:"in-article-links",description:"In-article links preferences",index:9})}async start(){await this.ctx.preferences.get("inArticleLinks.quickEdit.enable")&&this.handleQuickEdit(),await this.ctx.preferences.get("inArticleLinks.quickDiff.enable")&&this.handleQuickDiff()}async stop(){Array.from(document.getElementsByClassName(this.config.linkClassName)).forEach(e=>{e.remove()}),document.querySelectorAll("[data-ipe-edit-mounted]").forEach(e=>{e.dataset.ipeEditMounted=void 0})}parseAnchor(e){if(!(e instanceof HTMLAnchorElement))return null;const i=this._cachedAnchorInfo.get(e);if(i)return i;const r=e.getAttribute("href")||"";if(!this.ctx.wikiTitle.validateHrefAttr(r))return null;const n=e.href||"",s=this.ctx.wikiTitle.parseWikiLink(n);if(!s)return null;const o={$el:e,kind:e.closest('[typeof^="mw:File"]')?"mw:File":"normal",external:e.classList.contains("external")||!!r.startsWith("http"),redlink:e.classList.contains("new")||s.params.has("redlink"),...s};return this._cachedAnchorInfo.set(e,o),o}scanAnchors(e,i){const r=e.querySelectorAll("a[href]");return Array.from(r).map(n=>this.parseAnchor(n)).filter(n=>n!==null&&(!i||i(n)))}async handleQuickEdit(){let e=!1;const i=await this.ctx.preferences.get("inArticleLinks.quickEdit.redlinks");this.ctx.inject(["quickEdit"],r=>{e=!0,r.on("dispose",()=>{e=!1}),window?.mw?.hook?.("wikipage.content").add(n=>{if(!e)return;this.scanAnchors(n.get(0),({action:o,title:a,redlink:l})=>i||!l?["edit","create"].includes(o)?!0:a?.isSpecial("edit")||a?.isSpecial("newsection")?a.getMainText().split("/").length>=2:!1:!1).forEach(({$el:o,title:a,pageId:l,params:c})=>{if(o.dataset.ipeEditMounted)return;if(o.dataset.ipeEditMounted="1",c.has("preload")||c.has("redo"))return this.ctx.logger.debug(o,"Not compatible with quick edit");const f=a?.getPrefixedDBKey()||"",d=c.get("section")?.replace(/^T-/,"")||void 0,y=c.get("oldid"),m=c.has("redlink");let E;d==="new"||a?.isSpecial("newsection")?E="new":d&&/^\d+$/.test(d)&&(E=parseInt(d,10));const j=y?parseInt(y,10):void 0,k={title:f,pageId:l||void 0,section:E,revision:j,createOnly:m},F=g("a",{href:"#ipe://quick-edit/",dataset:k,className:`${this.config.linkClassName} ipe-quick-edit ${m?"ipe-quick-edit--create-only":""}`,style:{userSelect:"none",marginLeft:"0.2em"},onClick:b=>{b.preventDefault(),r.quickEdit.showModal(k)},children:g(La,{className:"ipe-icon"})});o.insertAdjacentElement("afterend",F)})})})}handleQuickDiff(){let e=!1;const i=r=>["prev","next","cur"].includes(r);this.ctx.inject(["quickDiff"],r=>{e=!0,r.on("dispose",()=>{e=!1}),window?.mw?.hook?.("wikipage.content").add(n=>{if(!e)return;this.scanAnchors(n.get(0),({params:o,title:a})=>!!(o.has("diff")||a?.isSpecial("diff"))).forEach(({$el:o,title:a,params:l})=>{if(o.dataset.ipeDiffMounted)return;o.dataset.ipeDiffMounted="1";let c,u;if(a?.getNamespaceId()===-1?([,u,c]=a.getMainDBKey().split("/"),c||(c="prev")):(c=l.get("diff"),u=l.get("oldid")),!c||!u)return;const f={};i(c)?(f.fromrev=parseInt(u),f.torelative=c):(f.fromrev=parseInt(u),f.torev=parseInt(c));const d=g("a",{href:"#ipe://quick-diff/",dataset:f,className:`${this.config.linkClassName} ipe-quick-diff`,style:{userSelect:"none",marginLeft:"0.2em"},onClick:y=>{y.preventDefault(),r.quickDiff.comparePages(f)},children:g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-file-diff ipe-icon",children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),g("path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"}),g("path",{d:"M12 10l0 4"}),g("path",{d:"M10 12l4 0"}),g("path",{d:"M10 17l4 0"})]})});o.insertAdjacentElement("afterend",d)})})})}}ds=Cd(Ua),Dr=Rd(ds,0,"PluginInArticleLinks",ja,Dr),Ad(ds,1,Dr);const Ld=Object.freeze(Object.defineProperty({__proto__:null,get PluginInArticleLinks(){return Dr}},Symbol.toStringTag,{value:"Module"}));/**
|
|
83
|
+
- Documentation: ${di.HOME_URL}
|
|
84
|
+
- Bug Reports: ${di.GITHUB_URL}`)}function qa(){const t=document.querySelector('meta[name="generator"][content^="MediaWiki"]')!==null,e=document.querySelector('link[rel="EditURI"]')?.href?.split("?")[0];return t&&e?e:void 0}function Lh(t,e){const i=Symbol.for(t);return window[i]?!1:(window[i]=!0,e(),!0)}var Nh=Object.create,ys=Object.defineProperty,Mh=Object.getOwnPropertyDescriptor,Ha=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),za=t=>{throw TypeError(t)},Dh=(t,e,i)=>e in t?ys(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,jh=(t,e)=>ys(t,"name",{value:e,configurable:!0}),Uh=t=>[,,,Nh(t?.[Ha("metadata")]??null)],Fh=["class","method","getter","setter","accessor","field","value","get","set"],Wa=t=>t!==void 0&&typeof t!="function"?za("Function expected"):t,Bh=(t,e,i,n,r)=>({kind:Fh[t],name:e,metadata:n,addInitializer:s=>i._?za("Already initialized"):r.push(Wa(s||null))}),qh=(t,e)=>Dh(e,Ha("metadata"),t[3]),Hh=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},zh=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&Mh(r,i));jh(r,i);for(var m=n.length-1;m>=0;m--)l=Bh(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,Wa(o)&&(r=o);return qh(t,r),g&&ys(r,i,g),u?c^4?s:g:r},Ka,bs,Va;Ka=[xe(["wiki","preferences"])];class qn extends(Va=Ve){constructor(e){super(e,{},"analytics"),this.ctx=e,this._usages=[],this._timer=null,this.MAX_QUEUE_SIZE=50,this.INTERVAL_MS=60*1e3,this._setupTimer(),this._registerUnloadHandler(),this._showConfirmNotify(),this._initPluginListeners(),e.set("analytics",this)}start(){this.ctx.preferences.registerCustomConfig("analytics",Y.object({"analytics._intro":Y.const(h("section",{children:[h("h3",{children:"InPageEdit Analytics"}),h("p",{children:"InPageEdit Analytics is the companion analytics platform for the InPageEdit NEXT project. By collecting and displaying usage data from around the world, it helps developers and the community better understand how the tool is used, optimize feature design, and enhance user experience."}),h("h4",{children:"What data will be collected?"}),h("ul",{style:{listStyle:"auto",paddingLeft:"1.5em"},children:[h("li",{children:"Usage data: What features you use, what pages you edit, etc."}),h("li",{children:"User information: Your username, user ID."}),h("li",{children:"Site information: The wiki you are editing."})]}),h("p",{children:h("strong",{children:"NO sensitive data will be collected."})}),h("ul",{style:{listStyle:"auto",paddingLeft:"1.5em"},children:[h("li",{children:h("a",{href:this.analyticsDashUrl,target:"_blank",rel:"noopener noreferrer",children:"Analytics Platform →"})}),h("li",{children:h("a",{href:`${this.analyticsDashUrl}/_redirect/user?${new URLSearchParams({siteApi:this.ctx.wiki.getSciprtUrl("api"),mwUserId:this.ctx.wiki.userInfo.id.toString()}).toString()}`,target:"_blank",rel:"noopener noreferrer",children:"My Data →"})})]})]})).role("raw-html"),"analytics.enabled":Y.boolean().description("Share my usage data with the community.").default(!1)}).description("Analytics settings"),"general")}get analyticsDashUrl(){return di.ANALYTICS_DASH_URL}get analyticsApiBase(){return di.ANALYTICS_API_BASE}_setupTimer(){this._timer=setInterval(()=>{this._usages.length>0&&this.sendBeacon()},this.INTERVAL_MS)}_registerUnloadHandler(){const e=()=>{this._usages.length>0&&this.sendBeacon()};window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()}),window.addEventListener("pagehide",e),window.addEventListener("beforeunload",e)}_showConfirmNotify(){localStorage.getItem("IPE:analytics/confirm-shown")||this.ctx.inject(["modal"],i=>{i.modal.notify("confirm",{title:"Enable Analytics",content:h("div",{children:[h("p",{children:"Help us improve InPageEdit by sharing your usage data with us."}),h("p",{children:"What data will be collected?"}),h("ul",{style:{listStyle:"auto",paddingLeft:"1.5em"},children:[h("li",{children:"Usage data: What features you use, what pages you edit, etc."}),h("li",{children:"User information: Your username, user ID."}),h("li",{children:"Site information: The wiki you are editing."})]}),h("p",{children:h("strong",{children:"NO sensitive data will be collected."})})]}),okBtn:{label:"Enable"},cancelBtn:{label:"Disable"},closeAfter:0,onClose(){localStorage.setItem("IPE:analytics/confirm-shown","1")}},n=>{i.preferences.set("analytics.enabled",n),n&&this.addEvent("analytics","enabled")})})}_initPluginListeners(){const e=this.ctx;e.on("in-article-links/anchor-clicked",i=>{this.addEvent("in-article-links",Ih(i.action))}),e.on("quick-delete/submit",i=>{this.addEvent("quick-delete","submit",i.wikiPage.title)}),e.on("quick-diff/loaded",i=>{this.addEvent("quick-diff","loaded",i.compare.fromtitle)}),e.on("quick-redirect/submit",i=>{this.addEvent("quick-redirect","submit",i.payload.to||void 0)}),e.on("quick-preview/loaded",i=>{this.addEvent("quick-preview","loaded",i.wikiPage.title)}),e.on("quick-edit/wiki-page",i=>{this.addEvent("quick-edit",void 0,i.wikiPage.title)}),e.on("quick-edit/submit",i=>{this.addEvent("quick-edit","submit",i.wikiPage.title)}),e.on("quick-move/submit",i=>{this.addEvent("quick-move","submit")}),e.on("toolbox/button-clicked",i=>{this.addEvent("toolbox",`button-clicked#${i.id||"unknown"}`)})}addEvent(e,i,n){const r={ts:Date.now(),feature:e,subtype:i,page:n};return this._usages.push(r),this._usages.length>=this.MAX_QUEUE_SIZE&&this.sendBeacon(),this}async sendBeacon(){if(this._usages.length===0)return!0;if(!await this.ctx.preferences.get("analytics.enabled",!1))return this.logger.debug("Analytics disabled, skipping"),!0;const i=this._usages.splice(0,this._usages.length),n={siteApi:this.ctx.wiki.getSciprtUrl("api"),siteName:this.ctx.wiki.siteInfo.general.sitename,userId:this.ctx.wiki.userInfo.id,userName:this.ctx.wiki.userInfo.name,version:this.ctx.version.split("-")[0],usages:i},r=JSON.stringify(n),s=`${this.analyticsApiBase}/submit`;if(navigator?.sendBeacon?.(s,r))return this.logger.debug("Beacon sent successfully",n),!0;{this.logger.debug("Beacon failed, sending via XMLHttpRequest");const{promise:a,resolve:l,reject:c}=ne();try{const u=new XMLHttpRequest;u.open("POST",s,!0),u.setRequestHeader("Content-Type","application/json"),u.send(r),u.onload=()=>{this.logger.debug("Beacon sent successfully via XMLHttpRequest",n),l(u.status>=200&&u.status<300)},u.onerror=()=>{c(new Error("Failed to send beacon"))}}catch(u){c(u)}return a}}stop(){this._timer!==null&&(clearInterval(this._timer),this._timer=null),this._usages.length>0&&this.sendBeacon()}}bs=Uh(Va),qn=zh(bs,0,"PluginAnalytics",Ka,qn),Hh(bs,1,qn);const Wh=Object.freeze(Object.defineProperty({__proto__:null,get PluginAnalytics(){return qn}},Symbol.toStringTag,{value:"Module"}));function pi(t){return function(e){return e.PreferencesSchema=t,e}}const Qa=t=>h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",...t,class:`icon icon-tabler icons-tabler-outline icon-tabler-pencil-bolt ${t.className||""}`,children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4"}),h("path",{d:"M13.5 6.5l4 4"}),h("path",{d:"M19 16l-2 3h4l-2 3"})]});var Kh=Object.create,ws=Object.defineProperty,Vh=Object.getOwnPropertyDescriptor,Ya=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Ga=t=>{throw TypeError(t)},Qh=(t,e,i)=>e in t?ws(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Yh=(t,e)=>ws(t,"name",{value:e,configurable:!0}),Gh=t=>[,,,Kh(t?.[Ya("metadata")]??null)],Xh=["class","method","getter","setter","accessor","field","value","get","set"],Xa=t=>t!==void 0&&typeof t!="function"?Ga("Function expected"):t,Jh=(t,e,i,n,r)=>({kind:Xh[t],name:e,metadata:n,addInitializer:s=>i._?Ga("Already initialized"):r.push(Xa(s||null))}),Zh=(t,e)=>Qh(e,Ya("metadata"),t[3]),ep=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},tp=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&Vh(r,i));Yh(r,i);for(var m=n.length-1;m>=0;m--)l=Jh(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,Xa(o)&&(r=o);return Zh(t,r),g&&ws(r,i,g),u?c^4?s:g:r},Ja,vs,Za;Ja=[xe(["wiki","wikiTitle","preferences"]),pi(Y.object({"inArticleLinks.enable":Y.boolean().description("Whether to enable in-article links").default(!0),"inArticleLinks.quickDiff.enable":Y.boolean().description("Whether to enable in-article links for quick diff").default(!0),"inArticleLinks.quickEdit.enable":Y.boolean().description("Whether to enable in-article links for quick edit").default(!0),"inArticleLinks.quickEdit.redlinks":Y.boolean().description("Whether to show quick edit button for redlinks").default(!0)}).description("In-article links preferences").extra("category","in-article-links"))];class Hn extends(Za=Ve){constructor(e){super(e,{linkClassName:"ipe__in-article-link"},"InArticleLinks"),this._cachedAnchorInfo=new WeakMap,this.ctx.set("inArticleLinks",this),this.ctx.preferences.defineCategory({label:"In Article Links",name:"in-article-links",description:"In-article links preferences",index:9})}async start(){await this.ctx.preferences.get("inArticleLinks.quickEdit.enable")&&this.handleQuickEdit(),await this.ctx.preferences.get("inArticleLinks.quickDiff.enable")&&this.handleQuickDiff()}async stop(){Array.from(document.getElementsByClassName(this.config.linkClassName)).forEach(e=>{e.remove()}),document.querySelectorAll("[data-ipe-edit-mounted]").forEach(e=>{e.dataset.ipeEditMounted=void 0})}parseAnchor(e){if(!(e instanceof HTMLAnchorElement))return null;const i=this._cachedAnchorInfo.get(e);if(i)return i;const n=e.getAttribute("href")||"";if(!this.ctx.wikiTitle.validateHrefAttr(n))return null;const r=e.href||"",s=this.ctx.wikiTitle.parseWikiLink(r);if(!s)return null;const o={$el:e,kind:e.closest('[typeof^="mw:File"]')?"mw:File":"normal",external:e.classList.contains("external")||!!n.startsWith("http"),redlink:e.classList.contains("new")||s.params.has("redlink"),...s};return this._cachedAnchorInfo.set(e,o),this.ctx.emit("in-article-links/anchor-parsed",{ctx:this.ctx,anchor:e,info:o}),o}scanAnchors(e,i){const n=e.querySelectorAll("a[href]");return Array.from(n).map(r=>this.parseAnchor(r)).filter(r=>r!==null&&(!i||i(r)))}async handleQuickEdit(){let e=!1;const i=await this.ctx.preferences.get("inArticleLinks.quickEdit.redlinks");this.ctx.inject(["quickEdit"],n=>{e=!0,n.on("dispose",()=>{e=!1}),window?.mw?.hook?.("wikipage.content").add(r=>{if(!e)return;this.scanAnchors(r.get(0),({action:o,title:a,redlink:l})=>i||!l?["edit","create"].includes(o)?!0:a?.isSpecial("edit")||a?.isSpecial("newsection")?a.getMainText().split("/").length>=2:!1:!1).forEach(o=>{const{$el:a,title:l,pageId:c,params:u}=o;if(a.dataset.ipeEditMounted)return;if(a.dataset.ipeEditMounted="1",u.has("preload")||u.has("redo"))return this.ctx.logger.debug(a,"Not compatible with quick edit");const p=l?.getPrefixedDBKey()||"",g=u.get("section")?.replace(/^T-/,"")||void 0,m=u.get("oldid"),k=u.has("redlink");let D;g==="new"||l?.isSpecial("newsection")?D="new":g&&/^\d+$/.test(g)&&(D=parseInt(g,10));const T=m?parseInt(m,10):void 0,I={title:p,pageId:c||void 0,section:D,revision:T,createOnly:k},b=h("a",{href:"#ipe://quick-edit/",dataset:I,className:`${this.config.linkClassName} ipe-quick-edit ${k?"ipe-quick-edit--create-only":""}`,style:{userSelect:"none",marginLeft:"0.2em"},onClick:d=>{d.preventDefault(),this.ctx.emit("in-article-links/anchor-clicked",{ctx:this.ctx,anchor:a,info:o,event:d,action:"quickEdit"}),n.quickEdit.showModal(I)},children:h(Qa,{className:"ipe-icon"})});a.insertAdjacentElement("afterend",b)})})})}handleQuickDiff(){let e=!1;const i=n=>["prev","next","cur"].includes(n);this.ctx.inject(["quickDiff"],n=>{e=!0,n.on("dispose",()=>{e=!1}),window?.mw?.hook?.("wikipage.content").add(r=>{if(!e)return;this.scanAnchors(r.get(0),({params:o,title:a})=>!!(o.has("diff")||a?.isSpecial("diff"))).forEach(o=>{const{$el:a,title:l,params:c}=o;if(a.dataset.ipeDiffMounted)return;a.dataset.ipeDiffMounted="1";let u,f;if(l?.getNamespaceId()===-1?([,f,u]=l.getMainDBKey().split("/"),u||(u="prev")):(u=c.get("diff"),f=c.get("oldid")),!u||!f)return;const p={};i(u)?(p.fromrev=parseInt(f),p.torelative=u):(p.fromrev=parseInt(f),p.torev=parseInt(u));const g=h("a",{href:"#ipe://quick-diff/",dataset:p,className:`${this.config.linkClassName} ipe-quick-diff`,style:{userSelect:"none",marginLeft:"0.2em"},onClick:m=>{m.preventDefault(),this.ctx.emit("in-article-links/anchor-clicked",{ctx:this.ctx,anchor:a,info:o,event:m,action:"quickDiff"}),n.quickDiff.comparePages(p)},children:h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-file-diff ipe-icon",children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),h("path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"}),h("path",{d:"M12 10l0 4"}),h("path",{d:"M10 12l4 0"}),h("path",{d:"M10 17l4 0"})]})});a.insertAdjacentElement("afterend",g)})})})}}vs=Gh(Za),Hn=tp(vs,0,"PluginInArticleLinks",Ja,Hn),ep(vs,1,Hn);const ip=Object.freeze(Object.defineProperty({__proto__:null,get PluginInArticleLinks(){return Hn}},Symbol.toStringTag,{value:"Module"}));/**
|
|
85
85
|
* @vue/shared v3.5.22
|
|
86
86
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
87
87
|
* @license MIT
|
|
88
|
-
**/function
|
|
88
|
+
**/function _s(t){const e=Object.create(null);for(const i of t.split(","))e[i]=1;return i=>i in e}const re={},mi=[],dt=()=>{},el=()=>!1,zn=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),xs=t=>t.startsWith("onUpdate:"),$e=Object.assign,Ss=(t,e)=>{const i=t.indexOf(e);i>-1&&t.splice(i,1)},np=Object.prototype.hasOwnProperty,se=(t,e)=>np.call(t,e),K=Array.isArray,gi=t=>Wn(t)==="[object Map]",tl=t=>Wn(t)==="[object Set]",Q=t=>typeof t=="function",be=t=>typeof t=="string",Ut=t=>typeof t=="symbol",de=t=>t!==null&&typeof t=="object",il=t=>(de(t)||Q(t))&&Q(t.then)&&Q(t.catch),nl=Object.prototype.toString,Wn=t=>nl.call(t),rp=t=>Wn(t).slice(8,-1),rl=t=>Wn(t)==="[object Object]",ks=t=>be(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Vi=_s(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Kn=t=>{const e=Object.create(null);return i=>e[i]||(e[i]=t(i))},sp=/-\w/g,At=Kn(t=>t.replace(sp,e=>e.slice(1).toUpperCase())),op=/\B([A-Z])/g,Ft=Kn(t=>t.replace(op,"-$1").toLowerCase()),sl=Kn(t=>t.charAt(0).toUpperCase()+t.slice(1)),Es=Kn(t=>t?`on${sl(t)}`:""),Fe=(t,e)=>!Object.is(t,e),$s=(t,...e)=>{for(let i=0;i<t.length;i++)t[i](...e)},ol=(t,e,i,n=!1)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:i})},ap=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let al;const Vn=()=>al||(al=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ps(t){if(K(t)){const e={};for(let i=0;i<t.length;i++){const n=t[i],r=be(n)?fp(n):Ps(n);if(r)for(const s in r)e[s]=r[s]}return e}else if(be(t)||de(t))return t}const lp=/;(?![^(]*\))/g,cp=/:([^]+)/,up=/\/\*[^]*?\*\//g;function fp(t){const e={};return t.replace(up,"").split(lp).forEach(i=>{if(i){const n=i.split(cp);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function Qn(t){let e="";if(be(t))e=t;else if(K(t))for(let i=0;i<t.length;i++){const n=Qn(t[i]);n&&(e+=n+" ")}else if(de(t))for(const i in t)t[i]&&(e+=i+" ");return e.trim()}const dp=_s("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function ll(t){return!!t||t===""}const cl=t=>!!(t&&t.__v_isRef===!0),Cs=t=>be(t)?t:t==null?"":K(t)||de(t)&&(t.toString===nl||!Q(t.toString))?cl(t)?Cs(t.value):JSON.stringify(t,ul,2):String(t),ul=(t,e)=>cl(e)?ul(t,e.value):gi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((i,[n,r],s)=>(i[Os(n,s)+" =>"]=r,i),{})}:tl(e)?{[`Set(${e.size})`]:[...e.values()].map(i=>Os(i))}:Ut(e)?Os(e):de(e)&&!K(e)&&!rl(e)?String(e):e,Os=(t,e="")=>{var i;return Ut(t)?`Symbol(${(i=t.description)!=null?i:e})`:t};/**
|
|
89
89
|
* @vue/reactivity v3.5.22
|
|
90
90
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
91
91
|
* @license MIT
|
|
92
|
-
**/let Fe;class Wd{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Fe,!e&&Fe&&(this.index=(Fe.scopes||(Fe.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,i;if(this.scopes)for(e=0,i=this.scopes.length;e<i;e++)this.scopes[e].pause();for(e=0,i=this.effects.length;e<i;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,i;if(this.scopes)for(e=0,i=this.scopes.length;e<i;e++)this.scopes[e].resume();for(e=0,i=this.effects.length;e<i;e++)this.effects[e].resume()}}run(e){if(this._active){const i=Fe;try{return Fe=this,e()}finally{Fe=i}}}on(){++this._on===1&&(this.prevScope=Fe,Fe=this)}off(){this._on>0&&--this._on===0&&(Fe=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let i,r;for(i=0,r=this.effects.length;i<r;i++)this.effects[i].stop();for(this.effects.length=0,i=0,r=this.cleanups.length;i<r;i++)this.cleanups[i]();if(this.cleanups.length=0,this.scopes){for(i=0,r=this.scopes.length;i<r;i++)this.scopes[i].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function Kd(){return Fe}let le;const Ss=new WeakSet;class Ja{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Fe&&Fe.active&&Fe.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ss.has(this)&&(Ss.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Za(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,nl(this),el(this);const e=le,i=st;le=this,st=!0;try{return this.fn()}finally{tl(this),le=e,st=i,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Ps(e);this.deps=this.depsTail=void 0,nl(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ss.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){$s(this)&&this.run()}get dirty(){return $s(this)}}let Xa=0,zi,Wi;function Za(t,e=!1){if(t.flags|=8,e){t.next=Wi,Wi=t;return}t.next=zi,zi=t}function ks(){Xa++}function Es(){if(--Xa>0)return;if(Wi){let e=Wi;for(Wi=void 0;e;){const i=e.next;e.next=void 0,e.flags&=-9,e=i}}let t;for(;zi;){let e=zi;for(zi=void 0;e;){const i=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(r){t||(t=r)}e=i}}if(t)throw t}function el(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function tl(t){let e,i=t.depsTail,r=i;for(;r;){const n=r.prevDep;r.version===-1?(r===i&&(i=n),Ps(r),Vd(r)):e=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=n}t.deps=e,t.depsTail=i}function $s(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(il(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function il(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Ki)||(t.globalVersion=Ki,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!$s(t))))return;t.flags|=2;const e=t.dep,i=le,r=st;le=t,st=!0;try{el(t);const n=t.fn(t._value);(e.version===0||Ue(n,t._value))&&(t.flags|=128,t._value=n,e.version++)}catch(n){throw e.version++,n}finally{le=i,st=r,tl(t),t.flags&=-3}}function Ps(t,e=!1){const{dep:i,prevSub:r,nextSub:n}=t;if(r&&(r.nextSub=n,t.prevSub=void 0),n&&(n.prevSub=r,t.nextSub=void 0),i.subs===t&&(i.subs=r,!r&&i.computed)){i.computed.flags&=-5;for(let s=i.computed.deps;s;s=s.nextDep)Ps(s,!0)}!e&&!--i.sc&&i.map&&i.map.delete(i.key)}function Vd(t){const{prevDep:e,nextDep:i}=t;e&&(e.nextDep=i,t.prevDep=void 0),i&&(i.prevDep=e,t.nextDep=void 0)}let st=!0;const rl=[];function ht(){rl.push(st),st=!1}function dt(){const t=rl.pop();st=t===void 0?!0:t}function nl(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const i=le;le=void 0;try{e()}finally{le=i}}}let Ki=0;class Gd{constructor(e,i){this.sub=e,this.dep=i,this.version=i.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Hr{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!le||!st||le===this.computed)return;let i=this.activeLink;if(i===void 0||i.sub!==le)i=this.activeLink=new Gd(le,this),le.deps?(i.prevDep=le.depsTail,le.depsTail.nextDep=i,le.depsTail=i):le.deps=le.depsTail=i,sl(i);else if(i.version===-1&&(i.version=this.version,i.nextDep)){const r=i.nextDep;r.prevDep=i.prevDep,i.prevDep&&(i.prevDep.nextDep=r),i.prevDep=le.depsTail,i.nextDep=void 0,le.depsTail.nextDep=i,le.depsTail=i,le.deps===i&&(le.deps=r)}return i}trigger(e){this.version++,Ki++,this.notify(e)}notify(e){ks();try{for(let i=this.subs;i;i=i.prevSub)i.sub.notify()&&i.sub.dep.notify()}finally{Es()}}}function sl(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let r=e.deps;r;r=r.nextDep)sl(r)}const i=t.dep.subs;i!==t&&(t.prevSub=i,i&&(i.nextSub=t)),t.dep.subs=t}}const Cs=new WeakMap,Xt=Symbol(""),Os=Symbol(""),Vi=Symbol("");function Oe(t,e,i){if(st&&le){let r=Cs.get(t);r||Cs.set(t,r=new Map);let n=r.get(i);n||(r.set(i,n=new Hr),n.map=r,n.key=i),n.track()}}function Tt(t,e,i,r,n,s){const o=Cs.get(t);if(!o){Ki++;return}const a=l=>{l&&l.trigger()};if(ks(),e==="clear")o.forEach(a);else{const l=K(t),c=l&&ys(i);if(l&&i==="length"){const u=Number(r);o.forEach((f,d)=>{(d==="length"||d===Vi||!jt(d)&&d>=u)&&a(f)})}else switch((i!==void 0||o.has(void 0))&&a(o.get(i)),c&&a(o.get(Vi)),e){case"add":l?c&&a(o.get("length")):(a(o.get(Xt)),di(t)&&a(o.get(Os)));break;case"delete":l||(a(o.get(Xt)),di(t)&&a(o.get(Os)));break;case"set":di(t)&&a(o.get(Xt));break}}Es()}function pi(t){const e=ee(t);return e===t?e:(Oe(e,"iterate",Vi),Xe(t)?e:e.map($e))}function zr(t){return Oe(t=ee(t),"iterate",Vi),t}const Qd={__proto__:null,[Symbol.iterator](){return Ts(this,Symbol.iterator,$e)},concat(...t){return pi(this).concat(...t.map(e=>K(e)?pi(e):e))},entries(){return Ts(this,"entries",t=>(t[1]=$e(t[1]),t))},every(t,e){return It(this,"every",t,e,void 0,arguments)},filter(t,e){return It(this,"filter",t,e,i=>i.map($e),arguments)},find(t,e){return It(this,"find",t,e,$e,arguments)},findIndex(t,e){return It(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return It(this,"findLast",t,e,$e,arguments)},findLastIndex(t,e){return It(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return It(this,"forEach",t,e,void 0,arguments)},includes(...t){return Is(this,"includes",t)},indexOf(...t){return Is(this,"indexOf",t)},join(t){return pi(this).join(t)},lastIndexOf(...t){return Is(this,"lastIndexOf",t)},map(t,e){return It(this,"map",t,e,void 0,arguments)},pop(){return Gi(this,"pop")},push(...t){return Gi(this,"push",t)},reduce(t,...e){return ol(this,"reduce",t,e)},reduceRight(t,...e){return ol(this,"reduceRight",t,e)},shift(){return Gi(this,"shift")},some(t,e){return It(this,"some",t,e,void 0,arguments)},splice(...t){return Gi(this,"splice",t)},toReversed(){return pi(this).toReversed()},toSorted(t){return pi(this).toSorted(t)},toSpliced(...t){return pi(this).toSpliced(...t)},unshift(...t){return Gi(this,"unshift",t)},values(){return Ts(this,"values",$e)}};function Ts(t,e,i){const r=zr(t),n=r[e]();return r!==t&&!Xe(t)&&(n._next=n.next,n.next=()=>{const s=n._next();return s.done||(s.value=i(s.value)),s}),n}const Yd=Array.prototype;function It(t,e,i,r,n,s){const o=zr(t),a=o!==t&&!Xe(t),l=o[e];if(l!==Yd[e]){const f=l.apply(t,s);return a?$e(f):f}let c=i;o!==t&&(a?c=function(f,d){return i.call(this,$e(f),d,t)}:i.length>2&&(c=function(f,d){return i.call(this,f,d,t)}));const u=l.call(o,c,r);return a&&n?n(u):u}function ol(t,e,i,r){const n=zr(t);let s=i;return n!==t&&(Xe(t)?i.length>3&&(s=function(o,a,l){return i.call(this,o,a,l,t)}):s=function(o,a,l){return i.call(this,o,$e(a),l,t)}),n[e](s,...r)}function Is(t,e,i){const r=ee(t);Oe(r,"iterate",Vi);const n=r[e](...i);return(n===-1||n===!1)&&Ns(i[0])?(i[0]=ee(i[0]),r[e](...i)):n}function Gi(t,e,i=[]){ht(),ks();const r=ee(t)[e].apply(t,i);return Es(),dt(),r}const Jd=ps("__proto__,__v_isRef,__isVue"),al=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(jt));function Xd(t){jt(t)||(t=String(t));const e=ee(this);return Oe(e,"has",t),e.hasOwnProperty(t)}class ll{constructor(e=!1,i=!1){this._isReadonly=e,this._isShallow=i}get(e,i,r){if(i==="__v_skip")return e.__v_skip;const n=this._isReadonly,s=this._isShallow;if(i==="__v_isReactive")return!n;if(i==="__v_isReadonly")return n;if(i==="__v_isShallow")return s;if(i==="__v_raw")return r===(n?s?pl:dl:s?hl:fl).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(r)?e:void 0;const o=K(e);if(!n){let l;if(o&&(l=Qd[i]))return l;if(i==="hasOwnProperty")return Xd}const a=Reflect.get(e,i,xe(e)?e:r);if((jt(i)?al.has(i):Jd(i))||(n||Oe(e,"get",i),s))return a;if(xe(a)){const l=o&&ys(i)?a:a.value;return n&&fe(l)?Ls(l):l}return fe(a)?n?Ls(a):Rs(a):a}}class cl extends ll{constructor(e=!1){super(!1,e)}set(e,i,r,n){let s=e[i];if(!this._isShallow){const l=Ft(s);if(!Xe(r)&&!Ft(r)&&(s=ee(s),r=ee(r)),!K(e)&&xe(s)&&!xe(r))return l||(s.value=r),!0}const o=K(e)&&ys(i)?Number(i)<e.length:ne(e,i),a=Reflect.set(e,i,r,xe(e)?e:n);return e===ee(n)&&(o?Ue(r,s)&&Tt(e,"set",i,r):Tt(e,"add",i,r)),a}deleteProperty(e,i){const r=ne(e,i);e[i];const n=Reflect.deleteProperty(e,i);return n&&r&&Tt(e,"delete",i,void 0),n}has(e,i){const r=Reflect.has(e,i);return(!jt(i)||!al.has(i))&&Oe(e,"has",i),r}ownKeys(e){return Oe(e,"iterate",K(e)?"length":Xt),Reflect.ownKeys(e)}}class ul extends ll{constructor(e=!1){super(!0,e)}set(e,i){return!0}deleteProperty(e,i){return!0}}const Zd=new cl,ep=new ul,tp=new cl(!0),ip=new ul(!0),As=t=>t,Wr=t=>Reflect.getPrototypeOf(t);function rp(t,e,i){return function(...r){const n=this.__v_raw,s=ee(n),o=di(s),a=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,c=n[t](...r),u=i?As:e?Qr:$e;return!e&&Oe(s,"iterate",l?Os:Xt),{next(){const{value:f,done:d}=c.next();return d?{value:f,done:d}:{value:a?[u(f[0]),u(f[1])]:u(f),done:d}},[Symbol.iterator](){return this}}}}function Kr(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function np(t,e){const i={get(n){const s=this.__v_raw,o=ee(s),a=ee(n);t||(Ue(n,a)&&Oe(o,"get",n),Oe(o,"get",a));const{has:l}=Wr(o),c=e?As:t?Qr:$e;if(l.call(o,n))return c(s.get(n));if(l.call(o,a))return c(s.get(a));s!==o&&s.get(n)},get size(){const n=this.__v_raw;return!t&&Oe(ee(n),"iterate",Xt),n.size},has(n){const s=this.__v_raw,o=ee(s),a=ee(n);return t||(Ue(n,a)&&Oe(o,"has",n),Oe(o,"has",a)),n===a?s.has(n):s.has(n)||s.has(a)},forEach(n,s){const o=this,a=o.__v_raw,l=ee(a),c=e?As:t?Qr:$e;return!t&&Oe(l,"iterate",Xt),a.forEach((u,f)=>n.call(s,c(u),c(f),o))}};return Ee(i,t?{add:Kr("add"),set:Kr("set"),delete:Kr("delete"),clear:Kr("clear")}:{add(n){!e&&!Xe(n)&&!Ft(n)&&(n=ee(n));const s=ee(this);return Wr(s).has.call(s,n)||(s.add(n),Tt(s,"add",n,n)),this},set(n,s){!e&&!Xe(s)&&!Ft(s)&&(s=ee(s));const o=ee(this),{has:a,get:l}=Wr(o);let c=a.call(o,n);c||(n=ee(n),c=a.call(o,n));const u=l.call(o,n);return o.set(n,s),c?Ue(s,u)&&Tt(o,"set",n,s):Tt(o,"add",n,s),this},delete(n){const s=ee(this),{has:o,get:a}=Wr(s);let l=o.call(s,n);l||(n=ee(n),l=o.call(s,n)),a&&a.call(s,n);const c=s.delete(n);return l&&Tt(s,"delete",n,void 0),c},clear(){const n=ee(this),s=n.size!==0,o=n.clear();return s&&Tt(n,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(n=>{i[n]=rp(n,t,e)}),i}function Vr(t,e){const i=np(t,e);return(r,n,s)=>n==="__v_isReactive"?!t:n==="__v_isReadonly"?t:n==="__v_raw"?r:Reflect.get(ne(i,n)&&n in r?i:r,n,s)}const sp={get:Vr(!1,!1)},op={get:Vr(!1,!0)},ap={get:Vr(!0,!1)},lp={get:Vr(!0,!0)},fl=new WeakMap,hl=new WeakMap,dl=new WeakMap,pl=new WeakMap;function cp(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function up(t){return t.__v_skip||!Object.isExtensible(t)?0:cp(Md(t))}function Rs(t){return Ft(t)?t:Gr(t,!1,Zd,sp,fl)}function fp(t){return Gr(t,!1,tp,op,hl)}function Ls(t){return Gr(t,!0,ep,ap,dl)}function vb(t){return Gr(t,!0,ip,lp,pl)}function Gr(t,e,i,r,n){if(!fe(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const s=up(t);if(s===0)return t;const o=n.get(t);if(o)return o;const a=new Proxy(t,s===2?r:i);return n.set(t,a),a}function mi(t){return Ft(t)?mi(t.__v_raw):!!(t&&t.__v_isReactive)}function Ft(t){return!!(t&&t.__v_isReadonly)}function Xe(t){return!!(t&&t.__v_isShallow)}function Ns(t){return t?!!t.__v_raw:!1}function ee(t){const e=t&&t.__v_raw;return e?ee(e):t}function hp(t){return!ne(t,"__v_skip")&&Object.isExtensible(t)&&Ka(t,"__v_skip",!0),t}const $e=t=>fe(t)?Rs(t):t,Qr=t=>fe(t)?Ls(t):t;function xe(t){return t?t.__v_isRef===!0:!1}function ml(t){return gl(t,!1)}function Yr(t){return gl(t,!0)}function gl(t,e){return xe(t)?t:new dp(t,e)}class dp{constructor(e,i){this.dep=new Hr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=i?e:ee(e),this._value=i?e:$e(e),this.__v_isShallow=i}get value(){return this.dep.track(),this._value}set value(e){const i=this._rawValue,r=this.__v_isShallow||Xe(e)||Ft(e);e=r?e:ee(e),Ue(e,i)&&(this._rawValue=e,this._value=r?e:$e(e),this.dep.trigger())}}function Ms(t){return xe(t)?t.value:t}const pp={get:(t,e,i)=>e==="__v_raw"?t:Ms(Reflect.get(t,e,i)),set:(t,e,i,r)=>{const n=t[e];return xe(n)&&!xe(i)?(n.value=i,!0):Reflect.set(t,e,i,r)}};function yl(t){return mi(t)?t:new Proxy(t,pp)}class mp{constructor(e){this.__v_isRef=!0,this._value=void 0;const i=this.dep=new Hr,{get:r,set:n}=e(i.track.bind(i),i.trigger.bind(i));this._get=r,this._set=n}get value(){return this._value=this._get()}set value(e){this._set(e)}}function gp(t){return new mp(t)}class yp{constructor(e,i,r){this.fn=e,this.setter=i,this._value=void 0,this.dep=new Hr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ki-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!i,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&le!==this)return Za(this,!0),!0}get value(){const e=this.dep.track();return il(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function bp(t,e,i=!1){let r,n;return G(t)?r=t:(r=t.get,n=t.set),new yp(r,n,i)}const Jr={},Xr=new WeakMap;let Zt;function wp(t,e=!1,i=Zt){if(i){let r=Xr.get(i);r||Xr.set(i,r=[]),r.push(t)}}function vp(t,e,i=ie){const{immediate:r,deep:n,once:s,scheduler:o,augmentJob:a,call:l}=i,c=h=>n?h:Xe(h)||n===!1||n===0?Bt(h,1):Bt(h);let u,f,d,y,m=!1,E=!1;if(xe(t)?(f=()=>t.value,m=Xe(t)):mi(t)?(f=()=>c(t),m=!0):K(t)?(E=!0,m=t.some(h=>mi(h)||Xe(h)),f=()=>t.map(h=>{if(xe(h))return h.value;if(mi(h))return c(h);if(G(h))return l?l(h,2):h()})):G(t)?e?f=l?()=>l(t,2):t:f=()=>{if(d){ht();try{d()}finally{dt()}}const h=Zt;Zt=u;try{return l?l(t,3,[y]):t(y)}finally{Zt=h}}:f=ft,e&&n){const h=f,p=n===!0?1/0:n;f=()=>Bt(h(),p)}const j=Kd(),k=()=>{u.stop(),j&&j.active&&gs(j.effects,u)};if(s&&e){const h=e;e=(...p)=>{h(...p),k()}}let F=E?new Array(t.length).fill(Jr):Jr;const b=h=>{if(!(!(u.flags&1)||!u.dirty&&!h))if(e){const p=u.run();if(n||m||(E?p.some((v,x)=>Ue(v,F[x])):Ue(p,F))){d&&d();const v=Zt;Zt=u;try{const x=[p,F===Jr?void 0:E&&F[0]===Jr?[]:F,y];F=p,l?l(e,3,x):e(...x)}finally{Zt=v}}}else u.run()};return a&&a(b),u=new Ja(f),u.scheduler=o?()=>o(b,!1):b,y=h=>wp(h,!1,u),d=u.onStop=()=>{const h=Xr.get(u);if(h){if(l)l(h,4);else for(const p of h)p();Xr.delete(u)}},e?r?b(!0):F=u.run():o?o(b.bind(null,!0),!0):u.run(),k.pause=u.pause.bind(u),k.resume=u.resume.bind(u),k.stop=k,k}function Bt(t,e=1/0,i){if(e<=0||!fe(t)||t.__v_skip||(i=i||new Map,(i.get(t)||0)>=e))return t;if(i.set(t,e),e--,xe(t))Bt(t.value,e,i);else if(K(t))for(let r=0;r<t.length;r++)Bt(t[r],e,i);else if(Ba(t)||di(t))t.forEach(r=>{Bt(r,e,i)});else if(za(t)){for(const r in t)Bt(t[r],e,i);for(const r of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,r)&&Bt(t[r],e,i)}return t}/**
|
|
92
|
+
**/let Be;class hp{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Be,!e&&Be&&(this.index=(Be.scopes||(Be.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,i;if(this.scopes)for(e=0,i=this.scopes.length;e<i;e++)this.scopes[e].pause();for(e=0,i=this.effects.length;e<i;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,i;if(this.scopes)for(e=0,i=this.scopes.length;e<i;e++)this.scopes[e].resume();for(e=0,i=this.effects.length;e<i;e++)this.effects[e].resume()}}run(e){if(this._active){const i=Be;try{return Be=this,e()}finally{Be=i}}}on(){++this._on===1&&(this.prevScope=Be,Be=this)}off(){this._on>0&&--this._on===0&&(Be=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let i,n;for(i=0,n=this.effects.length;i<n;i++)this.effects[i].stop();for(this.effects.length=0,i=0,n=this.cleanups.length;i<n;i++)this.cleanups[i]();if(this.cleanups.length=0,this.scopes){for(i=0,n=this.scopes.length;i<n;i++)this.scopes[i].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function pp(){return Be}let ce;const As=new WeakSet;class fl{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Be&&Be.active&&Be.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,As.has(this)&&(As.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||hl(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,bl(this),pl(this);const e=ce,i=ot;ce=this,ot=!0;try{return this.fn()}finally{ml(this),ce=e,ot=i,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Ls(e);this.deps=this.depsTail=void 0,bl(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?As.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Rs(this)&&this.run()}get dirty(){return Rs(this)}}let dl=0,Qi,Yi;function hl(t,e=!1){if(t.flags|=8,e){t.next=Yi,Yi=t;return}t.next=Qi,Qi=t}function Is(){dl++}function Ts(){if(--dl>0)return;if(Yi){let e=Yi;for(Yi=void 0;e;){const i=e.next;e.next=void 0,e.flags&=-9,e=i}}let t;for(;Qi;){let e=Qi;for(Qi=void 0;e;){const i=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=i}}if(t)throw t}function pl(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function ml(t){let e,i=t.depsTail,n=i;for(;n;){const r=n.prevDep;n.version===-1?(n===i&&(i=r),Ls(n),mp(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=r}t.deps=e,t.depsTail=i}function Rs(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(gl(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function gl(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Gi)||(t.globalVersion=Gi,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Rs(t))))return;t.flags|=2;const e=t.dep,i=ce,n=ot;ce=t,ot=!0;try{pl(t);const r=t.fn(t._value);(e.version===0||Fe(r,t._value))&&(t.flags|=128,t._value=r,e.version++)}catch(r){throw e.version++,r}finally{ce=i,ot=n,ml(t),t.flags&=-3}}function Ls(t,e=!1){const{dep:i,prevSub:n,nextSub:r}=t;if(n&&(n.nextSub=r,t.prevSub=void 0),r&&(r.prevSub=n,t.nextSub=void 0),i.subs===t&&(i.subs=n,!n&&i.computed)){i.computed.flags&=-5;for(let s=i.computed.deps;s;s=s.nextDep)Ls(s,!0)}!e&&!--i.sc&&i.map&&i.map.delete(i.key)}function mp(t){const{prevDep:e,nextDep:i}=t;e&&(e.nextDep=i,t.prevDep=void 0),i&&(i.prevDep=e,t.nextDep=void 0)}let ot=!0;const yl=[];function ht(){yl.push(ot),ot=!1}function pt(){const t=yl.pop();ot=t===void 0?!0:t}function bl(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const i=ce;ce=void 0;try{e()}finally{ce=i}}}let Gi=0;class gp{constructor(e,i){this.sub=e,this.dep=i,this.version=i.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Yn{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!ce||!ot||ce===this.computed)return;let i=this.activeLink;if(i===void 0||i.sub!==ce)i=this.activeLink=new gp(ce,this),ce.deps?(i.prevDep=ce.depsTail,ce.depsTail.nextDep=i,ce.depsTail=i):ce.deps=ce.depsTail=i,wl(i);else if(i.version===-1&&(i.version=this.version,i.nextDep)){const n=i.nextDep;n.prevDep=i.prevDep,i.prevDep&&(i.prevDep.nextDep=n),i.prevDep=ce.depsTail,i.nextDep=void 0,ce.depsTail.nextDep=i,ce.depsTail=i,ce.deps===i&&(ce.deps=n)}return i}trigger(e){this.version++,Gi++,this.notify(e)}notify(e){Is();try{for(let i=this.subs;i;i=i.prevSub)i.sub.notify()&&i.sub.dep.notify()}finally{Ts()}}}function wl(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)wl(n)}const i=t.dep.subs;i!==t&&(t.prevSub=i,i&&(i.nextSub=t)),t.dep.subs=t}}const Ns=new WeakMap,Zt=Symbol(""),Ms=Symbol(""),Xi=Symbol("");function Ae(t,e,i){if(ot&&ce){let n=Ns.get(t);n||Ns.set(t,n=new Map);let r=n.get(i);r||(n.set(i,r=new Yn),r.map=n,r.key=i),r.track()}}function It(t,e,i,n,r,s){const o=Ns.get(t);if(!o){Gi++;return}const a=l=>{l&&l.trigger()};if(Is(),e==="clear")o.forEach(a);else{const l=K(t),c=l&&ks(i);if(l&&i==="length"){const u=Number(n);o.forEach((f,p)=>{(p==="length"||p===Xi||!Ut(p)&&p>=u)&&a(f)})}else switch((i!==void 0||o.has(void 0))&&a(o.get(i)),c&&a(o.get(Xi)),e){case"add":l?c&&a(o.get("length")):(a(o.get(Zt)),gi(t)&&a(o.get(Ms)));break;case"delete":l||(a(o.get(Zt)),gi(t)&&a(o.get(Ms)));break;case"set":gi(t)&&a(o.get(Zt));break}}Ts()}function yi(t){const e=te(t);return e===t?e:(Ae(e,"iterate",Xi),Ze(t)?e:e.map(Pe))}function Gn(t){return Ae(t=te(t),"iterate",Xi),t}const yp={__proto__:null,[Symbol.iterator](){return Ds(this,Symbol.iterator,Pe)},concat(...t){return yi(this).concat(...t.map(e=>K(e)?yi(e):e))},entries(){return Ds(this,"entries",t=>(t[1]=Pe(t[1]),t))},every(t,e){return Tt(this,"every",t,e,void 0,arguments)},filter(t,e){return Tt(this,"filter",t,e,i=>i.map(Pe),arguments)},find(t,e){return Tt(this,"find",t,e,Pe,arguments)},findIndex(t,e){return Tt(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Tt(this,"findLast",t,e,Pe,arguments)},findLastIndex(t,e){return Tt(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Tt(this,"forEach",t,e,void 0,arguments)},includes(...t){return js(this,"includes",t)},indexOf(...t){return js(this,"indexOf",t)},join(t){return yi(this).join(t)},lastIndexOf(...t){return js(this,"lastIndexOf",t)},map(t,e){return Tt(this,"map",t,e,void 0,arguments)},pop(){return Ji(this,"pop")},push(...t){return Ji(this,"push",t)},reduce(t,...e){return vl(this,"reduce",t,e)},reduceRight(t,...e){return vl(this,"reduceRight",t,e)},shift(){return Ji(this,"shift")},some(t,e){return Tt(this,"some",t,e,void 0,arguments)},splice(...t){return Ji(this,"splice",t)},toReversed(){return yi(this).toReversed()},toSorted(t){return yi(this).toSorted(t)},toSpliced(...t){return yi(this).toSpliced(...t)},unshift(...t){return Ji(this,"unshift",t)},values(){return Ds(this,"values",Pe)}};function Ds(t,e,i){const n=Gn(t),r=n[e]();return n!==t&&!Ze(t)&&(r._next=r.next,r.next=()=>{const s=r._next();return s.done||(s.value=i(s.value)),s}),r}const bp=Array.prototype;function Tt(t,e,i,n,r,s){const o=Gn(t),a=o!==t&&!Ze(t),l=o[e];if(l!==bp[e]){const f=l.apply(t,s);return a?Pe(f):f}let c=i;o!==t&&(a?c=function(f,p){return i.call(this,Pe(f),p,t)}:i.length>2&&(c=function(f,p){return i.call(this,f,p,t)}));const u=l.call(o,c,n);return a&&r?r(u):u}function vl(t,e,i,n){const r=Gn(t);let s=i;return r!==t&&(Ze(t)?i.length>3&&(s=function(o,a,l){return i.call(this,o,a,l,t)}):s=function(o,a,l){return i.call(this,o,Pe(a),l,t)}),r[e](s,...n)}function js(t,e,i){const n=te(t);Ae(n,"iterate",Xi);const r=n[e](...i);return(r===-1||r===!1)&&qs(i[0])?(i[0]=te(i[0]),n[e](...i)):r}function Ji(t,e,i=[]){ht(),Is();const n=te(t)[e].apply(t,i);return Ts(),pt(),n}const wp=_s("__proto__,__v_isRef,__isVue"),_l=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Ut));function vp(t){Ut(t)||(t=String(t));const e=te(this);return Ae(e,"has",t),e.hasOwnProperty(t)}class xl{constructor(e=!1,i=!1){this._isReadonly=e,this._isShallow=i}get(e,i,n){if(i==="__v_skip")return e.__v_skip;const r=this._isReadonly,s=this._isShallow;if(i==="__v_isReactive")return!r;if(i==="__v_isReadonly")return r;if(i==="__v_isShallow")return s;if(i==="__v_raw")return n===(r?s?Cl:Pl:s?$l:El).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const o=K(e);if(!r){let l;if(o&&(l=yp[i]))return l;if(i==="hasOwnProperty")return vp}const a=Reflect.get(e,i,ke(e)?e:n);if((Ut(i)?_l.has(i):wp(i))||(r||Ae(e,"get",i),s))return a;if(ke(a)){const l=o&&ks(i)?a:a.value;return r&&de(l)?Bs(l):l}return de(a)?r?Bs(a):Fs(a):a}}class Sl extends xl{constructor(e=!1){super(!1,e)}set(e,i,n,r){let s=e[i];if(!this._isShallow){const l=Bt(s);if(!Ze(n)&&!Bt(n)&&(s=te(s),n=te(n)),!K(e)&&ke(s)&&!ke(n))return l||(s.value=n),!0}const o=K(e)&&ks(i)?Number(i)<e.length:se(e,i),a=Reflect.set(e,i,n,ke(e)?e:r);return e===te(r)&&(o?Fe(n,s)&&It(e,"set",i,n):It(e,"add",i,n)),a}deleteProperty(e,i){const n=se(e,i);e[i];const r=Reflect.deleteProperty(e,i);return r&&n&&It(e,"delete",i,void 0),r}has(e,i){const n=Reflect.has(e,i);return(!Ut(i)||!_l.has(i))&&Ae(e,"has",i),n}ownKeys(e){return Ae(e,"iterate",K(e)?"length":Zt),Reflect.ownKeys(e)}}class kl extends xl{constructor(e=!1){super(!0,e)}set(e,i){return!0}deleteProperty(e,i){return!0}}const _p=new Sl,xp=new kl,Sp=new Sl(!0),kp=new kl(!0),Us=t=>t,Xn=t=>Reflect.getPrototypeOf(t);function Ep(t,e,i){return function(...n){const r=this.__v_raw,s=te(r),o=gi(s),a=t==="entries"||t===Symbol.iterator&&o,l=t==="keys"&&o,c=r[t](...n),u=i?Us:e?tr:Pe;return!e&&Ae(s,"iterate",l?Ms:Zt),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:a?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function Jn(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function $p(t,e){const i={get(r){const s=this.__v_raw,o=te(s),a=te(r);t||(Fe(r,a)&&Ae(o,"get",r),Ae(o,"get",a));const{has:l}=Xn(o),c=e?Us:t?tr:Pe;if(l.call(o,r))return c(s.get(r));if(l.call(o,a))return c(s.get(a));s!==o&&s.get(r)},get size(){const r=this.__v_raw;return!t&&Ae(te(r),"iterate",Zt),r.size},has(r){const s=this.__v_raw,o=te(s),a=te(r);return t||(Fe(r,a)&&Ae(o,"has",r),Ae(o,"has",a)),r===a?s.has(r):s.has(r)||s.has(a)},forEach(r,s){const o=this,a=o.__v_raw,l=te(a),c=e?Us:t?tr:Pe;return!t&&Ae(l,"iterate",Zt),a.forEach((u,f)=>r.call(s,c(u),c(f),o))}};return $e(i,t?{add:Jn("add"),set:Jn("set"),delete:Jn("delete"),clear:Jn("clear")}:{add(r){!e&&!Ze(r)&&!Bt(r)&&(r=te(r));const s=te(this);return Xn(s).has.call(s,r)||(s.add(r),It(s,"add",r,r)),this},set(r,s){!e&&!Ze(s)&&!Bt(s)&&(s=te(s));const o=te(this),{has:a,get:l}=Xn(o);let c=a.call(o,r);c||(r=te(r),c=a.call(o,r));const u=l.call(o,r);return o.set(r,s),c?Fe(s,u)&&It(o,"set",r,s):It(o,"add",r,s),this},delete(r){const s=te(this),{has:o,get:a}=Xn(s);let l=o.call(s,r);l||(r=te(r),l=o.call(s,r)),a&&a.call(s,r);const c=s.delete(r);return l&&It(s,"delete",r,void 0),c},clear(){const r=te(this),s=r.size!==0,o=r.clear();return s&&It(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{i[r]=Ep(r,t,e)}),i}function Zn(t,e){const i=$p(t,e);return(n,r,s)=>r==="__v_isReactive"?!t:r==="__v_isReadonly"?t:r==="__v_raw"?n:Reflect.get(se(i,r)&&r in n?i:n,r,s)}const Pp={get:Zn(!1,!1)},Cp={get:Zn(!1,!0)},Op={get:Zn(!0,!1)},Ap={get:Zn(!0,!0)},El=new WeakMap,$l=new WeakMap,Pl=new WeakMap,Cl=new WeakMap;function Ip(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Tp(t){return t.__v_skip||!Object.isExtensible(t)?0:Ip(rp(t))}function Fs(t){return Bt(t)?t:er(t,!1,_p,Pp,El)}function Rp(t){return er(t,!1,Sp,Cp,$l)}function Bs(t){return er(t,!0,xp,Op,Pl)}function Wb(t){return er(t,!0,kp,Ap,Cl)}function er(t,e,i,n,r){if(!de(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const s=Tp(t);if(s===0)return t;const o=r.get(t);if(o)return o;const a=new Proxy(t,s===2?n:i);return r.set(t,a),a}function bi(t){return Bt(t)?bi(t.__v_raw):!!(t&&t.__v_isReactive)}function Bt(t){return!!(t&&t.__v_isReadonly)}function Ze(t){return!!(t&&t.__v_isShallow)}function qs(t){return t?!!t.__v_raw:!1}function te(t){const e=t&&t.__v_raw;return e?te(e):t}function Lp(t){return!se(t,"__v_skip")&&Object.isExtensible(t)&&ol(t,"__v_skip",!0),t}const Pe=t=>de(t)?Fs(t):t,tr=t=>de(t)?Bs(t):t;function ke(t){return t?t.__v_isRef===!0:!1}function Ol(t){return Al(t,!1)}function ir(t){return Al(t,!0)}function Al(t,e){return ke(t)?t:new Np(t,e)}class Np{constructor(e,i){this.dep=new Yn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=i?e:te(e),this._value=i?e:Pe(e),this.__v_isShallow=i}get value(){return this.dep.track(),this._value}set value(e){const i=this._rawValue,n=this.__v_isShallow||Ze(e)||Bt(e);e=n?e:te(e),Fe(e,i)&&(this._rawValue=e,this._value=n?e:Pe(e),this.dep.trigger())}}function Hs(t){return ke(t)?t.value:t}const Mp={get:(t,e,i)=>e==="__v_raw"?t:Hs(Reflect.get(t,e,i)),set:(t,e,i,n)=>{const r=t[e];return ke(r)&&!ke(i)?(r.value=i,!0):Reflect.set(t,e,i,n)}};function Il(t){return bi(t)?t:new Proxy(t,Mp)}class Dp{constructor(e){this.__v_isRef=!0,this._value=void 0;const i=this.dep=new Yn,{get:n,set:r}=e(i.track.bind(i),i.trigger.bind(i));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function jp(t){return new Dp(t)}class Up{constructor(e,i,n){this.fn=e,this.setter=i,this._value=void 0,this.dep=new Yn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Gi-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!i,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ce!==this)return hl(this,!0),!0}get value(){const e=this.dep.track();return gl(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Fp(t,e,i=!1){let n,r;return Q(t)?n=t:(n=t.get,r=t.set),new Up(n,r,i)}const nr={},rr=new WeakMap;let ei;function Bp(t,e=!1,i=ei){if(i){let n=rr.get(i);n||rr.set(i,n=[]),n.push(t)}}function qp(t,e,i=re){const{immediate:n,deep:r,once:s,scheduler:o,augmentJob:a,call:l}=i,c=d=>r?d:Ze(d)||r===!1||r===0?qt(d,1):qt(d);let u,f,p,g,m=!1,k=!1;if(ke(t)?(f=()=>t.value,m=Ze(t)):bi(t)?(f=()=>c(t),m=!0):K(t)?(k=!0,m=t.some(d=>bi(d)||Ze(d)),f=()=>t.map(d=>{if(ke(d))return d.value;if(bi(d))return c(d);if(Q(d))return l?l(d,2):d()})):Q(t)?e?f=l?()=>l(t,2):t:f=()=>{if(p){ht();try{p()}finally{pt()}}const d=ei;ei=u;try{return l?l(t,3,[g]):t(g)}finally{ei=d}}:f=dt,e&&r){const d=f,y=r===!0?1/0:r;f=()=>qt(d(),y)}const D=pp(),T=()=>{u.stop(),D&&D.active&&Ss(D.effects,u)};if(s&&e){const d=e;e=(...y)=>{d(...y),T()}}let I=k?new Array(t.length).fill(nr):nr;const b=d=>{if(!(!(u.flags&1)||!u.dirty&&!d))if(e){const y=u.run();if(r||m||(k?y.some((v,x)=>Fe(v,I[x])):Fe(y,I))){p&&p();const v=ei;ei=u;try{const x=[y,I===nr?void 0:k&&I[0]===nr?[]:I,g];I=y,l?l(e,3,x):e(...x)}finally{ei=v}}}else u.run()};return a&&a(b),u=new fl(f),u.scheduler=o?()=>o(b,!1):b,g=d=>Bp(d,!1,u),p=u.onStop=()=>{const d=rr.get(u);if(d){if(l)l(d,4);else for(const y of d)y();rr.delete(u)}},e?n?b(!0):I=u.run():o?o(b.bind(null,!0),!0):u.run(),T.pause=u.pause.bind(u),T.resume=u.resume.bind(u),T.stop=T,T}function qt(t,e=1/0,i){if(e<=0||!de(t)||t.__v_skip||(i=i||new Map,(i.get(t)||0)>=e))return t;if(i.set(t,e),e--,ke(t))qt(t.value,e,i);else if(K(t))for(let n=0;n<t.length;n++)qt(t[n],e,i);else if(tl(t)||gi(t))t.forEach(n=>{qt(n,e,i)});else if(rl(t)){for(const n in t)qt(t[n],e,i);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&qt(t[n],e,i)}return t}/**
|
|
93
93
|
* @vue/runtime-core v3.5.22
|
|
94
94
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
95
95
|
* @license MIT
|
|
96
|
-
**/const
|
|
97
|
-
`),
|
|
98
|
-
`,...
|
|
99
|
-
`],...Sp(i))}),e}function Sp({vnode:t,recurseCount:e}){const i=e>0?`... (${e} recursive calls)`:"",r=t.component?t.component.parent==null:!1,n=` at <${yc(t.component,t.type,r)}`,s=">"+i;return t.props?[n,...kp(t.props),s]:[n+s]}function kp(t){const e=[],i=Object.keys(t);return i.slice(0,3).forEach(r=>{e.push(...bl(r,t[r]))}),i.length>3&&e.push(" ..."),e}function bl(t,e,i){return ye(e)?(e=JSON.stringify(e),i?e:[`${t}=${e}`]):typeof e=="number"||typeof e=="boolean"||e==null?i?e:[`${t}=${e}`]:xe(e)?(e=bl(t,ee(e.value),!0),i?e:[`${t}=Ref<`,e,">"]):G(e)?[`${t}=fn${e.name?`<${e.name}>`:""}`]:(e=ee(e),i?e:[`${t}=`,e])}function gi(t,e,i,r){try{return r?t(...r):t()}catch(n){Zr(n,e,i)}}function pt(t,e,i,r){if(G(t)){const n=gi(t,e,i,r);return n&&qa(n)&&n.catch(s=>{Zr(s,e,i)}),n}if(K(t)){const n=[];for(let s=0;s<t.length;s++)n.push(pt(t[s],e,i,r));return n}}function Zr(t,e,i,r=!0){const n=e?e.vnode:null,{errorHandler:s,throwUnhandledErrorInProduction:o}=e&&e.appContext.config||ie;if(e){let a=e.parent;const l=e.proxy,c=`https://vuejs.org/error-reference/#runtime-${i}`;for(;a;){const u=a.ec;if(u){for(let f=0;f<u.length;f++)if(u[f](t,l,c)===!1)return}a=a.parent}if(s){ht(),gi(s,null,10,[t,l,c]),dt();return}}Ep(t,i,n,r,o)}function Ep(t,e,i,r=!0,n=!1){if(n)throw t}const Ie=[];let mt=-1;const yi=[];let qt=null,bi=0;const wl=Promise.resolve();let en=null;function tn(t){const e=en||wl;return t?e.then(this?t.bind(this):t):e}function $p(t){let e=mt+1,i=Ie.length;for(;e<i;){const r=e+i>>>1,n=Ie[r],s=Yi(n);s<t||s===t&&n.flags&2?e=r+1:i=r}return e}function js(t){if(!(t.flags&1)){const e=Yi(t),i=Ie[Ie.length-1];!i||!(t.flags&2)&&e>=Yi(i)?Ie.push(t):Ie.splice($p(e),0,t),t.flags|=1,vl()}}function vl(){en||(en=wl.then(Sl))}function Pp(t){K(t)?yi.push(...t):qt&&t.id===-1?qt.splice(bi+1,0,t):t.flags&1||(yi.push(t),t.flags|=1),vl()}function _l(t,e,i=mt+1){for(;i<Ie.length;i++){const r=Ie[i];if(r&&r.flags&2){if(t&&r.id!==t.uid)continue;Ie.splice(i,1),i--,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function xl(t){if(yi.length){const e=[...new Set(yi)].sort((i,r)=>Yi(i)-Yi(r));if(yi.length=0,qt){qt.push(...e);return}for(qt=e,bi=0;bi<qt.length;bi++){const i=qt[bi];i.flags&4&&(i.flags&=-2),i.flags&8||i(),i.flags&=-2}qt=null,bi=0}}const Yi=t=>t.id==null?t.flags&2?-1:1/0:t.id;function Sl(t){try{for(mt=0;mt<Ie.length;mt++){const e=Ie[mt];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),gi(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;mt<Ie.length;mt++){const e=Ie[mt];e&&(e.flags&=-2)}mt=-1,Ie.length=0,xl(),en=null,(Ie.length||yi.length)&&Sl()}}let gt=null,kl=null;function rn(t){const e=gt;return gt=t,kl=t&&t.type.__scopeId||null,e}function Cp(t,e=gt,i){if(!e||t._n)return t;const r=(...n)=>{r._d&&ac(-1);const s=rn(e);let o;try{o=t(...n)}finally{rn(s),r._d&&ac(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function ei(t,e,i,r){const n=t.dirs,s=e&&e.dirs;for(let o=0;o<n.length;o++){const a=n[o];s&&(a.oldValue=s[o].value);let l=a.dir[r];l&&(ht(),pt(l,i,8,[t.el,a,t,e]),dt())}}const Op=Symbol("_vte"),Tp=t=>t.__isTeleport,Ip=Symbol("_leaveCb");function Us(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Us(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function El(t,e){return G(t)?Ee({name:t.name},e,{setup:t}):t}function $l(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function Ap(t){const e=Xs(),i=Yr(null);if(e){const n=e.refs===ie?e.refs={}:e.refs;Object.defineProperty(n,t,{enumerable:!0,get:()=>i.value,set:s=>i.value=s})}return i}const nn=new WeakMap;function Ji(t,e,i,r,n=!1){if(K(t)){t.forEach((m,E)=>Ji(m,e&&(K(e)?e[E]:e),i,r,n));return}if(Xi(r)&&!n){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Ji(t,e,i,r.component.subTree);return}const s=r.shapeFlag&4?eo(r.component):r.el,o=n?null:s,{i:a,r:l}=t,c=e&&e.r,u=a.refs===ie?a.refs={}:a.refs,f=a.setupState,d=ee(f),y=f===ie?Fa:m=>ne(d,m);if(c!=null&&c!==l){if(Pl(e),ye(c))u[c]=null,y(c)&&(f[c]=null);else if(xe(c)){c.value=null;const m=e;m.k&&(u[m.k]=null)}}if(G(l))gi(l,a,12,[o,u]);else{const m=ye(l),E=xe(l);if(m||E){const j=()=>{if(t.f){const k=m?y(l)?f[l]:u[l]:l.value;if(n)K(k)&&gs(k,s);else if(K(k))k.includes(s)||k.push(s);else if(m)u[l]=[s],y(l)&&(f[l]=u[l]);else{const F=[s];l.value=F,t.k&&(u[t.k]=F)}}else m?(u[l]=o,y(l)&&(f[l]=o)):E&&(l.value=o,t.k&&(u[t.k]=o))};if(o){const k=()=>{j(),nn.delete(t)};k.id=-1,nn.set(t,k),Ke(k,i)}else Pl(t),j()}}}function Pl(t){const e=nn.get(t);e&&(e.flags|=8,nn.delete(t))}Br().requestIdleCallback,Br().cancelIdleCallback;const Xi=t=>!!t.type.__asyncLoader,Cl=t=>t.type.__isKeepAlive;function Rp(t,e){Ol(t,"a",e)}function Lp(t,e){Ol(t,"da",e)}function Ol(t,e,i=Re){const r=t.__wdc||(t.__wdc=()=>{let n=i;for(;n;){if(n.isDeactivated)return;n=n.parent}return t()});if(sn(e,r,i),i){let n=i.parent;for(;n&&n.parent;)Cl(n.parent.vnode)&&Np(r,e,i,n),n=n.parent}}function Np(t,e,i,r){const n=sn(e,t,r,!0);Al(()=>{gs(r[e],n)},i)}function sn(t,e,i=Re,r=!1){if(i){const n=i[t]||(i[t]=[]),s=e.__weh||(e.__weh=(...o)=>{ht();const a=sr(i),l=pt(e,i,t,o);return a(),dt(),l});return r?n.unshift(s):n.push(s),s}}const At=t=>(e,i=Re)=>{(!or||t==="sp")&&sn(t,(...r)=>e(...r),i)},Tl=At("bm"),Fs=At("m"),Mp=At("bu"),Dp=At("u"),Il=At("bum"),Al=At("um"),jp=At("sp"),Up=At("rtg"),Fp=At("rtc");function Bp(t,e=Re){sn("ec",t,e)}const qp=Symbol.for("v-ndc");function Rl(t,e,i,r){let n;const s=i,o=K(t);if(o||ye(t)){const a=o&&mi(t);let l=!1,c=!1;a&&(l=!Xe(t),c=Ft(t),t=zr(t)),n=new Array(t.length);for(let u=0,f=t.length;u<f;u++)n[u]=e(l?c?Qr($e(t[u])):$e(t[u]):t[u],u,void 0,s)}else if(typeof t=="number"){n=new Array(t);for(let a=0;a<t;a++)n[a]=e(a+1,a,void 0,s)}else if(fe(t))if(t[Symbol.iterator])n=Array.from(t,(a,l)=>e(a,l,void 0,s));else{const a=Object.keys(t);n=new Array(a.length);for(let l=0,c=a.length;l<c;l++){const u=a[l];n[l]=e(t[u],u,l,s)}}else n=[];return n}const Bs=t=>t?pc(t)?eo(t):Bs(t.parent):null,Zi=Ee(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Bs(t.parent),$root:t=>Bs(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Dl(t),$forceUpdate:t=>t.f||(t.f=()=>{js(t.update)}),$nextTick:t=>t.n||(t.n=tn.bind(t.proxy)),$watch:t=>um.bind(t)}),qs=(t,e)=>t!==ie&&!t.__isScriptSetup&&ne(t,e),Hp={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:i,setupState:r,data:n,props:s,accessCache:o,type:a,appContext:l}=t;let c;if(e[0]!=="$"){const y=o[e];if(y!==void 0)switch(y){case 1:return r[e];case 2:return n[e];case 4:return i[e];case 3:return s[e]}else{if(qs(r,e))return o[e]=1,r[e];if(n!==ie&&ne(n,e))return o[e]=2,n[e];if((c=t.propsOptions[0])&&ne(c,e))return o[e]=3,s[e];if(i!==ie&&ne(i,e))return o[e]=4,i[e];Hs&&(o[e]=0)}}const u=Zi[e];let f,d;if(u)return e==="$attrs"&&Oe(t.attrs,"get",""),u(t);if((f=a.__cssModules)&&(f=f[e]))return f;if(i!==ie&&ne(i,e))return o[e]=4,i[e];if(d=l.config.globalProperties,ne(d,e))return d[e]},set({_:t},e,i){const{data:r,setupState:n,ctx:s}=t;return qs(n,e)?(n[e]=i,!0):r!==ie&&ne(r,e)?(r[e]=i,!0):ne(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=i,!0)},has({_:{data:t,setupState:e,accessCache:i,ctx:r,appContext:n,propsOptions:s,type:o}},a){let l,c;return!!(i[a]||t!==ie&&a[0]!=="$"&&ne(t,a)||qs(e,a)||(l=s[0])&&ne(l,a)||ne(r,a)||ne(Zi,a)||ne(n.config.globalProperties,a)||(c=o.__cssModules)&&c[a])},defineProperty(t,e,i){return i.get!=null?t._.accessCache[e]=0:ne(i,"value")&&this.set(t,e,i.value,null),Reflect.defineProperty(t,e,i)}};function on(t){return K(t)?t.reduce((e,i)=>(e[i]=null,e),{}):t}function Ll(t,e){return!t||!e?t||e:K(t)&&K(e)?t.concat(e):Ee({},on(t),on(e))}let Hs=!0;function zp(t){const e=Dl(t),i=t.proxy,r=t.ctx;Hs=!1,e.beforeCreate&&Nl(e.beforeCreate,t,"bc");const{data:n,computed:s,methods:o,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:d,beforeUpdate:y,updated:m,activated:E,deactivated:j,beforeDestroy:k,beforeUnmount:F,destroyed:b,unmounted:h,render:p,renderTracked:v,renderTriggered:x,errorCaptured:P,serverPrefetch:R,expose:B,inheritAttrs:Pe,components:Le,directives:Se,filters:be}=e;if(c&&Wp(c,r,null),o)for(const ae in o){const Q=o[ae];G(Q)&&(r[ae]=Q.bind(i))}if(n){const ae=n.call(i,i);fe(ae)&&(t.data=Rs(ae))}if(Hs=!0,s)for(const ae in s){const Q=s[ae],tt=G(Q)?Q.bind(i,i):G(Q.get)?Q.get.bind(i,i):ft,On=!G(Q)&&G(Q.set)?Q.set.bind(i):ft,si=bc({get:tt,set:On});Object.defineProperty(r,ae,{enumerable:!0,configurable:!0,get:()=>si.value,set:_t=>si.value=_t})}if(a)for(const ae in a)Ml(a[ae],r,i,ae);if(l){const ae=G(l)?l.call(i):l;Reflect.ownKeys(ae).forEach(Q=>{Bl(Q,ae[Q])})}u&&Nl(u,t,"c");function oe(ae,Q){K(Q)?Q.forEach(tt=>ae(tt.bind(i))):Q&&ae(Q.bind(i))}if(oe(Tl,f),oe(Fs,d),oe(Mp,y),oe(Dp,m),oe(Rp,E),oe(Lp,j),oe(Bp,P),oe(Fp,v),oe(Up,x),oe(Il,F),oe(Al,h),oe(jp,R),K(B))if(B.length){const ae=t.exposed||(t.exposed={});B.forEach(Q=>{Object.defineProperty(ae,Q,{get:()=>i[Q],set:tt=>i[Q]=tt,enumerable:!0})})}else t.exposed||(t.exposed={});p&&t.render===ft&&(t.render=p),Pe!=null&&(t.inheritAttrs=Pe),Le&&(t.components=Le),Se&&(t.directives=Se),R&&$l(t)}function Wp(t,e,i=ft){K(t)&&(t=zs(t));for(const r in t){const n=t[r];let s;fe(n)?"default"in n?s=tr(n.from||r,n.default,!0):s=tr(n.from||r):s=tr(n),xe(s)?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):e[r]=s}}function Nl(t,e,i){pt(K(t)?t.map(r=>r.bind(e.proxy)):t.bind(e.proxy),e,i)}function Ml(t,e,i,r){let n=r.includes(".")?ec(i,r):()=>i[r];if(ye(t)){const s=e[t];G(s)&&vi(n,s)}else if(G(t))vi(n,t.bind(i));else if(fe(t))if(K(t))t.forEach(s=>Ml(s,e,i,r));else{const s=G(t.handler)?t.handler.bind(i):e[t.handler];G(s)&&vi(n,s,t)}}function Dl(t){const e=t.type,{mixins:i,extends:r}=e,{mixins:n,optionsCache:s,config:{optionMergeStrategies:o}}=t.appContext,a=s.get(e);let l;return a?l=a:!n.length&&!i&&!r?l=e:(l={},n.length&&n.forEach(c=>an(l,c,o,!0)),an(l,e,o)),fe(e)&&s.set(e,l),l}function an(t,e,i,r=!1){const{mixins:n,extends:s}=e;s&&an(t,s,i,!0),n&&n.forEach(o=>an(t,o,i,!0));for(const o in e)if(!(r&&o==="expose")){const a=Kp[o]||i&&i[o];t[o]=a?a(t[o],e[o]):e[o]}return t}const Kp={data:jl,props:Ul,emits:Ul,methods:er,computed:er,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:er,directives:er,watch:Gp,provide:jl,inject:Vp};function jl(t,e){return e?t?function(){return Ee(G(t)?t.call(this,this):t,G(e)?e.call(this,this):e)}:e:t}function Vp(t,e){return er(zs(t),zs(e))}function zs(t){if(K(t)){const e={};for(let i=0;i<t.length;i++)e[t[i]]=t[i];return e}return t}function Ae(t,e){return t?[...new Set([].concat(t,e))]:e}function er(t,e){return t?Ee(Object.create(null),t,e):e}function Ul(t,e){return t?K(t)&&K(e)?[...new Set([...t,...e])]:Ee(Object.create(null),on(t),on(e??{})):e}function Gp(t,e){if(!t)return e;if(!e)return t;const i=Ee(Object.create(null),t);for(const r in e)i[r]=Ae(t[r],e[r]);return i}function Fl(){return{app:null,config:{isNativeTag:Fa,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Qp=0;function Yp(t,e){return function(r,n=null){G(r)||(r=Ee({},r)),n!=null&&!fe(n)&&(n=null);const s=Fl(),o=new WeakSet,a=[];let l=!1;const c=s.app={_uid:Qp++,_component:r,_props:n,_container:null,_context:s,_instance:null,version:Lm,get config(){return s.config},set config(u){},use(u,...f){return o.has(u)||(u&&G(u.install)?(o.add(u),u.install(c,...f)):G(u)&&(o.add(u),u(c,...f))),c},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),c},component(u,f){return f?(s.components[u]=f,c):s.components[u]},directive(u,f){return f?(s.directives[u]=f,c):s.directives[u]},mount(u,f,d){if(!l){const y=c._ceVNode||Rt(r,n);return y.appContext=s,d===!0?d="svg":d===!1&&(d=void 0),t(y,u,d),l=!0,c._container=u,u.__vue_app__=c,eo(y.component)}},onUnmount(u){a.push(u)},unmount(){l&&(pt(a,c._instance,16),t(null,c._container),delete c._container.__vue_app__)},provide(u,f){return s.provides[u]=f,c},runWithContext(u){const f=wi;wi=c;try{return u()}finally{wi=f}}};return c}}let wi=null;function Bl(t,e){if(Re){let i=Re.provides;const r=Re.parent&&Re.parent.provides;r===i&&(i=Re.provides=Object.create(r)),i[t]=e}}function tr(t,e,i=!1){const r=Xs();if(r||wi){let n=wi?wi._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(n&&t in n)return n[t];if(arguments.length>1)return i&&G(e)?e.call(r&&r.proxy):e}}const ql={},Hl=()=>Object.create(ql),zl=t=>Object.getPrototypeOf(t)===ql;function Jp(t,e,i,r=!1){const n={},s=Hl();t.propsDefaults=Object.create(null),Wl(t,e,n,s);for(const o in t.propsOptions[0])o in n||(n[o]=void 0);i?t.props=r?n:fp(n):t.type.props?t.props=n:t.props=s,t.attrs=s}function Xp(t,e,i,r){const{props:n,attrs:s,vnode:{patchFlag:o}}=t,a=ee(n),[l]=t.propsOptions;let c=!1;if((r||o>0)&&!(o&16)){if(o&8){const u=t.vnode.dynamicProps;for(let f=0;f<u.length;f++){let d=u[f];if(ln(t.emitsOptions,d))continue;const y=e[d];if(l)if(ne(s,d))y!==s[d]&&(s[d]=y,c=!0);else{const m=Ot(d);n[m]=Ws(l,a,m,y,t,!1)}else y!==s[d]&&(s[d]=y,c=!0)}}}else{Wl(t,e,n,s)&&(c=!0);let u;for(const f in a)(!e||!ne(e,f)&&((u=Ut(f))===f||!ne(e,u)))&&(l?i&&(i[f]!==void 0||i[u]!==void 0)&&(n[f]=Ws(l,a,f,void 0,t,!0)):delete n[f]);if(s!==a)for(const f in s)(!e||!ne(e,f))&&(delete s[f],c=!0)}c&&Tt(t.attrs,"set","")}function Wl(t,e,i,r){const[n,s]=t.propsOptions;let o=!1,a;if(e)for(let l in e){if(Hi(l))continue;const c=e[l];let u;n&&ne(n,u=Ot(l))?!s||!s.includes(u)?i[u]=c:(a||(a={}))[u]=c:ln(t.emitsOptions,l)||(!(l in r)||c!==r[l])&&(r[l]=c,o=!0)}if(s){const l=ee(i),c=a||ie;for(let u=0;u<s.length;u++){const f=s[u];i[f]=Ws(n,l,f,c[f],t,!ne(c,f))}}return o}function Ws(t,e,i,r,n,s){const o=t[i];if(o!=null){const a=ne(o,"default");if(a&&r===void 0){const l=o.default;if(o.type!==Function&&!o.skipFactory&&G(l)){const{propsDefaults:c}=n;if(i in c)r=c[i];else{const u=sr(n);r=c[i]=l.call(null,e),u()}}else r=l;n.ce&&n.ce._setProp(i,r)}o[0]&&(s&&!a?r=!1:o[1]&&(r===""||r===Ut(i))&&(r=!0))}return r}const Zp=new WeakMap;function Kl(t,e,i=!1){const r=i?Zp:e.propsCache,n=r.get(t);if(n)return n;const s=t.props,o={},a=[];let l=!1;if(!G(t)){const u=f=>{l=!0;const[d,y]=Kl(f,e,!0);Ee(o,d),y&&a.push(...y)};!i&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!s&&!l)return fe(t)&&r.set(t,hi),hi;if(K(s))for(let u=0;u<s.length;u++){const f=Ot(s[u]);Vl(f)&&(o[f]=ie)}else if(s)for(const u in s){const f=Ot(u);if(Vl(f)){const d=s[u],y=o[f]=K(d)||G(d)?{type:d}:Ee({},d),m=y.type;let E=!1,j=!0;if(K(m))for(let k=0;k<m.length;++k){const F=m[k],b=G(F)&&F.name;if(b==="Boolean"){E=!0;break}else b==="String"&&(j=!1)}else E=G(m)&&m.name==="Boolean";y[0]=E,y[1]=j,(E||ne(y,"default"))&&a.push(f)}}const c=[o,a];return fe(t)&&r.set(t,c),c}function Vl(t){return t[0]!=="$"&&!Hi(t)}const Ks=t=>t==="_"||t==="_ctx"||t==="$stable",Vs=t=>K(t)?t.map(yt):[yt(t)],em=(t,e,i)=>{if(e._n)return e;const r=Cp((...n)=>Vs(e(...n)),i);return r._c=!1,r},Gl=(t,e,i)=>{const r=t._ctx;for(const n in t){if(Ks(n))continue;const s=t[n];if(G(s))e[n]=em(n,s,r);else if(s!=null){const o=Vs(s);e[n]=()=>o}}},Ql=(t,e)=>{const i=Vs(e);t.slots.default=()=>i},Yl=(t,e,i)=>{for(const r in e)(i||!Ks(r))&&(t[r]=e[r])},tm=(t,e,i)=>{const r=t.slots=Hl();if(t.vnode.shapeFlag&32){const n=e._;n?(Yl(r,e,i),i&&Ka(r,"_",n,!0)):Gl(e,r)}else e&&Ql(t,e)},im=(t,e,i)=>{const{vnode:r,slots:n}=t;let s=!0,o=ie;if(r.shapeFlag&32){const a=e._;a?i&&a===1?s=!1:Yl(n,e,i):(s=!e.$stable,Gl(e,n)),o=e}else e&&(Ql(t,e),o={default:1});if(s)for(const a in n)!Ks(a)&&o[a]==null&&delete n[a]},Ke=ym;function rm(t){return nm(t)}function nm(t,e){const i=Br();i.__VUE__=!0;const{insert:r,remove:n,patchProp:s,createElement:o,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:d,setScopeId:y=ft,insertStaticContent:m}=t,E=(w,_,S,T=null,C=null,O=null,D=void 0,N=null,A=!!_.dynamicChildren)=>{if(w===_)return;w&&!nr(w,_)&&(T=Tn(w),_t(w,C,O,!0),w=null),_.patchFlag===-2&&(A=!1,_.dynamicChildren=null);const{type:I,ref:H,shapeFlag:U}=_;switch(I){case cn:j(w,_,S,T);break;case Ht:k(w,_,S,T);break;case Ys:w==null&&F(_,S,T,D);break;case ot:Le(w,_,S,T,C,O,D,N,A);break;default:U&1?p(w,_,S,T,C,O,D,N,A):U&6?Se(w,_,S,T,C,O,D,N,A):(U&64||U&128)&&I.process(w,_,S,T,C,O,D,N,A,gr)}H!=null&&C?Ji(H,w&&w.ref,O,_||w,!_):H==null&&w&&w.ref!=null&&Ji(w.ref,null,O,w,!0)},j=(w,_,S,T)=>{if(w==null)r(_.el=a(_.children),S,T);else{const C=_.el=w.el;_.children!==w.children&&c(C,_.children)}},k=(w,_,S,T)=>{w==null?r(_.el=l(_.children||""),S,T):_.el=w.el},F=(w,_,S,T)=>{[w.el,w.anchor]=m(w.children,_,S,T,w.el,w.anchor)},b=({el:w,anchor:_},S,T)=>{let C;for(;w&&w!==_;)C=d(w),r(w,S,T),w=C;r(_,S,T)},h=({el:w,anchor:_})=>{let S;for(;w&&w!==_;)S=d(w),n(w),w=S;n(_)},p=(w,_,S,T,C,O,D,N,A)=>{_.type==="svg"?D="svg":_.type==="math"&&(D="mathml"),w==null?v(_,S,T,C,O,D,N,A):R(w,_,C,O,D,N,A)},v=(w,_,S,T,C,O,D,N)=>{let A,I;const{props:H,shapeFlag:U,transition:q,dirs:V}=w;if(A=w.el=o(w.type,O,H&&H.is,H),U&8?u(A,w.children):U&16&&P(w.children,A,null,T,C,Gs(w,O),D,N),V&&ei(w,null,T,"created"),x(A,w,w.scopeId,D,T),H){for(const ue in H)ue!=="value"&&!Hi(ue)&&s(A,ue,null,H[ue],O,T);"value"in H&&s(A,"value",null,H.value,O),(I=H.onVnodeBeforeMount)&&bt(I,T,w)}V&&ei(w,null,T,"beforeMount");const Z=sm(C,q);Z&&q.beforeEnter(A),r(A,_,S),((I=H&&H.onVnodeMounted)||Z||V)&&Ke(()=>{I&&bt(I,T,w),Z&&q.enter(A),V&&ei(w,null,T,"mounted")},C)},x=(w,_,S,T,C)=>{if(S&&y(w,S),T)for(let O=0;O<T.length;O++)y(w,T[O]);if(C){let O=C.subTree;if(_===O||oc(O.type)&&(O.ssContent===_||O.ssFallback===_)){const D=C.vnode;x(w,D,D.scopeId,D.slotScopeIds,C.parent)}}},P=(w,_,S,T,C,O,D,N,A=0)=>{for(let I=A;I<w.length;I++){const H=w[I]=N?Wt(w[I]):yt(w[I]);E(null,H,_,S,T,C,O,D,N)}},R=(w,_,S,T,C,O,D)=>{const N=_.el=w.el;let{patchFlag:A,dynamicChildren:I,dirs:H}=_;A|=w.patchFlag&16;const U=w.props||ie,q=_.props||ie;let V;if(S&&ti(S,!1),(V=q.onVnodeBeforeUpdate)&&bt(V,S,_,w),H&&ei(_,w,S,"beforeUpdate"),S&&ti(S,!0),(U.innerHTML&&q.innerHTML==null||U.textContent&&q.textContent==null)&&u(N,""),I?B(w.dynamicChildren,I,N,S,T,Gs(_,C),O):D||Q(w,_,N,null,S,T,Gs(_,C),O,!1),A>0){if(A&16)Pe(N,U,q,S,C);else if(A&2&&U.class!==q.class&&s(N,"class",null,q.class,C),A&4&&s(N,"style",U.style,q.style,C),A&8){const Z=_.dynamicProps;for(let ue=0;ue<Z.length;ue++){const se=Z[ue],qe=U[se],He=q[se];(He!==qe||se==="value")&&s(N,se,qe,He,C,S)}}A&1&&w.children!==_.children&&u(N,_.children)}else!D&&I==null&&Pe(N,U,q,S,C);((V=q.onVnodeUpdated)||H)&&Ke(()=>{V&&bt(V,S,_,w),H&&ei(_,w,S,"updated")},T)},B=(w,_,S,T,C,O,D)=>{for(let N=0;N<_.length;N++){const A=w[N],I=_[N],H=A.el&&(A.type===ot||!nr(A,I)||A.shapeFlag&198)?f(A.el):S;E(A,I,H,null,T,C,O,D,!0)}},Pe=(w,_,S,T,C)=>{if(_!==S){if(_!==ie)for(const O in _)!Hi(O)&&!(O in S)&&s(w,O,_[O],null,C,T);for(const O in S){if(Hi(O))continue;const D=S[O],N=_[O];D!==N&&O!=="value"&&s(w,O,N,D,C,T)}"value"in S&&s(w,"value",_.value,S.value,C)}},Le=(w,_,S,T,C,O,D,N,A)=>{const I=_.el=w?w.el:a(""),H=_.anchor=w?w.anchor:a("");let{patchFlag:U,dynamicChildren:q,slotScopeIds:V}=_;V&&(N=N?N.concat(V):V),w==null?(r(I,S,T),r(H,S,T),P(_.children||[],S,H,C,O,D,N,A)):U>0&&U&64&&q&&w.dynamicChildren?(B(w.dynamicChildren,q,S,C,O,D,N),(_.key!=null||C&&_===C.subTree)&&Jl(w,_,!0)):Q(w,_,S,H,C,O,D,N,A)},Se=(w,_,S,T,C,O,D,N,A)=>{_.slotScopeIds=N,w==null?_.shapeFlag&512?C.ctx.activate(_,S,T,D,A):be(_,S,T,C,O,D,A):he(w,_,A)},be=(w,_,S,T,C,O,D)=>{const N=w.component=Em(w,T,C);if(Cl(w)&&(N.ctx.renderer=gr),$m(N,!1,D),N.asyncDep){if(C&&C.registerDep(N,oe,D),!w.el){const A=N.subTree=Rt(Ht);k(null,A,_,S),w.placeholder=A.el}}else oe(N,w,_,S,C,O,D)},he=(w,_,S)=>{const T=_.component=w.component;if(mm(w,_,S))if(T.asyncDep&&!T.asyncResolved){ae(T,_,S);return}else T.next=_,T.update();else _.el=w.el,T.vnode=_},oe=(w,_,S,T,C,O,D)=>{const N=()=>{if(w.isMounted){let{next:U,bu:q,u:V,parent:Z,vnode:ue}=w;{const St=Xl(w);if(St){U&&(U.el=ue.el,ae(w,U,D)),St.asyncDep.then(()=>{w.isUnmounted||N()});return}}let se=U,qe;ti(w,!1),U?(U.el=ue.el,ae(w,U,D)):U=ue,q&&ws(q),(qe=U.props&&U.props.onVnodeBeforeUpdate)&&bt(qe,Z,U,ue),ti(w,!0);const He=nc(w),xt=w.subTree;w.subTree=He,E(xt,He,f(xt.el),Tn(xt),w,C,O),U.el=He.el,se===null&&gm(w,He.el),V&&Ke(V,C),(qe=U.props&&U.props.onVnodeUpdated)&&Ke(()=>bt(qe,Z,U,ue),C)}else{let U;const{el:q,props:V}=_,{bm:Z,m:ue,parent:se,root:qe,type:He}=w,xt=Xi(_);ti(w,!1),Z&&ws(Z),!xt&&(U=V&&V.onVnodeBeforeMount)&&bt(U,se,_),ti(w,!0);{qe.ce&&qe.ce._def.shadowRoot!==!1&&qe.ce._injectChildStyle(He);const St=w.subTree=nc(w);E(null,St,S,T,w,C,O),_.el=St.el}if(ue&&Ke(ue,C),!xt&&(U=V&&V.onVnodeMounted)){const St=_;Ke(()=>bt(U,se,St),C)}(_.shapeFlag&256||se&&Xi(se.vnode)&&se.vnode.shapeFlag&256)&&w.a&&Ke(w.a,C),w.isMounted=!0,_=S=T=null}};w.scope.on();const A=w.effect=new Ja(N);w.scope.off();const I=w.update=A.run.bind(A),H=w.job=A.runIfDirty.bind(A);H.i=w,H.id=w.uid,A.scheduler=()=>js(H),ti(w,!0),I()},ae=(w,_,S)=>{_.component=w;const T=w.vnode.props;w.vnode=_,w.next=null,Xp(w,_.props,T,S),im(w,_.children,S),ht(),_l(w),dt()},Q=(w,_,S,T,C,O,D,N,A=!1)=>{const I=w&&w.children,H=w?w.shapeFlag:0,U=_.children,{patchFlag:q,shapeFlag:V}=_;if(q>0){if(q&128){On(I,U,S,T,C,O,D,N,A);return}else if(q&256){tt(I,U,S,T,C,O,D,N,A);return}}V&8?(H&16&&mr(I,C,O),U!==I&&u(S,U)):H&16?V&16?On(I,U,S,T,C,O,D,N,A):mr(I,C,O,!0):(H&8&&u(S,""),V&16&&P(U,S,T,C,O,D,N,A))},tt=(w,_,S,T,C,O,D,N,A)=>{w=w||hi,_=_||hi;const I=w.length,H=_.length,U=Math.min(I,H);let q;for(q=0;q<U;q++){const V=_[q]=A?Wt(_[q]):yt(_[q]);E(w[q],V,S,null,C,O,D,N,A)}I>H?mr(w,C,O,!0,!1,U):P(_,S,T,C,O,D,N,A,U)},On=(w,_,S,T,C,O,D,N,A)=>{let I=0;const H=_.length;let U=w.length-1,q=H-1;for(;I<=U&&I<=q;){const V=w[I],Z=_[I]=A?Wt(_[I]):yt(_[I]);if(nr(V,Z))E(V,Z,S,null,C,O,D,N,A);else break;I++}for(;I<=U&&I<=q;){const V=w[U],Z=_[q]=A?Wt(_[q]):yt(_[q]);if(nr(V,Z))E(V,Z,S,null,C,O,D,N,A);else break;U--,q--}if(I>U){if(I<=q){const V=q+1,Z=V<H?_[V].el:T;for(;I<=q;)E(null,_[I]=A?Wt(_[I]):yt(_[I]),S,Z,C,O,D,N,A),I++}}else if(I>q)for(;I<=U;)_t(w[I],C,O,!0),I++;else{const V=I,Z=I,ue=new Map;for(I=Z;I<=q;I++){const Qe=_[I]=A?Wt(_[I]):yt(_[I]);Qe.key!=null&&ue.set(Qe.key,I)}let se,qe=0;const He=q-Z+1;let xt=!1,St=0;const yr=new Array(He);for(I=0;I<He;I++)yr[I]=0;for(I=V;I<=U;I++){const Qe=w[I];if(qe>=He){_t(Qe,C,O,!0);continue}let kt;if(Qe.key!=null)kt=ue.get(Qe.key);else for(se=Z;se<=q;se++)if(yr[se-Z]===0&&nr(Qe,_[se])){kt=se;break}kt===void 0?_t(Qe,C,O,!0):(yr[kt-Z]=I+1,kt>=St?St=kt:xt=!0,E(Qe,_[kt],S,null,C,O,D,N,A),qe++)}const Nu=xt?om(yr):hi;for(se=Nu.length-1,I=He-1;I>=0;I--){const Qe=Z+I,kt=_[Qe],Mu=_[Qe+1],Du=Qe+1<H?Mu.el||Mu.placeholder:T;yr[I]===0?E(null,kt,S,Du,C,O,D,N,A):xt&&(se<0||I!==Nu[se]?si(kt,S,Du,2):se--)}}},si=(w,_,S,T,C=null)=>{const{el:O,type:D,transition:N,children:A,shapeFlag:I}=w;if(I&6){si(w.component.subTree,_,S,T);return}if(I&128){w.suspense.move(_,S,T);return}if(I&64){D.move(w,_,S,gr);return}if(D===ot){r(O,_,S);for(let U=0;U<A.length;U++)si(A[U],_,S,T);r(w.anchor,_,S);return}if(D===Ys){b(w,_,S);return}if(T!==2&&I&1&&N)if(T===0)N.beforeEnter(O),r(O,_,S),Ke(()=>N.enter(O),C);else{const{leave:U,delayLeave:q,afterLeave:V}=N,Z=()=>{w.ctx.isUnmounted?n(O):r(O,_,S)},ue=()=>{O._isLeaving&&O[Ip](!0),U(O,()=>{Z(),V&&V()})};q?q(O,Z,ue):ue()}else r(O,_,S)},_t=(w,_,S,T=!1,C=!1)=>{const{type:O,props:D,ref:N,children:A,dynamicChildren:I,shapeFlag:H,patchFlag:U,dirs:q,cacheIndex:V}=w;if(U===-2&&(C=!1),N!=null&&(ht(),Ji(N,null,S,w,!0),dt()),V!=null&&(_.renderCache[V]=void 0),H&256){_.ctx.deactivate(w);return}const Z=H&1&&q,ue=!Xi(w);let se;if(ue&&(se=D&&D.onVnodeBeforeUnmount)&&bt(se,_,w),H&6)mb(w.component,S,T);else{if(H&128){w.suspense.unmount(S,T);return}Z&&ei(w,null,_,"beforeUnmount"),H&64?w.type.remove(w,_,S,gr,T):I&&!I.hasOnce&&(O!==ot||U>0&&U&64)?mr(I,_,S,!1,!0):(O===ot&&U&384||!C&&H&16)&&mr(A,_,S),T&&Ru(w)}(ue&&(se=D&&D.onVnodeUnmounted)||Z)&&Ke(()=>{se&&bt(se,_,w),Z&&ei(w,null,_,"unmounted")},S)},Ru=w=>{const{type:_,el:S,anchor:T,transition:C}=w;if(_===ot){pb(S,T);return}if(_===Ys){h(w);return}const O=()=>{n(S),C&&!C.persisted&&C.afterLeave&&C.afterLeave()};if(w.shapeFlag&1&&C&&!C.persisted){const{leave:D,delayLeave:N}=C,A=()=>D(S,O);N?N(w.el,O,A):A()}else O()},pb=(w,_)=>{let S;for(;w!==_;)S=d(w),n(w),w=S;n(_)},mb=(w,_,S)=>{const{bum:T,scope:C,job:O,subTree:D,um:N,m:A,a:I}=w;Zl(A),Zl(I),T&&ws(T),C.stop(),O&&(O.flags|=8,_t(D,w,_,S)),N&&Ke(N,_),Ke(()=>{w.isUnmounted=!0},_)},mr=(w,_,S,T=!1,C=!1,O=0)=>{for(let D=O;D<w.length;D++)_t(w[D],_,S,T,C)},Tn=w=>{if(w.shapeFlag&6)return Tn(w.component.subTree);if(w.shapeFlag&128)return w.suspense.next();const _=d(w.anchor||w.el),S=_&&_[Op];return S?d(S):_};let Oo=!1;const Lu=(w,_,S)=>{w==null?_._vnode&&_t(_._vnode,null,null,!0):E(_._vnode||null,w,_,null,null,null,S),_._vnode=w,Oo||(Oo=!0,_l(),xl(),Oo=!1)},gr={p:E,um:_t,m:si,r:Ru,mt:be,mc:P,pc:Q,pbc:B,n:Tn,o:t};return{render:Lu,hydrate:void 0,createApp:Yp(Lu)}}function Gs({type:t,props:e},i){return i==="svg"&&t==="foreignObject"||i==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:i}function ti({effect:t,job:e},i){i?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function sm(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Jl(t,e,i=!1){const r=t.children,n=e.children;if(K(r)&&K(n))for(let s=0;s<r.length;s++){const o=r[s];let a=n[s];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=n[s]=Wt(n[s]),a.el=o.el),!i&&a.patchFlag!==-2&&Jl(o,a)),a.type===cn&&a.patchFlag!==-1&&(a.el=o.el),a.type===Ht&&!a.el&&(a.el=o.el)}}function om(t){const e=t.slice(),i=[0];let r,n,s,o,a;const l=t.length;for(r=0;r<l;r++){const c=t[r];if(c!==0){if(n=i[i.length-1],t[n]<c){e[r]=n,i.push(r);continue}for(s=0,o=i.length-1;s<o;)a=s+o>>1,t[i[a]]<c?s=a+1:o=a;c<t[i[s]]&&(s>0&&(e[r]=i[s-1]),i[s]=r)}}for(s=i.length,o=i[s-1];s-- >0;)i[s]=o,o=e[o];return i}function Xl(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Xl(e)}function Zl(t){if(t)for(let e=0;e<t.length;e++)t[e].flags|=8}const am=Symbol.for("v-scx"),lm=()=>tr(am);function cm(t,e){return Qs(t,null,{flush:"sync"})}function vi(t,e,i){return Qs(t,e,i)}function Qs(t,e,i=ie){const{immediate:r,deep:n,flush:s,once:o}=i,a=Ee({},i),l=e&&r||!e&&s!=="post";let c;if(or){if(s==="sync"){const y=lm();c=y.__watcherHandles||(y.__watcherHandles=[])}else if(!l){const y=()=>{};return y.stop=ft,y.resume=ft,y.pause=ft,y}}const u=Re;a.call=(y,m,E)=>pt(y,u,m,E);let f=!1;s==="post"?a.scheduler=y=>{Ke(y,u&&u.suspense)}:s!=="sync"&&(f=!0,a.scheduler=(y,m)=>{m?y():js(y)}),a.augmentJob=y=>{e&&(y.flags|=4),f&&(y.flags|=2,u&&(y.id=u.uid,y.i=u))};const d=vp(t,e,a);return or&&(c?c.push(d):l&&d()),d}function um(t,e,i){const r=this.proxy,n=ye(t)?t.includes(".")?ec(r,t):()=>r[t]:t.bind(r,r);let s;G(e)?s=e:(s=e.handler,i=e);const o=sr(this),a=Qs(n,s.bind(r),i);return o(),a}function ec(t,e){const i=e.split(".");return()=>{let r=t;for(let n=0;n<i.length&&r;n++)r=r[i[n]];return r}}function tc(t,e,i=ie){const r=Xs(),n=Ot(e),s=Ut(e),o=ic(t,n),a=gp((l,c)=>{let u,f=ie,d;return cm(()=>{const y=t[n];Ue(u,y)&&(u=y,c())}),{get(){return l(),i.get?i.get(u):u},set(y){const m=i.set?i.set(y):y;if(!Ue(m,u)&&!(f!==ie&&Ue(y,f)))return;const E=r.vnode.props;E&&(e in E||n in E||s in E)&&(`onUpdate:${e}`in E||`onUpdate:${n}`in E||`onUpdate:${s}`in E)||(u=y,c()),r.emit(`update:${e}`,m),Ue(y,m)&&Ue(y,f)&&!Ue(m,d)&&c(),f=y,d=m}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?o||ie:a,done:!1}:{done:!0}}}},a}const ic=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ot(e)}Modifiers`]||t[`${Ut(e)}Modifiers`];function fm(t,e,...i){if(t.isUnmounted)return;const r=t.vnode.props||ie;let n=i;const s=e.startsWith("update:"),o=s&&ic(r,e.slice(7));o&&(o.trim&&(n=i.map(u=>ye(u)?u.trim():u)),o.number&&(n=i.map(Ud)));let a,l=r[a=bs(e)]||r[a=bs(Ot(e))];!l&&s&&(l=r[a=bs(Ut(e))]),l&&pt(l,t,6,n);const c=r[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,pt(c,t,6,n)}}const hm=new WeakMap;function rc(t,e,i=!1){const r=i?hm:e.emitsCache,n=r.get(t);if(n!==void 0)return n;const s=t.emits;let o={},a=!1;if(!G(t)){const l=c=>{const u=rc(c,e,!0);u&&(a=!0,Ee(o,u))};!i&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(fe(t)&&r.set(t,null),null):(K(s)?s.forEach(l=>o[l]=null):Ee(o,s),fe(t)&&r.set(t,o),o)}function ln(t,e){return!t||!jr(e)?!1:(e=e.slice(2).replace(/Once$/,""),ne(t,e[0].toLowerCase()+e.slice(1))||ne(t,Ut(e))||ne(t,e))}function xb(){}function nc(t){const{type:e,vnode:i,proxy:r,withProxy:n,propsOptions:[s],slots:o,attrs:a,emit:l,render:c,renderCache:u,props:f,data:d,setupState:y,ctx:m,inheritAttrs:E}=t,j=rn(t);let k,F;try{if(i.shapeFlag&4){const h=n||r,p=h;k=yt(c.call(p,h,u,f,y,d,m)),F=a}else{const h=e;k=yt(h.length>1?h(f,{attrs:a,slots:o,emit:l}):h(f,null)),F=e.props?a:dm(a)}}catch(h){ir.length=0,Zr(h,t,1),k=Rt(Ht)}let b=k;if(F&&E!==!1){const h=Object.keys(F),{shapeFlag:p}=b;h.length&&p&7&&(s&&h.some(ms)&&(F=pm(F,s)),b=xi(b,F,!1,!0))}return i.dirs&&(b=xi(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(i.dirs):i.dirs),i.transition&&Us(b,i.transition),k=b,rn(j),k}const dm=t=>{let e;for(const i in t)(i==="class"||i==="style"||jr(i))&&((e||(e={}))[i]=t[i]);return e},pm=(t,e)=>{const i={};for(const r in t)(!ms(r)||!(r.slice(9)in e))&&(i[r]=t[r]);return i};function mm(t,e,i){const{props:r,children:n,component:s}=t,{props:o,children:a,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(i&&l>=0){if(l&1024)return!0;if(l&16)return r?sc(r,o,c):!!o;if(l&8){const u=e.dynamicProps;for(let f=0;f<u.length;f++){const d=u[f];if(o[d]!==r[d]&&!ln(c,d))return!0}}}else return(n||a)&&(!a||!a.$stable)?!0:r===o?!1:r?o?sc(r,o,c):!0:!!o;return!1}function sc(t,e,i){const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!0;for(let n=0;n<r.length;n++){const s=r[n];if(e[s]!==t[s]&&!ln(i,s))return!0}return!1}function gm({vnode:t,parent:e},i){for(;e;){const r=e.subTree;if(r.suspense&&r.suspense.activeBranch===t&&(r.el=t.el),r===t)(t=e.vnode).el=i,e=e.parent;else break}}const oc=t=>t.__isSuspense;function ym(t,e){e&&e.pendingBranch?K(t)?e.effects.push(...t):e.effects.push(t):Pp(t)}const ot=Symbol.for("v-fgt"),cn=Symbol.for("v-txt"),Ht=Symbol.for("v-cmt"),Ys=Symbol.for("v-stc"),ir=[];let Ve=null;function zt(t=!1){ir.push(Ve=t?null:[])}function bm(){ir.pop(),Ve=ir[ir.length-1]||null}let rr=1;function ac(t,e=!1){rr+=t,t<0&&Ve&&e&&(Ve.hasOnce=!0)}function lc(t){return t.dynamicChildren=rr>0?Ve||hi:null,bm(),rr>0&&Ve&&Ve.push(t),t}function _i(t,e,i,r,n,s){return lc(fn(t,e,i,r,n,s,!0))}function cc(t,e,i,r,n){return lc(Rt(t,e,i,r,n,!0))}function uc(t){return t?t.__v_isVNode===!0:!1}function nr(t,e){return t.type===e.type&&t.key===e.key}const fc=({key:t})=>t??null,un=({ref:t,ref_key:e,ref_for:i})=>(typeof t=="number"&&(t=""+t),t!=null?ye(t)||xe(t)||G(t)?{i:gt,r:t,k:e,f:!!i}:t:null);function fn(t,e=null,i=null,r=0,n=null,s=t===ot?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&fc(e),ref:e&&un(e),scopeId:kl,slotScopeIds:null,children:i,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:s,patchFlag:r,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:gt};return a?(Js(l,i),s&128&&t.normalize(l)):i&&(l.shapeFlag|=ye(i)?8:16),rr>0&&!o&&Ve&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Ve.push(l),l}const Rt=wm;function wm(t,e=null,i=null,r=0,n=null,s=!1){if((!t||t===qp)&&(t=Ht),uc(t)){const a=xi(t,e,!0);return i&&Js(a,i),rr>0&&!s&&Ve&&(a.shapeFlag&6?Ve[Ve.indexOf(t)]=a:Ve.push(a)),a.patchFlag=-2,a}if(Rm(t)&&(t=t.__vccOpts),e){e=vm(e);let{class:a,style:l}=e;a&&!ye(a)&&(e.class=qr(a)),fe(l)&&(Ns(l)&&!K(l)&&(l=Ee({},l)),e.style=vs(l))}const o=ye(t)?1:oc(t)?128:Tp(t)?64:fe(t)?4:G(t)?2:0;return fn(t,e,i,r,n,o,s,!0)}function vm(t){return t?Ns(t)||zl(t)?Ee({},t):t:null}function xi(t,e,i=!1,r=!1){const{props:n,ref:s,patchFlag:o,children:a,transition:l}=t,c=e?hc(n||{},e):n,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&fc(c),ref:e&&e.ref?i&&s?K(s)?s.concat(un(e)):[s,un(e)]:un(e):s,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==ot?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&xi(t.ssContent),ssFallback:t.ssFallback&&xi(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&r&&Us(u,l.clone(u)),u}function _m(t=" ",e=0){return Rt(cn,null,t,e)}function xm(t="",e=!1){return e?(zt(),cc(Ht,null,t)):Rt(Ht,null,t)}function yt(t){return t==null||typeof t=="boolean"?Rt(Ht):K(t)?Rt(ot,null,t.slice()):uc(t)?Wt(t):Rt(cn,null,String(t))}function Wt(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:xi(t)}function Js(t,e){let i=0;const{shapeFlag:r}=t;if(e==null)e=null;else if(K(e))i=16;else if(typeof e=="object")if(r&65){const n=e.default;n&&(n._c&&(n._d=!1),Js(t,n()),n._c&&(n._d=!0));return}else{i=32;const n=e._;!n&&!zl(e)?e._ctx=gt:n===3&>&&(gt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else G(e)?(e={default:e,_ctx:gt},i=32):(e=String(e),r&64?(i=16,e=[_m(e)]):i=8);t.children=e,t.shapeFlag|=i}function hc(...t){const e={};for(let i=0;i<t.length;i++){const r=t[i];for(const n in r)if(n==="class")e.class!==r.class&&(e.class=qr([e.class,r.class]));else if(n==="style")e.style=vs([e.style,r.style]);else if(jr(n)){const s=e[n],o=r[n];o&&s!==o&&!(K(s)&&s.includes(o))&&(e[n]=s?[].concat(s,o):o)}else n!==""&&(e[n]=r[n])}return e}function bt(t,e,i,r=null){pt(t,e,7,[i,r])}const Sm=Fl();let km=0;function Em(t,e,i){const r=t.type,n=(e?e.appContext:t.appContext)||Sm,s={uid:km++,vnode:t,type:r,parent:e,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Wd(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(n.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Kl(r,n),emitsOptions:rc(r,n),emit:null,emitted:null,propsDefaults:ie,inheritAttrs:r.inheritAttrs,ctx:ie,data:ie,props:ie,attrs:ie,slots:ie,refs:ie,setupState:ie,setupContext:null,suspense:i,suspenseId:i?i.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=e?e.root:s,s.emit=fm.bind(null,s),t.ce&&t.ce(s),s}let Re=null;const Xs=()=>Re||gt;let hn,Zs;{const t=Br(),e=(i,r)=>{let n;return(n=t[i])||(n=t[i]=[]),n.push(r),s=>{n.length>1?n.forEach(o=>o(s)):n[0](s)}};hn=e("__VUE_INSTANCE_SETTERS__",i=>Re=i),Zs=e("__VUE_SSR_SETTERS__",i=>or=i)}const sr=t=>{const e=Re;return hn(t),t.scope.on(),()=>{t.scope.off(),hn(e)}},dc=()=>{Re&&Re.scope.off(),hn(null)};function pc(t){return t.vnode.shapeFlag&4}let or=!1;function $m(t,e=!1,i=!1){e&&Zs(e);const{props:r,children:n}=t.vnode,s=pc(t);Jp(t,r,s,e),tm(t,n,i||e);const o=s?Pm(t,e):void 0;return e&&Zs(!1),o}function Pm(t,e){const i=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Hp);const{setup:r}=i;if(r){ht();const n=t.setupContext=r.length>1?Om(t):null,s=sr(t),o=gi(r,t,0,[t.props,n]),a=qa(o);if(dt(),s(),(a||t.sp)&&!Xi(t)&&$l(t),a){if(o.then(dc,dc),e)return o.then(l=>{mc(t,l)}).catch(l=>{Zr(l,t,0)});t.asyncDep=o}else mc(t,o)}else gc(t)}function mc(t,e,i){G(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:fe(e)&&(t.setupState=yl(e)),gc(t)}function gc(t,e,i){const r=t.type;t.render||(t.render=r.render||ft);{const n=sr(t);ht();try{zp(t)}finally{dt(),n()}}}const Cm={get(t,e){return Oe(t,"get",""),t[e]}};function Om(t){const e=i=>{t.exposed=i||{}};return{attrs:new Proxy(t.attrs,Cm),slots:t.slots,emit:t.emit,expose:e}}function eo(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(yl(hp(t.exposed)),{get(e,i){if(i in e)return e[i];if(i in Zi)return Zi[i](t)},has(e,i){return i in e||i in Zi}})):t.proxy}const Tm=/(?:^|[-_])\w/g,Im=t=>t.replace(Tm,e=>e.toUpperCase()).replace(/[-_]/g,"");function Am(t,e=!0){return G(t)?t.displayName||t.name:t.name||e&&t.__name}function yc(t,e,i=!1){let r=Am(e);if(!r&&e.__file){const n=e.__file.match(/([^/\\]+)\.\w+$/);n&&(r=n[1])}if(!r&&t&&t.parent){const n=s=>{for(const o in s)if(s[o]===e)return o};r=n(t.components||t.parent.type.components)||n(t.appContext.components)}return r?Im(r):i?"App":"Anonymous"}function Rm(t){return G(t)&&"__vccOpts"in t}const bc=(t,e)=>bp(t,e,or),Lm="3.5.22";/**
|
|
96
|
+
**/const Zi=[];let zs=!1;function Kb(t,...e){if(zs)return;zs=!0,ht();const i=Zi.length?Zi[Zi.length-1].component:null,n=i&&i.appContext.config.warnHandler,r=Hp();if(n)wi(n,i,11,[t+e.map(s=>{var o,a;return(a=(o=s.toString)==null?void 0:o.call(s))!=null?a:JSON.stringify(s)}).join(""),i&&i.proxy,r.map(({vnode:s})=>`at <${Ic(i,s.type)}>`).join(`
|
|
97
|
+
`),r]);else{const s=[`[Vue warn]: ${t}`,...e];r.length&&s.push(`
|
|
98
|
+
`,...zp(r))}pt(),zs=!1}function Hp(){let t=Zi[Zi.length-1];if(!t)return[];const e=[];for(;t;){const i=e[0];i&&i.vnode===t?i.recurseCount++:e.push({vnode:t,recurseCount:0});const n=t.component&&t.component.parent;t=n&&n.vnode}return e}function zp(t){const e=[];return t.forEach((i,n)=>{e.push(...n===0?[]:[`
|
|
99
|
+
`],...Wp(i))}),e}function Wp({vnode:t,recurseCount:e}){const i=e>0?`... (${e} recursive calls)`:"",n=t.component?t.component.parent==null:!1,r=` at <${Ic(t.component,t.type,n)}`,s=">"+i;return t.props?[r,...Kp(t.props),s]:[r+s]}function Kp(t){const e=[],i=Object.keys(t);return i.slice(0,3).forEach(n=>{e.push(...Tl(n,t[n]))}),i.length>3&&e.push(" ..."),e}function Tl(t,e,i){return be(e)?(e=JSON.stringify(e),i?e:[`${t}=${e}`]):typeof e=="number"||typeof e=="boolean"||e==null?i?e:[`${t}=${e}`]:ke(e)?(e=Tl(t,te(e.value),!0),i?e:[`${t}=Ref<`,e,">"]):Q(e)?[`${t}=fn${e.name?`<${e.name}>`:""}`]:(e=te(e),i?e:[`${t}=`,e])}function wi(t,e,i,n){try{return n?t(...n):t()}catch(r){sr(r,e,i)}}function mt(t,e,i,n){if(Q(t)){const r=wi(t,e,i,n);return r&&il(r)&&r.catch(s=>{sr(s,e,i)}),r}if(K(t)){const r=[];for(let s=0;s<t.length;s++)r.push(mt(t[s],e,i,n));return r}}function sr(t,e,i,n=!0){const r=e?e.vnode:null,{errorHandler:s,throwUnhandledErrorInProduction:o}=e&&e.appContext.config||re;if(e){let a=e.parent;const l=e.proxy,c=`https://vuejs.org/error-reference/#runtime-${i}`;for(;a;){const u=a.ec;if(u){for(let f=0;f<u.length;f++)if(u[f](t,l,c)===!1)return}a=a.parent}if(s){ht(),wi(s,null,10,[t,l,c]),pt();return}}Vp(t,i,r,n,o)}function Vp(t,e,i,n=!0,r=!1){if(r)throw t}const Te=[];let gt=-1;const vi=[];let Ht=null,_i=0;const Rl=Promise.resolve();let or=null;function ar(t){const e=or||Rl;return t?e.then(this?t.bind(this):t):e}function Qp(t){let e=gt+1,i=Te.length;for(;e<i;){const n=e+i>>>1,r=Te[n],s=en(r);s<t||s===t&&r.flags&2?e=n+1:i=n}return e}function Ws(t){if(!(t.flags&1)){const e=en(t),i=Te[Te.length-1];!i||!(t.flags&2)&&e>=en(i)?Te.push(t):Te.splice(Qp(e),0,t),t.flags|=1,Ll()}}function Ll(){or||(or=Rl.then(Dl))}function Yp(t){K(t)?vi.push(...t):Ht&&t.id===-1?Ht.splice(_i+1,0,t):t.flags&1||(vi.push(t),t.flags|=1),Ll()}function Nl(t,e,i=gt+1){for(;i<Te.length;i++){const n=Te[i];if(n&&n.flags&2){if(t&&n.id!==t.uid)continue;Te.splice(i,1),i--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Ml(t){if(vi.length){const e=[...new Set(vi)].sort((i,n)=>en(i)-en(n));if(vi.length=0,Ht){Ht.push(...e);return}for(Ht=e,_i=0;_i<Ht.length;_i++){const i=Ht[_i];i.flags&4&&(i.flags&=-2),i.flags&8||i(),i.flags&=-2}Ht=null,_i=0}}const en=t=>t.id==null?t.flags&2?-1:1/0:t.id;function Dl(t){try{for(gt=0;gt<Te.length;gt++){const e=Te[gt];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),wi(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;gt<Te.length;gt++){const e=Te[gt];e&&(e.flags&=-2)}gt=-1,Te.length=0,Ml(),or=null,(Te.length||vi.length)&&Dl()}}let yt=null,jl=null;function lr(t){const e=yt;return yt=t,jl=t&&t.type.__scopeId||null,e}function Gp(t,e=yt,i){if(!e||t._n)return t;const n=(...r)=>{n._d&&_c(-1);const s=lr(e);let o;try{o=t(...r)}finally{lr(s),n._d&&_c(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function ti(t,e,i,n){const r=t.dirs,s=e&&e.dirs;for(let o=0;o<r.length;o++){const a=r[o];s&&(a.oldValue=s[o].value);let l=a.dir[n];l&&(ht(),mt(l,i,8,[t.el,a,t,e]),pt())}}const Xp=Symbol("_vte"),Jp=t=>t.__isTeleport,Zp=Symbol("_leaveCb");function Ks(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Ks(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Ul(t,e){return Q(t)?$e({name:t.name},e,{setup:t}):t}function Fl(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function em(t){const e=so(),i=ir(null);if(e){const r=e.refs===re?e.refs={}:e.refs;Object.defineProperty(r,t,{enumerable:!0,get:()=>i.value,set:s=>i.value=s})}return i}const cr=new WeakMap;function tn(t,e,i,n,r=!1){if(K(t)){t.forEach((m,k)=>tn(m,e&&(K(e)?e[k]:e),i,n,r));return}if(nn(n)&&!r){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&tn(t,e,i,n.component.subTree);return}const s=n.shapeFlag&4?ao(n.component):n.el,o=r?null:s,{i:a,r:l}=t,c=e&&e.r,u=a.refs===re?a.refs={}:a.refs,f=a.setupState,p=te(f),g=f===re?el:m=>se(p,m);if(c!=null&&c!==l){if(Bl(e),be(c))u[c]=null,g(c)&&(f[c]=null);else if(ke(c)){c.value=null;const m=e;m.k&&(u[m.k]=null)}}if(Q(l))wi(l,a,12,[o,u]);else{const m=be(l),k=ke(l);if(m||k){const D=()=>{if(t.f){const T=m?g(l)?f[l]:u[l]:l.value;if(r)K(T)&&Ss(T,s);else if(K(T))T.includes(s)||T.push(s);else if(m)u[l]=[s],g(l)&&(f[l]=u[l]);else{const I=[s];l.value=I,t.k&&(u[t.k]=I)}}else m?(u[l]=o,g(l)&&(f[l]=o)):k&&(l.value=o,t.k&&(u[t.k]=o))};if(o){const T=()=>{D(),cr.delete(t)};T.id=-1,cr.set(t,T),Qe(T,i)}else Bl(t),D()}}}function Bl(t){const e=cr.get(t);e&&(e.flags|=8,cr.delete(t))}Vn().requestIdleCallback,Vn().cancelIdleCallback;const nn=t=>!!t.type.__asyncLoader,ql=t=>t.type.__isKeepAlive;function tm(t,e){Hl(t,"a",e)}function im(t,e){Hl(t,"da",e)}function Hl(t,e,i=Le){const n=t.__wdc||(t.__wdc=()=>{let r=i;for(;r;){if(r.isDeactivated)return;r=r.parent}return t()});if(ur(e,n,i),i){let r=i.parent;for(;r&&r.parent;)ql(r.parent.vnode)&&nm(n,e,i,r),r=r.parent}}function nm(t,e,i,n){const r=ur(e,t,n,!0);Kl(()=>{Ss(n[e],r)},i)}function ur(t,e,i=Le,n=!1){if(i){const r=i[t]||(i[t]=[]),s=e.__weh||(e.__weh=(...o)=>{ht();const a=un(i),l=mt(e,i,t,o);return a(),pt(),l});return n?r.unshift(s):r.push(s),s}}const Rt=t=>(e,i=Le)=>{(!fn||t==="sp")&&ur(t,(...n)=>e(...n),i)},zl=Rt("bm"),Vs=Rt("m"),rm=Rt("bu"),sm=Rt("u"),Wl=Rt("bum"),Kl=Rt("um"),om=Rt("sp"),am=Rt("rtg"),lm=Rt("rtc");function cm(t,e=Le){ur("ec",t,e)}const um=Symbol.for("v-ndc");function Vl(t,e,i,n){let r;const s=i,o=K(t);if(o||be(t)){const a=o&&bi(t);let l=!1,c=!1;a&&(l=!Ze(t),c=Bt(t),t=Gn(t)),r=new Array(t.length);for(let u=0,f=t.length;u<f;u++)r[u]=e(l?c?tr(Pe(t[u])):Pe(t[u]):t[u],u,void 0,s)}else if(typeof t=="number"){r=new Array(t);for(let a=0;a<t;a++)r[a]=e(a+1,a,void 0,s)}else if(de(t))if(t[Symbol.iterator])r=Array.from(t,(a,l)=>e(a,l,void 0,s));else{const a=Object.keys(t);r=new Array(a.length);for(let l=0,c=a.length;l<c;l++){const u=a[l];r[l]=e(t[u],u,l,s)}}else r=[];return r}const Qs=t=>t?Cc(t)?ao(t):Qs(t.parent):null,rn=$e(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Qs(t.parent),$root:t=>Qs(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Xl(t),$forceUpdate:t=>t.f||(t.f=()=>{Ws(t.update)}),$nextTick:t=>t.n||(t.n=ar.bind(t.proxy)),$watch:t=>Tm.bind(t)}),Ys=(t,e)=>t!==re&&!t.__isScriptSetup&&se(t,e),fm={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:i,setupState:n,data:r,props:s,accessCache:o,type:a,appContext:l}=t;let c;if(e[0]!=="$"){const g=o[e];if(g!==void 0)switch(g){case 1:return n[e];case 2:return r[e];case 4:return i[e];case 3:return s[e]}else{if(Ys(n,e))return o[e]=1,n[e];if(r!==re&&se(r,e))return o[e]=2,r[e];if((c=t.propsOptions[0])&&se(c,e))return o[e]=3,s[e];if(i!==re&&se(i,e))return o[e]=4,i[e];Gs&&(o[e]=0)}}const u=rn[e];let f,p;if(u)return e==="$attrs"&&Ae(t.attrs,"get",""),u(t);if((f=a.__cssModules)&&(f=f[e]))return f;if(i!==re&&se(i,e))return o[e]=4,i[e];if(p=l.config.globalProperties,se(p,e))return p[e]},set({_:t},e,i){const{data:n,setupState:r,ctx:s}=t;return Ys(r,e)?(r[e]=i,!0):n!==re&&se(n,e)?(n[e]=i,!0):se(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=i,!0)},has({_:{data:t,setupState:e,accessCache:i,ctx:n,appContext:r,propsOptions:s,type:o}},a){let l,c;return!!(i[a]||t!==re&&a[0]!=="$"&&se(t,a)||Ys(e,a)||(l=s[0])&&se(l,a)||se(n,a)||se(rn,a)||se(r.config.globalProperties,a)||(c=o.__cssModules)&&c[a])},defineProperty(t,e,i){return i.get!=null?t._.accessCache[e]=0:se(i,"value")&&this.set(t,e,i.value,null),Reflect.defineProperty(t,e,i)}};function fr(t){return K(t)?t.reduce((e,i)=>(e[i]=null,e),{}):t}function Ql(t,e){return!t||!e?t||e:K(t)&&K(e)?t.concat(e):$e({},fr(t),fr(e))}let Gs=!0;function dm(t){const e=Xl(t),i=t.proxy,n=t.ctx;Gs=!1,e.beforeCreate&&Yl(e.beforeCreate,t,"bc");const{data:r,computed:s,methods:o,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:g,updated:m,activated:k,deactivated:D,beforeDestroy:T,beforeUnmount:I,destroyed:b,unmounted:d,render:y,renderTracked:v,renderTriggered:x,errorCaptured:E,serverPrefetch:L,expose:B,inheritAttrs:Ce,components:Ne,directives:Ee,filters:we}=e;if(c&&hm(c,n,null),o)for(const le in o){const G=o[le];Q(G)&&(n[le]=G.bind(i))}if(r){const le=r.call(i,i);de(le)&&(t.data=Fs(le))}if(Gs=!0,s)for(const le in s){const G=s[le],it=Q(G)?G.bind(i,i):Q(G.get)?G.get.bind(i,i):dt,Rr=!Q(G)&&Q(G.set)?G.set.bind(i):dt,ai=Tc({get:it,set:Rr});Object.defineProperty(n,le,{enumerable:!0,configurable:!0,get:()=>ai.value,set:xt=>ai.value=xt})}if(a)for(const le in a)Gl(a[le],n,i,le);if(l){const le=Q(l)?l.call(i):l;Reflect.ownKeys(le).forEach(G=>{tc(G,le[G])})}u&&Yl(u,t,"c");function ae(le,G){K(G)?G.forEach(it=>le(it.bind(i))):G&&le(G.bind(i))}if(ae(zl,f),ae(Vs,p),ae(rm,g),ae(sm,m),ae(tm,k),ae(im,D),ae(cm,E),ae(lm,v),ae(am,x),ae(Wl,I),ae(Kl,d),ae(om,L),K(B))if(B.length){const le=t.exposed||(t.exposed={});B.forEach(G=>{Object.defineProperty(le,G,{get:()=>i[G],set:it=>i[G]=it,enumerable:!0})})}else t.exposed||(t.exposed={});y&&t.render===dt&&(t.render=y),Ce!=null&&(t.inheritAttrs=Ce),Ne&&(t.components=Ne),Ee&&(t.directives=Ee),L&&Fl(t)}function hm(t,e,i=dt){K(t)&&(t=Xs(t));for(const n in t){const r=t[n];let s;de(r)?"default"in r?s=on(r.from||n,r.default,!0):s=on(r.from||n):s=on(r),ke(s)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):e[n]=s}}function Yl(t,e,i){mt(K(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,i)}function Gl(t,e,i,n){let r=n.includes(".")?pc(i,n):()=>i[n];if(be(t)){const s=e[t];Q(s)&&Si(r,s)}else if(Q(t))Si(r,t.bind(i));else if(de(t))if(K(t))t.forEach(s=>Gl(s,e,i,n));else{const s=Q(t.handler)?t.handler.bind(i):e[t.handler];Q(s)&&Si(r,s,t)}}function Xl(t){const e=t.type,{mixins:i,extends:n}=e,{mixins:r,optionsCache:s,config:{optionMergeStrategies:o}}=t.appContext,a=s.get(e);let l;return a?l=a:!r.length&&!i&&!n?l=e:(l={},r.length&&r.forEach(c=>dr(l,c,o,!0)),dr(l,e,o)),de(e)&&s.set(e,l),l}function dr(t,e,i,n=!1){const{mixins:r,extends:s}=e;s&&dr(t,s,i,!0),r&&r.forEach(o=>dr(t,o,i,!0));for(const o in e)if(!(n&&o==="expose")){const a=pm[o]||i&&i[o];t[o]=a?a(t[o],e[o]):e[o]}return t}const pm={data:Jl,props:Zl,emits:Zl,methods:sn,computed:sn,beforeCreate:Re,created:Re,beforeMount:Re,mounted:Re,beforeUpdate:Re,updated:Re,beforeDestroy:Re,beforeUnmount:Re,destroyed:Re,unmounted:Re,activated:Re,deactivated:Re,errorCaptured:Re,serverPrefetch:Re,components:sn,directives:sn,watch:gm,provide:Jl,inject:mm};function Jl(t,e){return e?t?function(){return $e(Q(t)?t.call(this,this):t,Q(e)?e.call(this,this):e)}:e:t}function mm(t,e){return sn(Xs(t),Xs(e))}function Xs(t){if(K(t)){const e={};for(let i=0;i<t.length;i++)e[t[i]]=t[i];return e}return t}function Re(t,e){return t?[...new Set([].concat(t,e))]:e}function sn(t,e){return t?$e(Object.create(null),t,e):e}function Zl(t,e){return t?K(t)&&K(e)?[...new Set([...t,...e])]:$e(Object.create(null),fr(t),fr(e??{})):e}function gm(t,e){if(!t)return e;if(!e)return t;const i=$e(Object.create(null),t);for(const n in e)i[n]=Re(t[n],e[n]);return i}function ec(){return{app:null,config:{isNativeTag:el,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ym=0;function bm(t,e){return function(n,r=null){Q(n)||(n=$e({},n)),r!=null&&!de(r)&&(r=null);const s=ec(),o=new WeakSet,a=[];let l=!1;const c=s.app={_uid:ym++,_component:n,_props:r,_container:null,_context:s,_instance:null,version:ig,get config(){return s.config},set config(u){},use(u,...f){return o.has(u)||(u&&Q(u.install)?(o.add(u),u.install(c,...f)):Q(u)&&(o.add(u),u(c,...f))),c},mixin(u){return s.mixins.includes(u)||s.mixins.push(u),c},component(u,f){return f?(s.components[u]=f,c):s.components[u]},directive(u,f){return f?(s.directives[u]=f,c):s.directives[u]},mount(u,f,p){if(!l){const g=c._ceVNode||Lt(n,r);return g.appContext=s,p===!0?p="svg":p===!1&&(p=void 0),t(g,u,p),l=!0,c._container=u,u.__vue_app__=c,ao(g.component)}},onUnmount(u){a.push(u)},unmount(){l&&(mt(a,c._instance,16),t(null,c._container),delete c._container.__vue_app__)},provide(u,f){return s.provides[u]=f,c},runWithContext(u){const f=xi;xi=c;try{return u()}finally{xi=f}}};return c}}let xi=null;function tc(t,e){if(Le){let i=Le.provides;const n=Le.parent&&Le.parent.provides;n===i&&(i=Le.provides=Object.create(n)),i[t]=e}}function on(t,e,i=!1){const n=so();if(n||xi){let r=xi?xi._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(r&&t in r)return r[t];if(arguments.length>1)return i&&Q(e)?e.call(n&&n.proxy):e}}const ic={},nc=()=>Object.create(ic),rc=t=>Object.getPrototypeOf(t)===ic;function wm(t,e,i,n=!1){const r={},s=nc();t.propsDefaults=Object.create(null),sc(t,e,r,s);for(const o in t.propsOptions[0])o in r||(r[o]=void 0);i?t.props=n?r:Rp(r):t.type.props?t.props=r:t.props=s,t.attrs=s}function vm(t,e,i,n){const{props:r,attrs:s,vnode:{patchFlag:o}}=t,a=te(r),[l]=t.propsOptions;let c=!1;if((n||o>0)&&!(o&16)){if(o&8){const u=t.vnode.dynamicProps;for(let f=0;f<u.length;f++){let p=u[f];if(hr(t.emitsOptions,p))continue;const g=e[p];if(l)if(se(s,p))g!==s[p]&&(s[p]=g,c=!0);else{const m=At(p);r[m]=Js(l,a,m,g,t,!1)}else g!==s[p]&&(s[p]=g,c=!0)}}}else{sc(t,e,r,s)&&(c=!0);let u;for(const f in a)(!e||!se(e,f)&&((u=Ft(f))===f||!se(e,u)))&&(l?i&&(i[f]!==void 0||i[u]!==void 0)&&(r[f]=Js(l,a,f,void 0,t,!0)):delete r[f]);if(s!==a)for(const f in s)(!e||!se(e,f))&&(delete s[f],c=!0)}c&&It(t.attrs,"set","")}function sc(t,e,i,n){const[r,s]=t.propsOptions;let o=!1,a;if(e)for(let l in e){if(Vi(l))continue;const c=e[l];let u;r&&se(r,u=At(l))?!s||!s.includes(u)?i[u]=c:(a||(a={}))[u]=c:hr(t.emitsOptions,l)||(!(l in n)||c!==n[l])&&(n[l]=c,o=!0)}if(s){const l=te(i),c=a||re;for(let u=0;u<s.length;u++){const f=s[u];i[f]=Js(r,l,f,c[f],t,!se(c,f))}}return o}function Js(t,e,i,n,r,s){const o=t[i];if(o!=null){const a=se(o,"default");if(a&&n===void 0){const l=o.default;if(o.type!==Function&&!o.skipFactory&&Q(l)){const{propsDefaults:c}=r;if(i in c)n=c[i];else{const u=un(r);n=c[i]=l.call(null,e),u()}}else n=l;r.ce&&r.ce._setProp(i,n)}o[0]&&(s&&!a?n=!1:o[1]&&(n===""||n===Ft(i))&&(n=!0))}return n}const _m=new WeakMap;function oc(t,e,i=!1){const n=i?_m:e.propsCache,r=n.get(t);if(r)return r;const s=t.props,o={},a=[];let l=!1;if(!Q(t)){const u=f=>{l=!0;const[p,g]=oc(f,e,!0);$e(o,p),g&&a.push(...g)};!i&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!s&&!l)return de(t)&&n.set(t,mi),mi;if(K(s))for(let u=0;u<s.length;u++){const f=At(s[u]);ac(f)&&(o[f]=re)}else if(s)for(const u in s){const f=At(u);if(ac(f)){const p=s[u],g=o[f]=K(p)||Q(p)?{type:p}:$e({},p),m=g.type;let k=!1,D=!0;if(K(m))for(let T=0;T<m.length;++T){const I=m[T],b=Q(I)&&I.name;if(b==="Boolean"){k=!0;break}else b==="String"&&(D=!1)}else k=Q(m)&&m.name==="Boolean";g[0]=k,g[1]=D,(k||se(g,"default"))&&a.push(f)}}const c=[o,a];return de(t)&&n.set(t,c),c}function ac(t){return t[0]!=="$"&&!Vi(t)}const Zs=t=>t==="_"||t==="_ctx"||t==="$stable",eo=t=>K(t)?t.map(bt):[bt(t)],xm=(t,e,i)=>{if(e._n)return e;const n=Gp((...r)=>eo(e(...r)),i);return n._c=!1,n},lc=(t,e,i)=>{const n=t._ctx;for(const r in t){if(Zs(r))continue;const s=t[r];if(Q(s))e[r]=xm(r,s,n);else if(s!=null){const o=eo(s);e[r]=()=>o}}},cc=(t,e)=>{const i=eo(e);t.slots.default=()=>i},uc=(t,e,i)=>{for(const n in e)(i||!Zs(n))&&(t[n]=e[n])},Sm=(t,e,i)=>{const n=t.slots=nc();if(t.vnode.shapeFlag&32){const r=e._;r?(uc(n,e,i),i&&ol(n,"_",r,!0)):lc(e,n)}else e&&cc(t,e)},km=(t,e,i)=>{const{vnode:n,slots:r}=t;let s=!0,o=re;if(n.shapeFlag&32){const a=e._;a?i&&a===1?s=!1:uc(r,e,i):(s=!e.$stable,lc(e,r)),o=e}else e&&(cc(t,e),o={default:1});if(s)for(const a in r)!Zs(a)&&o[a]==null&&delete r[a]},Qe=Um;function Em(t){return $m(t)}function $m(t,e){const i=Vn();i.__VUE__=!0;const{insert:n,remove:r,patchProp:s,createElement:o,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:g=dt,insertStaticContent:m}=t,k=(w,_,S,O=null,P=null,C=null,U=void 0,M=null,R=!!_.dynamicChildren)=>{if(w===_)return;w&&!cn(w,_)&&(O=Lr(w),xt(w,P,C,!0),w=null),_.patchFlag===-2&&(R=!1,_.dynamicChildren=null);const{type:A,ref:H,shapeFlag:F}=_;switch(A){case pr:D(w,_,S,O);break;case zt:T(w,_,S,O);break;case no:w==null&&I(_,S,O,U);break;case at:Ne(w,_,S,O,P,C,U,M,R);break;default:F&1?y(w,_,S,O,P,C,U,M,R):F&6?Ee(w,_,S,O,P,C,U,M,R):(F&64||F&128)&&A.process(w,_,S,O,P,C,U,M,R,xn)}H!=null&&P?tn(H,w&&w.ref,C,_||w,!_):H==null&&w&&w.ref!=null&&tn(w.ref,null,C,w,!0)},D=(w,_,S,O)=>{if(w==null)n(_.el=a(_.children),S,O);else{const P=_.el=w.el;_.children!==w.children&&c(P,_.children)}},T=(w,_,S,O)=>{w==null?n(_.el=l(_.children||""),S,O):_.el=w.el},I=(w,_,S,O)=>{[w.el,w.anchor]=m(w.children,_,S,O,w.el,w.anchor)},b=({el:w,anchor:_},S,O)=>{let P;for(;w&&w!==_;)P=p(w),n(w,S,O),w=P;n(_,S,O)},d=({el:w,anchor:_})=>{let S;for(;w&&w!==_;)S=p(w),r(w),w=S;r(_)},y=(w,_,S,O,P,C,U,M,R)=>{_.type==="svg"?U="svg":_.type==="math"&&(U="mathml"),w==null?v(_,S,O,P,C,U,M,R):L(w,_,P,C,U,M,R)},v=(w,_,S,O,P,C,U,M)=>{let R,A;const{props:H,shapeFlag:F,transition:q,dirs:V}=w;if(R=w.el=o(w.type,C,H&&H.is,H),F&8?u(R,w.children):F&16&&E(w.children,R,null,O,P,to(w,C),U,M),V&&ti(w,null,O,"created"),x(R,w,w.scopeId,U,O),H){for(const fe in H)fe!=="value"&&!Vi(fe)&&s(R,fe,null,H[fe],C,O);"value"in H&&s(R,"value",null,H.value,C),(A=H.onVnodeBeforeMount)&&wt(A,O,w)}V&&ti(w,null,O,"beforeMount");const ee=Pm(P,q);ee&&q.beforeEnter(R),n(R,_,S),((A=H&&H.onVnodeMounted)||ee||V)&&Qe(()=>{A&&wt(A,O,w),ee&&q.enter(R),V&&ti(w,null,O,"mounted")},P)},x=(w,_,S,O,P)=>{if(S&&g(w,S),O)for(let C=0;C<O.length;C++)g(w,O[C]);if(P){let C=P.subTree;if(_===C||vc(C.type)&&(C.ssContent===_||C.ssFallback===_)){const U=P.vnode;x(w,U,U.scopeId,U.slotScopeIds,P.parent)}}},E=(w,_,S,O,P,C,U,M,R=0)=>{for(let A=R;A<w.length;A++){const H=w[A]=M?Kt(w[A]):bt(w[A]);k(null,H,_,S,O,P,C,U,M)}},L=(w,_,S,O,P,C,U)=>{const M=_.el=w.el;let{patchFlag:R,dynamicChildren:A,dirs:H}=_;R|=w.patchFlag&16;const F=w.props||re,q=_.props||re;let V;if(S&&ii(S,!1),(V=q.onVnodeBeforeUpdate)&&wt(V,S,_,w),H&&ti(_,w,S,"beforeUpdate"),S&&ii(S,!0),(F.innerHTML&&q.innerHTML==null||F.textContent&&q.textContent==null)&&u(M,""),A?B(w.dynamicChildren,A,M,S,O,to(_,P),C):U||G(w,_,M,null,S,O,to(_,P),C,!1),R>0){if(R&16)Ce(M,F,q,S,P);else if(R&2&&F.class!==q.class&&s(M,"class",null,q.class,P),R&4&&s(M,"style",F.style,q.style,P),R&8){const ee=_.dynamicProps;for(let fe=0;fe<ee.length;fe++){const oe=ee[fe],He=F[oe],ze=q[oe];(ze!==He||oe==="value")&&s(M,oe,He,ze,P,S)}}R&1&&w.children!==_.children&&u(M,_.children)}else!U&&A==null&&Ce(M,F,q,S,P);((V=q.onVnodeUpdated)||H)&&Qe(()=>{V&&wt(V,S,_,w),H&&ti(_,w,S,"updated")},O)},B=(w,_,S,O,P,C,U)=>{for(let M=0;M<_.length;M++){const R=w[M],A=_[M],H=R.el&&(R.type===at||!cn(R,A)||R.shapeFlag&198)?f(R.el):S;k(R,A,H,null,O,P,C,U,!0)}},Ce=(w,_,S,O,P)=>{if(_!==S){if(_!==re)for(const C in _)!Vi(C)&&!(C in S)&&s(w,C,_[C],null,P,O);for(const C in S){if(Vi(C))continue;const U=S[C],M=_[C];U!==M&&C!=="value"&&s(w,C,M,U,P,O)}"value"in S&&s(w,"value",_.value,S.value,P)}},Ne=(w,_,S,O,P,C,U,M,R)=>{const A=_.el=w?w.el:a(""),H=_.anchor=w?w.anchor:a("");let{patchFlag:F,dynamicChildren:q,slotScopeIds:V}=_;V&&(M=M?M.concat(V):V),w==null?(n(A,S,O),n(H,S,O),E(_.children||[],S,H,P,C,U,M,R)):F>0&&F&64&&q&&w.dynamicChildren?(B(w.dynamicChildren,q,S,P,C,U,M),(_.key!=null||P&&_===P.subTree)&&fc(w,_,!0)):G(w,_,S,H,P,C,U,M,R)},Ee=(w,_,S,O,P,C,U,M,R)=>{_.slotScopeIds=M,w==null?_.shapeFlag&512?P.ctx.activate(_,S,O,U,R):we(_,S,O,P,C,U,R):he(w,_,R)},we=(w,_,S,O,P,C,U)=>{const M=w.component=Vm(w,O,P);if(ql(w)&&(M.ctx.renderer=xn),Qm(M,!1,U),M.asyncDep){if(P&&P.registerDep(M,ae,U),!w.el){const R=M.subTree=Lt(zt);T(null,R,_,S),w.placeholder=R.el}}else ae(M,w,_,S,P,C,U)},he=(w,_,S)=>{const O=_.component=w.component;if(Dm(w,_,S))if(O.asyncDep&&!O.asyncResolved){le(O,_,S);return}else O.next=_,O.update();else _.el=w.el,O.vnode=_},ae=(w,_,S,O,P,C,U)=>{const M=()=>{if(w.isMounted){let{next:F,bu:q,u:V,parent:ee,vnode:fe}=w;{const kt=dc(w);if(kt){F&&(F.el=fe.el,le(w,F,U)),kt.asyncDep.then(()=>{w.isUnmounted||M()});return}}let oe=F,He;ii(w,!1),F?(F.el=fe.el,le(w,F,U)):F=fe,q&&$s(q),(He=F.props&&F.props.onVnodeBeforeUpdate)&&wt(He,ee,F,fe),ii(w,!0);const ze=bc(w),St=w.subTree;w.subTree=ze,k(St,ze,f(St.el),Lr(St),w,P,C),F.el=ze.el,oe===null&&jm(w,ze.el),V&&Qe(V,P),(He=F.props&&F.props.onVnodeUpdated)&&Qe(()=>wt(He,ee,F,fe),P)}else{let F;const{el:q,props:V}=_,{bm:ee,m:fe,parent:oe,root:He,type:ze}=w,St=nn(_);ii(w,!1),ee&&$s(ee),!St&&(F=V&&V.onVnodeBeforeMount)&&wt(F,oe,_),ii(w,!0);{He.ce&&He.ce._def.shadowRoot!==!1&&He.ce._injectChildStyle(ze);const kt=w.subTree=bc(w);k(null,kt,S,O,w,P,C),_.el=kt.el}if(fe&&Qe(fe,P),!St&&(F=V&&V.onVnodeMounted)){const kt=_;Qe(()=>wt(F,oe,kt),P)}(_.shapeFlag&256||oe&&nn(oe.vnode)&&oe.vnode.shapeFlag&256)&&w.a&&Qe(w.a,P),w.isMounted=!0,_=S=O=null}};w.scope.on();const R=w.effect=new fl(M);w.scope.off();const A=w.update=R.run.bind(R),H=w.job=R.runIfDirty.bind(R);H.i=w,H.id=w.uid,R.scheduler=()=>Ws(H),ii(w,!0),A()},le=(w,_,S)=>{_.component=w;const O=w.vnode.props;w.vnode=_,w.next=null,vm(w,_.props,O,S),km(w,_.children,S),ht(),Nl(w),pt()},G=(w,_,S,O,P,C,U,M,R=!1)=>{const A=w&&w.children,H=w?w.shapeFlag:0,F=_.children,{patchFlag:q,shapeFlag:V}=_;if(q>0){if(q&128){Rr(A,F,S,O,P,C,U,M,R);return}else if(q&256){it(A,F,S,O,P,C,U,M,R);return}}V&8?(H&16&&_n(A,P,C),F!==A&&u(S,F)):H&16?V&16?Rr(A,F,S,O,P,C,U,M,R):_n(A,P,C,!0):(H&8&&u(S,""),V&16&&E(F,S,O,P,C,U,M,R))},it=(w,_,S,O,P,C,U,M,R)=>{w=w||mi,_=_||mi;const A=w.length,H=_.length,F=Math.min(A,H);let q;for(q=0;q<F;q++){const V=_[q]=R?Kt(_[q]):bt(_[q]);k(w[q],V,S,null,P,C,U,M,R)}A>H?_n(w,P,C,!0,!1,F):E(_,S,O,P,C,U,M,R,F)},Rr=(w,_,S,O,P,C,U,M,R)=>{let A=0;const H=_.length;let F=w.length-1,q=H-1;for(;A<=F&&A<=q;){const V=w[A],ee=_[A]=R?Kt(_[A]):bt(_[A]);if(cn(V,ee))k(V,ee,S,null,P,C,U,M,R);else break;A++}for(;A<=F&&A<=q;){const V=w[F],ee=_[q]=R?Kt(_[q]):bt(_[q]);if(cn(V,ee))k(V,ee,S,null,P,C,U,M,R);else break;F--,q--}if(A>F){if(A<=q){const V=q+1,ee=V<H?_[V].el:O;for(;A<=q;)k(null,_[A]=R?Kt(_[A]):bt(_[A]),S,ee,P,C,U,M,R),A++}}else if(A>q)for(;A<=F;)xt(w[A],P,C,!0),A++;else{const V=A,ee=A,fe=new Map;for(A=ee;A<=q;A++){const Xe=_[A]=R?Kt(_[A]):bt(_[A]);Xe.key!=null&&fe.set(Xe.key,A)}let oe,He=0;const ze=q-ee+1;let St=!1,kt=0;const Sn=new Array(ze);for(A=0;A<ze;A++)Sn[A]=0;for(A=V;A<=F;A++){const Xe=w[A];if(He>=ze){xt(Xe,P,C,!0);continue}let Et;if(Xe.key!=null)Et=fe.get(Xe.key);else for(oe=ee;oe<=q;oe++)if(Sn[oe-ee]===0&&cn(Xe,_[oe])){Et=oe;break}Et===void 0?xt(Xe,P,C,!0):(Sn[Et-ee]=A+1,Et>=kt?kt=Et:St=!0,k(Xe,_[Et],S,null,P,C,U,M,R),He++)}const Qu=St?Cm(Sn):mi;for(oe=Qu.length-1,A=ze-1;A>=0;A--){const Xe=ee+A,Et=_[Xe],Yu=_[Xe+1],Gu=Xe+1<H?Yu.el||Yu.placeholder:O;Sn[A]===0?k(null,Et,S,Gu,P,C,U,M,R):St&&(oe<0||A!==Qu[oe]?ai(Et,S,Gu,2):oe--)}}},ai=(w,_,S,O,P=null)=>{const{el:C,type:U,transition:M,children:R,shapeFlag:A}=w;if(A&6){ai(w.component.subTree,_,S,O);return}if(A&128){w.suspense.move(_,S,O);return}if(A&64){U.move(w,_,S,xn);return}if(U===at){n(C,_,S);for(let F=0;F<R.length;F++)ai(R[F],_,S,O);n(w.anchor,_,S);return}if(U===no){b(w,_,S);return}if(O!==2&&A&1&&M)if(O===0)M.beforeEnter(C),n(C,_,S),Qe(()=>M.enter(C),P);else{const{leave:F,delayLeave:q,afterLeave:V}=M,ee=()=>{w.ctx.isUnmounted?r(C):n(C,_,S)},fe=()=>{C._isLeaving&&C[Zp](!0),F(C,()=>{ee(),V&&V()})};q?q(C,ee,fe):fe()}else n(C,_,S)},xt=(w,_,S,O=!1,P=!1)=>{const{type:C,props:U,ref:M,children:R,dynamicChildren:A,shapeFlag:H,patchFlag:F,dirs:q,cacheIndex:V}=w;if(F===-2&&(P=!1),M!=null&&(ht(),tn(M,null,S,w,!0),pt()),V!=null&&(_.renderCache[V]=void 0),H&256){_.ctx.deactivate(w);return}const ee=H&1&&q,fe=!nn(w);let oe;if(fe&&(oe=U&&U.onVnodeBeforeUnmount)&&wt(oe,_,w),H&6)Fb(w.component,S,O);else{if(H&128){w.suspense.unmount(S,O);return}ee&&ti(w,null,_,"beforeUnmount"),H&64?w.type.remove(w,_,S,xn,O):A&&!A.hasOnce&&(C!==at||F>0&&F&64)?_n(A,_,S,!1,!0):(C===at&&F&384||!P&&H&16)&&_n(R,_,S),O&&Ku(w)}(fe&&(oe=U&&U.onVnodeUnmounted)||ee)&&Qe(()=>{oe&&wt(oe,_,w),ee&&ti(w,null,_,"unmounted")},S)},Ku=w=>{const{type:_,el:S,anchor:O,transition:P}=w;if(_===at){Ub(S,O);return}if(_===no){d(w);return}const C=()=>{r(S),P&&!P.persisted&&P.afterLeave&&P.afterLeave()};if(w.shapeFlag&1&&P&&!P.persisted){const{leave:U,delayLeave:M}=P,R=()=>U(S,C);M?M(w.el,C,R):R()}else C()},Ub=(w,_)=>{let S;for(;w!==_;)S=p(w),r(w),w=S;r(_)},Fb=(w,_,S)=>{const{bum:O,scope:P,job:C,subTree:U,um:M,m:R,a:A}=w;hc(R),hc(A),O&&$s(O),P.stop(),C&&(C.flags|=8,xt(U,w,_,S)),M&&Qe(M,_),Qe(()=>{w.isUnmounted=!0},_)},_n=(w,_,S,O=!1,P=!1,C=0)=>{for(let U=C;U<w.length;U++)xt(w[U],_,S,O,P)},Lr=w=>{if(w.shapeFlag&6)return Lr(w.component.subTree);if(w.shapeFlag&128)return w.suspense.next();const _=p(w.anchor||w.el),S=_&&_[Xp];return S?p(S):_};let Do=!1;const Vu=(w,_,S)=>{w==null?_._vnode&&xt(_._vnode,null,null,!0):k(_._vnode||null,w,_,null,null,null,S),_._vnode=w,Do||(Do=!0,Nl(),Ml(),Do=!1)},xn={p:k,um:xt,m:ai,r:Ku,mt:we,mc:E,pc:G,pbc:B,n:Lr,o:t};return{render:Vu,hydrate:void 0,createApp:bm(Vu)}}function to({type:t,props:e},i){return i==="svg"&&t==="foreignObject"||i==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:i}function ii({effect:t,job:e},i){i?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function Pm(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function fc(t,e,i=!1){const n=t.children,r=e.children;if(K(n)&&K(r))for(let s=0;s<n.length;s++){const o=n[s];let a=r[s];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=r[s]=Kt(r[s]),a.el=o.el),!i&&a.patchFlag!==-2&&fc(o,a)),a.type===pr&&a.patchFlag!==-1&&(a.el=o.el),a.type===zt&&!a.el&&(a.el=o.el)}}function Cm(t){const e=t.slice(),i=[0];let n,r,s,o,a;const l=t.length;for(n=0;n<l;n++){const c=t[n];if(c!==0){if(r=i[i.length-1],t[r]<c){e[n]=r,i.push(n);continue}for(s=0,o=i.length-1;s<o;)a=s+o>>1,t[i[a]]<c?s=a+1:o=a;c<t[i[s]]&&(s>0&&(e[n]=i[s-1]),i[s]=n)}}for(s=i.length,o=i[s-1];s-- >0;)i[s]=o,o=e[o];return i}function dc(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:dc(e)}function hc(t){if(t)for(let e=0;e<t.length;e++)t[e].flags|=8}const Om=Symbol.for("v-scx"),Am=()=>on(Om);function Im(t,e){return io(t,null,{flush:"sync"})}function Si(t,e,i){return io(t,e,i)}function io(t,e,i=re){const{immediate:n,deep:r,flush:s,once:o}=i,a=$e({},i),l=e&&n||!e&&s!=="post";let c;if(fn){if(s==="sync"){const g=Am();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!l){const g=()=>{};return g.stop=dt,g.resume=dt,g.pause=dt,g}}const u=Le;a.call=(g,m,k)=>mt(g,u,m,k);let f=!1;s==="post"?a.scheduler=g=>{Qe(g,u&&u.suspense)}:s!=="sync"&&(f=!0,a.scheduler=(g,m)=>{m?g():Ws(g)}),a.augmentJob=g=>{e&&(g.flags|=4),f&&(g.flags|=2,u&&(g.id=u.uid,g.i=u))};const p=qp(t,e,a);return fn&&(c?c.push(p):l&&p()),p}function Tm(t,e,i){const n=this.proxy,r=be(t)?t.includes(".")?pc(n,t):()=>n[t]:t.bind(n,n);let s;Q(e)?s=e:(s=e.handler,i=e);const o=un(this),a=io(r,s.bind(n),i);return o(),a}function pc(t,e){const i=e.split(".");return()=>{let n=t;for(let r=0;r<i.length&&n;r++)n=n[i[r]];return n}}function mc(t,e,i=re){const n=so(),r=At(e),s=Ft(e),o=gc(t,r),a=jp((l,c)=>{let u,f=re,p;return Im(()=>{const g=t[r];Fe(u,g)&&(u=g,c())}),{get(){return l(),i.get?i.get(u):u},set(g){const m=i.set?i.set(g):g;if(!Fe(m,u)&&!(f!==re&&Fe(g,f)))return;const k=n.vnode.props;k&&(e in k||r in k||s in k)&&(`onUpdate:${e}`in k||`onUpdate:${r}`in k||`onUpdate:${s}`in k)||(u=g,c()),n.emit(`update:${e}`,m),Fe(g,m)&&Fe(g,f)&&!Fe(m,p)&&c(),f=g,p=m}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?o||re:a,done:!1}:{done:!0}}}},a}const gc=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${At(e)}Modifiers`]||t[`${Ft(e)}Modifiers`];function Rm(t,e,...i){if(t.isUnmounted)return;const n=t.vnode.props||re;let r=i;const s=e.startsWith("update:"),o=s&&gc(n,e.slice(7));o&&(o.trim&&(r=i.map(u=>be(u)?u.trim():u)),o.number&&(r=i.map(ap)));let a,l=n[a=Es(e)]||n[a=Es(At(e))];!l&&s&&(l=n[a=Es(Ft(e))]),l&&mt(l,t,6,r);const c=n[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,mt(c,t,6,r)}}const Lm=new WeakMap;function yc(t,e,i=!1){const n=i?Lm:e.emitsCache,r=n.get(t);if(r!==void 0)return r;const s=t.emits;let o={},a=!1;if(!Q(t)){const l=c=>{const u=yc(c,e,!0);u&&(a=!0,$e(o,u))};!i&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(de(t)&&n.set(t,null),null):(K(s)?s.forEach(l=>o[l]=null):$e(o,s),de(t)&&n.set(t,o),o)}function hr(t,e){return!t||!zn(e)?!1:(e=e.slice(2).replace(/Once$/,""),se(t,e[0].toLowerCase()+e.slice(1))||se(t,Ft(e))||se(t,e))}function Vb(){}function bc(t){const{type:e,vnode:i,proxy:n,withProxy:r,propsOptions:[s],slots:o,attrs:a,emit:l,render:c,renderCache:u,props:f,data:p,setupState:g,ctx:m,inheritAttrs:k}=t,D=lr(t);let T,I;try{if(i.shapeFlag&4){const d=r||n,y=d;T=bt(c.call(y,d,u,f,g,p,m)),I=a}else{const d=e;T=bt(d.length>1?d(f,{attrs:a,slots:o,emit:l}):d(f,null)),I=e.props?a:Nm(a)}}catch(d){an.length=0,sr(d,t,1),T=Lt(zt)}let b=T;if(I&&k!==!1){const d=Object.keys(I),{shapeFlag:y}=b;d.length&&y&7&&(s&&d.some(xs)&&(I=Mm(I,s)),b=$i(b,I,!1,!0))}return i.dirs&&(b=$i(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(i.dirs):i.dirs),i.transition&&Ks(b,i.transition),T=b,lr(D),T}const Nm=t=>{let e;for(const i in t)(i==="class"||i==="style"||zn(i))&&((e||(e={}))[i]=t[i]);return e},Mm=(t,e)=>{const i={};for(const n in t)(!xs(n)||!(n.slice(9)in e))&&(i[n]=t[n]);return i};function Dm(t,e,i){const{props:n,children:r,component:s}=t,{props:o,children:a,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(i&&l>=0){if(l&1024)return!0;if(l&16)return n?wc(n,o,c):!!o;if(l&8){const u=e.dynamicProps;for(let f=0;f<u.length;f++){const p=u[f];if(o[p]!==n[p]&&!hr(c,p))return!0}}}else return(r||a)&&(!a||!a.$stable)?!0:n===o?!1:n?o?wc(n,o,c):!0:!!o;return!1}function wc(t,e,i){const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!0;for(let r=0;r<n.length;r++){const s=n[r];if(e[s]!==t[s]&&!hr(i,s))return!0}return!1}function jm({vnode:t,parent:e},i){for(;e;){const n=e.subTree;if(n.suspense&&n.suspense.activeBranch===t&&(n.el=t.el),n===t)(t=e.vnode).el=i,e=e.parent;else break}}const vc=t=>t.__isSuspense;function Um(t,e){e&&e.pendingBranch?K(t)?e.effects.push(...t):e.effects.push(t):Yp(t)}const at=Symbol.for("v-fgt"),pr=Symbol.for("v-txt"),zt=Symbol.for("v-cmt"),no=Symbol.for("v-stc"),an=[];let Ye=null;function Wt(t=!1){an.push(Ye=t?null:[])}function Fm(){an.pop(),Ye=an[an.length-1]||null}let ln=1;function _c(t,e=!1){ln+=t,t<0&&Ye&&e&&(Ye.hasOnce=!0)}function xc(t){return t.dynamicChildren=ln>0?Ye||mi:null,Fm(),ln>0&&Ye&&Ye.push(t),t}function ki(t,e,i,n,r,s){return xc(Ei(t,e,i,n,r,s,!0))}function Sc(t,e,i,n,r){return xc(Lt(t,e,i,n,r,!0))}function kc(t){return t?t.__v_isVNode===!0:!1}function cn(t,e){return t.type===e.type&&t.key===e.key}const Ec=({key:t})=>t??null,mr=({ref:t,ref_key:e,ref_for:i})=>(typeof t=="number"&&(t=""+t),t!=null?be(t)||ke(t)||Q(t)?{i:yt,r:t,k:e,f:!!i}:t:null);function Ei(t,e=null,i=null,n=0,r=null,s=t===at?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Ec(e),ref:e&&mr(e),scopeId:jl,slotScopeIds:null,children:i,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:s,patchFlag:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:yt};return a?(ro(l,i),s&128&&t.normalize(l)):i&&(l.shapeFlag|=be(i)?8:16),ln>0&&!o&&Ye&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Ye.push(l),l}const Lt=Bm;function Bm(t,e=null,i=null,n=0,r=null,s=!1){if((!t||t===um)&&(t=zt),kc(t)){const a=$i(t,e,!0);return i&&ro(a,i),ln>0&&!s&&Ye&&(a.shapeFlag&6?Ye[Ye.indexOf(t)]=a:Ye.push(a)),a.patchFlag=-2,a}if(tg(t)&&(t=t.__vccOpts),e){e=qm(e);let{class:a,style:l}=e;a&&!be(a)&&(e.class=Qn(a)),de(l)&&(qs(l)&&!K(l)&&(l=$e({},l)),e.style=Ps(l))}const o=be(t)?1:vc(t)?128:Jp(t)?64:de(t)?4:Q(t)?2:0;return Ei(t,e,i,n,r,o,s,!0)}function qm(t){return t?qs(t)||rc(t)?$e({},t):t:null}function $i(t,e,i=!1,n=!1){const{props:r,ref:s,patchFlag:o,children:a,transition:l}=t,c=e?$c(r||{},e):r,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&Ec(c),ref:e&&e.ref?i&&s?K(s)?s.concat(mr(e)):[s,mr(e)]:mr(e):s,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==at?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&$i(t.ssContent),ssFallback:t.ssFallback&&$i(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&n&&Ks(u,l.clone(u)),u}function Hm(t=" ",e=0){return Lt(pr,null,t,e)}function zm(t="",e=!1){return e?(Wt(),Sc(zt,null,t)):Lt(zt,null,t)}function bt(t){return t==null||typeof t=="boolean"?Lt(zt):K(t)?Lt(at,null,t.slice()):kc(t)?Kt(t):Lt(pr,null,String(t))}function Kt(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:$i(t)}function ro(t,e){let i=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(K(e))i=16;else if(typeof e=="object")if(n&65){const r=e.default;r&&(r._c&&(r._d=!1),ro(t,r()),r._c&&(r._d=!0));return}else{i=32;const r=e._;!r&&!rc(e)?e._ctx=yt:r===3&&yt&&(yt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Q(e)?(e={default:e,_ctx:yt},i=32):(e=String(e),n&64?(i=16,e=[Hm(e)]):i=8);t.children=e,t.shapeFlag|=i}function $c(...t){const e={};for(let i=0;i<t.length;i++){const n=t[i];for(const r in n)if(r==="class")e.class!==n.class&&(e.class=Qn([e.class,n.class]));else if(r==="style")e.style=Ps([e.style,n.style]);else if(zn(r)){const s=e[r],o=n[r];o&&s!==o&&!(K(s)&&s.includes(o))&&(e[r]=s?[].concat(s,o):o)}else r!==""&&(e[r]=n[r])}return e}function wt(t,e,i,n=null){mt(t,e,7,[i,n])}const Wm=ec();let Km=0;function Vm(t,e,i){const n=t.type,r=(e?e.appContext:t.appContext)||Wm,s={uid:Km++,vnode:t,type:n,parent:e,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new hp(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(r.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:oc(n,r),emitsOptions:yc(n,r),emit:null,emitted:null,propsDefaults:re,inheritAttrs:n.inheritAttrs,ctx:re,data:re,props:re,attrs:re,slots:re,refs:re,setupState:re,setupContext:null,suspense:i,suspenseId:i?i.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=e?e.root:s,s.emit=Rm.bind(null,s),t.ce&&t.ce(s),s}let Le=null;const so=()=>Le||yt;let gr,oo;{const t=Vn(),e=(i,n)=>{let r;return(r=t[i])||(r=t[i]=[]),r.push(n),s=>{r.length>1?r.forEach(o=>o(s)):r[0](s)}};gr=e("__VUE_INSTANCE_SETTERS__",i=>Le=i),oo=e("__VUE_SSR_SETTERS__",i=>fn=i)}const un=t=>{const e=Le;return gr(t),t.scope.on(),()=>{t.scope.off(),gr(e)}},Pc=()=>{Le&&Le.scope.off(),gr(null)};function Cc(t){return t.vnode.shapeFlag&4}let fn=!1;function Qm(t,e=!1,i=!1){e&&oo(e);const{props:n,children:r}=t.vnode,s=Cc(t);wm(t,n,s,e),Sm(t,r,i||e);const o=s?Ym(t,e):void 0;return e&&oo(!1),o}function Ym(t,e){const i=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,fm);const{setup:n}=i;if(n){ht();const r=t.setupContext=n.length>1?Xm(t):null,s=un(t),o=wi(n,t,0,[t.props,r]),a=il(o);if(pt(),s(),(a||t.sp)&&!nn(t)&&Fl(t),a){if(o.then(Pc,Pc),e)return o.then(l=>{Oc(t,l)}).catch(l=>{sr(l,t,0)});t.asyncDep=o}else Oc(t,o)}else Ac(t)}function Oc(t,e,i){Q(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:de(e)&&(t.setupState=Il(e)),Ac(t)}function Ac(t,e,i){const n=t.type;t.render||(t.render=n.render||dt);{const r=un(t);ht();try{dm(t)}finally{pt(),r()}}}const Gm={get(t,e){return Ae(t,"get",""),t[e]}};function Xm(t){const e=i=>{t.exposed=i||{}};return{attrs:new Proxy(t.attrs,Gm),slots:t.slots,emit:t.emit,expose:e}}function ao(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Il(Lp(t.exposed)),{get(e,i){if(i in e)return e[i];if(i in rn)return rn[i](t)},has(e,i){return i in e||i in rn}})):t.proxy}const Jm=/(?:^|[-_])\w/g,Zm=t=>t.replace(Jm,e=>e.toUpperCase()).replace(/[-_]/g,"");function eg(t,e=!0){return Q(t)?t.displayName||t.name:t.name||e&&t.__name}function Ic(t,e,i=!1){let n=eg(e);if(!n&&e.__file){const r=e.__file.match(/([^/\\]+)\.\w+$/);r&&(n=r[1])}if(!n&&t&&t.parent){const r=s=>{for(const o in s)if(s[o]===e)return o};n=r(t.components||t.parent.type.components)||r(t.appContext.components)}return n?Zm(n):i?"App":"Anonymous"}function tg(t){return Q(t)&&"__vccOpts"in t}const Tc=(t,e)=>Fp(t,e,fn),ig="3.5.22";/**
|
|
100
100
|
* @vue/runtime-dom v3.5.22
|
|
101
101
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
102
102
|
* @license MIT
|
|
103
|
-
**/let
|
|
103
|
+
**/let lo;const Rc=typeof window<"u"&&window.trustedTypes;if(Rc)try{lo=Rc.createPolicy("vue",{createHTML:t=>t})}catch{}const Lc=lo?t=>lo.createHTML(t):t=>t,ng="http://www.w3.org/2000/svg",rg="http://www.w3.org/1998/Math/MathML",Nt=typeof document<"u"?document:null,Nc=Nt&&Nt.createElement("template"),sg={insert:(t,e,i)=>{e.insertBefore(t,i||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,i,n)=>{const r=e==="svg"?Nt.createElementNS(ng,t):e==="mathml"?Nt.createElementNS(rg,t):i?Nt.createElement(t,{is:i}):Nt.createElement(t);return t==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:t=>Nt.createTextNode(t),createComment:t=>Nt.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>Nt.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,i,n,r,s){const o=i?i.previousSibling:e.lastChild;if(r&&(r===s||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),i),!(r===s||!(r=r.nextSibling)););else{Nc.innerHTML=Lc(n==="svg"?`<svg>${t}</svg>`:n==="mathml"?`<math>${t}</math>`:t);const a=Nc.content;if(n==="svg"||n==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,i)}return[o?o.nextSibling:e.firstChild,i?i.previousSibling:e.lastChild]}},og=Symbol("_vtc");function ag(t,e,i){const n=t[og];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):i?t.setAttribute("class",e):t.className=e}const Mc=Symbol("_vod"),lg=Symbol("_vsh"),cg=Symbol(""),ug=/(?:^|;)\s*display\s*:/;function fg(t,e,i){const n=t.style,r=be(i);let s=!1;if(i&&!r){if(e)if(be(e))for(const o of e.split(";")){const a=o.slice(0,o.indexOf(":")).trim();i[a]==null&&yr(n,a,"")}else for(const o in e)i[o]==null&&yr(n,o,"");for(const o in i)o==="display"&&(s=!0),yr(n,o,i[o])}else if(r){if(e!==i){const o=n[cg];o&&(i+=";"+o),n.cssText=i,s=ug.test(i)}}else e&&t.removeAttribute("style");Mc in t&&(t[Mc]=s?n.display:"",t[lg]&&(n.display="none"))}const Dc=/\s*!important$/;function yr(t,e,i){if(K(i))i.forEach(n=>yr(t,e,n));else if(i==null&&(i=""),e.startsWith("--"))t.setProperty(e,i);else{const n=dg(t,e);Dc.test(i)?t.setProperty(Ft(n),i.replace(Dc,""),"important"):t[n]=i}}const jc=["Webkit","Moz","ms"],co={};function dg(t,e){const i=co[e];if(i)return i;let n=At(e);if(n!=="filter"&&n in t)return co[e]=n;n=sl(n);for(let r=0;r<jc.length;r++){const s=jc[r]+n;if(s in t)return co[e]=s}return e}const Uc="http://www.w3.org/1999/xlink";function Fc(t,e,i,n,r,s=dp(e)){n&&e.startsWith("xlink:")?i==null?t.removeAttributeNS(Uc,e.slice(6,e.length)):t.setAttributeNS(Uc,e,i):i==null||s&&!ll(i)?t.removeAttribute(e):t.setAttribute(e,s?"":Ut(i)?String(i):i)}function Bc(t,e,i,n,r){if(e==="innerHTML"||e==="textContent"){i!=null&&(t[e]=e==="innerHTML"?Lc(i):i);return}const s=t.tagName;if(e==="value"&&s!=="PROGRESS"&&!s.includes("-")){const a=s==="OPTION"?t.getAttribute("value")||"":t.value,l=i==null?t.type==="checkbox"?"on":"":String(i);(a!==l||!("_value"in t))&&(t.value=l),i==null&&t.removeAttribute(e),t._value=i;return}let o=!1;if(i===""||i==null){const a=typeof t[e];a==="boolean"?i=ll(i):i==null&&a==="string"?(i="",o=!0):a==="number"&&(i=0,o=!0)}try{t[e]=i}catch{}o&&t.removeAttribute(r||e)}function hg(t,e,i,n){t.addEventListener(e,i,n)}function pg(t,e,i,n){t.removeEventListener(e,i,n)}const qc=Symbol("_vei");function mg(t,e,i,n,r=null){const s=t[qc]||(t[qc]={}),o=s[e];if(n&&o)o.value=n;else{const[a,l]=gg(e);if(n){const c=s[e]=wg(n,r);hg(t,a,c,l)}else o&&(pg(t,a,o,l),s[e]=void 0)}}const Hc=/(?:Once|Passive|Capture)$/;function gg(t){let e;if(Hc.test(t)){e={};let n;for(;n=t.match(Hc);)t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):Ft(t.slice(2)),e]}let uo=0;const yg=Promise.resolve(),bg=()=>uo||(yg.then(()=>uo=0),uo=Date.now());function wg(t,e){const i=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=i.attached)return;mt(vg(n,i.value),e,5,[n])};return i.value=t,i.attached=bg(),i}function vg(t,e){if(K(e)){const i=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{i.call(t),t._stopped=!0},e.map(n=>r=>!r._stopped&&n&&n(r))}else return e}const zc=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,_g=(t,e,i,n,r,s)=>{const o=r==="svg";e==="class"?ag(t,n,o):e==="style"?fg(t,i,n):zn(e)?xs(e)||mg(t,e,i,n,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):xg(t,e,n,o))?(Bc(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Fc(t,e,n,o,s,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!be(n))?Bc(t,At(e),n,s,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),Fc(t,e,n,o))};function xg(t,e,i,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&zc(e)&&Q(i));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const r=t.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return zc(e)&&be(i)?!1:e in t}const Sg=$e({patchProp:_g},sg);let Wc;function kg(){return Wc||(Wc=Em(Sg))}const Eg=(...t)=>{const e=kg().createApp(...t),{mount:i}=e;return e.mount=n=>{const r=Pg(n);if(!r)return;const s=e._component;!Q(s)&&!s.render&&!s.template&&(s.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=i(r,!1,$g(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},e};function $g(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function Pg(t){return be(t)?document.querySelector(t):t}const fo=Symbol("IPEInjectKey"),Cg=(t,e)=>(e?e.provide(fo,t):tc(fo,t),t),Og=()=>{const t=on(fo);if(!t)throw new Error("InPageEdit instance is not provided");return t},Ag=(t,...e)=>{const i=Eg(...e);return Cg(t,i),i},et='@charset "UTF-8";:host{display:block;font-family:var(--schema-font-family, ui-sans-serif, system-ui, -apple-system);color:var(--schema-color-fg, #111827)}*,*:before,*:after{box-sizing:border-box}.wrapper{display:block;background:var(--schema-color-bg, #ffffff)}.form{display:grid;gap:12px}.field{display:grid;gap:6px;padding:8px 10px;border:1px solid var(--schema-color-muted, #e5e7eb);border-radius:var(--schema-radius, 10px);background:var(--schema-surface, #fff)}.label{font-size:12px;color:var(--schema-color-muted-text, #6b7280)}.input,select,textarea{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--schema-color-muted, #e5e7eb);background:var(--schema-input-bg, #fff);color:inherit}.checkbox{display:inline-flex;align-items:center;gap:8px}.helper{font-size:12px;color:var(--schema-color-muted-text, #6b7280)}.row{display:grid;gap:8px}.actions{display:flex;gap:8px}.btn{padding:6px 10px;border:1px solid var(--schema-color-muted, #e5e7eb);background:var(--schema-btn-bg, #f8fafc);border-radius:8px;cursor:pointer}.btn.primary{background:var(--schema-color-primary, #2563eb);color:#fff;border-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.danger{background:var(--schema-color-danger, #dc2626);color:#fff;border-color:transparent}.group{display:grid;gap:10px;border-left:3px solid var(--schema-color-muted, #e5e7eb);padding-left:10px}.kv{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}.badge{display:inline-flex;padding:2px 6px;border-radius:999px;font-size:11px;background:var(--schema-badge-bg, #eef2ff);color:var(--schema-badge-fg, #4f46e5)}.hidden{display:none!important}.toolbar{display:flex;gap:6px}.schema-collection-row{position:relative;transition:transform var(--schema-collection-transition-duration, .25s) var(--schema-collection-transition-ease, ease),opacity var(--schema-collection-transition-duration, .25s) var(--schema-collection-transition-ease, ease)}.schema-collection-row.enter{opacity:0}.schema-collection-row.enter.enter-active{opacity:1}.schema-collection-row.leaving{opacity:0}.field.schema-type-array .group,.field.schema-type-array .group .row{position:relative}';/**
|
|
104
104
|
* SchemaForm
|
|
105
105
|
* 一个基于 Schemastery 的 Web Components 表单生成器
|
|
106
106
|
*
|
|
@@ -117,6 +117,6 @@
|
|
|
117
117
|
* @license MIT
|
|
118
118
|
* @author dragon-fish
|
|
119
119
|
* @author @openai/gpt-5
|
|
120
|
-
*/const Ac={arrayAdd:"+",arrayMoveUp:"↑",arrayMoveDown:"↓",arrayRemove:"×",dictAdd:"+",dictRemove:"×",rootLabel:"root"},pe=(t,e)=>{customElements.get(t)||customElements.define(t,e)},cg=(t,e,i)=>{if(!e.length)return;let r=t,n=null,s=null;for(let a=0;a<e.length-1;a++){const l=e[a];let c=r?.[l];c==null?(c=typeof e[a+1]=="number"?[]:{},r[l]=c):typeof c!="object"&&(c=typeof e[a+1]=="number"?[]:{},r[l]=c),n=r,s=l,r=c}const o=e[e.length-1];if(r==null||typeof r!="object"){const a=typeof o=="number"?[]:{};if(n)n[s]=a,r=a;else return}try{r[o]=i}catch{try{const a=Array.isArray(r)?r.slice():{...r};a[o]=i,n&&(n[s]=a)}catch{}}},ar=t=>t.map(String).join("."),ug=t=>t.replace(/[^a-zA-Z0-9_-]/g,"_"),Kt=t=>`schema_${ug(ar(t)||"root")}`,ii=t=>ar(t);function so(t,e){if(e==null)return e;switch(t){case"number":case"natural":case"percent":{if(e==="")return;const i=Number(e);return Number.isNaN(i)?void 0:i}case"boolean":return!!e;case"date":{if(!e)return;const i=new Date(e);return Number.isNaN(+i)?void 0:i}case"const":case"string":default:return e}}function Rc(t){return typeof t=="function"&&!!t?.type}function Lc(t){if(!t)throw new Error("schema is required");if(Rc(t))return t;try{const e=Schema.from(t);if(Rc(e))return e}catch{}if(t?.type){const e=t.type;if(Schema[e])return Schema[e](t.inner??t.list??t.dict)}throw new Error("无法从传入对象生成 Schemastery 实例,请传入 schema 或 schema.toJSON() 的结果。")}function at(t){return t?.meta??{}}function fg(t){return t.length>0&&t.every(e=>e?.type==="const")}function Si(t){if(!t)return;const e=t,i=e.meta||{};if(Object.prototype.hasOwnProperty.call(i,"default"))return i.default;const r=e.type;try{const n=t();if(n!==void 0)return n}catch{}switch(r){case"string":return"";case"number":case"natural":case"percent":return 0;case"boolean":return!1;case"array":return[];case"tuple":return[];case"object":return{};case"dict":return{};case"union":{const n=e.list||[];return n.length?Si(n[0]):void 0}case"const":return e.value;case"date":return;default:return}}class wt extends HTMLElement{constructor(){super(),this._path=[],this._i18n=Ac,this.$root=this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent=Ze,this.$root.appendChild(e)}makeFieldContainer(e,i){const r=document.createElement("div");if(r.className=`field schema-form-item schema-type-${e}`,r.setAttribute("data-path",ar(this._path)),this._label){const n=document.createElement("label");n.className="label",n.textContent=this._label,r.appendChild(n)}if(i){const n=document.createElement("div");n.className="helper",n.textContent=i,r.appendChild(n)}return r}set schema(e){this._schema=Lc(e),this.render()}get schema(){return this._schema}set path(e){this._path=e??[],this.render()}get path(){return this._path}set label(e){this._label=e,this.render()}get label(){return this._label}set i18n(e){e&&(this._i18n={...this._i18n,...e}),this.render()}get i18n(){return this._i18n}setValue(e){this._value=e,this.render()}getValue(){return this._value}emitChange(e){this._value=e,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{path:this._path,value:e}}))}}class Nc extends wt{render(){if(this.$input&&this.$root.contains(this.$input)){const s=this._value??"";this.$input.value!==s&&document.activeElement!==this.$input&&(this.$input.value=s);return}this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("string",e.description),r=document.createElement("input");this.$input=r,r.className="input",r.type="text",r.name=ii(this._path),r.id=Kt(this._path),e?.pattern?.source&&(r.pattern=e.pattern.source),e?.max!=null&&(r.maxLength=e.max),r.value=this._value??"",r.oninput=()=>this.emitChange(so("string",r.value));const n=i.querySelector("label.label");n&&(n.htmlFor=r.id),i.appendChild(r),this.$root.appendChild(i)}}pe("schema-form-string",Nc);class Mc extends wt{render(){if(this.$input&&this.$root.contains(this.$input)){const o=this._value??"";this.$input.value!==String(o)&&document.activeElement!==this.$input&&(this.$input.value=o);return}this.$root.innerHTML=`<style>${Ze}</style>`;const e=this._schema?.type??"number",i=at(this._schema),r=this.makeFieldContainer("number",i.description),n=document.createElement("input");this.$input=n,n.className="input",n.name=ii(this._path),n.id=Kt(this._path),i?.min!=null&&(n.min=String(i.min)),i?.max!=null&&(n.max=String(i.max)),i?.step!=null&&(n.step=String(i.step)),e==="percent"&&!n.step&&(n.step="0.01"),n.value=this._value??"",n.oninput=()=>this.emitChange(so(e,n.value));const s=r.querySelector("label.label");s&&(s.htmlFor=n.id),i.role==="slider"?n.type="range":n.type="number",r.appendChild(n),this.$root.appendChild(r)}}pe("schema-form-number",Mc);class Dc extends wt{render(){this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("boolean",e.description),r=document.createElement("label");r.className="checkbox";const n=document.createElement("input");n.type="checkbox",n.checked=!!this._value,n.name=ii(this._path),n.id=Kt(this._path);const s=document.createElement("span");s.textContent=e.description??this._label??"",n.onchange=()=>this.emitChange(n.checked);const o=i.querySelector("label.label");o&&(o.htmlFor=n.id),r.append(n,s),i.appendChild(r),this.$root.appendChild(i)}}pe("schema-form-boolean",Dc);function pn(t){return String(t).padStart(2,"0")}function lr(t){return`${t.getFullYear()}-${pn(t.getMonth()+1)}-${pn(t.getDate())}`}function oo(t){return`${pn(t.getHours())}:${pn(t.getMinutes())}`}function mn(t){return`${lr(t)}T${oo(t)}`}class jc extends wt{render(){if(this.$input&&this.$root.contains(this.$input)){const o=at(this._schema).role||"date";if(document.activeElement!==this.$input)if(this._value instanceof Date)o==="date"?this.$input.value=lr(this._value):o==="time"?this.$input.value=oo(this._value):o==="datetime"&&(this.$input.value=mn(this._value));else if(typeof this._value=="string"&&o!=="time"){const a=new Date(this._value);isNaN(+a)||(o==="date"?this.$input.value=lr(a):o==="datetime"&&(this.$input.value=mn(a)))}else this._value||(this.$input.value="");return}this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("date",e.description),r=document.createElement("input");this.$input=r,r.className="input";const n=e.role||"date";if(n==="datetime"?r.type="datetime-local":n==="time"?r.type="time":r.type="date",r.name=ii(this._path),r.id=Kt(this._path),this._value instanceof Date)n==="date"?r.value=lr(this._value):n==="time"?r.value=oo(this._value):n==="datetime"&&(r.value=mn(this._value));else if(typeof this._value=="string"&&n!=="time"){const o=new Date(this._value);isNaN(+o)||(n==="date"?r.value=lr(o):n==="datetime"&&(r.value=mn(o)))}r.oninput=()=>{e.role;let o;if(!r.value)o=void 0;else{const a=new Date(r.value);o=Number.isNaN(+a)?void 0:a}this.emitChange(o)};const s=i.querySelector("label.label");s&&(s.htmlFor=r.id),i.appendChild(r),this.$root.appendChild(i)}}pe("schema-form-date",jc);class Uc extends wt{render(){this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this._schema.value;if(e.role==="raw-html"){if(i instanceof Node){this.$root.appendChild(i);return}const o=document.createElement("div");o.innerHTML=String(i),this.$root.appendChild(o);return}const r=this.makeFieldContainer("const",e.description),n=document.createElement("section");n.className="const content",n.textContent=String(i),n.id=Kt(this._path);const s=r.querySelector("label.label");s&&(s.htmlFor=n.id),r.appendChild(n),this.$root.appendChild(r)}}pe("schema-form-const",Uc);function hg(t){switch(t.type){case"string":return"schema-form-string";case"number":case"natural":case"percent":return"schema-form-number";case"boolean":return"schema-form-boolean";case"date":return"schema-form-date";case"const":return"schema-form-const";case"array":return"schema-form-array";case"object":return"schema-form-object";case"tuple":return"schema-form-tuple";case"dict":return"schema-form-dict";case"union":{const e=t.list||[];return e.length===2&&e[0]?.type==="is"&&e[0]?.constructor===Date&&e[1]?.type==="transform"&&(e[1]?.inner?.meta?.role==="datetime"||e[1]?.inner?.meta?.role==="date"||e[1]?.inner?.meta?.role==="time")?"schema-form-date":"schema-form-union"}default:return"schema-form-string"}}function ki(t,e,i,r,n){const s=hg(t),o=document.createElement(s);return o.schema=t,o.path=e,o.label=r,n&&(o.i18n=n),o.setValue?.(i),o}class Fc extends wt{render(){this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("union",e.description),r=this._schema.list||[];if(fg(r)){const n=document.createElement("select");n.className="input",n.name=ii(this._path),n.id=Kt(this._path),r.forEach(o=>{const a=document.createElement("option");a.value=String(o.value),a.textContent=String(o.value),this._value===o.value&&(a.selected=!0),n.appendChild(a)}),n.onchange=()=>this.emitChange(so("string",n.value));const s=i.querySelector("label.label");s&&(s.htmlFor=n.id),i.appendChild(n)}else{const n=document.createElement("div");n.className="toolbar";const s=document.createElement("select");s.className="input",s.name=ii(this._path)+".__type",s.id=Kt(this._path)+"__type";let o=0;r.forEach((u,f)=>{const d=document.createElement("option");d.value=String(f),d.textContent=u.type,s.appendChild(d)}),s.onchange=()=>{o=Number(s.value);const u=r[o],f=Si(u);this.emitChange(f),c()};const a=i.querySelector("label.label");a&&(a.htmlFor=s.id),n.appendChild(s),i.appendChild(n);const l=document.createElement("div");l.className="group";const c=()=>{l.innerHTML="";const u=r[o],f=ki(u,this._path,this._value,this._label);f.addEventListener("change",d=>{d.stopPropagation(),this.emitChange(d.detail.value)}),l.appendChild(f)};c(),i.appendChild(l)}this.$root.appendChild(i)}}pe("schema-form-union",Fc);class Bc extends wt{render(){this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("tuple",e.description),r=document.createElement("div");r.className="group";const n=Array.isArray(this._value)?this._value:[];(this._schema.list||[]).forEach((s,o)=>{const a=ki(s,[...this._path,o],n[o],`${this._label??""}[${o}]`);a.addEventListener("change",l=>{l.stopPropagation();const c=Array.isArray(this._value)?this._value.slice():[];c[o]=l.detail.value,this.emitChange(c)}),r.appendChild(a)}),i.appendChild(r),this.$root.appendChild(i)}}pe("schema-form-tuple",Bc);class qc extends wt{render(){this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("object",e.description),r=document.createElement("div");r.className="group";const n=this._schema.dict||{};Object.keys(n).forEach(s=>{if(n[s]?.meta?.hidden)return;const o=(this._value??{})[s],a=ki(n[s],[...this._path,s],o,s);a.addEventListener("change",l=>{l.stopPropagation();const c={...this._value??{}};c[s]=l.detail.value,this.emitChange(c)}),r.appendChild(a)}),i.appendChild(r),this.$root.appendChild(i)}}pe("schema-form-object",qc);const Cn=class Cn extends wt{constructor(){super(...arguments),this._itemIds=[]}generateItemId(){try{if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID()}catch{}return"i"+Cn._idCounter++}ensureItemIds(e){for(;this._itemIds.length<e;)this._itemIds.push(this.generateItemId());this._itemIds.length>e&&(this._itemIds.length=e)}capturePositions(e){const i={};return e.querySelectorAll(".row").forEach(r=>{const n=r.dataset.uid;n&&(i[n]=r.getBoundingClientRect())}),i}playFLIP(e,i){Array.from(e.querySelectorAll(".row")).forEach(r=>{const n=r.dataset.uid;if(!n)return;const s=i[n];if(!s)return;const o=r.getBoundingClientRect(),a=s.left-o.left,l=s.top-o.top;(a||l)&&(r.style.transition="none",r.style.transform=`translate(${a}px, ${l}px)`,requestAnimationFrame(()=>{r.style.transition="transform .25s ease",r.style.transform=""}))})}render(){this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("array",e.description),r=document.createElement("div");r.className="group";const n=this._schema.inner,s=()=>Array.isArray(this._value)?this._value:[];this.ensureItemIds(s().length);const o=(c,u)=>{r.innerHTML="",s().forEach((f,d)=>{const y=[...this._path,d],m=document.createElement("div");m.className="row schema-collection-row";const E=this._itemIds[d];m.dataset.uid=E,m.setAttribute("data-path",ar(y));const j=ki(n,y,f,`${this._label??""}[${d}]`);j.addEventListener("change",p=>{p.stopPropagation();const v=s().slice();v[d]=p.detail.value,this._value=v,this.emitChange(v)});const k=document.createElement("div");k.className="actions";const F=document.createElement("button");F.type="button",F.className="btn",F.textContent=this._i18n.arrayMoveUp??"↑",F.onclick=()=>{if(d<=0)return;const p=this.capturePositions(r),v=s().slice();[v[d-1],v[d]]=[v[d],v[d-1]],[this._itemIds[d-1],this._itemIds[d]]=[this._itemIds[d],this._itemIds[d-1]],this._value=v,o(p),this.emitChange(v)};const b=document.createElement("button");b.type="button",b.className="btn",b.textContent=this._i18n.arrayMoveDown??"↓",b.onclick=()=>{const p=s();if(d>=p.length-1)return;const v=this.capturePositions(r),x=p.slice();[x[d+1],x[d]]=[x[d],x[d+1]],[this._itemIds[d+1],this._itemIds[d]]=[this._itemIds[d],this._itemIds[d+1]],this._value=x,o(v),this.emitChange(x)};const h=document.createElement("button");h.type="button",h.className="btn danger",h.textContent=this._i18n.arrayRemove??"×",h.onclick=()=>{m.classList.add("leaving");const p=250;let v=!1;const x=()=>{if(v)return;v=!0,clearTimeout(P);const R=s().filter((Pe,Le)=>Le!==d);this._itemIds.splice(d,1);const B=this.capturePositions(r);this._value=R,o(B),this.emitChange(R)};m.addEventListener("transitionend",x,{once:!0});const P=setTimeout(x,p+80)},k.append(F,b,h),m.appendChild(j),m.appendChild(k),r.appendChild(m),u&&u===E&&(m.classList.add("enter"),requestAnimationFrame(()=>{m.classList.add("enter-active")}),requestAnimationFrame(()=>{m.classList.remove("enter")}))}),c&&this.playFLIP(r,c)};o();const a=document.createElement("button");a.type="button",a.className="btn primary",a.textContent=this._i18n.arrayAdd??"+",a.onclick=()=>{const c=this.capturePositions(r),u=s().slice(),f=Si(n);u.push(f);const d=this.generateItemId();this._itemIds.push(d),this._value=u,o(c,d),this.emitChange(u)};const l=document.createElement("div");l.className="actions",l.appendChild(a),i.appendChild(r),i.appendChild(l),this.$root.appendChild(i)}};Cn._idCounter=0;let gn=Cn;pe("schema-form-array",gn);class Hc extends wt{render(){this.$root.innerHTML=`<style>${Ze}</style>`;const e=at(this._schema),i=this.makeFieldContainer("dict",e.description),r=document.createElement("div");r.className="group";const n=this._schema.inner,s=this._value??{},o=d=>`d_${d}`,a=()=>{const d={};return r.querySelectorAll(".kv").forEach(y=>{const m=y.dataset.uid;m&&(d[m]=y.getBoundingClientRect())}),d},l=d=>{r.querySelectorAll(".kv").forEach(y=>{const m=y.dataset.uid;if(!m)return;const E=d[m];if(!E)return;const j=y.getBoundingClientRect(),k=E.left-j.left,F=E.top-j.top;(k||F)&&(y.style.transition="none",y.style.transform=`translate(${k}px, ${F}px)`,requestAnimationFrame(()=>{y.style.transition="transform .25s ease",y.style.transform=""}))})},c=(d,y)=>{r.innerHTML="",Object.keys(s).forEach(m=>{const E=[...this._path,m],j=document.createElement("div");j.className="kv schema-collection-row",j.dataset.uid=o(m),j.setAttribute("data-path",ar(E));const k=document.createElement("input");k.className="input",k.value=m,k.name=ii(E)+".__key",k.id=Kt(E)+"__key";const F=ki(n,E,s[m],`${this._label??""}[${m}]`),b=document.createElement("button");b.type="button",b.className="btn danger",b.textContent=this._i18n.dictRemove??"×",b.onclick=()=>{const h=a();delete s[m];const p={...this._value??{}};delete p[m],this._value=p,c(h),this.emitChange(p)},k.onchange=()=>{const h=k.value.trim();if(!h||h===m||s[h]!==void 0)return;const p=a();s[h]=s[m],delete s[m];const v={...this._value??{}};v[h]=v[m],delete v[m],this._value=v,c(p),this.emitChange(v)},F.addEventListener("change",h=>{h.stopPropagation();const p={...this._value??{}};p[m]=h.detail.value,this._value=p,this.emitChange(p)}),j.append(k,F,b),r.appendChild(j),y===m&&(j.classList.add("enter"),requestAnimationFrame(()=>j.classList.add("enter-active")),requestAnimationFrame(()=>j.classList.remove("enter")))}),d&&l(d)};c();const u=document.createElement("button");u.type="button",u.className="btn primary",u.textContent=this._i18n.dictAdd??"+",u.onclick=()=>{let d=Object.keys(s).length+1,y=`k${d}`;for(;s[y]!==void 0;)y=`k${++d}`;const m=a();s[y]=Si(n);const E={...this._value??{},[y]:s[y]};this._value=E,c(m,y),this.emitChange(E)};const f=document.createElement("div");f.className="actions",f.appendChild(u),i.appendChild(r),i.appendChild(f),this.$root.appendChild(i)}}pe("schema-form-dict",Hc);class zc extends HTMLElement{constructor(){super(),this._i18n={...Ac},this.$root=this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent=Ze,this.$root.appendChild(e);const i=document.createElement("div");i.className="wrapper",i.innerHTML='<form class="form" part="form"></form>',this.$root.appendChild(i),this.addEventListener("change",r=>{if(!r?.detail)return;const{path:n,value:s}=r.detail;Array.isArray(n)&&n.length===0?this._state=s:cg(this._state??(this._state={}),n,s),this.dispatchEvent(new CustomEvent("form-change",{detail:{path:n,value:s,state:this._state}}))})}set schema(e){this._schema=Lc(e);try{this._state=this._schema(null,{autofix:!0})}catch{this._state=Si(this._schema)}this.render()}get schema(){return this._schema}set schemaJSON(e){this.schema=e}get schemaJSON(){return this._schema?.toJSON?.()}setData(e,i={validate:!0,autofix:!0}){if(!this._schema)throw new Error("请先设置 schema");const r=i.validate?this._schema(e??null,{autofix:i.autofix}):e;this._state=r,this.render()}getData(e={validate:!0,autofix:!0}){if(!this._schema)throw new Error("请先设置 schema");const i=this._state;return e.validate?this._schema(i??null,{autofix:e.autofix}):i}reset(){try{this._state=this._schema(null,{autofix:!0})}catch{this._state=Si(this._schema)}this.render()}refresh(){this.render()}set i18n(e){this._i18n={...this._i18n,...e},this.render()}get i18n(){return this._i18n}render(){if(!this._schema)return;const e=this.$root.querySelector("form");e.innerHTML="";const i=ki(this._schema,[],this._state,this._i18n.rootLabel,this._i18n);e.appendChild(i)}}pe("schema-form",zc);function dg(){pe("schema-form",zc),pe("schema-form-string",Nc),pe("schema-form-number",Mc),pe("schema-form-boolean",Dc),pe("schema-form-date",jc),pe("schema-form-const",Uc),pe("schema-form-union",Fc),pe("schema-form-tuple",Bc),pe("schema-form-object",qc),pe("schema-form-array",gn),pe("schema-form-dict",Hc)}const pg=El({__name:"SchemasteryFormVue",props:Ll({schema:{},value:{},validateOnChange:{type:Boolean,default:!1}},{schema:{required:!0},schemaModifiers:{},value:{required:!1,default:{}},valueModifiers:{}}),emits:Ll(["change"],["update:schema","update:value"]),setup(t,{expose:e,emit:i}){const r=tc(t,"schema"),n=tc(t,"value"),s=i,o=Ap("elRef");let a=!1,l=!1;const c=u=>{if(l)return;const f=o.value,d=t.validateOnChange?f.getData({validate:!0}):u.detail.state;a=!0,n.value=d,tn(()=>{a=!1}),s("change",u.detail)};return Tl(()=>{dg()}),Fs(()=>{const u=o.value;r.value&&(u.schema=r.value),n.value!==void 0&&u.setData(n.value,{validate:!1,autofix:!0}),u.addEventListener("form-change",c)}),Il(()=>{o.value?.removeEventListener("form-change",c)}),vi(()=>r,u=>{a||o.value&&u&&o.value.schema!==u.value&&(l=!0,o.value.schema=u.value,tn(()=>{l=!1}))},{deep:!0,immediate:!0}),vi(()=>n,u=>{if(a||!o.value||u.value===void 0)return;const f=o.value.getData({validate:!1});JSON.stringify(f)!==JSON.stringify(u.value)&&(l=!0,o.value.setData(u.value,{validate:!1}),tn(()=>{l=!1}))},{deep:!0,immediate:!0}),e({setData(u,f){const d=o.value;d.setData(u,{validate:!!f?.validate}),f?.emit&&(n.value=d.getData({validate:!!f?.validate}))},getData(u){return o.value.getData(u)},setSchema(u,f=!0){o.value.schema=u,f&&(r.value=u)},refresh(){o.value.refresh()},reset(){o.value.reset()},el:o}),(u,f)=>(zt(),_i("schema-form",hc({ref_key:"elRef",ref:o},u.$attrs),null,16))}});function ri(t,e=new WeakMap){if(xe(t))return ri(t.value,e);if(t===null||typeof t!="object")return t;if(e.has(t))return e.get(t);if(t instanceof Date)return new Date(t);if(t instanceof RegExp)return new RegExp(t);if(t instanceof Map){const n=new Map;return e.set(t,n),Array.from(t.entries()).forEach(([s,o])=>{n.set(s,ri(o,e))}),n}if(t instanceof Set){const n=new Set;return e.set(t,n),Array.from(t).forEach(s=>{n.add(ri(s,e))}),n}if(Array.isArray(t)){const n=[];e.set(t,n);for(const s of t)n.push(ri(s,e));return n}const i=ee(t),r={};e.set(t,r);for(const n of Object.keys(i))r[n]=ri(i[n],e);for(const n of Object.getOwnPropertySymbols(i))r[n]=ri(i[n],e);return r}const mg={class:"preferences-ui-app"},gg={class:"tabs"},yg=["onClick","data-value"],bg={key:0},wg={style:{"max-height":"20em",overflow:"auto"}},vg=((t,e)=>{const i=t.__vccOpts||t;for(const[r,n]of e)i[r]=n;return i})(El({__name:"PreferencesForm",setup(t,{expose:e}){const i=ag(),r=!1,n=ml([]),s=ml(""),o=Yr([]),a=bc(()=>o.value.map(u=>u.schema)),l=Yr({}),c=Yr({});return e({getValue(){return ri(c)}}),vi(s,u=>{u&&(l.value=c.value,o.value=i.preferences.getConfigRegistries(u))},{immediate:!0}),Fs(async()=>{i.inject(["preferences"],async u=>{const f=await u.preferences.getAll();l.value=c.value=f,n.value=u.preferences.getConfigCategories(),s.value=n.value[0].name})}),(u,f)=>(zt(),_i("div",mg,[fn("div",gg,[(zt(!0),_i(ot,null,Rl(n.value,d=>(zt(),_i("a",{class:qr(["tab",{active:s.value===d.name}]),key:d.name,onClick:y=>s.value=d.name,"data-value":d.name},_s(d.label),11,yg))),128))]),(zt(!0),_i(ot,null,Rl(a.value,(d,y)=>(zt(),cc(Ms(pg),{key:`${s.value}-${y}`,schema:d,value:l.value,"onUpdate:value":f[0]||(f[0]=m=>c.value=m),"validate-on-change":!1,i18n:{rootLabel:""}},null,8,["schema","value"]))),128)),Ms(r)?(zt(),_i("details",bg,[fn("pre",wg,_s(c.value),1)])):xm("",!0)]))}}),[["__scopeId","data-v-2a1a9c7e"]]),_g=window?.location?.origin,xg=({type:t,tag:e,href:i,target:r,children:n,...s})=>(e=e||(i?"a":"button"),typeof r>"u"&&i&&i.startsWith("http")&&!i.startsWith(_g)&&(r="_blank"),mh(e,{className:`theme-ipe ipe-action-button ipe-modal-btn is-${t||"default"}`,href:e==="a"?i:void 0,target:e==="a"?r:void 0,"data-href":e!=="a"?i:void 0,...s},n));var Sg=Object.create,ao=Object.defineProperty,kg=Object.getOwnPropertyDescriptor,Wc=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Kc=t=>{throw TypeError(t)},Eg=(t,e,i)=>e in t?ao(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,$g=(t,e)=>ao(t,"name",{value:e,configurable:!0}),Pg=t=>[,,,Sg(t?.[Wc("metadata")]??null)],Cg=["class","method","getter","setter","accessor","field","value","get","set"],Vc=t=>t!==void 0&&typeof t!="function"?Kc("Function expected"):t,Og=(t,e,i,r,n)=>({kind:Cg[t],name:e,metadata:r,addInitializer:s=>i._?Kc("Already initialized"):n.push(Vc(s||null))}),Tg=(t,e)=>Eg(e,Wc("metadata"),t[3]),Ig=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},Ag=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&kg(n,i));$g(n,i);for(var m=r.length-1;m>=0;m--)l=Og(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,Vc(o)&&(n=o);return Tg(t,n),y&&ao(n,i,y),u?c^4?s:y:n},Gc,lo,Qc;Gc=[ke(["preferences","modal"])];class yn extends(Qc=Je){constructor(e){super(e,{},"preferences-ui"),this.ctx=e,this._latestModal=null,e.set("preferencesUI",this),e.preferences.defineCategory({name:"about",label:"About",description:"About InPageEdit",index:99}),e.preferences.registerCustomConfig("about",te.object({about:te.const(g("div",{className:"prose",children:[g("h2",{children:"✏️ InPageEdit NEXT"}),g("i",{children:["v",this.ctx.version]}),g("h2",{children:"Portals"}),g("div",{style:"display: flex; flex-direction: column; gap: 1rem",children:[g("a",{href:this.ctx.Endpoints.HOME_URL,target:"_blank",style:{display:"block",width:"100%"},children:"Official Website & Help Center"}),g(xg,{href:`${this.ctx.Endpoints.UPDATE_LOGS_URL}#${this.ctx.version}`,style:{display:"block",width:"100%"},children:"Update Logs"})]}),g("h2",{children:"Join us"}),g("ul",{children:[g("li",{children:[g("strong",{children:"GitHub"}),":"," ",g("a",{href:this.ctx.Endpoints.GITHUB_URL,target:"_blank",children:"inpageedit/inpageedit-next"})]}),g("li",{children:[g("strong",{children:"QQ Group"}),": 1026023666"]})]}),g("hr",{}),g("p",{children:"🚀 Modular, Extensible Supercharged Plugin for MediaWiki."}),g("p",{children:"InPageEdit-NEXT Copyright © 2025-present dragon-fish"})]})).role("raw-html")}).description(""),"about"),e.inject(["toolbox"],i=>{i.toolbox.addButton({id:"preferences",icon:g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-settings",children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M14.647 4.081a.724 .724 0 0 0 1.08 .448c2.439 -1.485 5.23 1.305 3.745 3.744a.724 .724 0 0 0 .447 1.08c2.775 .673 2.775 4.62 0 5.294a.724 .724 0 0 0 -.448 1.08c1.485 2.439 -1.305 5.23 -3.744 3.745a.724 .724 0 0 0 -1.08 .447c-.673 2.775 -4.62 2.775 -5.294 0a.724 .724 0 0 0 -1.08 -.448c-2.439 1.485 -5.23 -1.305 -3.745 -3.744a.724 .724 0 0 0 -.447 -1.08c-2.775 -.673 -2.775 -4.62 0 -5.294a.724 .724 0 0 0 .448 -1.08c-1.485 -2.439 1.305 -5.23 3.744 -3.745a.722 .722 0 0 0 1.08 -.447c.673 -2.775 4.62 -2.775 5.294 0zm-2.647 4.919a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z"})]}),tooltip:"Configure Preferences",group:"group2",index:1/0,onClick:()=>this.showModal()}),this.addDisposeHandler(r=>{r.toolbox.removeButton("preferences")})})}async start(){Promise.resolve().then(()=>db).then(({PluginPrefSync:e})=>{this.ctx.plugin(e)}).catch(this.ctx.logger.warn)}stop(){}getExistingModal(){return this._latestModal}showModal(){const e=this.ctx.modal.show({className:"ipe-preference compact-buttons",sizeClass:"small",outSideClose:!1,center:!0,title:`InPageEdit Preferences (${this.ctx.version})`,content:g(Pt,{children:g(Dt,{})})});e.get$window().classList.add("dialog");const i=g("div",{id:"ipe-preferences-app",style:{minHeight:"65vh"}});e.setContent(i);const r=this.createForm(),n=r.mount(i);e.setButtons([{label:"Cancel",className:"is-danger is-ghost",method:()=>{e.close()}},{label:"Save",className:"is-primary is-ghost",method:()=>{const s=n.getValue();this.logger.info("saving preferences",s);try{Object.entries(s).forEach(([o,a])=>{this.ctx.preferences.set(o,a).catch(console.error)})}catch(o){this.logger.error("failed to save preferences",o)}e.close(),this.ctx.modal.notify("success",{title:"Preferences Saved",content:g("p",{children:"Some settings may take effect after reloading the page."})})}}]),this._latestModal=e,e.on(e.Event.Close,()=>{this.logger.debug("preferences modal closed, vue app unmounting"),r.unmount(),this._latestModal=null})}createForm(){return lg(this.ctx,vg)}}lo=Pg(Qc),yn=Ag(lo,0,"PluginPreferencesUI",Gc,yn),Ig(lo,1,yn);const Rg=Object.freeze(Object.defineProperty({__proto__:null,get PluginPreferencesUI(){return yn}},Symbol.toStringTag,{value:"Module"})),Lg=Symbol("@@apply"),Ng=Symbol("@@ctor");function co(t,e){if(typeof t!="object"||t===null||Array.isArray(t))throw new TypeError("instance is not an object");const i=(...s)=>{const o=t[e];if(typeof o!="function")throw new TypeError(`Property "${String(e)}" is not a function`);return o.apply(t,s)};i[Lg]=i,i[Ng]=t;const r=t?.constructor?.name;return r&&(i[Symbol.toStringTag]=r),new Proxy(i,{get(s,o,a){return o==="prototype"?Reflect.get(i,o,a):Reflect.get(t,o,t)},set(s,o,a){return Reflect.set(t,o,a)},has(s,o){return Reflect.has(t,o)},deleteProperty(s,o){return Reflect.deleteProperty(t,o)},ownKeys(){return Reflect.ownKeys(t)},getOwnPropertyDescriptor(s,o){return Object.getOwnPropertyDescriptor(t,o)},defineProperty(s,o,a){return Object.defineProperty(t,o,a)}})}const bn={mbox:"_mbox_5x43w_1",title:"_title_5x43w_12",content:"_content_5x43w_19",close:"_close_5x43w_27"},cr=t=>{const{type:e="default",title:i,content:r,closeable:n=!0,titleProps:s,contentProps:o,children:a,...l}=t;let c=i;typeof i>"u"&&e!=="default"&&(c=e[0].toUpperCase()+e.slice(1).toLowerCase());const u=async()=>{if(!f)return Promise.resolve();const{promise:d,resolve:y}=Promise.withResolvers();return f.animate([{opacity:"1",height:f.clientHeight+"px"},{opacity:"0",height:"0px",margin:"0px"}],{duration:300,easing:"ease"}).addEventListener("finish",()=>{f.remove(),y()}),d},f=g("div",{className:`theme-ipe ipe-mbox mbox-type-${e||"default"} ${bn.mbox}`,...l,children:[c&&g("div",{className:`ipe-mbox-title ${bn.title}`,...s,children:c}),g("div",{className:`ipe-mbox-content ${bn.content}`,...o,children:a||r}),n&&g("a",{onClick:u,className:`ipe-mbox-close ${bn.close}`,children:"×"})]});return f.close=u,f},ur=t=>{const{label:e,id:i,name:r,value:n,disabled:s,labelProps:o,inputProps:a,...l}=t;return g("div",{className:"theme-ipe ipe-input-box",...l,children:[g("label",{htmlFor:i,style:{display:"block"},...o,children:e}),g("input",{id:i,name:r,value:n,disabled:s,style:{width:"100%"},...a})]})},Mg=t=>{const{id:e,name:i,value:r,label:n,inputProps:s,labelProps:o,children:a,...l}=t;return g("label",{className:"theme-ipe ipe-radio-box",...l,children:[g("input",{type:"radio",id:e,name:i,value:r,...s}),g("span",{className:"ipe-checkbox-box"}),g("span",{...o,children:n||a})]})},Ei=t=>{const{id:e,name:i,label:r,checked:n,inputProps:s,labelProps:o,children:a,...l}=t;return g("label",{className:"theme-ipe ipe-checkbox",...l,children:[g("input",{type:"checkbox",id:e,name:i,checked:n,...s}),g("span",{className:"ipe-checkbox-box"}),g("span",{...o,children:r||a})]})},uo=()=>{},Dg=(t=0)=>new Promise(e=>setTimeout(e,t));var jg=Object.create,fo=Object.defineProperty,Ug=Object.getOwnPropertyDescriptor,Yc=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Jc=t=>{throw TypeError(t)},Fg=(t,e,i)=>e in t?fo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Bg=(t,e)=>fo(t,"name",{value:e,configurable:!0}),qg=t=>[,,,jg(t?.[Yc("metadata")]??null)],Hg=["class","method","getter","setter","accessor","field","value","get","set"],Xc=t=>t!==void 0&&typeof t!="function"?Jc("Function expected"):t,zg=(t,e,i,r,n)=>({kind:Hg[t],name:e,metadata:r,addInitializer:s=>i._?Jc("Already initialized"):n.push(Xc(s||null))}),Wg=(t,e)=>Fg(e,Yc("metadata"),t[3]),Kg=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},Vg=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&Ug(n,i));Bg(n,i);for(var m=r.length-1;m>=0;m--)l=zg(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,Xc(o)&&(n=o);return Wg(t,n),y&&fo(n,i,y),u?c^4?s:y:n},Zc,ho,eu;Zc=[ke(["api","wikiPage","wikiTitle","currentPage","wiki","modal","preferences"]),fi(te.object({"quickEdit.editSummary":te.string().description("Default edit summary for quick edits").default("[IPE-NEXT] Quick edit"),"quickEdit.editMinor":te.boolean().description("Whether to mark the edit as minor").default(!1),"quickEdit.outSideClose":te.boolean().description("Whether to close the modal outside").default(!0),"quickEdit.watchList":te.union([te.const(Ye.preferences).description("Follow my preferences"),te.const(Ye.nochange).description("Keep the current watchlist status"),te.const(Ye.watch).description("Add the page to watchlist"),te.const(Ye.unwatch).description("Remove the page from watchlist")]).description("Watchlist options").default(Ye.preferences),"quickEdit.keyshortcut.save":te.string().default("ctrl-s").description("save button key shortcut (blank to disable)")}).description("Quick edit options").extra("category","edit"))];class wn extends(eu=Je){constructor(e){super(e,{},"quick-edit"),this.ctx=e,this.DEFAULT_OPTIONS={title:"",pageId:0,revision:0,section:void 0,editMinor:!1,editSummary:"",createOnly:!1,reloadAfterSave:!0},this.ctx.root.set("quickEdit",co(this,"showModal"))}start(){this.ctx.inject(["toolbox"],e=>{this.injectToolbox(e),e.on("dispose",()=>{this.removeToolbox(e)})})}async showModal(e){if(typeof e>"u"?e={}:typeof e=="string"&&(e={title:e}),e?.page&&(e.title=e.page,delete e.page),!e.title&&!e.pageId&&!e.revision){this.logger.warn("None of the title, pageId or revision provided. Using defaults.");const k=new URLSearchParams(window.location.search),F=this.ctx.currentPage.wikiTitle;e={...e,title:F?.getPrefixedDBKey(),revision:k.has("oldid")?Number(k.get("oldid")):void 0,pageId:k.has("curid")?Number(k.get("curid")):void 0}}if(!e.revision&&!e.pageId&&e.title){const k=this.ctx.wikiTitle.resolveSpecialPageTarget(e.title);k&&k.title.getNamespaceId()>=0&&(e.title=k.title.getPrefixedDBKey(),e.section??(e.section=k.section))}const i=await this.ctx.preferences.get("quickEdit.outSideClose"),r=await this.ctx.preferences.get("quickEdit.watchList"),n=typeof e.editSummary=="string"?e.editSummary:await this.ctx.preferences.get("quickEdit.editSummary"),s=typeof e.editMinor=="boolean"?e.editMinor:await this.ctx.preferences.get("quickEdit.editMinor"),o={...this.DEFAULT_OPTIONS,editSummary:n,editMinor:s,...e};o.editSummary||(o.editSummary=await this.ctx.preferences.get("quickEdit.editSummary")||""),this.ctx.emit("quick-edit/init-options",{ctx:this.ctx,options:o});const a=this.ctx.modal.createObject({className:"ipe-quickEdit",sizeClass:"large",center:!1,outSideClose:i}).init();a.setTitle(g(Pt,{children:["Loading: ",g("u",{children:o.title})]})),a.setContent(g("section",{className:"ipe-quickEdit-loading",style:{height:"70vh",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},children:g(Dt,{})})),a.addButton({side:"right",type:"button",className:"is-danger is-ghost",label:"Cancel",method(){a.close()}}),a.show(),this.ctx.emit("quick-edit/show-modal",{ctx:this.ctx,modal:a,options:o});let l;try{if(l=await this.getWikiPageFromPayload(o),l.pageInfo.special)throw new Error("Special page is not editable")}catch(k){a.off(a.Event.Close),a.close(),this.ctx.modal.notify("error",{content:k instanceof Error?k.message:String(k)});return}const c=o.section==="new"?"":l.revisions[0]?.content||"",u=l.revisions[0]?.revid,f=u&&u!==l.lastrevid,d=o.section==="new",y=l.pageid===0;a.setTitle(g(Pt,{children:[d?"New section":`Quick ${y?"Create":"Edit"}`,":"," ",g("u",{children:l.pageInfo.title}),f?` (Revision ${u})`:""]}));const m=[];y&&m.push(g(cr,{title:"Attention",type:"important",children:g("p",{children:"This page does not exist."})})),f&&m.push(g(cr,{title:"Attention",type:"warning",children:g("p",{children:["You are editing a ",g("em",{children:"historical version"}),"; the content is not the latest!"]})})),this.ctx.emit("quick-edit/edit-notice",{ctx:this.ctx,options:o,modal:a,wikiPage:l,editNotices:m});const E=g("form",{className:"ipe-quickEdit__form",children:[g("div",{className:"ipe-quickEdit__notices",children:m}),g("div",{className:"ipe-quickEdit__content",style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[o.section==="new"&&g(Pt,{children:g(ur,{label:"Section title",id:"summary",name:"summary",value:"",inputProps:{placeholder:"Topic for new section, this will be the h2 heading"}})}),g("textarea",{className:"ipe-quickEdit__textarea",name:"text",id:"wpTextbox1",children:c})]}),g("div",{class:"ipe-quickEdit__options",style:{display:"flex",flexDirection:"column",gap:"1rem",marginTop:"1rem"},children:[!d&&g(ur,{label:"Summary",id:"summary",name:"summary",value:o.editSummary}),g("div",{className:"ipe-input-box",children:[g("label",{htmlFor:"watchlist",style:{display:"block"},children:"Watchlist"}),g("div",{style:{display:"flex",gap:"1rem"},children:[Ye.preferences,Ye.nochange,Ye.watch,Ye.unwatch].map(k=>g(Mg,{name:"watchlist",value:k,inputProps:{checked:r===k},children:k},k))})]}),g("div",{style:{display:"flex",gap:"1rem"},children:[g(Ei,{name:"minor",id:"minor",checked:o.editMinor,children:"Minor edit"}),g(Ei,{name:"reloadAfterSave",id:"reloadAfterSave",checked:o.reloadAfterSave,children:"Reload after save"})]})]}),!1]});a.setContent(E),a.addButton({side:"left",className:"is-primary submit-btn",label:"Submit",keyPress:await this.ctx.preferences.get("quickEdit.keyshortcut.save")||void 0,method:()=>{const k=new FormData(E);a.setLoadingState(!0),this.handleSubmit({wikiPage:l,text:k.get("text"),summary:k.get("summary"),minor:k.get("minor")==="on",section:o.section,createonly:l.pageid===0,watchlist:r}).then(async()=>{a.setOptions({beforeClose:uo}),a.close(),this.ctx.modal.notify("success",{title:"Submission Successful",content:"Your changes have been saved."}),k.get("reloadAfterSave")&&(await Dg(500),location.reload())}).catch(F=>{this.ctx.modal.notify("error",{title:"Submission Error",content:F instanceof Error?F.message:String(F)}),a.setLoadingState(!1)})}},0),a.setOptions({beforeClose:()=>{const k=l.revisions[0]?.content||"";return(E.querySelector("textarea")?.value||"")===k?!0:(this.ctx.modal.confirm({className:"is-primary",title:"Unsaved Changes",content:"All edit contents will be lost after closing the modal. Are you sure you want to close?",center:!0,okBtn:{label:"Give Up",className:"is-danger is-ghost"},cancelBtn:{label:"Continue Editing",className:"is-primary is-ghost"}},b=>(b&&(a.setOptions({beforeClose:uo}),a.close()),!0)),!1)}}),this.ctx.emit("quick-edit/wiki-page",{ctx:this.ctx,options:o,modal:a,wikiPage:l});const j=k=>E.querySelector("textarea")?.value===l.revisions[0]?.content?!0:(k.preventDefault(),"You have unsaved changes. Are you sure you want to leave?");window.addEventListener("beforeunload",j),a.on(a.Event.Close,()=>{window.removeEventListener("beforeunload",j)})}async handleSubmit(e){const i=e.wikiPage,r=e.summary||"",n=e.text||"",s=e.minor,o=e.createonly,a=e.watchlist,l=e.section;return i.edit({summary:r,text:n,watchlist:a,section:l},{minor:s,createonly:o})}async getWikiPageFromPayload(e){if(e.revision)return this.ctx.wikiPage.newFromRevision(e.revision,e.section);if(e.pageId)return this.ctx.wikiPage.newFromPageId(e.pageId,e.section);if(e.title)return this.ctx.wikiPage.newFromTitle(e.title,!1,e.section);throw new Error("Invalid payload")}async injectToolbox(e){const i=this.ctx.currentPage.wikiTitle,r=this.ctx.wiki.hasRight("edit")&&i&&i.getNamespaceId()>=0;e.toolbox.addButton({id:"quick-edit",group:"group1",index:0,icon:g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-edit",children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1"}),g("path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z"}),g("path",{d:"M16 5l3 3"})]}),buttonProps:{disabled:!r},tooltip:r?"Quick Edit":"Not editable",onClick:()=>{const n=new URLSearchParams(window.location.search).get("oldid");this.showModal({title:i?.getPrefixedText(),revision:n?Number(n):void 0})}})}removeToolbox(e){e.toolbox.removeButton("quick-edit")}}ho=qg(eu),wn=Vg(ho,0,"PluginQuickEdit",Zc,wn),Kg(ho,1,wn);const Gg=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickEdit(){return wn}},Symbol.toStringTag,{value:"Module"}));var Qg=Object.create,po=Object.defineProperty,Yg=Object.getOwnPropertyDescriptor,tu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),iu=t=>{throw TypeError(t)},Jg=(t,e,i)=>e in t?po(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Xg=(t,e)=>po(t,"name",{value:e,configurable:!0}),Zg=t=>[,,,Qg(t?.[tu("metadata")]??null)],ey=["class","method","getter","setter","accessor","field","value","get","set"],ru=t=>t!==void 0&&typeof t!="function"?iu("Function expected"):t,ty=(t,e,i,r,n)=>({kind:ey[t],name:e,metadata:r,addInitializer:s=>i._?iu("Already initialized"):n.push(ru(s||null))}),iy=(t,e)=>Jg(e,tu("metadata"),t[3]),ry=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},ny=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&Yg(n,i));Xg(n,i);for(var m=r.length-1;m>=0;m--)l=ty(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,ru(o)&&(n=o);return iy(t,n),y&&po(n,i,y),u?c^4?s:y:n},nu,mo,su;nu=[ke(["api","wikiPage","wikiTitle","currentPage","wiki","modal","preferences"]),fi(te.object({deleteReason:te.string().description("Default delete reason for quick delete").default("[IPE-NEXT] Quick delete")}).description("Quick delete options").extra("category","delete"))];class vn extends(su=Je){constructor(e){super(e,{},"quick-delete"),this.ctx=e,this.DEFAULT_OPTIONS={title:"",pageId:0,revision:0,deleteReason:"",reloadAfterDelete:!0},this.ctx.root.set("quickDelete",co(this,"showModal"))}start(){this.ctx.inject(["toolbox"],e=>{this.injectToolbox(e),e.on("dispose",()=>{this.removeToolbox(e)})}),this.ctx.preferences.defineCategory({label:"Delete",name:"delete",description:"Settings related to deleting pages",index:3})}async showModal(e){if(typeof e>"u"?e={}:typeof e=="string"&&(e={title:e}),!e.title&&!e.pageId&&!e.revision){this.logger.warn("None of the title, pageId or revision provided. Using defaults.");const l=new URLSearchParams(window.location.search),c=this.ctx.currentPage.wikiTitle;e={...e,title:c?.getPrefixedDBKey(),revision:l.has("oldid")?Number(l.get("oldid")):void 0,pageId:l.has("curid")?Number(l.get("curid")):void 0}}const i=typeof e.deleteReason=="string"?e.deleteReason:await this.ctx.preferences.get("deleteReason"),r={...this.DEFAULT_OPTIONS,deleteReason:i,...e};r.deleteReason||(r.deleteReason=await this.ctx.preferences.get("deleteReason")||""),r||this.ctx.emit("quick-delete/init-options",{ctx:this.ctx,options:r});const n=this.ctx.modal.createObject({className:"ipe-quickDelete",sizeClass:"small",center:!0}).init();n.setTitle(g(Pt,{children:["Loading: ",g("u",{children:r.title})]})),n.setContent(g(Dt,{})),n.addButton({side:"right",type:"button",className:"is-ghost",label:"Cancel",method(){n.close()}}),n.show(),this.ctx.emit("quick-delete/show-modal",{ctx:this.ctx,modal:n,options:r});let s;try{if(s=await this.getWikiPageFromPayload(r),s.pageInfo.special)throw new Error("Special page cannot be deleted");if(s.pageInfo.pageid===0)throw new Error("Page does not exist, cannot be deleted")}catch(l){n.off(n.Event.Close),n.close(),this.ctx.modal.notify("error",{content:l instanceof Error?l.message:String(l)});return}n.setTitle(g(Pt,{children:["Quick Delete: ",g("u",{children:s.pageInfo.title})]}));const o=[];s.userCan("delete")||o.push(g(cr,{title:"Permission Denied",type:"error",children:g("p",{children:"You do not have permission to delete this page."})})),s.pageInfo.protection&&s.pageInfo.protection.length>0&&o.push(g(cr,{title:"Warning",type:"warning",children:g("p",{children:"This page is protected and may has special use or purpose. Delete it at your own risk."})})),this.ctx.emit("quick-delete/delete-notice",{ctx:this.ctx,options:r,modal:n,wikiPage:s,deleteNotices:o});const a=g("form",{className:"ipe-quickDelete__form",children:[g("div",{className:"ipe-quickDelete__notices",children:o}),g("div",{className:"ipe-quickDelete__content",children:g("div",{className:"ipe-quickDelete__page-info",style:{padding:"1rem",backgroundColor:"#f8f9fa",border:"1px solid #dee2e6",borderRadius:"4px",marginBottom:"1rem"},children:g("ul",{children:[g("li",{children:[g("strong",{children:"Title:"})," ",s.pageInfo.title]}),g("li",{children:[g("strong",{children:"Page ID:"})," ",s.pageInfo.pageid]}),g("li",{children:[g("strong",{children:"Last Revision:"})," ",s.pageInfo.lastrevid]}),g("li",{children:[g("strong",{children:"Length:"})," ",s.pageInfo.length," characters"]})]})})}),g("div",{class:"ipe-quickDelete__options",style:{display:"flex",flexDirection:"column",gap:"1rem",marginTop:"1rem"},children:g(ur,{label:"Delete Reason",id:"reason",name:"reason",value:r.deleteReason,inputProps:{placeholder:"Enter reason for deletion...",required:!0}})}),!1]});n.setContent(a),n.addButton({side:"left",className:"is-danger submit-btn",label:"Delete Page",method:()=>{const c=new FormData(a).get("reason");if(!c||c.trim()===""){this.ctx.modal.notify("error",{title:"Missing Reason",content:"Please provide a reason for deletion."});return}this.ctx.modal.confirm({className:"is-danger",title:"Confirm Deletion",content:g(Pt,{children:g("p",{children:g("strong",{children:s.pageInfo.title})})}),center:!0,okBtn:{label:"Delete it now",className:"is-danger"},cancelBtn:{label:"Cancel",className:"is-ghost"}},u=>(u&&(n.setLoadingState(!0),this.handleSubmit({wikiPage:s,reason:c}).then(async()=>{n.setOptions({beforeClose:uo}),n.close(),this.ctx.modal.notify("success",{title:"Deletion Successful",content:`The page "${s.pageInfo.title}" has been deleted.`})}).catch(f=>{this.ctx.modal.notify("error",{title:"Deletion Error",content:f instanceof Error?f.message:String(f)}),n.setLoadingState(!1)})),!0))}},0),this.ctx.emit("quick-delete/wiki-page",{ctx:this.ctx,options:r,modal:n,wikiPage:s})}async handleSubmit(e){const i=e.wikiPage,r=e.reason||"";return i.delete(r)}async getWikiPageFromPayload(e){if(e.revision)return this.ctx.wikiPage.newFromRevision(e.revision);if(e.pageId)return this.ctx.wikiPage.newFromPageId(e.pageId);if(e.title)return this.ctx.wikiPage.newFromTitle(e.title,!1);throw new Error("Invalid payload")}async injectToolbox(e){const i=this.ctx.currentPage.wikiTitle,r=i&&this.ctx.wiki.hasRight("delete")&&i.getNamespaceId()>=0;e.toolbox.addButton({id:"quick-delete",group:"group2",icon:g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-trash",children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M4 7l16 0"}),g("path",{d:"M10 11l0 6"}),g("path",{d:"M14 11l0 6"}),g("path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"}),g("path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"})]}),buttonProps:{disabled:!r},tooltip:r?"Quick Delete":"Not deletable",onClick:()=>{this.showModal({title:i?.getPrefixedText()})}})}removeToolbox(e){e.toolbox.removeButton("quick-delete")}}mo=Zg(su),vn=ny(mo,0,"PluginQuickDelete",nu,vn),ry(mo,1,vn);const sy=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickDelete(){return vn}},Symbol.toStringTag,{value:"Module"})),fr={twinSwapInput:"_twinSwapInput_1gdgl_9",inputWrapper:"_inputWrapper_1gdgl_23",inputLeft:"_inputLeft_1gdgl_27",inputRight:"_inputRight_1gdgl_30",swapButton:"_swapButton_1gdgl_46"},ou=t=>{const{inputs:e,enableSwap:i=!0,...r}=t,n=e?.length===2?e:[e?.[0]??{},e?.[1]??{}],s=[null,null];let o=0,a=null,l=null;const c=()=>s.some(m=>m&&m.disabled),u=()=>{if(!s[0]||!s[1]||c())return;const m=s[0],E=s[1],j=m.value,k=E.value;m.value=k,E.value=j,m.dispatchEvent(new Event("change")),E.dispatchEvent(new Event("change")),o++,l&&(l.style.transform=`rotateY(${o*-180}deg)`,l.style.transition="transform 200ms ease")},f=m=>{if(!a)return;const E=m??!a.disabled;a.disabled=!E,E&&s.forEach(j=>{j&&(j.disabled=!1)})},d=g("button",{type:"button","aria-label":"Swap values",onClick:u,disabled:c()||!i,ref:m=>a=m,children:g("svg",{ref:m=>l=m,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon-tabler icons-tabler-outline icon-tabler-transfer",children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M20 10h-16l5.5 -6"}),g("path",{d:"M4 14h16l-5.5 6"})]})}),y=g("div",{className:`twin-swap-input ${fr.twinSwapInput}`,...r,children:[n.map((m,E)=>{const{label:j,id:k,name:F,value:b,disabled:h,required:p,inputProps:v}=m,x=E===0,P=k||F;return g("div",{className:`${fr.inputWrapper} ${x?fr.inputLeft:fr.inputRight}`,children:[j&&g("label",{htmlFor:P,children:j}),g("input",{ref:R=>s[E]=R,type:"text",id:P,name:F,value:b,disabled:h,required:p,...v})]})}),g("div",{className:fr.swapButton,children:d})]});return y.swap=u,y.toggleEnableSwap=f,y};var oy=Object.create,go=Object.defineProperty,ay=Object.getOwnPropertyDescriptor,au=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),lu=t=>{throw TypeError(t)},ly=(t,e,i)=>e in t?go(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,cy=(t,e)=>go(t,"name",{value:e,configurable:!0}),uy=t=>[,,,oy(t?.[au("metadata")]??null)],fy=["class","method","getter","setter","accessor","field","value","get","set"],cu=t=>t!==void 0&&typeof t!="function"?lu("Function expected"):t,hy=(t,e,i,r,n)=>({kind:fy[t],name:e,metadata:r,addInitializer:s=>i._?lu("Already initialized"):n.push(cu(s||null))}),dy=(t,e)=>ly(e,au("metadata"),t[3]),py=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},my=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&ay(n,i));cy(n,i);for(var m=r.length-1;m>=0;m--)l=hy(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,cu(o)&&(n=o);return dy(t,n),y&&go(n,i,y),u?c^4?s:y:n},uu,yo,fu;uu=[ke(["modal","wiki"])];class _n extends(fu=Je){constructor(e){super(e,{},"quick-move"),this.ctx=e,e.set("quickMove",this.quickMove.bind(this)),e.set("movePage",this.movePage.bind(this))}start(){this.ctx.inject(["toolbox"],e=>{this.injectToolbox(e)})}injectToolbox(e){const i=window.mw?.config.get("wgPageName")||"",r=window.mw?.config.get("wgIsProbablyEditable");e.toolbox.addButton({id:"quick-move",icon:g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-forms",children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M12 3a3 3 0 0 0 -3 3v12a3 3 0 0 0 3 3"}),g("path",{d:"M6 3a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3"}),g("path",{d:"M13 7h7a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-7"}),g("path",{d:"M5 7h-1a1 1 0 0 0 -1 1v8a1 1 0 0 0 1 1h1"}),g("path",{d:"M17 12h.01"}),g("path",{d:"M13 12h.01"})]}),tooltip:"Quick Move",group:"group1",index:1,onClick:()=>{this.quickMove(r?{lockFromField:!0,from:i}:{})}})}quickMove(e){const i=this.ctx.modal.createObject({title:"Quick Move",content:g(Dt,{}),className:"quick-move compact-buttons",sizeClass:"smallToMedium",center:!0}).init();let r=null;return i.setContent(g("form",{ref:n=>r=n,style:{display:"flex",flexDirection:"column",gap:"1rem"},onSubmit:n=>{if(n.preventDefault(),r?.checkValidity(),!r?.reportValidity())return;const s=new FormData(r),o={from:s.get("from")?.toString().trim(),to:s.get("to")?.toString().trim(),reason:s.get("reason")||"",movetalk:s.get("movetalk")==="on",movesubpages:s.get("movesubpages")==="on",noredirect:s.get("noredirect")==="on"};if(!o.from||!o.to){this.ctx.modal.notify("error",{title:"Failed to move",content:"From and to are required."});return}i.setLoadingState(!0),this.movePage(o).then(()=>{location.reload()}).catch(a=>{i.setLoadingState(!1),this.ctx.modal.notify("error",{title:"Failed to move",content:a instanceof Error?a.message:String(a)})})},children:[g(ou,{inputs:[{label:"Move from",name:"from",value:e?.from,required:!0},{label:"Move to",name:"to",value:e?.to,required:!0}]}),g("div",{children:g(Ei,{name:"movetalk",id:"movetalk",checked:e?.movetalk,children:"Move talk page"})}),g("div",{children:g(Ei,{name:"movesubpages",id:"movesubpages",checked:e?.movesubpages,children:"Move subpage(s) (up to 100)"})}),this.ctx.wiki.hasRight("suppressredirect")&&g("div",{children:g(Ei,{name:"noredirect",id:"noredirect",checked:e?.noredirect,children:"Move without leaving a redirect"})}),g(ur,{label:"Reason",id:"reason",name:"reason",value:e?.reason})]})),i.setButtons([{label:"Move",className:"is-primary is-ghost",method:()=>{r?.dispatchEvent(new Event("submit"))}}]),i.show()}async movePage(e){const{from:i,to:r,reason:n="",...s}=e;if(!i||!r)throw new Error("From and to titles are required.");if(i===r)throw new Error("From and to titles cannot be the same.");return(await this.ctx.wikiPage.newFromTitle(i)).moveTo(r,n,s)}}yo=uy(fu),_n=my(yo,0,"PluginQuickMove",uu,_n),py(yo,1,_n);const gy=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickMove(){return _n}},Symbol.toStringTag,{value:"Module"}));var yy=Object.create,bo=Object.defineProperty,by=Object.getOwnPropertyDescriptor,hu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),du=t=>{throw TypeError(t)},wy=(t,e,i)=>e in t?bo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,vy=(t,e)=>bo(t,"name",{value:e,configurable:!0}),_y=t=>[,,,yy(t?.[hu("metadata")]??null)],xy=["class","method","getter","setter","accessor","field","value","get","set"],pu=t=>t!==void 0&&typeof t!="function"?du("Function expected"):t,Sy=(t,e,i,r,n)=>({kind:xy[t],name:e,metadata:r,addInitializer:s=>i._?du("Already initialized"):n.push(pu(s||null))}),ky=(t,e)=>wy(e,hu("metadata"),t[3]),Ey=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},$y=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&by(n,i));vy(n,i);for(var m=r.length-1;m>=0;m--)l=Sy(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,pu(o)&&(n=o);return ky(t,n),y&&bo(n,i,y),u?c^4?s:y:n},mu,wo,gu;mu=[ke(["api","wikiPage","modal","preferences"]),fi(te.object({"quickPreview.keyshortcut":te.string().default("ctrl-p").description("Key shortcut to open quick preview in quick edit modal")}).extra("category","edit").description("Quick preview options"))];class xn extends(gu=Je){constructor(e){super(e,{},"quickPreview"),this.ctx=e,this.ctx.set("quickPreview",co(this,"previewWikitext"))}start(){this.ctx.on("quick-edit/wiki-page",this.injectQuickEdit.bind(this)),this.ctx.on("quick-delete/wiki-page",this.injectQuickDelete.bind(this))}stop(){}previewWikitext(e,i,r,n,s){return r||(r=this.ctx.wikiPage.newBlankPage({title:"API"})),(!n||n.isDestroyed)&&(n=this.ctx.modal.createObject({className:"in-page-edit ipe-quickPreview",sizeClass:"large",center:!1,...s}).init()),n.show(),n.setTitle("Preview - Loading..."),n.setContent(g(Dt,{})),n.bringToFront(),this.ctx.emit("quick-preview/show-modal",{ctx:this.ctx,text:e,modal:n,wikiPage:r}),r.preview(e,i).then(o=>{const{data:{parse:a}}=o;n.setTitle(`Preview - ${a.title}`);let l=null;n.setContent(g("section",{children:g("div",{ref:c=>l=c,className:"mw-parser-output",innerHTML:a.text})})),window.mw?.hook("wikipage.content").fire($(l)),this.ctx.emit("quick-preview/loaded",{ctx:this.ctx,modal:n,wikiPage:r,text:e,parseData:a})}).catch(o=>{n.setTitle("Preview - Failed"),n.setContent(g(Pt,{children:[g("p",{children:"Failed to preview"}),g("p",{children:o instanceof Error?o.message:String(o)})]}))}),n}async injectQuickEdit({options:e,modal:i,wikiPage:r}){let n;i.addButton({label:"Preview",side:"left",className:"btn btn-secondary",keyPress:await this.ctx.preferences.get("quickPreview.keyshortcut.quickEdit")||void 0,method:()=>{let s=i.get$content().querySelector('textarea[name="text"]')?.value||"";if(e.section==="new"){const o=i.get$content().querySelector('input[name="summary"]')?.value;o&&(s=`==${o}==
|
|
121
|
-
${s}`)}n=this.previewWikitext(s,void 0,r,n,{backdrop:!1,draggable:!0})}},1),i.on(i.Event.Close,()=>{n?.destroy(),n=void 0})}injectQuickDelete({ctx:e,modal:i,wikiPage:r}){i.addButton({label:"Preview",side:"left",className:"btn btn-secondary",method:()=>{this.logger.warn("To be implemented: preview wikitext for quick delete")}},2)}}wo=_y(gu),xn=$y(wo,0,"PluginQuickPreview",mu,xn),Ey(wo,1,xn);const Py=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickPreview(){return xn}},Symbol.toStringTag,{value:"Module"})),Cy=t=>{let{user:e,target:i,ctx:r}=t;const n=r.getUrl.bind(r);return g("span",{className:"mw-userlinks",children:[g("a",{href:n(`User:${e}`),className:"mw-userlink",target:i,children:e})," ",g("span",{className:"mw-usertoollinks",children:["(",g("a",{href:n(`User_talk:${e}`),className:"mw-usertoollinks-talk",target:i,children:"talk"})," | ",g("a",{href:n(`Special:Contributions/${e}`),className:"mw-usertoollinks-contribs",target:i,children:"contribs"})," | ",g("a",{href:n(`Special:Block/${e}`),className:"mw-usertoollinks-block",target:i,children:"block"}),")"]})]})};var Sn=(t=>(t.update="ipe:diff-table/update",t.edit="ipe:diff-table/edit",t))(Sn||{});const Oy=new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"medium"}).format,yu=t=>{let e=["diff-title"];if(t.type==="from"?e.push("diff-otitle"):t.type==="to"&&e.push("diff-ntitle"),!t.pageid||!t.userid)return g("td",{colSpan:2,className:e,children:g("div",{className:"mw-diff-title--title",children:t.type==="from"?"Original content":t.type==="to"?"Your content":""})});const i=r=>{r.preventDefault(),r.target.dispatchEvent(new CustomEvent("ipe:diff-table/edit",{detail:{revid:t.revid},bubbles:!0}))};return g("td",{colSpan:2,className:e,children:[g("div",{className:"mw-diff-title--title",children:[t.pagetitle||t.timestamp,t.revid?` (rev#${t.revid})`:""]}),g("div",{className:"mw-diff-title--actions",children:g("a",{href:t.ctx.getUrl("",{action:"edit",oldid:t.revid}),onClick:i,children:[g(La,{style:"width: 1em; height: 1em"}),"Quick edit"]})}),g("div",{className:"mw-diff-title--user",children:t.username&&g(Cy,{ctx:t.ctx,user:t.username,target:"_blank"})}),g("div",{className:"mw-diff-title--timestamp",children:t.timestamp&&Oy(new Date(t.timestamp))}),g("div",{className:"mw-diff-title--comment",children:t.parsedcomment&&g(Pt,{children:["(",g("i",{innerHTML:t.parsedcomment}),")"]})})]})},Ty=t=>{const e=t.data;if(!e.prev&&!e.next)return null;const i=(r,n,s)=>{r.preventDefault(),r.target.dispatchEvent(new CustomEvent("ipe:diff-table/update",{detail:{fromrev:n,torev:s},bubbles:!0}))};return g("tr",{className:"mw-diff-title--navigation",children:[g("td",{colSpan:2,children:e.prev?g("a",{href:t.ctx.getUrl("",{diff:e.prev,oldid:e.fromrevid}),onClick:r=>i(r,e.prev,e.fromrevid),children:"← Previous"}):g("i",{children:"Oldest version"})}),g("td",{colSpan:2,children:e.next?g("a",{href:t.ctx.getUrl("",{diff:e.next,oldid:e.torevid}),onClick:r=>i(r,e.torevid,e.next),children:"Next →"}):g("i",{children:"Newest version"})})]})},Iy=t=>{const{data:e,...i}=t,r=g("table",{className:"theme-ipe diff diff-type-table","data-mw":"interface",...i,children:[g("colgroup",{children:[g("col",{className:"diff-marker"}),g("col",{className:"diff-content"}),g("col",{className:"diff-marker"}),g("col",{className:"diff-content"})]}),g("tbody",{children:[g("tr",{children:[g(yu,{ctx:t.ctx,type:"from",pageid:e.fromid,pagetitle:e.fromtitle,revid:e.fromrevid,size:e.fromsize,timestamp:e.fromtimestamp,username:e.fromuser,userid:e.fromuserid,comment:e.fromcomment,parsedcomment:e.fromparsedcomment}),g(yu,{ctx:t.ctx,type:"to",pageid:e.toid,pagetitle:e.totitle,revid:e.torevid,size:e.tosize,timestamp:e.totimestamp,username:e.touser,userid:e.touserid,comment:e.tocomment,parsedcomment:e.toparsedcomment})]}),g(Ty,{data:e,ctx:t.ctx}),g("div",{id:"diffbody"}),g("tr",{className:"diff-size",style:{textAlign:"center"},children:[g("td",{colSpan:2,className:"diff-size-old",children:e.fromsize!==void 0&&`${e.fromsize} bytes`}),g("td",{colSpan:2,className:"diff-size-new",children:e.tosize!==void 0&&`${e.tosize} bytes`})]})]})]});return r.querySelector("#diffbody").outerHTML=e.body||g("tr",{children:g("td",{colSpan:4,children:g("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"5rem"},children:g("i",{children:"No changes"})})})}).outerHTML,r},Ay=(t,e=document)=>e.querySelector(t),Ry=(t,e=document)=>e.querySelectorAll(t);var Ly=Object.create,vo=Object.defineProperty,Ny=Object.getOwnPropertyDescriptor,bu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),wu=t=>{throw TypeError(t)},My=(t,e,i)=>e in t?vo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Dy=(t,e)=>vo(t,"name",{value:e,configurable:!0}),jy=t=>[,,,Ly(t?.[bu("metadata")]??null)],Uy=["class","method","getter","setter","accessor","field","value","get","set"],vu=t=>t!==void 0&&typeof t!="function"?wu("Function expected"):t,Fy=(t,e,i,r,n)=>({kind:Uy[t],name:e,metadata:r,addInitializer:s=>i._?wu("Already initialized"):n.push(vu(s||null))}),By=(t,e)=>My(e,bu("metadata"),t[3]),qy=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},Hy=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&Ny(n,i));Dy(n,i);for(var m=r.length-1;m>=0;m--)l=Fy(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,vu(o)&&(n=o);return By(t,n),y&&vo(n,i,y),u?c^4?s:y:n},_u,_o,xu;_u=[ke(["wiki","getUrl","preferences"]),fi(te.object({"quickDiff.keyshortcut":te.string().default("ctrl-d").description("Key shortcut to open quick diff in quick edit modal")}).description("Quick diff options").extra("category","edit"))];class kn extends(xu=Je){constructor(e){super(e,{},"quick-diff"),this.ctx=e,this.COMPARE_API_DEFAULT_OPTIONS={prop:["comment","diff","diffsize","ids","parsedcomment","size","timestamp","title","user","rel"].join("|"),difftype:"table"}}start(){this.ctx.set("quickDiff",this),this.ctx.on("quick-edit/wiki-page",this.injectQuickEdit.bind(this)),window.RLQ.push(this.injectHistoryPage.bind(this))}stop(){}injectHistoryPage(){const e=Ay("#mw-history-compare");if(!e)return;Ry(".mw-history-compareselectedversions-button",e).forEach(r=>{r.after(g("button",{className:"cdx-button",onClick:n=>{n.preventDefault();const s=new FormData(e),o=Number(s.get("oldid"))||0,a=Number(s.get("diff"))||0;if(!s.get("title")||!o||!a)return this.logger.warn("Missing title or revision IDs");this.comparePages({fromrev:o,torev:a})},children:"Quick Diff"}))})}async injectQuickEdit({modal:e,wikiPage:i,options:r}){if(i.pageid===0||r.section==="new")return;let n;e.addButton({label:"Diff",side:"left",keyPress:await this.ctx.preferences.get("quickDiff.keyshortcut")||void 0,className:"btn btn-secondary",method:()=>{const s=i.title,o=i.revisions?.[0]?.content||"",a=e.get$content().querySelector('textarea[name="text"]')?.value||"";return o===a?this.ctx.modal.notify("info",{title:"Quick Diff",content:"No changes"}):(n=this.comparePages({fromtitle:s,fromtext:o,totitle:s,totext:a,topst:!0},n,{backdrop:!1,draggable:!0}),n)}},2),e.on(e.Event.Close,()=>{n?.destroy(),n=void 0})}comparePages(e,i,r){return!i||i.isDestroyed?i=this.ctx.modal.createObject({title:"Loading diff...",content:"",className:"quick-diff",center:!1,...r}).init():i.removeButton("*"),i.setContent(g("section",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:g(Dt,{})})),i.bringToFront(),window.mw&&mw.loader.getState("mediawiki.diff.styles")!=="ready"&&mw.loader.load(["mediawiki.diff.styles"]),this.ctx.api.post({...this.COMPARE_API_DEFAULT_OPTIONS,...e,action:"compare",format:"json",formatversion:2}).then(n=>{if(!n.data.compare)throw new Error("No compare data received",{cause:n});const{data:{compare:s}}=n;i.setTitle(s.fromtitle&&s.totitle?`${s.fromtitle}${s.fromrevid?` (${s.fromrevid})`:""} ⇔ ${s.totitle}${s.torevid?` (${s.torevid})`:""}`:"Differences");let o;i.setContent(g("section",{style:{minHeight:"70vh"},children:g(Iy,{ref:a=>o=a,data:s,ctx:this.ctx})})),o.addEventListener(Sn.update,a=>{a.stopPropagation(),this.comparePages({fromrev:a.detail.fromrev,torev:a.detail.torev},i,r)},{once:!0}),this.ctx.inject(["quickEdit"],a=>{const l=c=>{c.stopPropagation(),a.quickEdit({revision:c.detail.revid})};o.addEventListener(Sn.edit,l),i.on(i.Event.Close,()=>{o.removeEventListener(Sn.edit,l)})}),s.fromrevid&&s.torevid&&i.addButton({label:"Original Compare Page",side:"right",className:"btn btn-secondary",method:()=>{window.location.href=this.ctx.getUrl("",{oldid:s.fromrevid,diff:s.torevid})}})}).catch(n=>{i.setContent(g(cr,{title:"Failed to load diff",type:"error",children:g("pre",{children:n instanceof Error?n.message:String(n)})}))}),i.show()}}_o=jy(xu),kn=Hy(_o,0,"PluginQuickDiff",_u,kn),qy(_o,1,kn);const zy=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickDiff(){return kn}},Symbol.toStringTag,{value:"Module"})),Co=class Co extends Je{constructor(e){super(e,{},"quick-redirect"),this.ctx=e}start(){this.ctx.set("quickRedirect",this.quickRedirect.bind(this)),this.ctx.set("redirectPage",this.redirectPage.bind(this));const e=window.mw?.config.get("wgPageName")||"",i=window.mw?.config.get("wgIsProbablyEditable");this.ctx.inject(["toolbox"],r=>{this.ctx=r,r.toolbox.addButton({id:"quick-redirect",icon:g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-file-symlink",children:[g("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),g("path",{d:"M4 21v-4a3 3 0 0 1 3 -3h5"}),g("path",{d:"M9 17l3 -3l-3 -3"}),g("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),g("path",{d:"M5 11v-6a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-9.5"})]}),tooltip:"Quick Redirect",group:"group1",index:2,onClick:()=>{this.quickRedirect(i?{to:e}:{})}}),this.addDisposeHandler(n=>{n.toolbox.removeButton("quick-redirect")})})}stop(){}quickRedirect(e){const i=this.ctx.modal.createObject({title:"Quick Redirect",content:g(Dt,{}),className:"quick-redirect compact-buttons",sizeClass:"smallToMedium",center:!0}).init();let r=null;return i.setContent(g("form",{ref:n=>r=n,style:{display:"flex",flexDirection:"column",gap:"1rem"},onSubmit:n=>{if(n.preventDefault(),r?.checkValidity(),!r?.reportValidity())return;const s=new FormData(r),o={from:s.get("from")?.toString().trim(),to:s.get("to")?.toString().trim(),reason:s.get("reason")||"",overwrite:s.get("overwrite")==="on"};if(!o.from||!o.to){this.ctx.modal.notify("error",{title:"Failed to redirect",content:"From and to are required."});return}i.setLoadingState(!0),this.redirectPage(o).then(a=>{i.close(),this.ctx.modal.notify("success",{title:"Redirect successful",content:"The redirect has been created."})}).catch(a=>{i.setLoadingState(!1),this.ctx.modal.notify("error",{title:"Failed to redirect",content:a instanceof Error?a.message:String(a)})})},children:[g(ou,{inputs:[{label:"From",name:"from",value:e?.from,required:!0},{label:"To",name:"to",value:e?.to,required:!0}]}),g(ur,{label:"Reason",id:"reason",name:"reason",value:e?.reason}),g("div",{children:g(Ei,{name:"overwrite",id:"overwrite",checked:e?.overwrite,children:"Force create redirect even if the from page already exists"})})]})),i.setButtons([{label:"Create Redirect",className:"is-primary is-ghost",method:()=>{r?.dispatchEvent(new Event("submit"))}}]),i.show()}async redirectPage(e){const{from:i,to:r,reason:n="",overwrite:s=!1}=e,o=await this.ctx.wikiPage.newBlankPage({title:i}),a=`#REDIRECT [[:${r}]]`;return o.edit({text:a,summary:n},{createonly:!s})}};Co.inject=["api","wikiPage","modal"];let xo=Co;const Wy=Object.freeze(Object.defineProperty({__proto__:null,PluginQuickRedirect:xo},Symbol.toStringTag,{value:"Module"}));var Ky=Object.create,So=Object.defineProperty,Vy=Object.getOwnPropertyDescriptor,Su=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),ku=t=>{throw TypeError(t)},Gy=(t,e,i)=>e in t?So(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Qy=(t,e)=>So(t,"name",{value:e,configurable:!0}),Yy=t=>[,,,Ky(t?.[Su("metadata")]??null)],Jy=["class","method","getter","setter","accessor","field","value","get","set"],Eu=t=>t!==void 0&&typeof t!="function"?ku("Function expected"):t,Xy=(t,e,i,r,n)=>({kind:Jy[t],name:e,metadata:r,addInitializer:s=>i._?ku("Already initialized"):n.push(Eu(s||null))}),Zy=(t,e)=>Gy(e,Su("metadata"),t[3]),eb=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},tb=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&Vy(n,i));Qy(n,i);for(var m=r.length-1;m>=0;m--)l=Xy(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,Eu(o)&&(n=o);return Zy(t,n),y&&So(n,i,y),u?c^4?s:y:n},$u,ko,Pu;$u=[fi(te.object({toolboxAlwaysShow:te.boolean().description("Make the toolbox opened by default").default(!1)}).description("Toolbox preferences")),ke(["preferences"])];class En extends(Pu=$t){constructor(e){super(e,"toolbox",!1),this.ctx=e,this.container=void 0}async start(){this.container=this.createToolbox(),this.ctx.preferences.get("toolboxAlwaysShow").then(e=>{e&&this.container.classList.add("is-persistent")}),this.setupHoverLogic(),document.body.appendChild(this.container),this.updateButtonDelays()}stop(){this.container?.remove()}get isPersistent(){return this.container.classList.contains("is-persistent")}setupHoverLogic(){let e=null;this.container.addEventListener("mouseenter",()=>{e&&(clearTimeout(e),e=null),this.isPersistent||this.container.classList.add("is-hovered")}),this.container.addEventListener("mouseleave",()=>{this.isPersistent||(e=window.setTimeout(()=>{this.container.classList.remove("is-hovered")},150))})}calculateButtonDelay(e,i){if(i<=1)return 0;const r=.15,n=e/(i-1),s=r*Math.sqrt(n);return Math.round(s*1e3)/1e3}updateButtonDelays(){this.container.querySelectorAll(".btn-group").forEach(i=>{const r=i.querySelectorAll(".btn-tip-group"),n=r.length;r.forEach((s,o)=>{const a=this.calculateButtonDelay(o,n);s.style.setProperty("--transition-delay",`${a}s`),s.style.setProperty("--max-transition-delay","0.15s")})})}createToolbox(){return g("div",{id:"ipe-edit-toolbox",children:[g("ul",{className:"btn-group group1",style:{display:"flex",flexDirection:"column"}}),g("ul",{className:"btn-group group2",style:{display:"flex",flexDirection:"row"}}),g("button",{className:"ipe-toolbox-btn",id:"toolbox-toggler",onClick:()=>{this.toggle()},children:g("svg",{xmlns:"http://www.w3.org/2000/svg",width:"448",height:"512",viewBox:"0 0 448 512",children:[g("rect",{width:"448",height:"512",fill:"none"}),g("path",{fill:"currentColor",d:"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32"})]})})]})}normalizeButtonId(e){return e||(e=Math.random().toString(36).substring(2,8)),`ipe-toolbox__${e.trim()}`.replace(/\s\.#/g,"-")}addButton(e){let{id:i,group:r,icon:n,tooltip:s,itemProps:o,buttonProps:a,onClick:l,index:c}=e;i=this.normalizeButtonId(i);const u=this.container.querySelector(`#${i}`);u&&(this.ctx.logger("toolbox").warn(`Button with id ${i} already exists, replacing it.`),u.remove());let f=null;if(typeof r>"u"||r==="auto"){const y=this.container.querySelector(".btn-group.group1"),m=this.container.querySelector(".btn-group.group2"),E=y?.children.length||0,j=m?.children.length||0;f=E<=j?y:m}else f=this.container.querySelector(`.btn-group.${r}`);if(!f)throw new Error(`Button group ${r} not found`);const d=g("li",{class:"btn-tip-group",id:i,onClick:l,...o,children:[g("div",{class:"btn-tip",children:s}),g("button",{id:`${i}-btn`,class:"ipe-toolbox-btn",...a,children:n})]});return typeof c=="number"?c<=0?f.prepend(d):c>=f.children.length?f.appendChild(d):f.children[c]?.before(d):f.appendChild(d),this.ctx.emit("toolbox/button-added",{ctx:this.ctx,button:d}),this.updateButtonDelays(),d}removeButton(e){this.container.querySelector(`.ipe-toolbox-btn#${e}`)?.remove(),this.ctx.emit("toolbox/button-removed",{ctx:this.ctx,id:e}),this.updateButtonDelays()}getContainer(){return this.container}get isOpened(){return this.container.classList.contains("is-persistent")||this.container.classList.contains("is-hovered")}toggle(e){const i=this.isPersistent,r=typeof e=="boolean"?e:!i;this.container.classList.toggle("is-persistent",r),this.container.classList.remove("is-hovered"),this.ctx.preferences.set("toolboxAlwaysShow",r)}}ko=Yy(Pu),En=tb(ko,0,"PluginToolbox",$u,En),eb(ko,1,En);const ib=Object.freeze(Object.defineProperty({__proto__:null,get PluginToolbox(){return En}},Symbol.toStringTag,{value:"Module"}));var rb=Object.create,Eo=Object.defineProperty,nb=Object.getOwnPropertyDescriptor,Cu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Ou=t=>{throw TypeError(t)},sb=(t,e,i)=>e in t?Eo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ob=(t,e)=>Eo(t,"name",{value:e,configurable:!0}),ab=t=>[,,,rb(t?.[Cu("metadata")]??null)],lb=["class","method","getter","setter","accessor","field","value","get","set"],Tu=t=>t!==void 0&&typeof t!="function"?Ou("Function expected"):t,cb=(t,e,i,r,n)=>({kind:lb[t],name:e,metadata:r,addInitializer:s=>i._?Ou("Already initialized"):n.push(Tu(s||null))}),ub=(t,e)=>sb(e,Cu("metadata"),t[3]),fb=(t,e,i,r)=>{for(var n=0,s=t[e>>1],o=s&&s.length;n<o;n++)s[n].call(i);return r},hb=(t,e,i,r,n,s)=>{var o,a,l,c=e&7,u=!1,f=0,d=t[f]||(t[f]=[]),y=c&&(n=n.prototype,c<5&&(c>3||!u)&&nb(n,i));ob(n,i);for(var m=r.length-1;m>=0;m--)l=cb(c,i,a={},t[3],d),o=(0,r[m])(n,l),a._=1,Tu(o)&&(n=o);return ub(t,n),y&&Eo(n,i,y),u?c^4?s:y:n},Iu,$o,Au;Iu=[ke(["preferences","wikiPage","wikiTitle","modal","preferencesUI"])];class $n extends(Au=Je){constructor(e){super(e,{},"pref-sync"),this.ctx=e,e.set("prefSync",this)}start(){const e=this.ctx;e.preferences.defineCategory({name:"pref-sync",label:"Sync",description:"Import and export preferences",index:98}),e.preferences.registerCustomConfig("pref-sync",te.object({"preferences-ui-pref-sync":te.const(g("section",{children:g("div",{style:{display:"flex",gap:"1rem"},children:[g("button",{onClick:i=>{i.preventDefault();const r=e.preferencesUI.getExistingModal(),n=i.target;n.disabled=!0,r?.setLoadingState(!0),this.importFromUserPage().then(s=>{const o=Object.keys(s??{}).length;this.ctx.modal.notify("success",{title:"Preferences Imported",content:g("div",{children:[g("div",{children:["Successfully imported ",o," ",o>1?"settings":"setting",":"]}),g("ol",{style:{listStyle:"auto",paddingLeft:"1em"},children:Object.entries(s??{}).map(([a,l])=>g("li",{children:[a,": ",l?.toString()]},a))})]})}),r?.close?.()}).finally(()=>{n.disabled=!1,r?.setLoadingState(!1)})},children:"Import"}),g("button",{onClick:i=>{i.preventDefault();const r=i.target;r.disabled=!0;const n=e.preferencesUI.getExistingModal();n?.setLoadingState(!0),this.exportToUserPage().then(s=>{this.ctx.modal.notify("success",{title:"Preferences Exported",content:g("p",{children:["Your preferences have been exported to"," ",g("a",{href:s.getURL().toString(),target:"_blank",children:s.getPrefixedText()}),"."]})}),n?.close?.()}).finally(()=>{r.disabled=!1,n?.setLoadingState(!1)})},children:"Export"})]})})).description("Backup your preferences to user page").role("raw-html")}).description("Backup your preferences to user page"),"pref-sync")}stop(){}getUserPrefsPageTitle(){try{const e=this.ctx.wiki?.userInfo?.name;return e?this.ctx.wikiTitle.newTitle(`User:${e}/ipe-prefs.json`,2):null}catch{return null}}async importFromUserPage(){const e=this.ctx,i=this.getUserPrefsPageTitle();if(!i)return this.logger.debug("Cannot get user page title, skipping load"),{};try{const r=i.getURL({action:"raw",ctype:"application/json"});let n;try{if(n=await fetch(r.toString()),!n.ok){if(n.status===404)return this.logger.debug("User preferences page does not exist"),{};throw new Error(`HTTP ${n.status}: ${n.statusText}`)}}catch(o){if(o instanceof TypeError&&o.message.includes("Failed to fetch"))return this.logger.debug("User preferences page does not exist or network error"),{};throw o}let s;try{s=await n.json()}catch(o){return this.logger.warn("Failed to parse user preferences JSON:",o),{}}for(const[o,a]of Object.entries(s))await e.preferences.set(o,a);return this.logger.info("Loaded preferences from user page:",i),s}catch(r){return this.logger.error("Failed to load preferences from user page:",r),{}}}async exportToUserPage(){const e=this.ctx,i=this.getUserPrefsPageTitle();if(!i)throw new Error("Cannot get user page title");const r=await e.preferences.getExportable(),n=JSON.stringify(r,null,2);try{return await this.ctx.wikiPage.newBlankPage({title:i.toString(),ns:2}).edit({text:n,summary:"Update InPageEdit preferences",watchlist:Ye.nochange}),this.logger.info("Exported preferences to user page:",i),i}catch(s){throw this.logger.error("Failed to export preferences to user page:",s),s}}}$o=ab(Au),$n=hb($o,0,"PluginPrefSync",Iu,$n),fb($o,1,$n);const db=Object.freeze(Object.defineProperty({__proto__:null,get PluginPrefSync(){return $n}},Symbol.toStringTag,{value:"Module"}));Y.BasePlugin=Je,Y.InPageEdit=ui,Y.Inject=ke,Y.Logger=Wo,Y.LoggerLevel=Bn,Y.Schema=te,Y.Service=$t,Y.createLogger=Go,Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"})});
|
|
120
|
+
*/const Kc={arrayAdd:"+",arrayMoveUp:"↑",arrayMoveDown:"↓",arrayRemove:"×",dictAdd:"+",dictRemove:"×",rootLabel:"root"},me=(t,e)=>{customElements.get(t)||customElements.define(t,e)},Ig=(t,e,i)=>{if(!e.length)return;let n=t,r=null,s=null;for(let a=0;a<e.length-1;a++){const l=e[a];let c=n?.[l];c==null?(c=typeof e[a+1]=="number"?[]:{},n[l]=c):typeof c!="object"&&(c=typeof e[a+1]=="number"?[]:{},n[l]=c),r=n,s=l,n=c}const o=e[e.length-1];if(n==null||typeof n!="object"){const a=typeof o=="number"?[]:{};if(r)r[s]=a,n=a;else return}try{n[o]=i}catch{try{const a=Array.isArray(n)?n.slice():{...n};a[o]=i,r&&(r[s]=a)}catch{}}},dn=t=>t.map(String).join("."),Tg=t=>t.replace(/[^a-zA-Z0-9_-]/g,"_"),Vt=t=>`schema_${Tg(dn(t)||"root")}`,ni=t=>dn(t),ie=(t,...e)=>{const i=new Set(...e);i.size&&t.setAttribute("part",Array.from(i).join(" "))},Rg=["wrapper","form","field","field-string","field-number","field-boolean","field-date","field-const","field-array","field-object","field-tuple","field-union","field-dict","field-label","field-helper","field-group","field-row","field-actions","field-button","field-button-primary","field-button-danger","field-button-secondary","field-toolbar","field-badge","field-input","field-input-text","field-input-number","field-input-date","field-input-select","field-input-textarea","field-input-checkbox","field-const-value","collection-row","field-checkbox","field-checkbox-text","field-toolbar-select"].join(" ");function ho(t,e){if(e==null)return e;switch(t){case"number":case"natural":case"percent":{if(e==="")return;const i=Number(e);return Number.isNaN(i)?void 0:i}case"boolean":return!!e;case"date":{if(!e)return;const i=new Date(e);return Number.isNaN(+i)?void 0:i}case"const":case"string":default:return e}}function Vc(t){return typeof t=="function"&&!!t?.type}function Qc(t){if(!t)throw new Error("schema is required");if(Vc(t))return t;try{const e=Schema.from(t);if(Vc(e))return e}catch{}if(t?.type){const e=t.type;if(Schema[e])return Schema[e](t.inner??t.list??t.dict)}throw new Error("无法从传入对象生成 Schemastery 实例,请传入 schema 或 schema.toJSON() 的结果。")}function lt(t){return t?.meta??{}}function Lg(t){return t.length>0&&t.every(e=>e?.type==="const")}function Pi(t){if(!t)return;const e=t,i=e.meta||{};if(Object.prototype.hasOwnProperty.call(i,"default"))return i.default;const n=e.type;try{const r=t();if(r!==void 0)return r}catch{}switch(n){case"string":return"";case"number":case"natural":case"percent":return 0;case"boolean":return!1;case"array":return[];case"tuple":return[];case"object":return{};case"dict":return{};case"union":{const r=e.list||[];return r.length?Pi(r[0]):void 0}case"const":return e.value;case"date":return;default:return}}class vt extends HTMLElement{constructor(){super(),this._path=[],this._i18n=Kc,this.$root=this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent=et,this.$root.appendChild(e)}makeFieldContainer(e,i){const n=document.createElement("div");if(n.className=`field schema-form-item schema-type-${e}`,n.setAttribute("data-path",dn(this._path)),ie(n,"field",`field-${e}`),this._label){const r=document.createElement("label");r.className="label",r.textContent=this._label,ie(r,"field-label"),n.appendChild(r)}if(i){const r=document.createElement("div");r.className="helper",r.textContent=i,ie(r,"field-helper"),n.appendChild(r)}return n}set schema(e){this._schema=Qc(e),this.render()}get schema(){return this._schema}set path(e){this._path=e??[],this.render()}get path(){return this._path}set label(e){this._label=e,this.render()}get label(){return this._label}set i18n(e){e&&(this._i18n={...this._i18n,...e}),this.render()}get i18n(){return this._i18n}setValue(e){this._value=e,this.render()}getValue(){return this._value}emitChange(e){this._value=e,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{path:this._path,value:e}}))}}class Yc extends vt{render(){if(this.$input&&this.$root.contains(this.$input)){const s=this._value??"";this.$input.value!==s&&document.activeElement!==this.$input&&(this.$input.value=s);return}this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("string",e.description),n=document.createElement("input");this.$input=n,n.className="input",ie(n,"field-input","field-input-text"),n.type="text",n.name=ni(this._path),n.id=Vt(this._path),e?.pattern?.source&&(n.pattern=e.pattern.source),e?.max!=null&&(n.maxLength=e.max),n.value=this._value??"",n.oninput=()=>this.emitChange(ho("string",n.value));const r=i.querySelector("label.label");r&&(r.htmlFor=n.id),i.appendChild(n),this.$root.appendChild(i)}}me("schema-form-string",Yc);class Gc extends vt{render(){if(this.$input&&this.$root.contains(this.$input)){const o=this._value??"";this.$input.value!==String(o)&&document.activeElement!==this.$input&&(this.$input.value=o);return}this.$root.innerHTML=`<style>${et}</style>`;const e=this._schema?.type??"number",i=lt(this._schema),n=this.makeFieldContainer("number",i.description),r=document.createElement("input");this.$input=r,r.className="input",ie(r,"field-input","field-input-number"),r.name=ni(this._path),r.id=Vt(this._path),i?.min!=null&&(r.min=String(i.min)),i?.max!=null&&(r.max=String(i.max)),i?.step!=null&&(r.step=String(i.step)),e==="percent"&&!r.step&&(r.step="0.01"),r.value=this._value??"",r.oninput=()=>this.emitChange(ho(e,r.value));const s=n.querySelector("label.label");s&&(s.htmlFor=r.id),i.role==="slider"?r.type="range":r.type="number",n.appendChild(r),this.$root.appendChild(n)}}me("schema-form-number",Gc);class Xc extends vt{render(){this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("boolean",e.description),n=document.createElement("label");n.className="checkbox",ie(n,"field-checkbox");const r=document.createElement("input");r.type="checkbox",r.checked=!!this._value,r.name=ni(this._path),r.id=Vt(this._path),ie(r,"field-input","field-input-checkbox");const s=document.createElement("span");s.textContent=e.description??this._label??"",ie(s,"field-checkbox-text"),r.onchange=()=>this.emitChange(r.checked);const o=i.querySelector("label.label");o&&(o.htmlFor=r.id),n.append(r,s),i.appendChild(n),this.$root.appendChild(i)}}me("schema-form-boolean",Xc);function br(t){return String(t).padStart(2,"0")}function hn(t){return`${t.getFullYear()}-${br(t.getMonth()+1)}-${br(t.getDate())}`}function po(t){return`${br(t.getHours())}:${br(t.getMinutes())}`}function wr(t){return`${hn(t)}T${po(t)}`}class Jc extends vt{render(){if(this.$input&&this.$root.contains(this.$input)){const o=lt(this._schema).role||"date";if(document.activeElement!==this.$input)if(this._value instanceof Date)o==="date"?this.$input.value=hn(this._value):o==="time"?this.$input.value=po(this._value):o==="datetime"&&(this.$input.value=wr(this._value));else if(typeof this._value=="string"&&o!=="time"){const a=new Date(this._value);isNaN(+a)||(o==="date"?this.$input.value=hn(a):o==="datetime"&&(this.$input.value=wr(a)))}else this._value||(this.$input.value="");return}this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("date",e.description),n=document.createElement("input");this.$input=n,n.className="input",ie(n,"field-input","field-input-date");const r=e.role||"date";if(r==="datetime"?n.type="datetime-local":r==="time"?n.type="time":n.type="date",n.name=ni(this._path),n.id=Vt(this._path),this._value instanceof Date)r==="date"?n.value=hn(this._value):r==="time"?n.value=po(this._value):r==="datetime"&&(n.value=wr(this._value));else if(typeof this._value=="string"&&r!=="time"){const o=new Date(this._value);isNaN(+o)||(r==="date"?n.value=hn(o):r==="datetime"&&(n.value=wr(o)))}n.oninput=()=>{e.role;let o;if(!n.value)o=void 0;else{const a=new Date(n.value);o=Number.isNaN(+a)?void 0:a}this.emitChange(o)};const s=i.querySelector("label.label");s&&(s.htmlFor=n.id),i.appendChild(n),this.$root.appendChild(i)}}me("schema-form-date",Jc);class mo extends vt{render(){this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this._schema.value;if(e.role==="raw-html"){if(i instanceof Node){this.$root.appendChild(i);return}const o=document.createElement("div");o.innerHTML=String(i),ie(o,"field-const-value"),this.$root.appendChild(o);return}const n=this.makeFieldContainer("const",e.description),r=document.createElement("section");r.className="const content",r.textContent=String(i),r.id=Vt(this._path),ie(r,"field-const-value");const s=n.querySelector("label.label");s&&(s.htmlFor=r.id),n.appendChild(r),this.$root.appendChild(n)}}me("schema-form-const",mo);function Ng(t){switch(t.type){case"string":return"schema-form-string";case"number":case"natural":case"percent":return"schema-form-number";case"boolean":return"schema-form-boolean";case"date":return"schema-form-date";case"const":return"schema-form-const";case"array":return"schema-form-array";case"object":return"schema-form-object";case"tuple":return"schema-form-tuple";case"dict":return"schema-form-dict";case"union":{const e=t.list||[];return e.length===2&&e[0]?.type==="is"&&e[0]?.constructor===Date&&e[1]?.type==="transform"&&(e[1]?.inner?.meta?.role==="datetime"||e[1]?.inner?.meta?.role==="date"||e[1]?.inner?.meta?.role==="time")?"schema-form-date":"schema-form-union"}default:return"schema-form-string"}}function Ci(t,e,i,n,r){const s=Ng(t),o=document.createElement(s);return o.schema=t,o.path=e,o.label=n,r&&(o.i18n=r),o.setValue?.(i),o.setAttribute("exportparts",Rg),o}class Zc extends vt{render(){this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("union",e.description),n=this._schema.list||[];if(Lg(n)){const r=document.createElement("select");r.className="input",ie(r,"field-input","field-input-select"),r.name=ni(this._path),r.id=Vt(this._path),n.forEach(o=>{const a=document.createElement("option");a.value=String(o.value),a.textContent=String(o.meta?.description||o.value||o.type),this._value===o.value&&(a.selected=!0),r.appendChild(a)}),r.onchange=()=>this.emitChange(ho("string",r.value));const s=i.querySelector("label.label");s&&(s.htmlFor=r.id),i.appendChild(r)}else{const r=document.createElement("div");r.className="toolbar",ie(r,"field-toolbar");const s=document.createElement("select");s.className="input",ie(s,"field-input","field-input-select","field-toolbar-select"),s.name=ni(this._path)+".__type",s.id=Vt(this._path)+"__type";let o=0;n.forEach((u,f)=>{const p=document.createElement("option");p.value=String(f),p.textContent=String(u.meta?.description||u.value||u.type),s.appendChild(p)}),s.onchange=()=>{o=Number(s.value);const u=n[o],f=Pi(u);this.emitChange(f),c()};const a=i.querySelector("label.label");a&&(a.htmlFor=s.id),r.appendChild(s),i.appendChild(r);const l=document.createElement("div");l.className="group",ie(l,"field-group");const c=()=>{l.innerHTML="";const u=n[o],f=Ci(u,this._path,this._value,this._label);f instanceof mo||(f.addEventListener("change",p=>{p.stopPropagation(),this.emitChange(p.detail.value)}),l.appendChild(f))};c(),i.appendChild(l)}this.$root.appendChild(i)}}me("schema-form-union",Zc);class eu extends vt{render(){this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("tuple",e.description),n=document.createElement("div");n.className="group",ie(n,"field-group");const r=Array.isArray(this._value)?this._value:[];(this._schema.list||[]).forEach((s,o)=>{const a=Ci(s,[...this._path,o],r[o],`${this._label??""}[${o}]`);a.addEventListener("change",l=>{l.stopPropagation();const c=Array.isArray(this._value)?this._value.slice():[];c[o]=l.detail.value,this.emitChange(c)}),n.appendChild(a)}),i.appendChild(n),this.$root.appendChild(i)}}me("schema-form-tuple",eu);class tu extends vt{render(){this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("object",e.description),n=document.createElement("div");n.className="group",ie(n,"field-group");const r=this._schema.dict||{};Object.keys(r).forEach(s=>{if(r[s]?.meta?.hidden)return;const o=(this._value??{})[s],a=Ci(r[s],[...this._path,s],o,s);a.addEventListener("change",l=>{l.stopPropagation();const c={...this._value??{}};c[s]=l.detail.value,this.emitChange(c)}),n.appendChild(a)}),i.appendChild(n),this.$root.appendChild(i)}}me("schema-form-object",tu);const Tr=class Tr extends vt{constructor(){super(...arguments),this._itemIds=[]}generateItemId(){try{if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID()}catch{}return"i"+Tr._idCounter++}ensureItemIds(e){for(;this._itemIds.length<e;)this._itemIds.push(this.generateItemId());this._itemIds.length>e&&(this._itemIds.length=e)}capturePositions(e){const i={};return e.querySelectorAll(".row").forEach(n=>{const r=n.dataset.uid;r&&(i[r]=n.getBoundingClientRect())}),i}playFLIP(e,i){Array.from(e.querySelectorAll(".row")).forEach(n=>{const r=n.dataset.uid;if(!r)return;const s=i[r];if(!s)return;const o=n.getBoundingClientRect(),a=s.left-o.left,l=s.top-o.top;(a||l)&&(n.style.transition="none",n.style.transform=`translate(${a}px, ${l}px)`,requestAnimationFrame(()=>{n.style.transition="transform .25s ease",n.style.transform=""}))})}render(){this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("array",e.description),n=document.createElement("div");n.className="group",ie(n,"field-group");const r=this._schema.inner,s=()=>Array.isArray(this._value)?this._value:[];this.ensureItemIds(s().length);const o=(c,u)=>{n.innerHTML="",s().forEach((f,p)=>{const g=[...this._path,p],m=document.createElement("div");m.className="row schema-collection-row",ie(m,"field-row","collection-row");const k=this._itemIds[p];m.dataset.uid=k,m.setAttribute("data-path",dn(g));const D=Ci(r,g,f,`${this._label??""}[${p}]`);D.addEventListener("change",y=>{y.stopPropagation();const v=s().slice();v[p]=y.detail.value,this._value=v,this.emitChange(v)});const T=document.createElement("div");T.className="actions",ie(T,"field-actions");const I=document.createElement("button");I.type="button",I.className="btn",ie(I,"field-button","field-button-secondary"),I.textContent=this._i18n.arrayMoveUp??"↑",I.onclick=()=>{if(p<=0)return;const y=this.capturePositions(n),v=s().slice();[v[p-1],v[p]]=[v[p],v[p-1]],[this._itemIds[p-1],this._itemIds[p]]=[this._itemIds[p],this._itemIds[p-1]],this._value=v,o(y),this.emitChange(v)};const b=document.createElement("button");b.type="button",b.className="btn",ie(b,"field-button","field-button-secondary"),b.textContent=this._i18n.arrayMoveDown??"↓",b.onclick=()=>{const y=s();if(p>=y.length-1)return;const v=this.capturePositions(n),x=y.slice();[x[p+1],x[p]]=[x[p],x[p+1]],[this._itemIds[p+1],this._itemIds[p]]=[this._itemIds[p],this._itemIds[p+1]],this._value=x,o(v),this.emitChange(x)};const d=document.createElement("button");d.type="button",d.className="btn danger",ie(d,"field-button","field-button-danger"),d.textContent=this._i18n.arrayRemove??"×",d.onclick=()=>{m.classList.add("leaving");const y=250;let v=!1;const x=()=>{if(v)return;v=!0,clearTimeout(E);const L=s().filter((Ce,Ne)=>Ne!==p);this._itemIds.splice(p,1);const B=this.capturePositions(n);this._value=L,o(B),this.emitChange(L)};m.addEventListener("transitionend",x,{once:!0});const E=setTimeout(x,y+80)},T.append(I,b,d),m.appendChild(D),m.appendChild(T),n.appendChild(m),u&&u===k&&(m.classList.add("enter"),requestAnimationFrame(()=>{m.classList.add("enter-active")}),requestAnimationFrame(()=>{m.classList.remove("enter")}))}),c&&this.playFLIP(n,c)};o();const a=document.createElement("button");a.type="button",a.className="btn primary",ie(a,"field-button","field-button-primary"),a.textContent=this._i18n.arrayAdd??"+",a.onclick=()=>{const c=this.capturePositions(n),u=s().slice(),f=Pi(r);u.push(f);const p=this.generateItemId();this._itemIds.push(p),this._value=u,o(c,p),this.emitChange(u)};const l=document.createElement("div");l.className="actions",ie(l,"field-actions"),l.appendChild(a),i.appendChild(n),i.appendChild(l),this.$root.appendChild(i)}};Tr._idCounter=0;let vr=Tr;me("schema-form-array",vr);class iu extends vt{render(){this.$root.innerHTML=`<style>${et}</style>`;const e=lt(this._schema),i=this.makeFieldContainer("dict",e.description),n=document.createElement("div");n.className="group",ie(n,"field-group");const r=this._schema.inner,s=this._value??{},o=p=>`d_${p}`,a=()=>{const p={};return n.querySelectorAll(".kv").forEach(g=>{const m=g.dataset.uid;m&&(p[m]=g.getBoundingClientRect())}),p},l=p=>{n.querySelectorAll(".kv").forEach(g=>{const m=g.dataset.uid;if(!m)return;const k=p[m];if(!k)return;const D=g.getBoundingClientRect(),T=k.left-D.left,I=k.top-D.top;(T||I)&&(g.style.transition="none",g.style.transform=`translate(${T}px, ${I}px)`,requestAnimationFrame(()=>{g.style.transition="transform .25s ease",g.style.transform=""}))})},c=(p,g)=>{n.innerHTML="",Object.keys(s).forEach(m=>{const k=[...this._path,m],D=document.createElement("div");D.className="kv schema-collection-row",ie(D,"field-row","collection-row"),D.dataset.uid=o(m),D.setAttribute("data-path",dn(k));const T=document.createElement("input");T.className="input",ie(T,"field-input","field-input-text"),T.value=m,T.name=ni(k)+".__key",T.id=Vt(k)+"__key";const I=Ci(r,k,s[m],`${this._label??""}[${m}]`),b=document.createElement("button");b.type="button",b.className="btn danger",ie(b,"field-button","field-button-danger"),b.textContent=this._i18n.dictRemove??"×",b.onclick=()=>{const d=a();delete s[m];const y={...this._value??{}};delete y[m],this._value=y,c(d),this.emitChange(y)},T.onchange=()=>{const d=T.value.trim();if(!d||d===m||s[d]!==void 0)return;const y=a();s[d]=s[m],delete s[m];const v={...this._value??{}};v[d]=v[m],delete v[m],this._value=v,c(y),this.emitChange(v)},I.addEventListener("change",d=>{d.stopPropagation();const y={...this._value??{}};y[m]=d.detail.value,this._value=y,this.emitChange(y)}),D.append(T,I,b),n.appendChild(D),g===m&&(D.classList.add("enter"),requestAnimationFrame(()=>D.classList.add("enter-active")),requestAnimationFrame(()=>D.classList.remove("enter")))}),p&&l(p)};c();const u=document.createElement("button");u.type="button",u.className="btn primary",ie(u,"field-button","field-button-primary"),u.textContent=this._i18n.dictAdd??"+",u.onclick=()=>{let p=Object.keys(s).length+1,g=`k${p}`;for(;s[g]!==void 0;)g=`k${++p}`;const m=a();s[g]=Pi(r);const k={...this._value??{},[g]:s[g]};this._value=k,c(m,g),this.emitChange(k)};const f=document.createElement("div");f.className="actions",ie(f,"field-actions"),f.appendChild(u),i.appendChild(n),i.appendChild(f),this.$root.appendChild(i)}}me("schema-form-dict",iu);class nu extends HTMLElement{constructor(){super(),this._i18n={...Kc},this.$root=this.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent=et,this.$root.appendChild(e);const i=document.createElement("div");i.className="wrapper",ie(i,"wrapper");const n=document.createElement("form");n.className="form",ie(n,"form"),i.appendChild(n),this.$root.appendChild(i),this.addEventListener("change",r=>{if(!r?.detail)return;const{path:s,value:o}=r.detail;Array.isArray(s)&&s.length===0?this._state=o:Ig(this._state??(this._state={}),s,o),this.dispatchEvent(new CustomEvent("form-change",{detail:{path:s,value:o,state:this._state}}))})}set schema(e){this._schema=Qc(e);try{this._state=this._schema(null,{autofix:!0})}catch{this._state=Pi(this._schema)}this.render()}get schema(){return this._schema}set schemaJSON(e){this.schema=e}get schemaJSON(){return this._schema?.toJSON?.()}setData(e,i={validate:!0,autofix:!0}){if(!this._schema)throw new Error("请先设置 schema");const n=i.validate?this._schema(e??null,{autofix:i.autofix}):e;this._state=n,this.render()}getData(e={validate:!0,autofix:!0}){if(!this._schema)throw new Error("请先设置 schema");const i=this._state;return e.validate?this._schema(i??null,{autofix:e.autofix}):i}reset(){try{this._state=this._schema(null,{autofix:!0})}catch{this._state=Pi(this._schema)}this.render()}refresh(){this.render()}set i18n(e){this._i18n={...this._i18n,...e},this.render()}get i18n(){return this._i18n}render(){if(!this._schema)return;const e=this.$root.querySelector("form");e.innerHTML="";const i=Ci(this._schema,[],this._state,this._i18n.rootLabel,this._i18n);e.appendChild(i)}}me("schema-form",nu);function Mg(){me("schema-form",nu),me("schema-form-string",Yc),me("schema-form-number",Gc),me("schema-form-boolean",Xc),me("schema-form-date",Jc),me("schema-form-const",mo),me("schema-form-union",Zc),me("schema-form-tuple",eu),me("schema-form-object",tu),me("schema-form-array",vr),me("schema-form-dict",iu)}const Dg=Ul({__name:"SchemasteryFormVue",props:Ql({schema:{},value:{},validateOnChange:{type:Boolean,default:!1}},{schema:{required:!0},schemaModifiers:{},value:{required:!1,default:{}},valueModifiers:{}}),emits:Ql(["change"],["update:schema","update:value"]),setup(t,{expose:e,emit:i}){const n=mc(t,"schema"),r=mc(t,"value"),s=i,o=em("elRef");let a=!1,l=!1;const c=u=>{if(l)return;const f=o.value,p=t.validateOnChange?f.getData({validate:!0}):u.detail.state;a=!0,r.value=p,ar(()=>{a=!1}),s("change",u.detail)};return zl(()=>{Mg()}),Vs(()=>{const u=o.value;n.value&&(u.schema=n.value),r.value!==void 0&&u.setData(r.value,{validate:!1,autofix:!0}),u.addEventListener("form-change",c)}),Wl(()=>{o.value?.removeEventListener("form-change",c)}),Si(()=>n,u=>{a||o.value&&u&&o.value.schema!==u.value&&(l=!0,o.value.schema=u.value,ar(()=>{l=!1}))},{deep:!0,immediate:!0}),Si(()=>r,u=>{if(a||!o.value||u.value===void 0)return;const f=o.value.getData({validate:!1});JSON.stringify(f)!==JSON.stringify(u.value)&&(l=!0,o.value.setData(u.value,{validate:!1}),ar(()=>{l=!1}))},{deep:!0,immediate:!0}),e({setData(u,f){const p=o.value;p.setData(u,{validate:!!f?.validate}),f?.emit&&(r.value=p.getData({validate:!!f?.validate}))},getData(u){return o.value.getData(u)},setSchema(u,f=!0){o.value.schema=u,f&&(n.value=u)},refresh(){o.value.refresh()},reset(){o.value.reset()},el:o}),(u,f)=>(Wt(),ki("schema-form",$c({ref_key:"elRef",ref:o},u.$attrs),null,16))}});function ri(t,e=new WeakMap){if(ke(t))return ri(t.value,e);if(t===null||typeof t!="object")return t;if(e.has(t))return e.get(t);if(t instanceof Date)return new Date(t);if(t instanceof RegExp)return new RegExp(t);if(t instanceof Map){const r=new Map;return e.set(t,r),Array.from(t.entries()).forEach(([s,o])=>{r.set(s,ri(o,e))}),r}if(t instanceof Set){const r=new Set;return e.set(t,r),Array.from(t).forEach(s=>{r.add(ri(s,e))}),r}if(Array.isArray(t)){const r=[];e.set(t,r);for(const s of t)r.push(ri(s,e));return r}const i=te(t),n={};e.set(t,n);for(const r of Object.keys(i))n[r]=ri(i[r],e);for(const r of Object.getOwnPropertySymbols(i))n[r]=ri(i[r],e);return n}const jg={class:"preferences-ui-app"},Ug={class:"tabbar"},Fg={class:"tabbar-tabs"},Bg=["onClick","data-value"],qg={class:"tabbar-content"},Hg={key:0},zg={style:{"max-height":"20em",overflow:"auto"}},Wg=((t,e)=>{const i=t.__vccOpts||t;for(const[n,r]of e)i[n]=r;return i})(Ul({__name:"PreferencesForm",setup(t,{expose:e}){const i=Og(),n=!1,r=Ol([]),s=Ol(""),o=ir([]),a=Tc(()=>o.value.map(u=>u.schema)),l=ir({}),c=ir({});return e({getValue(){return ri(c)}}),Si(s,u=>{u&&(l.value=c.value,o.value=i.preferences.getConfigRegistries(u))},{immediate:!0}),Vs(async()=>{i.inject(["preferences"],async u=>{const f=await u.preferences.getAll();l.value=c.value=f,r.value=u.preferences.getConfigCategories(),s.value=r.value[0].name})}),(u,f)=>(Wt(),ki("div",jg,[Ei("div",Ug,[Ei("div",Fg,[(Wt(!0),ki(at,null,Vl(r.value,p=>(Wt(),ki("a",{class:Qn(["tab",{active:s.value===p.name}]),key:p.name,onClick:g=>s.value=p.name,"data-value":p.name},Cs(p.label),11,Bg))),128))]),Ei("div",qg,[(Wt(!0),ki(at,null,Vl(a.value,(p,g)=>(Wt(),Sc(Hs(Dg),{key:`${s.value}-${g}`,schema:p,value:l.value,"onUpdate:value":f[0]||(f[0]=m=>c.value=m),"validate-on-change":!1,i18n:{rootLabel:""}},null,8,["schema","value"]))),128))])]),Hs(n)?(Wt(),ki("details",Hg,[Ei("pre",zg,Cs(c.value),1)])):zm("",!0)]))}}),[["__scopeId","data-v-59cb1172"]]),Kg=window?.location?.origin,Vg=({type:t,tag:e,href:i,target:n,children:r,...s})=>(e=e||(i?"a":"button"),typeof n>"u"&&i&&i.startsWith("http")&&!i.startsWith(Kg)&&(n="_blank"),Pd(e,{className:`theme-ipe ipe-action-button ipe-modal-btn is-${t||"default"}`,href:e==="a"?i:void 0,target:e==="a"?n:void 0,"data-href":e!=="a"?i:void 0,...s},r));var Qg=Object.create,go=Object.defineProperty,Yg=Object.getOwnPropertyDescriptor,ru=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),su=t=>{throw TypeError(t)},Gg=(t,e,i)=>e in t?go(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Xg=(t,e)=>go(t,"name",{value:e,configurable:!0}),Jg=t=>[,,,Qg(t?.[ru("metadata")]??null)],Zg=["class","method","getter","setter","accessor","field","value","get","set"],ou=t=>t!==void 0&&typeof t!="function"?su("Function expected"):t,ey=(t,e,i,n,r)=>({kind:Zg[t],name:e,metadata:n,addInitializer:s=>i._?su("Already initialized"):r.push(ou(s||null))}),ty=(t,e)=>Gg(e,ru("metadata"),t[3]),iy=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},ny=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&Yg(r,i));Xg(r,i);for(var m=n.length-1;m>=0;m--)l=ey(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,ou(o)&&(r=o);return ty(t,r),g&&go(r,i,g),u?c^4?s:g:r},au,yo,lu;au=[xe(["preferences","modal"])];class _r extends(lu=Ve){constructor(e){super(e,{},"preferences-ui"),this.ctx=e,this._latestModal=null,e.set("preferencesUI",this),e.set("prefsModal",this),e.preferences.defineCategory({name:"about",label:"About",description:"About InPageEdit",index:99}),e.preferences.registerCustomConfig("about",Y.object({about:Y.const(h("div",{className:"prose",children:[h("h2",{children:"✏️ InPageEdit NEXT"}),h("i",{children:["v",this.ctx.version]}),h("h2",{children:"Portals"}),h("div",{style:"display: flex; flex-direction: column; gap: 1rem",children:[h("a",{href:this.ctx.Endpoints.HOME_URL,target:"_blank",style:{display:"block",width:"100%"},children:"Official Website & Help Center"}),h(Vg,{href:`${this.ctx.Endpoints.UPDATE_LOGS_URL}#${this.ctx.version}`,style:{display:"block",width:"100%"},children:"Update Logs"})]}),h("h2",{children:"Join us"}),h("ul",{children:[h("li",{children:[h("strong",{children:"GitHub"}),":"," ",h("a",{href:this.ctx.Endpoints.GITHUB_URL,target:"_blank",children:"inpageedit/inpageedit-next"})]}),h("li",{children:[h("strong",{children:"QQ Group"}),": 1026023666"]})]}),h("hr",{}),h("p",{children:"🚀 Modular, Extensible Supercharged Plugin for MediaWiki."}),h("p",{children:"InPageEdit-NEXT Copyright © 2025-present dragon-fish"})]})).role("raw-html")}).description(""),"about"),e.inject(["toolbox"],i=>{i.toolbox.addButton({id:"preferences",icon:h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",class:"icon icon-tabler icons-tabler-filled icon-tabler-settings",children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M14.647 4.081a.724 .724 0 0 0 1.08 .448c2.439 -1.485 5.23 1.305 3.745 3.744a.724 .724 0 0 0 .447 1.08c2.775 .673 2.775 4.62 0 5.294a.724 .724 0 0 0 -.448 1.08c1.485 2.439 -1.305 5.23 -3.744 3.745a.724 .724 0 0 0 -1.08 .447c-.673 2.775 -4.62 2.775 -5.294 0a.724 .724 0 0 0 -1.08 -.448c-2.439 1.485 -5.23 -1.305 -3.745 -3.744a.724 .724 0 0 0 -.447 -1.08c-2.775 -.673 -2.775 -4.62 0 -5.294a.724 .724 0 0 0 .448 -1.08c-1.485 -2.439 1.305 -5.23 3.744 -3.745a.722 .722 0 0 0 1.08 -.447c.673 -2.775 4.62 -2.775 5.294 0zm-2.647 4.919a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z"})]}),tooltip:"Configure Preferences",group:"group2",index:1/0,onClick:()=>this.showModal()}),this.addDisposeHandler(n=>{n.toolbox.removeButton("preferences")})})}async start(){Promise.resolve().then(()=>jb).then(({PluginPrefSync:e})=>{this.ctx.plugin(e)}).catch(this.ctx.logger.warn)}stop(){}showModal(){if(this._latestModal&&!this._latestModal.isDestroyed)return this._latestModal;const e=this.ctx.modal.show({className:"ipe-preference compact-buttons",sizeClass:"small",outSideClose:!1,center:!0,title:`InPageEdit Preferences (${this.ctx.version})`,content:h(Ct,{children:h(jt,{})})});e.get$window().classList.add("dialog");const i=h("div",{id:"ipe-preferences-app",style:{minHeight:"65vh"}});e.setContent(i);const n=this.createForm(),r=n.mount(i);return e.setButtons([{label:"Cancel",className:"is-danger is-ghost",method:()=>{e.close()}},{label:"Save",className:"is-primary is-ghost",method:()=>{const s=r.getValue();this.logger.info("saving preferences",s);try{Object.entries(s).forEach(([o,a])=>{this.ctx.preferences.set(o,a).catch(console.error)})}catch(o){this.logger.error("failed to save preferences",o)}e.close(),this.ctx.modal.notify("success",{title:"Preferences Saved",content:h("p",{children:"Some settings may take effect after reloading the page."})})}}]),this._latestModal=e,e.on(e.Event.Close,()=>{this.logger.debug("preferences modal closed, vue app unmounting"),n.unmount(),this._latestModal=null}),e}closeModal(){this._latestModal?.close()}getExistingModal(){return this._latestModal}createForm(){return Ag(this.ctx,Wg)}}yo=Jg(lu),_r=ny(yo,0,"PluginPreferencesUI",au,_r),iy(yo,1,_r);const ry=Object.freeze(Object.defineProperty({__proto__:null,get PluginPreferencesUI(){return _r}},Symbol.toStringTag,{value:"Module"})),sy=Symbol("@@apply"),oy=Symbol("@@ctor");function bo(t,e){if(typeof t!="object"||t===null||Array.isArray(t))throw new TypeError("instance is not an object");const i=(...s)=>{const o=t[e];if(typeof o!="function")throw new TypeError(`Property "${String(e)}" is not a function`);return o.apply(t,s)};i[sy]=i,i[oy]=t;const n=t?.constructor?.name;return n&&(i[Symbol.toStringTag]=n),new Proxy(i,{get(s,o,a){return o==="prototype"?Reflect.get(i,o,a):Reflect.get(t,o,t)},set(s,o,a){return Reflect.set(t,o,a)},has(s,o){return Reflect.has(t,o)},deleteProperty(s,o){return Reflect.deleteProperty(t,o)},ownKeys(){return Reflect.ownKeys(t)},getOwnPropertyDescriptor(s,o){return Object.getOwnPropertyDescriptor(t,o)},defineProperty(s,o,a){return Object.defineProperty(t,o,a)}})}const xr={mbox:"_mbox_5x43w_1",title:"_title_5x43w_12",content:"_content_5x43w_19",close:"_close_5x43w_27"},pn=t=>{const{type:e="default",title:i,content:n,closeable:r=!0,titleProps:s,contentProps:o,children:a,...l}=t;let c=i;typeof i>"u"&&e!=="default"&&(c=e[0].toUpperCase()+e.slice(1).toLowerCase());const u=async()=>{if(!f)return Promise.resolve();const{promise:p,resolve:g}=Promise.withResolvers();return f.animate([{opacity:"1",height:f.clientHeight+"px"},{opacity:"0",height:"0px",margin:"0px"}],{duration:300,easing:"ease"}).addEventListener("finish",()=>{f.remove(),g()}),p},f=h("div",{className:`theme-ipe ipe-mbox mbox-type-${e||"default"} ${xr.mbox}`,...l,children:[c&&h("div",{className:`ipe-mbox-title ${xr.title}`,...s,children:c}),h("div",{className:`ipe-mbox-content ${xr.content}`,...o,children:a||n}),r&&h("a",{onClick:u,className:`ipe-mbox-close ${xr.close}`,children:"×"})]});return f.close=u,f},mn=t=>{const{label:e,id:i,name:n,value:r,disabled:s,labelProps:o,inputProps:a,...l}=t;return h("div",{className:"theme-ipe ipe-input-box",...l,children:[h("label",{htmlFor:i,style:{display:"block"},...o,children:e}),h("input",{id:i,name:n,value:r,disabled:s,style:{width:"100%"},...a})]})},ay=t=>{const{id:e,name:i,value:n,label:r,inputProps:s,labelProps:o,children:a,...l}=t;return h("label",{className:"theme-ipe ipe-radio-box",...l,children:[h("input",{type:"radio",id:e,name:i,value:n,...s}),h("span",{className:"ipe-checkbox-box"}),h("span",{...o,children:r||a})]})},Oi=t=>{const{id:e,name:i,label:n,checked:r,inputProps:s,labelProps:o,children:a,...l}=t;return h("label",{className:"theme-ipe ipe-checkbox",...l,children:[h("input",{type:"checkbox",id:e,name:i,checked:r,...s}),h("span",{className:"ipe-checkbox-box"}),h("span",{...o,children:n||a})]})},wo=()=>{},ly=(t=0)=>new Promise(e=>setTimeout(e,t));var cy=Object.create,vo=Object.defineProperty,uy=Object.getOwnPropertyDescriptor,cu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),uu=t=>{throw TypeError(t)},fy=(t,e,i)=>e in t?vo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,dy=(t,e)=>vo(t,"name",{value:e,configurable:!0}),hy=t=>[,,,cy(t?.[cu("metadata")]??null)],py=["class","method","getter","setter","accessor","field","value","get","set"],fu=t=>t!==void 0&&typeof t!="function"?uu("Function expected"):t,my=(t,e,i,n,r)=>({kind:py[t],name:e,metadata:n,addInitializer:s=>i._?uu("Already initialized"):r.push(fu(s||null))}),gy=(t,e)=>fy(e,cu("metadata"),t[3]),yy=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},by=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&uy(r,i));dy(r,i);for(var m=n.length-1;m>=0;m--)l=my(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,fu(o)&&(r=o);return gy(t,r),g&&vo(r,i,g),u?c^4?s:g:r},du,_o,hu;du=[xe(["api","wikiPage","wikiTitle","currentPage","wiki","modal","preferences"]),pi(Y.object({"quickEdit.editSummary":Y.string().description("Default edit summary for quick edits").default("[IPE-NEXT] Quick edit"),"quickEdit.editMinor":Y.boolean().description('Default to checking "minor edit" option').default(!1),"quickEdit.outSideClose":Y.boolean().description("Close editor modal by clicking outside").default(!0),"quickEdit.watchList":Y.union([Y.const(Je.preferences).description("Follow MW preferences"),Y.const(Je.nochange).description("Keep the current watchlist status"),Y.const(Je.watch).description("Add the page to watchlist"),Y.const(Je.unwatch).description("Remove the page from watchlist")]).description("Watchlist options").default(Je.preferences),"quickEdit.keyshortcut.save":Y.string().default("ctrl-s").description("save button key shortcut (blank to disable)"),"quickEdit.editFont":Y.union([Y.const("preferences").description("Follow MW preferences"),Y.const("monospace").description("Monospace"),Y.const("sans-serif").description("Sans-serif"),Y.const("serif").description("Serif"),Y.string().description("Custom font (same as CSS `font-family` property)").default("")]).description("Font to use in quick edit's textarea").default("preferences")}).description("Quick edit options").extra("category","edit"))];let Sr=(oi=class extends(hu=Ve){constructor(e){super(e,{},"quick-edit"),this.ctx=e,this.DEFAULT_OPTIONS={title:"",pageId:0,revision:0,section:void 0,editMinor:!1,editSummary:"",createOnly:!1,reloadAfterSave:!0},this.ctx.root.set("quickEdit",bo(this,"showModal"))}start(){this.ctx.inject(["toolbox"],e=>{this.injectToolbox(e),e.on("dispose",()=>{this.removeToolbox(e)})})}async showModal(e){if(typeof e>"u"?e={}:typeof e=="string"&&(e={title:e}),e?.page&&(e.title=e.page,delete e.page),!e.title&&!e.pageId&&!e.revision){this.logger.warn("None of the title, pageId or revision provided. Using defaults.");const I=new URLSearchParams(window.location.search),b=this.ctx.currentPage.wikiTitle;e={...e,title:b?.getPrefixedDBKey(),revision:I.has("oldid")?Number(I.get("oldid")):void 0,pageId:I.has("curid")?Number(I.get("curid")):void 0}}if(!e.revision&&!e.pageId&&e.title){const I=this.ctx.wikiTitle.resolveSpecialPageTarget(e.title);I&&I.title.getNamespaceId()>=0&&(e.title=I.title.getPrefixedDBKey(),e.section??(e.section=I.section))}const i=await this.ctx.preferences.get("quickEdit.outSideClose"),n=await this.ctx.preferences.get("quickEdit.watchList"),r=typeof e.editSummary=="string"?e.editSummary:await this.ctx.preferences.get("quickEdit.editSummary"),s=typeof e.editMinor=="boolean"?e.editMinor:await this.ctx.preferences.get("quickEdit.editMinor"),o=await this.getEditFontOptions(),a={...this.DEFAULT_OPTIONS,editSummary:r,editMinor:s,...e};a.editSummary||(a.editSummary=await this.ctx.preferences.get("quickEdit.editSummary")||""),this.ctx.emit("quick-edit/init-options",{ctx:this.ctx,options:a});const l=this.ctx.modal.createObject({className:"ipe-quickEdit",sizeClass:"large",center:!1,outSideClose:i}).init();l.setTitle(h(Ct,{children:["Loading: ",h("u",{children:a.title})]})),l.setContent(h("section",{className:"ipe-quickEdit-loading",style:{height:"70vh",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},children:h(jt,{})})),l.addButton({side:"right",type:"button",className:"is-danger is-ghost",label:"Cancel",method(){l.close()}}),l.show(),this.ctx.emit("quick-edit/show-modal",{ctx:this.ctx,modal:l,options:a});let c;try{if(c=await this.getWikiPageFromPayload(a),c.pageInfo.special)throw new Error("Special page is not editable")}catch(I){l.off(l.Event.Close),l.close(),this.ctx.modal.notify("error",{content:I instanceof Error?I.message:String(I)});return}const u=a.section==="new"?"":c.revisions[0]?.content||"",f=c.revisions[0]?.revid,p=f&&f!==c.lastrevid,g=a.section==="new",m=c.pageid===0;l.setTitle(h(Ct,{children:[g?"New section":`Quick ${m?"Create":"Edit"}`,":"," ",h("u",{children:c.pageInfo.title}),p?` (Revision ${f})`:""]}));const k=[];m&&k.push(h(pn,{title:"Attention",type:"important",children:h("p",{children:"This page does not exist."})})),p&&k.push(h(pn,{title:"Attention",type:"warning",children:h("p",{children:["You are editing a ",h("em",{children:"historical version"}),"; the content is not the latest!"]})})),this.ctx.emit("quick-edit/edit-notice",{ctx:this.ctx,options:a,modal:l,wikiPage:c,editNotices:k});const D=h("form",{className:"ipe-quickEdit__form",children:[h("div",{className:"ipe-quickEdit__notices",children:k}),h("div",{className:"ipe-quickEdit__content",style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[a.section==="new"&&h(Ct,{children:h(mn,{label:"Section title",id:"summary",name:"summary",value:"",inputProps:{placeholder:"Topic for new section, this will be the h2 heading"}})}),h("textarea",{className:`ipe-quickEdit__textarea ${o.className}`,style:{fontFamily:o.fontFamily},name:"text",id:"wpTextbox1",children:u})]}),h("div",{class:"ipe-quickEdit__options",style:{display:"flex",flexDirection:"column",gap:"1rem",marginTop:"1rem"},children:[!g&&h(mn,{label:"Summary",id:"summary",name:"summary",value:a.editSummary}),h("div",{className:"ipe-input-box",children:[h("label",{htmlFor:"watchlist",style:{display:"block"},children:"Watchlist"}),h("div",{style:{display:"flex",gap:"1rem"},children:[Je.preferences,Je.nochange,Je.watch,Je.unwatch].map(I=>h(ay,{name:"watchlist",value:I,inputProps:{checked:n===I},children:I},I))})]}),h("div",{style:{display:"flex",gap:"1rem"},children:[h(Oi,{name:"minor",id:"minor",checked:a.editMinor,children:"Minor edit"}),h(Oi,{name:"reloadAfterSave",id:"reloadAfterSave",checked:a.reloadAfterSave,children:"Reload after save"})]})]}),!1]});l.setContent(D),l.addButton({side:"left",className:"is-primary submit-btn",label:"Submit",keyPress:await this.ctx.preferences.get("quickEdit.keyshortcut.save")||void 0,method:()=>{const I=new FormData(D);l.setLoadingState(!0),this.handleSubmit({wikiPage:c,text:I.get("text"),summary:I.get("summary"),minor:I.get("minor")==="on",section:a.section,createonly:c.pageid===0,watchlist:n}).then(async()=>{l.setOptions({beforeClose:wo}),l.close(),this.ctx.modal.notify("success",{title:"Submission Successful",content:"Your changes have been saved."}),I.get("reloadAfterSave")&&(await ly(500),location.reload())}).catch(b=>{this.ctx.modal.notify("error",{title:"Submission Error",content:b instanceof Error?b.message:String(b)}),l.setLoadingState(!1)})}},0),l.setOptions({beforeClose:()=>{const I=c.revisions[0]?.content||"";return(D.querySelector("textarea")?.value||"")===I?!0:(this.ctx.modal.confirm({className:"is-primary",title:"Unsaved Changes",content:"All edit contents will be lost after closing the modal. Are you sure you want to close?",center:!0,okBtn:{label:"Give Up",className:"is-danger is-ghost"},cancelBtn:{label:"Continue Editing",className:"is-primary is-ghost"}},d=>(d&&(l.setOptions({beforeClose:wo}),l.close()),!0)),!1)}}),this.ctx.emit("quick-edit/wiki-page",{ctx:this.ctx,options:a,modal:l,wikiPage:c});const T=I=>D.querySelector("textarea")?.value===u?!0:(I.preventDefault(),"You have unsaved changes. Are you sure you want to leave?");window.addEventListener("beforeunload",T),l.on(l.Event.Close,()=>{window.removeEventListener("beforeunload",T)})}async handleSubmit(e){const i=e.wikiPage,n=e.summary||"",r=e.text||"",s=e.minor,o=e.createonly,a=e.watchlist,l=e.section;return this.ctx.emit("quick-edit/submit",{ctx:this.ctx,wikiPage:i,summary:n,text:r,minor:s,createonly:o,watchlist:a}),i.edit({summary:n,text:r,watchlist:a,section:l},{minor:s,createonly:o})}async getEditFontOptions(){const e=await this.ctx.preferences.get("quickEdit.editFont");return oi.BUILT_IN_FONT_OPTIONS.includes(e)?{className:`mw-editfont-${e==="preferences"?this.ctx.wiki.userOptions?.editfont||"monospace":e}`,fontFamily:""}:{className:"mw-editfont-custom",fontFamily:e}}async getWikiPageFromPayload(e){if(e.revision)return this.ctx.wikiPage.newFromRevision(e.revision,e.section);if(e.pageId)return this.ctx.wikiPage.newFromPageId(e.pageId,e.section);if(e.title)return this.ctx.wikiPage.newFromTitle(e.title,!1,e.section);throw new Error("Invalid payload")}async injectToolbox(e){const i=this.ctx.currentPage.wikiTitle,n=this.ctx.wiki.hasRight("edit")&&i&&i.getNamespaceId()>=0;e.toolbox.addButton({id:"quick-edit",group:"group1",index:0,icon:h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-edit",children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1"}),h("path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z"}),h("path",{d:"M16 5l3 3"})]}),buttonProps:{disabled:!n},tooltip:n?"Quick Edit":"Not editable",onClick:()=>{const r=new URLSearchParams(window.location.search).get("oldid");this.showModal({title:i?.getPrefixedText(),revision:r?Number(r):void 0})}})}removeToolbox(e){e.toolbox.removeButton("quick-edit")}},oi.BUILT_IN_FONT_OPTIONS=["preferences","monospace","sans-serif","serif"],oi);_o=hy(hu),Sr=by(_o,0,"PluginQuickEdit",du,Sr),yy(_o,1,Sr);const wy=Object.freeze(Object.defineProperty({__proto__:null,PluginQuickEdit:Sr},Symbol.toStringTag,{value:"Module"}));var vy=Object.create,xo=Object.defineProperty,_y=Object.getOwnPropertyDescriptor,pu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),mu=t=>{throw TypeError(t)},xy=(t,e,i)=>e in t?xo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Sy=(t,e)=>xo(t,"name",{value:e,configurable:!0}),ky=t=>[,,,vy(t?.[pu("metadata")]??null)],Ey=["class","method","getter","setter","accessor","field","value","get","set"],gu=t=>t!==void 0&&typeof t!="function"?mu("Function expected"):t,$y=(t,e,i,n,r)=>({kind:Ey[t],name:e,metadata:n,addInitializer:s=>i._?mu("Already initialized"):r.push(gu(s||null))}),Py=(t,e)=>xy(e,pu("metadata"),t[3]),Cy=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},Oy=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&_y(r,i));Sy(r,i);for(var m=n.length-1;m>=0;m--)l=$y(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,gu(o)&&(r=o);return Py(t,r),g&&xo(r,i,g),u?c^4?s:g:r},yu,So,bu;yu=[xe(["api","wikiPage","wikiTitle","currentPage","wiki","modal","preferences"]),pi(Y.object({deleteReason:Y.string().description("Default delete reason for quick delete").default("[IPE-NEXT] Quick delete")}).description("Quick delete options").extra("category","delete"))];class kr extends(bu=Ve){constructor(e){super(e,{},"quick-delete"),this.ctx=e,this.DEFAULT_OPTIONS={title:"",pageId:0,revision:0,deleteReason:"",reloadAfterDelete:!0},this.ctx.root.set("quickDelete",bo(this,"showModal"))}start(){this.ctx.inject(["toolbox"],e=>{this.injectToolbox(e),e.on("dispose",()=>{this.removeToolbox(e)})}),this.ctx.preferences.defineCategory({label:"Delete",name:"delete",description:"Settings related to deleting pages",index:3})}async showModal(e){if(typeof e>"u"?e={}:typeof e=="string"&&(e={title:e}),!e.title&&!e.pageId&&!e.revision){this.logger.warn("None of the title, pageId or revision provided. Using defaults.");const l=new URLSearchParams(window.location.search),c=this.ctx.currentPage.wikiTitle;e={...e,title:c?.getPrefixedDBKey(),revision:l.has("oldid")?Number(l.get("oldid")):void 0,pageId:l.has("curid")?Number(l.get("curid")):void 0}}const i=typeof e.deleteReason=="string"?e.deleteReason:await this.ctx.preferences.get("deleteReason"),n={...this.DEFAULT_OPTIONS,deleteReason:i,...e};n.deleteReason||(n.deleteReason=await this.ctx.preferences.get("deleteReason")||""),n||this.ctx.emit("quick-delete/init-options",{ctx:this.ctx,options:n});const r=this.ctx.modal.createObject({className:"ipe-quickDelete",sizeClass:"small",center:!0}).init();r.setTitle(h(Ct,{children:["Loading: ",h("u",{children:n.title})]})),r.setContent(h(jt,{})),r.addButton({side:"right",type:"button",className:"is-ghost",label:"Cancel",method(){r.close()}}),r.show(),this.ctx.emit("quick-delete/show-modal",{ctx:this.ctx,modal:r,options:n});let s;try{if(s=await this.getWikiPageFromPayload(n),s.pageInfo.special)throw new Error("Special page cannot be deleted");if(s.pageInfo.pageid===0)throw new Error("Page does not exist, cannot be deleted")}catch(l){r.off(r.Event.Close),r.close(),this.ctx.modal.notify("error",{content:l instanceof Error?l.message:String(l)});return}r.setTitle(h(Ct,{children:["Quick Delete: ",h("u",{children:s.pageInfo.title})]}));const o=[];s.userCan("delete")||o.push(h(pn,{title:"Permission Denied",type:"error",children:h("p",{children:"You do not have permission to delete this page."})})),s.pageInfo.protection&&s.pageInfo.protection.length>0&&o.push(h(pn,{title:"Warning",type:"warning",children:h("p",{children:"This page is protected and may has special use or purpose. Delete it at your own risk."})})),this.ctx.emit("quick-delete/delete-notice",{ctx:this.ctx,options:n,modal:r,wikiPage:s,deleteNotices:o});const a=h("form",{className:"ipe-quickDelete__form",children:[h("div",{className:"ipe-quickDelete__notices",children:o}),h("div",{className:"ipe-quickDelete__content",children:h("div",{className:"ipe-quickDelete__page-info",style:{padding:"1rem",backgroundColor:"#f8f9fa",border:"1px solid #dee2e6",borderRadius:"4px",marginBottom:"1rem"},children:h("ul",{children:[h("li",{children:[h("strong",{children:"Title:"})," ",s.pageInfo.title]}),h("li",{children:[h("strong",{children:"Page ID:"})," ",s.pageInfo.pageid]}),h("li",{children:[h("strong",{children:"Last Revision:"})," ",s.pageInfo.lastrevid]}),h("li",{children:[h("strong",{children:"Length:"})," ",s.pageInfo.length," characters"]})]})})}),h("div",{class:"ipe-quickDelete__options",style:{display:"flex",flexDirection:"column",gap:"1rem",marginTop:"1rem"},children:h(mn,{label:"Delete Reason",id:"reason",name:"reason",value:n.deleteReason,inputProps:{placeholder:"Enter reason for deletion...",required:!0}})}),!1]});r.setContent(a),r.addButton({side:"left",className:"is-danger submit-btn",label:"Delete Page",method:()=>{const c=new FormData(a).get("reason");if(!c||c.trim()===""){this.ctx.modal.notify("error",{title:"Missing Reason",content:"Please provide a reason for deletion."});return}this.ctx.modal.confirm({className:"is-danger",title:"Confirm Deletion",content:h(Ct,{children:h("p",{children:h("strong",{children:s.pageInfo.title})})}),center:!0,okBtn:{label:"Delete it now",className:"is-danger"},cancelBtn:{label:"Cancel",className:"is-ghost"}},u=>(u&&(r.setLoadingState(!0),this.handleSubmit({wikiPage:s,reason:c}).then(async()=>{r.setOptions({beforeClose:wo}),r.close(),this.ctx.modal.notify("success",{title:"Deletion Successful",content:`The page "${s.pageInfo.title}" has been deleted.`}),this.ctx.emit("quick-delete/submit",{ctx:this.ctx,wikiPage:s,reason:c})}).catch(f=>{this.ctx.modal.notify("error",{title:"Deletion Error",content:f instanceof Error?f.message:String(f)}),r.setLoadingState(!1)})),!0))}},0),this.ctx.emit("quick-delete/wiki-page",{ctx:this.ctx,options:n,modal:r,wikiPage:s})}async handleSubmit(e){const i=e.wikiPage,n=e.reason||"";return i.delete(n)}async getWikiPageFromPayload(e){if(e.revision)return this.ctx.wikiPage.newFromRevision(e.revision);if(e.pageId)return this.ctx.wikiPage.newFromPageId(e.pageId);if(e.title)return this.ctx.wikiPage.newFromTitle(e.title,!1);throw new Error("Invalid payload")}async injectToolbox(e){const i=this.ctx.currentPage.wikiTitle,n=i&&this.ctx.wiki.hasRight("delete")&&i.getNamespaceId()>=0;e.toolbox.addButton({id:"quick-delete",group:"group2",icon:h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-trash",children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M4 7l16 0"}),h("path",{d:"M10 11l0 6"}),h("path",{d:"M14 11l0 6"}),h("path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"}),h("path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"})]}),buttonProps:{disabled:!n},tooltip:n?"Quick Delete":"Not deletable",onClick:()=>{this.showModal({title:i?.getPrefixedText()})}})}removeToolbox(e){e.toolbox.removeButton("quick-delete")}}So=ky(bu),kr=Oy(So,0,"PluginQuickDelete",yu,kr),Cy(So,1,kr);const Ay=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickDelete(){return kr}},Symbol.toStringTag,{value:"Module"})),gn={twinSwapInput:"_twinSwapInput_1gdgl_9",inputWrapper:"_inputWrapper_1gdgl_23",inputLeft:"_inputLeft_1gdgl_27",inputRight:"_inputRight_1gdgl_30",swapButton:"_swapButton_1gdgl_46"},wu=t=>{const{inputs:e,enableSwap:i=!0,...n}=t,r=e?.length===2?e:[e?.[0]??{},e?.[1]??{}],s=[null,null];let o=0,a=null,l=null;const c=()=>s.some(m=>m&&m.disabled),u=()=>{if(!s[0]||!s[1]||c())return;const m=s[0],k=s[1],D=m.value,T=k.value;m.value=T,k.value=D,m.dispatchEvent(new Event("change")),k.dispatchEvent(new Event("change")),o++,l&&(l.style.transform=`rotateY(${o*-180}deg)`,l.style.transition="transform 200ms ease")},f=m=>{if(!a)return;const k=m??!a.disabled;a.disabled=!k,k&&s.forEach(D=>{D&&(D.disabled=!1)})},p=h("button",{type:"button","aria-label":"Swap values",onClick:u,disabled:c()||!i,ref:m=>a=m,children:h("svg",{ref:m=>l=m,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon-tabler icons-tabler-outline icon-tabler-transfer",children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M20 10h-16l5.5 -6"}),h("path",{d:"M4 14h16l-5.5 6"})]})}),g=h("div",{className:`twin-swap-input ${gn.twinSwapInput}`,...n,children:[r.map((m,k)=>{const{label:D,id:T,name:I,value:b,disabled:d,required:y,inputProps:v}=m,x=k===0,E=T||I;return h("div",{className:`${gn.inputWrapper} ${x?gn.inputLeft:gn.inputRight}`,children:[D&&h("label",{htmlFor:E,children:D}),h("input",{ref:L=>s[k]=L,type:"text",id:E,name:I,value:b,disabled:d,required:y,...v})]})}),h("div",{className:gn.swapButton,children:p})]});return g.swap=u,g.toggleEnableSwap=f,g};var Iy=Object.create,ko=Object.defineProperty,Ty=Object.getOwnPropertyDescriptor,vu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),_u=t=>{throw TypeError(t)},Ry=(t,e,i)=>e in t?ko(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ly=(t,e)=>ko(t,"name",{value:e,configurable:!0}),Ny=t=>[,,,Iy(t?.[vu("metadata")]??null)],My=["class","method","getter","setter","accessor","field","value","get","set"],xu=t=>t!==void 0&&typeof t!="function"?_u("Function expected"):t,Dy=(t,e,i,n,r)=>({kind:My[t],name:e,metadata:n,addInitializer:s=>i._?_u("Already initialized"):r.push(xu(s||null))}),jy=(t,e)=>Ry(e,vu("metadata"),t[3]),Uy=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},Fy=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&Ty(r,i));Ly(r,i);for(var m=n.length-1;m>=0;m--)l=Dy(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,xu(o)&&(r=o);return jy(t,r),g&&ko(r,i,g),u?c^4?s:g:r},Su,Eo,ku;Su=[xe(["modal","wiki"])];class Er extends(ku=Ve){constructor(e){super(e,{},"quick-move"),this.ctx=e,e.set("quickMove",this.quickMove.bind(this)),e.set("movePage",this.movePage.bind(this))}start(){this.ctx.inject(["toolbox"],e=>{this.injectToolbox(e)})}injectToolbox(e){const i=window.mw?.config.get("wgPageName")||"",n=window.mw?.config.get("wgIsProbablyEditable");e.toolbox.addButton({id:"quick-move",icon:h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-forms",children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M12 3a3 3 0 0 0 -3 3v12a3 3 0 0 0 3 3"}),h("path",{d:"M6 3a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3"}),h("path",{d:"M13 7h7a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-7"}),h("path",{d:"M5 7h-1a1 1 0 0 0 -1 1v8a1 1 0 0 0 1 1h1"}),h("path",{d:"M17 12h.01"}),h("path",{d:"M13 12h.01"})]}),tooltip:"Quick Move",group:"group1",index:1,onClick:()=>{this.quickMove(n?{lockFromField:!0,from:i}:{})}})}quickMove(e){const i=this.ctx.modal.createObject({title:"Quick Move",content:h(jt,{}),className:"quick-move compact-buttons",sizeClass:"smallToMedium",center:!0}).init();let n=null;return i.setContent(h("form",{ref:r=>n=r,style:{display:"flex",flexDirection:"column",gap:"1rem"},onSubmit:r=>{if(r.preventDefault(),n?.checkValidity(),!n?.reportValidity())return;const s=new FormData(n),o={from:s.get("from")?.toString().trim(),to:s.get("to")?.toString().trim(),reason:s.get("reason")||"",movetalk:s.get("movetalk")==="on",movesubpages:s.get("movesubpages")==="on",noredirect:s.get("noredirect")==="on"};if(!o.from||!o.to){this.ctx.modal.notify("error",{title:"Failed to move",content:"From and to are required."});return}this.ctx.emit("quick-move/submit",{ctx:this.ctx,modal:i,payload:o}),i.setLoadingState(!0),this.movePage(o).then(()=>{location.reload()}).catch(a=>{i.setLoadingState(!1),this.ctx.modal.notify("error",{title:"Failed to move",content:a instanceof Error?a.message:String(a)})})},children:[h(wu,{inputs:[{label:"Move from",name:"from",value:e?.from,required:!0},{label:"Move to",name:"to",value:e?.to,required:!0}]}),h("div",{children:h(Oi,{name:"movetalk",id:"movetalk",checked:e?.movetalk,children:"Move talk page"})}),h("div",{children:h(Oi,{name:"movesubpages",id:"movesubpages",checked:e?.movesubpages,children:"Move subpage(s) (up to 100)"})}),this.ctx.wiki.hasRight("suppressredirect")&&h("div",{children:h(Oi,{name:"noredirect",id:"noredirect",checked:e?.noredirect,children:"Move without leaving a redirect"})}),h(mn,{label:"Reason",id:"reason",name:"reason",value:e?.reason})]})),i.setButtons([{label:"Move",className:"is-primary is-ghost",method:()=>{n?.dispatchEvent(new Event("submit"))}}]),i.show()}async movePage(e){const{from:i,to:n,reason:r="",...s}=e;if(!i||!n)throw new Error("From and to titles are required.");if(i===n)throw new Error("From and to titles cannot be the same.");return(await this.ctx.wikiPage.newFromTitle(i)).moveTo(n,r,s)}}Eo=Ny(ku),Er=Fy(Eo,0,"PluginQuickMove",Su,Er),Uy(Eo,1,Er);const By=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickMove(){return Er}},Symbol.toStringTag,{value:"Module"}));var qy=Object.create,$o=Object.defineProperty,Hy=Object.getOwnPropertyDescriptor,Eu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),$u=t=>{throw TypeError(t)},zy=(t,e,i)=>e in t?$o(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Wy=(t,e)=>$o(t,"name",{value:e,configurable:!0}),Ky=t=>[,,,qy(t?.[Eu("metadata")]??null)],Vy=["class","method","getter","setter","accessor","field","value","get","set"],Pu=t=>t!==void 0&&typeof t!="function"?$u("Function expected"):t,Qy=(t,e,i,n,r)=>({kind:Vy[t],name:e,metadata:n,addInitializer:s=>i._?$u("Already initialized"):r.push(Pu(s||null))}),Yy=(t,e)=>zy(e,Eu("metadata"),t[3]),Gy=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},Xy=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&Hy(r,i));Wy(r,i);for(var m=n.length-1;m>=0;m--)l=Qy(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,Pu(o)&&(r=o);return Yy(t,r),g&&$o(r,i,g),u?c^4?s:g:r},Cu,Po,Ou;Cu=[xe(["api","wikiPage","modal","preferences"]),pi(Y.object({"quickPreview.keyshortcut":Y.string().default("ctrl-p").description("Key shortcut to open quick preview in quick edit modal")}).extra("category","edit").description("Quick preview options"))];class $r extends(Ou=Ve){constructor(e){super(e,{},"quickPreview"),this.ctx=e,this.ctx.set("quickPreview",bo(this,"previewWikitext"))}start(){this.ctx.on("quick-edit/wiki-page",this.injectQuickEdit.bind(this)),this.ctx.on("quick-delete/wiki-page",this.injectQuickDelete.bind(this))}stop(){}previewWikitext(e,i,n,r,s){return n||(n=this.ctx.wikiPage.newBlankPage({title:"API"})),(!r||r.isDestroyed)&&(r=this.ctx.modal.createObject({className:"in-page-edit ipe-quickPreview",sizeClass:"large",center:!1,...s}).init()),r.show(),r.setTitle("Preview - Loading..."),r.setContent(h(jt,{})),r.bringToFront(),this.ctx.emit("quick-preview/show-modal",{ctx:this.ctx,text:e,modal:r,wikiPage:n}),n.preview(e,i).then(o=>{const{data:{parse:a}}=o;r.setTitle(`Preview - ${a.title}`);let l=null;r.setContent(h("section",{children:h("div",{ref:c=>l=c,className:"mw-parser-output",innerHTML:a.text})})),window.mw?.hook("wikipage.content").fire($(l)),this.ctx.emit("quick-preview/loaded",{ctx:this.ctx,modal:r,wikiPage:n,text:e,parseData:a})}).catch(o=>{r.setTitle("Preview - Failed"),r.setContent(h(Ct,{children:[h("p",{children:"Failed to preview"}),h("p",{children:o instanceof Error?o.message:String(o)})]}))}),r}async injectQuickEdit({options:e,modal:i,wikiPage:n}){let r;i.addButton({label:"Preview",side:"left",className:"btn btn-secondary",keyPress:await this.ctx.preferences.get("quickPreview.keyshortcut.quickEdit")||void 0,method:()=>{let s=i.get$content().querySelector('textarea[name="text"]')?.value||"";if(e.section==="new"){const o=i.get$content().querySelector('input[name="summary"]')?.value;o&&(s=`==${o}==
|
|
121
|
+
${s}`)}r=this.previewWikitext(s,void 0,n,r,{backdrop:!1,draggable:!0})}},1),i.on(i.Event.Close,()=>{r?.destroy(),r=void 0})}injectQuickDelete({ctx:e,modal:i,wikiPage:n}){i.addButton({label:"Preview",side:"left",className:"btn btn-secondary",method:()=>{this.logger.warn("To be implemented: preview wikitext for quick delete")}},2)}}Po=Ky(Ou),$r=Xy(Po,0,"PluginQuickPreview",Cu,$r),Gy(Po,1,$r);const Jy=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickPreview(){return $r}},Symbol.toStringTag,{value:"Module"})),Zy=t=>{let{user:e,target:i,ctx:n}=t;const r=n.getUrl.bind(n);return h("span",{className:"mw-userlinks",children:[h("a",{href:r(`User:${e}`),className:"mw-userlink",target:i,children:e})," ",h("span",{className:"mw-usertoollinks",children:["(",h("a",{href:r(`User_talk:${e}`),className:"mw-usertoollinks-talk",target:i,children:"talk"})," | ",h("a",{href:r(`Special:Contributions/${e}`),className:"mw-usertoollinks-contribs",target:i,children:"contribs"})," | ",h("a",{href:r(`Special:Block/${e}`),className:"mw-usertoollinks-block",target:i,children:"block"}),")"]})]})};var Pr=(t=>(t.update="ipe:diff-table/update",t.edit="ipe:diff-table/edit",t))(Pr||{});const eb=new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"medium"}).format,Au=t=>{let e=["diff-title"];if(t.type==="from"?e.push("diff-otitle"):t.type==="to"&&e.push("diff-ntitle"),!t.pageid||!t.userid)return h("td",{colSpan:2,className:e,children:h("div",{className:"mw-diff-title--title",children:t.type==="from"?"Original content":t.type==="to"?"Your content":""})});const i=n=>{n.preventDefault(),n.target.dispatchEvent(new CustomEvent("ipe:diff-table/edit",{detail:{revid:t.revid},bubbles:!0}))};return h("td",{colSpan:2,className:e,children:[h("div",{className:"mw-diff-title--title",children:[t.pagetitle||t.timestamp,t.revid?` (rev#${t.revid})`:""]}),h("div",{className:"mw-diff-title--actions",children:h("a",{href:t.ctx.getUrl("",{action:"edit",oldid:t.revid}),onClick:i,children:[h(Qa,{style:"width: 1em; height: 1em"}),"Quick edit"]})}),h("div",{className:"mw-diff-title--user",children:t.username&&h(Zy,{ctx:t.ctx,user:t.username,target:"_blank"})}),h("div",{className:"mw-diff-title--timestamp",children:t.timestamp&&eb(new Date(t.timestamp))}),h("div",{className:"mw-diff-title--comment",children:t.parsedcomment&&h(Ct,{children:["(",h("i",{innerHTML:t.parsedcomment}),")"]})})]})},tb=t=>{const e=t.data;if(!e.prev&&!e.next)return null;const i=(n,r,s)=>{n.preventDefault(),n.target.dispatchEvent(new CustomEvent("ipe:diff-table/update",{detail:{fromrev:r,torev:s},bubbles:!0}))};return h("tr",{className:"mw-diff-title--navigation",children:[h("td",{colSpan:2,children:e.prev?h("a",{href:t.ctx.getUrl("",{diff:e.prev,oldid:e.fromrevid}),onClick:n=>i(n,e.prev,e.fromrevid),children:"← Previous"}):h("i",{children:"Oldest version"})}),h("td",{colSpan:2,children:e.next?h("a",{href:t.ctx.getUrl("",{diff:e.next,oldid:e.torevid}),onClick:n=>i(n,e.torevid,e.next),children:"Next →"}):h("i",{children:"Newest version"})})]})},ib=t=>{const{data:e,...i}=t,n=h("table",{className:"theme-ipe diff diff-type-table","data-mw":"interface",...i,children:[h("colgroup",{children:[h("col",{className:"diff-marker"}),h("col",{className:"diff-content"}),h("col",{className:"diff-marker"}),h("col",{className:"diff-content"})]}),h("tbody",{children:[h("tr",{children:[h(Au,{ctx:t.ctx,type:"from",pageid:e.fromid,pagetitle:e.fromtitle,revid:e.fromrevid,size:e.fromsize,timestamp:e.fromtimestamp,username:e.fromuser,userid:e.fromuserid,comment:e.fromcomment,parsedcomment:e.fromparsedcomment}),h(Au,{ctx:t.ctx,type:"to",pageid:e.toid,pagetitle:e.totitle,revid:e.torevid,size:e.tosize,timestamp:e.totimestamp,username:e.touser,userid:e.touserid,comment:e.tocomment,parsedcomment:e.toparsedcomment})]}),h(tb,{data:e,ctx:t.ctx}),h("div",{id:"diffbody"}),h("tr",{className:"diff-size",style:{textAlign:"center"},children:[h("td",{colSpan:2,className:"diff-size-old",children:e.fromsize!==void 0&&`${e.fromsize} bytes`}),h("td",{colSpan:2,className:"diff-size-new",children:e.tosize!==void 0&&`${e.tosize} bytes`})]})]})]});return n.querySelector("#diffbody").outerHTML=e.body||h("tr",{children:h("td",{colSpan:4,children:h("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"5rem"},children:h("i",{children:"No changes"})})})}).outerHTML,n},nb=(t,e=document)=>e.querySelector(t),rb=(t,e=document)=>e.querySelectorAll(t);var sb=Object.create,Co=Object.defineProperty,ob=Object.getOwnPropertyDescriptor,Iu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Tu=t=>{throw TypeError(t)},ab=(t,e,i)=>e in t?Co(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,lb=(t,e)=>Co(t,"name",{value:e,configurable:!0}),cb=t=>[,,,sb(t?.[Iu("metadata")]??null)],ub=["class","method","getter","setter","accessor","field","value","get","set"],Ru=t=>t!==void 0&&typeof t!="function"?Tu("Function expected"):t,fb=(t,e,i,n,r)=>({kind:ub[t],name:e,metadata:n,addInitializer:s=>i._?Tu("Already initialized"):r.push(Ru(s||null))}),db=(t,e)=>ab(e,Iu("metadata"),t[3]),hb=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},pb=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&ob(r,i));lb(r,i);for(var m=n.length-1;m>=0;m--)l=fb(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,Ru(o)&&(r=o);return db(t,r),g&&Co(r,i,g),u?c^4?s:g:r},Lu,Oo,Nu;Lu=[xe(["wiki","getUrl","preferences"]),pi(Y.object({"quickDiff.keyshortcut":Y.string().default("ctrl-d").description("Key shortcut to open quick diff in quick edit modal")}).description("Quick diff options").extra("category","edit"))];class Cr extends(Nu=Ve){constructor(e){super(e,{},"quick-diff"),this.ctx=e,this.COMPARE_API_DEFAULT_OPTIONS={prop:["comment","diff","diffsize","ids","parsedcomment","size","timestamp","title","user","rel"].join("|"),difftype:"table"}}start(){this.ctx.set("quickDiff",this),this.ctx.on("quick-edit/wiki-page",this.injectQuickEdit.bind(this)),window.RLQ.push(this.injectHistoryPage.bind(this))}stop(){}injectHistoryPage(){const e=nb("#mw-history-compare");if(!e)return;rb(".mw-history-compareselectedversions-button",e).forEach(n=>{n.after(h("button",{className:"cdx-button",onClick:r=>{r.preventDefault();const s=new FormData(e),o=Number(s.get("oldid"))||0,a=Number(s.get("diff"))||0;if(!s.get("title")||!o||!a)return this.logger.warn("Missing title or revision IDs");this.comparePages({fromrev:o,torev:a})},children:"Quick Diff"}))})}async injectQuickEdit({modal:e,wikiPage:i,options:n}){if(i.pageid===0||n.section==="new")return;let r;e.addButton({label:"Diff",side:"left",keyPress:await this.ctx.preferences.get("quickDiff.keyshortcut")||void 0,className:"btn btn-secondary",method:()=>{const s=i.title,o=i.revisions?.[0]?.content||"",a=e.get$content().querySelector('textarea[name="text"]')?.value||"";return o===a?this.ctx.modal.notify("info",{title:"Quick Diff",content:"No changes"}):(this.ctx.emit("quick-diff/quick-edit-modal",{ctx:this.ctx,modal:e,wikiPage:i}),r=this.comparePages({fromtitle:s,fromtext:o,totitle:s,totext:a,topst:!0},r,{backdrop:!1,draggable:!0}),r)}},2),e.on(e.Event.Close,()=>{r?.destroy(),r=void 0})}comparePages(e,i,n){return!i||i.isDestroyed?i=this.ctx.modal.createObject({title:"Loading diff...",content:"",className:"quick-diff",center:!1,...n}).init():i.removeButton("*"),this.ctx.emit("quick-diff/init-options",{ctx:this.ctx,options:e}),i.setContent(h("section",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:h(jt,{})})),i.bringToFront(),window.mw&&mw.loader.getState("mediawiki.diff.styles")!=="ready"&&mw.loader.load(["mediawiki.diff.styles"]),this.ctx.api.post({...this.COMPARE_API_DEFAULT_OPTIONS,...e,action:"compare",format:"json",formatversion:2}).then(r=>{if(!r.data.compare)throw new Error("No compare data received",{cause:r});const{data:{compare:s}}=r;i.setTitle(s.fromtitle&&s.totitle?`${s.fromtitle}${s.fromrevid?` (${s.fromrevid})`:""} ⇔ ${s.totitle}${s.torevid?` (${s.torevid})`:""}`:"Differences");let o;i.setContent(h("section",{style:{minHeight:"70vh"},children:h(ib,{ref:a=>o=a,data:s,ctx:this.ctx})})),o.addEventListener(Pr.update,a=>{a.stopPropagation(),this.comparePages({fromrev:a.detail.fromrev,torev:a.detail.torev},i,n)},{once:!0}),this.ctx.inject(["quickEdit"],a=>{const l=c=>{c.stopPropagation(),a.quickEdit({revision:c.detail.revid})};o.addEventListener(Pr.edit,l),i.on(i.Event.Close,()=>{o.removeEventListener(Pr.edit,l)})}),s.fromrevid&&s.torevid&&i.addButton({label:"Original Compare Page",side:"right",className:"btn btn-secondary",method:()=>{window.location.href=this.ctx.getUrl("",{oldid:s.fromrevid,diff:s.torevid})}}),this.ctx.emit("quick-diff/loaded",{ctx:this.ctx,modal:i,compare:s})}).catch(r=>{i.setContent(h(pn,{title:"Failed to load diff",type:"error",children:h("pre",{children:r instanceof Error?r.message:String(r)})}))}),i.show()}}Oo=cb(Nu),Cr=pb(Oo,0,"PluginQuickDiff",Lu,Cr),hb(Oo,1,Cr);const mb=Object.freeze(Object.defineProperty({__proto__:null,get PluginQuickDiff(){return Cr}},Symbol.toStringTag,{value:"Module"})),Mo=class Mo extends Ve{constructor(e){super(e,{},"quick-redirect"),this.ctx=e}start(){this.ctx.set("quickRedirect",this.quickRedirect.bind(this)),this.ctx.set("redirectPage",this.redirectPage.bind(this));const e=window.mw?.config.get("wgPageName")||"",i=window.mw?.config.get("wgIsProbablyEditable");this.ctx.inject(["toolbox"],n=>{this.ctx=n,n.toolbox.addButton({id:"quick-redirect",icon:h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-file-symlink",children:[h("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h("path",{d:"M4 21v-4a3 3 0 0 1 3 -3h5"}),h("path",{d:"M9 17l3 -3l-3 -3"}),h("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),h("path",{d:"M5 11v-6a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-9.5"})]}),tooltip:"Quick Redirect",group:"group1",index:2,onClick:()=>{this.quickRedirect(i?{to:e}:{})}}),this.addDisposeHandler(r=>{r.toolbox.removeButton("quick-redirect")})})}stop(){}quickRedirect(e){e||(e={}),this.ctx.emit("quick-redirect/init-options",{ctx:this.ctx,options:e});const i=this.ctx.modal.createObject({title:"Quick Redirect",content:h(jt,{}),className:"quick-redirect compact-buttons",sizeClass:"smallToMedium",center:!0}).init();let n=null;return i.setContent(h("form",{ref:r=>n=r,style:{display:"flex",flexDirection:"column",gap:"1rem"},onSubmit:r=>{if(r.preventDefault(),n?.checkValidity(),!n?.reportValidity())return;const s=new FormData(n),o={from:s.get("from")?.toString().trim(),to:s.get("to")?.toString().trim(),reason:s.get("reason")||"",overwrite:s.get("overwrite")==="on"};if(!o.from||!o.to){this.ctx.modal.notify("error",{title:"Failed to redirect",content:"From and to are required."});return}this.ctx.emit("quick-redirect/submit",{ctx:this.ctx,payload:o}),i.setLoadingState(!0),this.redirectPage(o).then(a=>{i.close(),this.ctx.modal.notify("success",{title:"Redirect successful",content:"The redirect has been created."})}).catch(a=>{i.setLoadingState(!1),this.ctx.modal.notify("error",{title:"Failed to redirect",content:a instanceof Error?a.message:String(a)})})},children:[h(wu,{inputs:[{label:"From",name:"from",value:e?.from,required:!0},{label:"To",name:"to",value:e?.to,required:!0}]}),h(mn,{label:"Reason",id:"reason",name:"reason",value:e?.reason}),h("div",{children:h(Oi,{name:"overwrite",id:"overwrite",checked:e?.overwrite,children:"Force create redirect even if the from page already exists"})})]})),i.setButtons([{label:"Create Redirect",className:"is-primary is-ghost",method:()=>{n?.dispatchEvent(new Event("submit"))}}]),this.ctx.emit("quick-redirect/show-modal",{ctx:this.ctx,modal:i}),i.show()}async redirectPage(e){const{from:i,to:n,reason:r="",overwrite:s=!1}=e,o=await this.ctx.wikiPage.newBlankPage({title:i}),a=`#REDIRECT [[:${n}]]`;return o.edit({text:a,summary:r},{createonly:!s})}};Mo.inject=["api","wikiPage","modal"];let Ao=Mo;const gb=Object.freeze(Object.defineProperty({__proto__:null,PluginQuickRedirect:Ao},Symbol.toStringTag,{value:"Module"}));var yb=Object.create,Io=Object.defineProperty,bb=Object.getOwnPropertyDescriptor,Mu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Du=t=>{throw TypeError(t)},wb=(t,e,i)=>e in t?Io(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,vb=(t,e)=>Io(t,"name",{value:e,configurable:!0}),_b=t=>[,,,yb(t?.[Mu("metadata")]??null)],xb=["class","method","getter","setter","accessor","field","value","get","set"],ju=t=>t!==void 0&&typeof t!="function"?Du("Function expected"):t,Sb=(t,e,i,n,r)=>({kind:xb[t],name:e,metadata:n,addInitializer:s=>i._?Du("Already initialized"):r.push(ju(s||null))}),kb=(t,e)=>wb(e,Mu("metadata"),t[3]),Eb=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},$b=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&bb(r,i));vb(r,i);for(var m=n.length-1;m>=0;m--)l=Sb(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,ju(o)&&(r=o);return kb(t,r),g&&Io(r,i,g),u?c^4?s:g:r},Uu,To,Fu;Uu=[pi(Y.object({toolboxAlwaysShow:Y.boolean().description("Make the toolbox opened by default").default(!1)}).description("Toolbox preferences")),xe(["preferences"])];class Or extends(Fu=Pt){constructor(e){super(e,"toolbox",!1),this.ctx=e,this.container=void 0}async start(){this.container=this.createToolbox(),this.ctx.preferences.get("toolboxAlwaysShow").then(e=>{e&&this.container.classList.add("is-persistent")}),this.setupHoverLogic(),document.body.appendChild(this.container),this.updateButtonDelays()}stop(){this.container?.remove()}get isPersistent(){return this.container.classList.contains("is-persistent")}setupHoverLogic(){let e=null;this.container.addEventListener("mouseenter",()=>{e&&(clearTimeout(e),e=null),this.isPersistent||this.container.classList.add("is-hovered")}),this.container.addEventListener("mouseleave",()=>{this.isPersistent||(e=window.setTimeout(()=>{this.container.classList.remove("is-hovered")},150))})}calculateButtonDelay(e,i){if(i<=1)return 0;const n=.15,r=e/(i-1),s=n*Math.sqrt(r);return Math.round(s*1e3)/1e3}updateButtonDelays(){this.container.querySelectorAll(".btn-group").forEach(i=>{const n=i.querySelectorAll(".btn-tip-group"),r=n.length;n.forEach((s,o)=>{const a=this.calculateButtonDelay(o,r);s.style.setProperty("--transition-delay",`${a}s`),s.style.setProperty("--max-transition-delay","0.15s")})})}createToolbox(){return h("div",{id:"ipe-edit-toolbox",children:[h("ul",{className:"btn-group group1",style:{display:"flex",flexDirection:"column"}}),h("ul",{className:"btn-group group2",style:{display:"flex",flexDirection:"row"}}),h("button",{className:"ipe-toolbox-btn",id:"toolbox-toggler",onClick:()=>{this.toggle()},children:h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"448",height:"512",viewBox:"0 0 448 512",children:[h("rect",{width:"448",height:"512",fill:"none"}),h("path",{fill:"currentColor",d:"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32"})]})})]})}normalizeButtonId(e){return e||(e=Math.random().toString(36).substring(2,8)),`ipe-toolbox__${e.trim()}`.replace(/\s\.#/g,"-")}addButton(e){let{id:i,group:n,icon:r,tooltip:s,itemProps:o,buttonProps:a,onClick:l,index:c}=e;i=this.normalizeButtonId(i);const u=this.container.querySelector(`#${i}`);u&&(this.ctx.logger("toolbox").warn(`Button with id ${i} already exists, replacing it.`),u.remove());let f=null;if(typeof n>"u"||n==="auto"){const g=this.container.querySelector(".btn-group.group1"),m=this.container.querySelector(".btn-group.group2"),k=g?.children.length||0,D=m?.children.length||0;f=k<=D?g:m}else f=this.container.querySelector(`.btn-group.${n}`);if(!f)throw new Error(`Button group ${n} not found`);const p=h("li",{class:"btn-tip-group",id:i,onClick:l,...o,children:[h("div",{class:"btn-tip",children:s}),h("button",{id:`${i}-btn`,"data-id":e.id,class:"ipe-toolbox-btn",...a,children:r})]});return p.addEventListener("click",g=>{this.ctx.emit("toolbox/button-clicked",{ctx:this.ctx,button:g.target,id:e.id})}),typeof c=="number"?c<=0?f.prepend(p):c>=f.children.length?f.appendChild(p):f.children[c]?.before(p):f.appendChild(p),this.ctx.emit("toolbox/button-added",{ctx:this.ctx,button:p}),this.updateButtonDelays(),p}removeButton(e){this.container.querySelector(`.ipe-toolbox-btn#${e}`)?.remove(),this.ctx.emit("toolbox/button-removed",{ctx:this.ctx,id:e}),this.updateButtonDelays()}getContainer(){return this.container}get isOpened(){return this.container.classList.contains("is-persistent")||this.container.classList.contains("is-hovered")}toggle(e){const i=this.isPersistent,n=typeof e=="boolean"?e:!i;this.container.classList.toggle("is-persistent",n),this.container.classList.remove("is-hovered"),this.ctx.preferences.set("toolboxAlwaysShow",n),this.ctx.emit("toolbox/toggle",{ctx:this.ctx,opened:this.isOpened})}}To=_b(Fu),Or=$b(To,0,"PluginToolbox",Uu,Or),Eb(To,1,Or);const Pb=Object.freeze(Object.defineProperty({__proto__:null,get PluginToolbox(){return Or}},Symbol.toStringTag,{value:"Module"}));var Cb=Object.create,Ro=Object.defineProperty,Ob=Object.getOwnPropertyDescriptor,Bu=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),qu=t=>{throw TypeError(t)},Ab=(t,e,i)=>e in t?Ro(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Ib=(t,e)=>Ro(t,"name",{value:e,configurable:!0}),Tb=t=>[,,,Cb(t?.[Bu("metadata")]??null)],Rb=["class","method","getter","setter","accessor","field","value","get","set"],Hu=t=>t!==void 0&&typeof t!="function"?qu("Function expected"):t,Lb=(t,e,i,n,r)=>({kind:Rb[t],name:e,metadata:n,addInitializer:s=>i._?qu("Already initialized"):r.push(Hu(s||null))}),Nb=(t,e)=>Ab(e,Bu("metadata"),t[3]),Mb=(t,e,i,n)=>{for(var r=0,s=t[e>>1],o=s&&s.length;r<o;r++)s[r].call(i);return n},Db=(t,e,i,n,r,s)=>{var o,a,l,c=e&7,u=!1,f=0,p=t[f]||(t[f]=[]),g=c&&(r=r.prototype,c<5&&(c>3||!u)&&Ob(r,i));Ib(r,i);for(var m=n.length-1;m>=0;m--)l=Lb(c,i,a={},t[3],p),o=(0,n[m])(r,l),a._=1,Hu(o)&&(r=o);return Nb(t,r),g&&Ro(r,i,g),u?c^4?s:g:r},zu,Lo,Wu;zu=[xe(["preferences","wikiPage","wikiTitle","modal","preferencesUI"])];class Ar extends(Wu=Ve){constructor(e){super(e,{},"pref-sync"),this.ctx=e,e.set("prefSync",this)}start(){const e=this.ctx;e.preferences.defineCategory({name:"pref-sync",label:"Sync",description:"Import and export preferences",index:98}),e.preferences.registerCustomConfig("pref-sync-user-page",Y.object({"pref-sync-user-page":Y.const(h("section",{children:h("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[h("button",{onClick:i=>{i.preventDefault();const n=e.preferencesUI.getExistingModal(),r=i.target;r.disabled=!0,n?.setLoadingState(!0),this.importFromUserPage().then(s=>{this.notifyImportSuccess(s),n?.close?.()}).finally(()=>{r.disabled=!1,n?.setLoadingState(!1)})},children:"Import"}),h("button",{onClick:i=>{i.preventDefault();const n=i.target;n.disabled=!0;const r=e.preferencesUI.getExistingModal();r?.setLoadingState(!0),this.exportToUserPage().then(s=>{e.modal.notify("success",{title:"Preferences Exported",content:h("p",{children:["Your preferences have been exported to"," ",h("a",{href:s.getURL().toString(),target:"_blank",children:s.getPrefixedText()}),"."]})}),r?.close?.()}).finally(()=>{n.disabled=!1,r?.setLoadingState(!1)})},children:"Export"})]})})).role("raw-html")}).description("Backup your preferences via user page"),"pref-sync"),e.preferences.registerCustomConfig("pref-sync-manual",Y.object({"pref-sync-manual":Y.const(h("section",{children:h("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[h("button",{onClick:i=>{i.preventDefault();const n=e.preferencesUI.getExistingModal();n?.setLoadingState(!0);const r=document.createElement("input");r.type="file",r.accept="application/json",r.addEventListener("change",async s=>{try{const o=s.target.files?.[0];if(!o)return;const a=await this.importFromFile(o);this.notifyImportSuccess(a),n?.close?.()}catch(o){e.modal.notify("error",{title:"Import failed",content:o instanceof Error?o.message:String(o)})}finally{n?.setLoadingState(!1)}}),r.addEventListener("cancel",()=>{n?.setLoadingState(!1)}),r.click()},children:"Import from file"}),h("button",{onClick:async i=>{i.preventDefault();const n=await e.preferences.getExportableRecord(),r=JSON.stringify(n,null,2);e.modal.dialog({title:"Save to file",content:h("div",{children:[h("label",{htmlFor:"data",children:"Your InPageEdit preferences:"}),h("textarea",{name:"data",id:"data",rows:10,value:r,readOnly:!0,style:{width:"100%"}})]}),buttons:[{label:"Copy",method:()=>{navigator.clipboard.writeText(r),e.modal.notify("success",{content:"Copied to clipboard"})}},{label:"Download",method:()=>{const s=document.createElement("a");s.href=`data:text/json;charset=utf-8,${encodeURIComponent(r)}`,s.download=`ipe-prefs-${new Date().toISOString()}.json`,s.click()}}]},()=>{})},children:"Save to file"})]})})).role("raw-html")}).description("Backup your preferences to file"),"pref-sync")}stop(){}getUserPrefsPageTitle(){try{const e=this.ctx.wiki?.userInfo?.name;return e?this.ctx.wikiTitle.newTitle(`User:${e}/ipe-prefs.json`,2):null}catch{return null}}async importFromUserPage(){const e=this.getUserPrefsPageTitle();if(!e)return this.logger.debug("Cannot get user page title, skipping load"),{};try{const i=e.getURL({action:"raw",ctype:"application/json"});let n;try{if(n=await fetch(i.toString()),!n.ok){if(n.status===404)return this.logger.debug("User preferences page does not exist"),{};throw new Error(`HTTP ${n.status}: ${n.statusText}`)}}catch(o){if(o instanceof TypeError&&o.message.includes("Failed to fetch"))return this.logger.debug("User preferences page does not exist or network error"),{};throw o}const r=await n.blob(),s=await this.importFromFile(r);return this.logger.info("Loaded preferences from user page:",e),s}catch(i){return this.logger.error("Failed to load preferences from user page:",i),{}}}async exportToUserPage(){const e=this.ctx,i=this.getUserPrefsPageTitle();if(!i)throw new Error("Cannot get user page title");const n=await e.preferences.getExportableRecord(),r=JSON.stringify(n,null,2);try{return await this.ctx.wikiPage.newBlankPage({title:i.toString(),ns:2}).edit({text:r,summary:"Update InPageEdit preferences",watchlist:Je.nochange}),this.logger.info("Exported preferences to user page:",i),i}catch(s){throw this.logger.error("Failed to export preferences to user page:",s),s}}async importFromFile(e){const i=await e.text(),n=JSON.parse(i);return await this.ctx.preferences.setMany(n)}notifyImportSuccess(e){const i=Object.keys(e??{}),n=i.length;return this.ctx.modal.notify("success",{title:"Preferences Imported",content:h("section",{children:[h("p",{children:["Successfully imported ",n||""," ",n!==1?"settings":"setting",":"]}),h("ol",{style:{listStyle:"auto",paddingLeft:"1em"},children:i.map(r=>h("li",{children:r},r))})]})})}}Lo=Tb(Wu),Ar=Db(Lo,0,"PluginPrefSync",zu,Ar),Mb(Lo,1,Ar);const jb=Object.freeze(Object.defineProperty({__proto__:null,get PluginPrefSync(){return Ar}},Symbol.toStringTag,{value:"Module"}));X.BasePlugin=Ve,X.InPageEdit=hi,X.Inject=xe,X.Logger=Zo,X.LoggerLevel=Wr,X.Schema=Y,X.Service=Pt,X.createLogger=ia,Object.defineProperty(X,Symbol.toStringTag,{value:"Module"})});
|
|
122
122
|
//# sourceMappingURL=index.umd.js.map
|