z-certificate-editor 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,17 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))s(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(l){if(l.ep)return;l.ep=!0;const i=n(l);fetch(l.href,i)}})();/**
2
+ * @vue/shared v3.5.26
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/function ss(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const te={},wt=[],Ve=()=>{},il=()=>!1,bn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ls=e=>e.startsWith("onUpdate:"),xe=Object.assign,is=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ci=Object.prototype.hasOwnProperty,J=(e,t)=>ci.call(e,t),N=Array.isArray,St=e=>Jt(e)==="[object Map]",_n=e=>Jt(e)==="[object Set]",$s=e=>Jt(e)==="[object Date]",K=e=>typeof e=="function",ce=e=>typeof e=="string",We=e=>typeof e=="symbol",ie=e=>e!==null&&typeof e=="object",ol=e=>(ie(e)||K(e))&&K(e.then)&&K(e.catch),rl=Object.prototype.toString,Jt=e=>rl.call(e),ui=e=>Jt(e).slice(8,-1),al=e=>Jt(e)==="[object Object]",os=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Rt=ss(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),xn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},fi=/-\w/g,ct=xn(e=>e.replace(fi,t=>t.slice(1).toUpperCase())),di=/\B([A-Z])/g,yt=xn(e=>e.replace(di,"-$1").toLowerCase()),cl=xn(e=>e.charAt(0).toUpperCase()+e.slice(1)),kn=xn(e=>e?`on${cl(e)}`:""),at=(e,t)=>!Object.is(e,t),an=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},ul=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},wn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Ts;const Sn=()=>Ts||(Ts=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ut(e){if(N(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],l=ce(s)?mi(s):ut(s);if(l)for(const i in l)t[i]=l[i]}return t}else if(ce(e)||ie(e))return e}const pi=/;(?![^(]*\))/g,hi=/:([^]+)/,gi=/\/\*[^]*?\*\//g;function mi(e){const t={};return e.replace(gi,"").split(pi).forEach(n=>{if(n){const s=n.split(hi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function pe(e){let t="";if(ce(e))t=e;else if(N(e))for(let n=0;n<e.length;n++){const s=pe(e[n]);s&&(t+=s+" ")}else if(ie(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const vi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",yi=ss(vi);function fl(e){return!!e||e===""}function bi(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=Tt(e[s],t[s]);return n}function Tt(e,t){if(e===t)return!0;let n=$s(e),s=$s(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=We(e),s=We(t),n||s)return e===t;if(n=N(e),s=N(t),n||s)return n&&s?bi(e,t):!1;if(n=ie(e),s=ie(t),n||s){if(!n||!s)return!1;const l=Object.keys(e).length,i=Object.keys(t).length;if(l!==i)return!1;for(const o in e){const r=e.hasOwnProperty(o),a=t.hasOwnProperty(o);if(r&&!a||!r&&a||!Tt(e[o],t[o]))return!1}}return String(e)===String(t)}function _i(e,t){return e.findIndex(n=>Tt(n,t))}const dl=e=>!!(e&&e.__v_isRef===!0),he=e=>ce(e)?e:e==null?"":N(e)||ie(e)&&(e.toString===rl||!K(e.toString))?dl(e)?he(e.value):JSON.stringify(e,pl,2):String(e),pl=(e,t)=>dl(t)?pl(e,t.value):St(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,l],i)=>(n[Mn(s,i)+" =>"]=l,n),{})}:_n(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Mn(n))}:We(t)?Mn(t):ie(t)&&!N(t)&&!al(t)?String(t):t,Mn=(e,t="")=>{var n;return We(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
6
+ * @vue/reactivity v3.5.26
7
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
+ * @license MIT
9
+ **/let Ce;class xi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ce,!t&&Ce&&(this.index=(Ce.scopes||(Ce.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=Ce;try{return Ce=this,t()}finally{Ce=n}}}on(){++this._on===1&&(this.prevScope=Ce,Ce=this)}off(){this._on>0&&--this._on===0&&(Ce=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const l=this.parent.scopes.pop();l&&l!==this&&(this.parent.scopes[this.index]=l,l.index=this.index)}this.parent=void 0}}}function wi(){return Ce}let le;const Pn=new WeakSet;class hl{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Ce&&Ce.active&&Ce.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Pn.has(this)&&(Pn.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||ml(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Fs(this),vl(this);const t=le,n=Me;le=this,Me=!0;try{return this.fn()}finally{yl(this),le=t,Me=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)cs(t);this.deps=this.depsTail=void 0,Fs(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Pn.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Vn(this)&&this.run()}get dirty(){return Vn(this)}}let gl=0,Ut,Lt;function ml(e,t=!1){if(e.flags|=8,t){e.next=Lt,Lt=e;return}e.next=Ut,Ut=e}function rs(){gl++}function as(){if(--gl>0)return;if(Lt){let t=Lt;for(Lt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Ut;){let t=Ut;for(Ut=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function vl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function yl(e){let t,n=e.depsTail,s=n;for(;s;){const l=s.prevDep;s.version===-1?(s===n&&(n=l),cs(s),Si(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=l}e.deps=t,e.depsTail=n}function Vn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(bl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function bl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Kt)||(e.globalVersion=Kt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Vn(e))))return;e.flags|=2;const t=e.dep,n=le,s=Me;le=e,Me=!0;try{vl(e);const l=e.fn(e._value);(t.version===0||at(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{le=n,Me=s,yl(e),e.flags&=-3}}function cs(e,t=!1){const{dep:n,prevSub:s,nextSub:l}=e;if(s&&(s.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)cs(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Si(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Me=!0;const _l=[];function Je(){_l.push(Me),Me=!1}function Qe(){const e=_l.pop();Me=e===void 0?!0:e}function Fs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=le;le=void 0;try{t()}finally{le=n}}}let Kt=0;class Ci{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class us{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!le||!Me||le===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==le)n=this.activeLink=new Ci(le,this),le.deps?(n.prevDep=le.depsTail,le.depsTail.nextDep=n,le.depsTail=n):le.deps=le.depsTail=n,xl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=le.depsTail,n.nextDep=void 0,le.depsTail.nextDep=n,le.depsTail=n,le.deps===n&&(le.deps=s)}return n}trigger(t){this.version++,Kt++,this.notify(t)}notify(t){rs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{as()}}}function xl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)xl(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Wn=new WeakMap,mt=Symbol(""),Kn=Symbol(""),qt=Symbol("");function ge(e,t,n){if(Me&&le){let s=Wn.get(e);s||Wn.set(e,s=new Map);let l=s.get(n);l||(s.set(n,l=new us),l.map=s,l.key=n),l.track()}}function ze(e,t,n,s,l,i){const o=Wn.get(e);if(!o){Kt++;return}const r=a=>{a&&a.trigger()};if(rs(),t==="clear")o.forEach(r);else{const a=N(e),g=a&&os(n);if(a&&n==="length"){const d=Number(s);o.forEach((u,v)=>{(v==="length"||v===qt||!We(v)&&v>=d)&&r(u)})}else switch((n!==void 0||o.has(void 0))&&r(o.get(n)),g&&r(o.get(qt)),t){case"add":a?g&&r(o.get("length")):(r(o.get(mt)),St(e)&&r(o.get(Kn)));break;case"delete":a||(r(o.get(mt)),St(e)&&r(o.get(Kn)));break;case"set":St(e)&&r(o.get(mt));break}}as()}function _t(e){const t=G(e);return t===e?t:(ge(t,"iterate",qt),Ie(e)?t:t.map(Pe))}function Cn(e){return ge(e=G(e),"iterate",qt),e}function st(e,t){return Xe(e)?vt(e)?Ft(Pe(t)):Ft(t):Pe(t)}const Ei={__proto__:null,[Symbol.iterator](){return On(this,Symbol.iterator,e=>st(this,e))},concat(...e){return _t(this).concat(...e.map(t=>N(t)?_t(t):t))},entries(){return On(this,"entries",e=>(e[1]=st(this,e[1]),e))},every(e,t){return qe(this,"every",e,t,void 0,arguments)},filter(e,t){return qe(this,"filter",e,t,n=>n.map(s=>st(this,s)),arguments)},find(e,t){return qe(this,"find",e,t,n=>st(this,n),arguments)},findIndex(e,t){return qe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return qe(this,"findLast",e,t,n=>st(this,n),arguments)},findLastIndex(e,t){return qe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return qe(this,"forEach",e,t,void 0,arguments)},includes(...e){return Rn(this,"includes",e)},indexOf(...e){return Rn(this,"indexOf",e)},join(e){return _t(this).join(e)},lastIndexOf(...e){return Rn(this,"lastIndexOf",e)},map(e,t){return qe(this,"map",e,t,void 0,arguments)},pop(){return Mt(this,"pop")},push(...e){return Mt(this,"push",e)},reduce(e,...t){return As(this,"reduce",e,t)},reduceRight(e,...t){return As(this,"reduceRight",e,t)},shift(){return Mt(this,"shift")},some(e,t){return qe(this,"some",e,t,void 0,arguments)},splice(...e){return Mt(this,"splice",e)},toReversed(){return _t(this).toReversed()},toSorted(e){return _t(this).toSorted(e)},toSpliced(...e){return _t(this).toSpliced(...e)},unshift(...e){return Mt(this,"unshift",e)},values(){return On(this,"values",e=>st(this,e))}};function On(e,t,n){const s=Cn(e),l=s[t]();return s!==e&&!Ie(e)&&(l._next=l.next,l.next=()=>{const i=l._next();return i.done||(i.value=n(i.value)),i}),l}const $i=Array.prototype;function qe(e,t,n,s,l,i){const o=Cn(e),r=o!==e&&!Ie(e),a=o[t];if(a!==$i[t]){const u=a.apply(e,i);return r?Pe(u):u}let g=n;o!==e&&(r?g=function(u,v){return n.call(this,st(e,u),v,e)}:n.length>2&&(g=function(u,v){return n.call(this,u,v,e)}));const d=a.call(o,g,s);return r&&l?l(d):d}function As(e,t,n,s){const l=Cn(e);let i=n;return l!==e&&(Ie(e)?n.length>3&&(i=function(o,r,a){return n.call(this,o,r,a,e)}):i=function(o,r,a){return n.call(this,o,st(e,r),a,e)}),l[t](i,...s)}function Rn(e,t,n){const s=G(e);ge(s,"iterate",qt);const l=s[t](...n);return(l===-1||l===!1)&&hs(n[0])?(n[0]=G(n[0]),s[t](...n)):l}function Mt(e,t,n=[]){Je(),rs();const s=G(e)[t].apply(e,n);return as(),Qe(),s}const Ti=ss("__proto__,__v_isRef,__isVue"),wl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(We));function Fi(e){We(e)||(e=String(e));const t=G(this);return ge(t,"has",e),t.hasOwnProperty(e)}class Sl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(l?i?Li:Tl:i?$l:El).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=N(t);if(!l){let a;if(o&&(a=Ei[n]))return a;if(n==="hasOwnProperty")return Fi}const r=Reflect.get(t,n,me(t)?t:s);if((We(n)?wl.has(n):Ti(n))||(l||ge(t,"get",n),i))return r;if(me(r)){const a=o&&os(n)?r:r.value;return l&&ie(a)?Bn(a):a}return ie(r)?l?Bn(r):ds(r):r}}class Cl extends Sl{constructor(t=!1){super(!1,t)}set(t,n,s,l){let i=t[n];const o=N(t)&&os(n);if(!this._isShallow){const g=Xe(i);if(!Ie(s)&&!Xe(s)&&(i=G(i),s=G(s)),!o&&me(i)&&!me(s))return g||(i.value=s),!0}const r=o?Number(n)<t.length:J(t,n),a=Reflect.set(t,n,s,me(t)?t:l);return t===G(l)&&(r?at(s,i)&&ze(t,"set",n,s):ze(t,"add",n,s)),a}deleteProperty(t,n){const s=J(t,n);t[n];const l=Reflect.deleteProperty(t,n);return l&&s&&ze(t,"delete",n,void 0),l}has(t,n){const s=Reflect.has(t,n);return(!We(n)||!wl.has(n))&&ge(t,"has",n),s}ownKeys(t){return ge(t,"iterate",N(t)?"length":mt),Reflect.ownKeys(t)}}class Ai extends Sl{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Ii=new Cl,Di=new Ai,ki=new Cl(!0);const qn=e=>e,nn=e=>Reflect.getPrototypeOf(e);function Mi(e,t,n){return function(...s){const l=this.__v_raw,i=G(l),o=St(i),r=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,g=l[e](...s),d=n?qn:t?Ft:Pe;return!t&&ge(i,"iterate",a?Kn:mt),{next(){const{value:u,done:v}=g.next();return v?{value:u,done:v}:{value:r?[d(u[0]),d(u[1])]:d(u),done:v}},[Symbol.iterator](){return this}}}}function sn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Pi(e,t){const n={get(l){const i=this.__v_raw,o=G(i),r=G(l);e||(at(l,r)&&ge(o,"get",l),ge(o,"get",r));const{has:a}=nn(o),g=t?qn:e?Ft:Pe;if(a.call(o,l))return g(i.get(l));if(a.call(o,r))return g(i.get(r));i!==o&&i.get(l)},get size(){const l=this.__v_raw;return!e&&ge(G(l),"iterate",mt),l.size},has(l){const i=this.__v_raw,o=G(i),r=G(l);return e||(at(l,r)&&ge(o,"has",l),ge(o,"has",r)),l===r?i.has(l):i.has(l)||i.has(r)},forEach(l,i){const o=this,r=o.__v_raw,a=G(r),g=t?qn:e?Ft:Pe;return!e&&ge(a,"iterate",mt),r.forEach((d,u)=>l.call(i,g(d),g(u),o))}};return xe(n,e?{add:sn("add"),set:sn("set"),delete:sn("delete"),clear:sn("clear")}:{add(l){!t&&!Ie(l)&&!Xe(l)&&(l=G(l));const i=G(this);return nn(i).has.call(i,l)||(i.add(l),ze(i,"add",l,l)),this},set(l,i){!t&&!Ie(i)&&!Xe(i)&&(i=G(i));const o=G(this),{has:r,get:a}=nn(o);let g=r.call(o,l);g||(l=G(l),g=r.call(o,l));const d=a.call(o,l);return o.set(l,i),g?at(i,d)&&ze(o,"set",l,i):ze(o,"add",l,i),this},delete(l){const i=G(this),{has:o,get:r}=nn(i);let a=o.call(i,l);a||(l=G(l),a=o.call(i,l)),r&&r.call(i,l);const g=i.delete(l);return a&&ze(i,"delete",l,void 0),g},clear(){const l=G(this),i=l.size!==0,o=l.clear();return i&&ze(l,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=Mi(l,e,t)}),n}function fs(e,t){const n=Pi(e,t);return(s,l,i)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?s:Reflect.get(J(n,l)&&l in s?n:s,l,i)}const Oi={get:fs(!1,!1)},Ri={get:fs(!1,!0)},Ui={get:fs(!0,!1)};const El=new WeakMap,$l=new WeakMap,Tl=new WeakMap,Li=new WeakMap;function ji(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Hi(e){return e.__v_skip||!Object.isExtensible(e)?0:ji(ui(e))}function ds(e){return Xe(e)?e:ps(e,!1,Ii,Oi,El)}function Ni(e){return ps(e,!1,ki,Ri,$l)}function Bn(e){return ps(e,!0,Di,Ui,Tl)}function ps(e,t,n,s,l){if(!ie(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Hi(e);if(i===0)return e;const o=l.get(e);if(o)return o;const r=new Proxy(e,i===2?s:n);return l.set(e,r),r}function vt(e){return Xe(e)?vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Xe(e){return!!(e&&e.__v_isReadonly)}function Ie(e){return!!(e&&e.__v_isShallow)}function hs(e){return e?!!e.__v_raw:!1}function G(e){const t=e&&e.__v_raw;return t?G(t):e}function Vi(e){return!J(e,"__v_skip")&&Object.isExtensible(e)&&ul(e,"__v_skip",!0),e}const Pe=e=>ie(e)?ds(e):e,Ft=e=>ie(e)?Bn(e):e;function me(e){return e?e.__v_isRef===!0:!1}function z(e){return Wi(e,!1)}function Wi(e,t){return me(e)?e:new Ki(e,t)}class Ki{constructor(t,n){this.dep=new us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:G(t),this._value=n?t:Pe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ie(t)||Xe(t);t=s?t:G(t),at(t,n)&&(this._rawValue=t,this._value=s?t:Pe(t),this.dep.trigger())}}function qi(e){return me(e)?e.value:e}const Bi={get:(e,t,n)=>t==="__v_raw"?e:qi(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const l=e[t];return me(l)&&!me(n)?(l.value=n,!0):Reflect.set(e,t,n,s)}};function Fl(e){return vt(e)?e:new Proxy(e,Bi)}class zi{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Kt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&le!==this)return ml(this,!0),!0}get value(){const t=this.dep.track();return bl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Yi(e,t,n=!1){let s,l;return K(e)?s=e:(s=e.get,l=e.set),new zi(s,l,n)}const ln={},pn=new WeakMap;let gt;function Gi(e,t=!1,n=gt){if(n){let s=pn.get(n);s||pn.set(n,s=[]),s.push(e)}}function Ji(e,t,n=te){const{immediate:s,deep:l,once:i,scheduler:o,augmentJob:r,call:a}=n,g=P=>l?P:Ie(P)||l===!1||l===0?Ye(P,1):Ye(P);let d,u,v,y,C=!1,D=!1;if(me(e)?(u=()=>e.value,C=Ie(e)):vt(e)?(u=()=>g(e),C=!0):N(e)?(D=!0,C=e.some(P=>vt(P)||Ie(P)),u=()=>e.map(P=>{if(me(P))return P.value;if(vt(P))return g(P);if(K(P))return a?a(P,2):P()})):K(e)?t?u=a?()=>a(e,2):e:u=()=>{if(v){Je();try{v()}finally{Qe()}}const P=gt;gt=d;try{return a?a(e,3,[y]):e(y)}finally{gt=P}}:u=Ve,t&&l){const P=u,S=l===!0?1/0:l;u=()=>Ye(P(),S)}const q=wi(),V=()=>{d.stop(),q&&q.active&&is(q.effects,d)};if(i&&t){const P=t;t=(...S)=>{P(...S),V()}}let k=D?new Array(e.length).fill(ln):ln;const $=P=>{if(!(!(d.flags&1)||!d.dirty&&!P))if(t){const S=d.run();if(l||C||(D?S.some((H,R)=>at(H,k[R])):at(S,k))){v&&v();const H=gt;gt=d;try{const R=[S,k===ln?void 0:D&&k[0]===ln?[]:k,y];k=S,a?a(t,3,R):t(...R)}finally{gt=H}}}else d.run()};return r&&r($),d=new hl(u),d.scheduler=o?()=>o($,!1):$,y=P=>Gi(P,!1,d),v=d.onStop=()=>{const P=pn.get(d);if(P){if(a)a(P,4);else for(const S of P)S();pn.delete(d)}},t?s?$(!0):k=d.run():o?o($.bind(null,!0),!0):d.run(),V.pause=d.pause.bind(d),V.resume=d.resume.bind(d),V.stop=V,V}function Ye(e,t=1/0,n){if(t<=0||!ie(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,me(e))Ye(e.value,t,n);else if(N(e))for(let s=0;s<e.length;s++)Ye(e[s],t,n);else if(_n(e)||St(e))e.forEach(s=>{Ye(s,t,n)});else if(al(e)){for(const s in e)Ye(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Ye(e[s],t,n)}return e}/**
10
+ * @vue/runtime-core v3.5.26
11
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
+ * @license MIT
13
+ **/function Qt(e,t,n,s){try{return s?e(...s):e()}catch(l){En(l,t,n)}}function Ke(e,t,n,s){if(K(e)){const l=Qt(e,t,n,s);return l&&ol(l)&&l.catch(i=>{En(i,t,n)}),l}if(N(e)){const l=[];for(let i=0;i<e.length;i++)l.push(Ke(e[i],t,n,s));return l}}function En(e,t,n,s=!0){const l=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||te;if(t){let r=t.parent;const a=t.proxy,g=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){const d=r.ec;if(d){for(let u=0;u<d.length;u++)if(d[u](e,a,g)===!1)return}r=r.parent}if(i){Je(),Qt(i,null,10,[e,a,g]),Qe();return}}Qi(e,n,l,s,o)}function Qi(e,t,n,s=!0,l=!1){if(l)throw e;console.error(e)}const ye=[];let He=-1;const Ct=[];let lt=null,xt=0;const Al=Promise.resolve();let hn=null;function Il(e){const t=hn||Al;return e?t.then(this?e.bind(this):e):t}function Xi(e){let t=He+1,n=ye.length;for(;t<n;){const s=t+n>>>1,l=ye[s],i=Bt(l);i<e||i===e&&l.flags&2?t=s+1:n=s}return t}function gs(e){if(!(e.flags&1)){const t=Bt(e),n=ye[ye.length-1];!n||!(e.flags&2)&&t>=Bt(n)?ye.push(e):ye.splice(Xi(t),0,e),e.flags|=1,Dl()}}function Dl(){hn||(hn=Al.then(Ml))}function Zi(e){N(e)?Ct.push(...e):lt&&e.id===-1?lt.splice(xt+1,0,e):e.flags&1||(Ct.push(e),e.flags|=1),Dl()}function Is(e,t,n=He+1){for(;n<ye.length;n++){const s=ye[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;ye.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function kl(e){if(Ct.length){const t=[...new Set(Ct)].sort((n,s)=>Bt(n)-Bt(s));if(Ct.length=0,lt){lt.push(...t);return}for(lt=t,xt=0;xt<lt.length;xt++){const n=lt[xt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}lt=null,xt=0}}const Bt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Ml(e){try{for(He=0;He<ye.length;He++){const t=ye[He];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Qt(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;He<ye.length;He++){const t=ye[He];t&&(t.flags&=-2)}He=-1,ye.length=0,kl(),hn=null,(ye.length||Ct.length)&&Ml()}}let Ae=null,Pl=null;function gn(e){const t=Ae;return Ae=e,Pl=e&&e.type.__scopeId||null,t}function eo(e,t=Ae,n){if(!t||e._n)return e;const s=(...l)=>{s._d&&Hs(-1);const i=gn(t);let o;try{o=e(...l)}finally{gn(i),s._d&&Hs(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function ue(e,t){if(Ae===null)return e;const n=An(Ae),s=e.dirs||(e.dirs=[]);for(let l=0;l<t.length;l++){let[i,o,r,a=te]=t[l];i&&(K(i)&&(i={mounted:i,updated:i}),i.deep&&Ye(o),s.push({dir:i,instance:n,value:o,oldValue:void 0,arg:r,modifiers:a}))}return e}function pt(e,t,n,s){const l=e.dirs,i=t&&t.dirs;for(let o=0;o<l.length;o++){const r=l[o];i&&(r.oldValue=i[o].value);let a=r.dir[s];a&&(Je(),Ke(a,n,8,[e.el,r,e,t]),Qe())}}function to(e,t){if(be){let n=be.provides;const s=be.parent&&be.parent.provides;s===n&&(n=be.provides=Object.create(s)),n[e]=t}}function cn(e,t,n=!1){const s=er();if(s||Et){let l=Et?Et._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(l&&e in l)return l[e];if(arguments.length>1)return n&&K(t)?t.call(s&&s.proxy):t}}const no=Symbol.for("v-scx"),so=()=>cn(no);function jt(e,t,n){return Ol(e,t,n)}function Ol(e,t,n=te){const{immediate:s,deep:l,flush:i,once:o}=n,r=xe({},n),a=t&&s||!t&&i!=="post";let g;if(Yt){if(i==="sync"){const y=so();g=y.__watcherHandles||(y.__watcherHandles=[])}else if(!a){const y=()=>{};return y.stop=Ve,y.resume=Ve,y.pause=Ve,y}}const d=be;r.call=(y,C,D)=>Ke(y,d,C,D);let u=!1;i==="post"?r.scheduler=y=>{$e(y,d&&d.suspense)}:i!=="sync"&&(u=!0,r.scheduler=(y,C)=>{C?y():gs(y)}),r.augmentJob=y=>{t&&(y.flags|=4),u&&(y.flags|=2,d&&(y.id=d.uid,y.i=d))};const v=Ji(e,t,r);return Yt&&(g?g.push(v):a&&v()),v}function lo(e,t,n){const s=this.proxy,l=ce(e)?e.includes(".")?Rl(s,e):()=>s[e]:e.bind(s,s);let i;K(t)?i=t:(i=t.handler,n=t);const o=Xt(this),r=Ol(l,i.bind(s),n);return o(),r}function Rl(e,t){const n=t.split(".");return()=>{let s=e;for(let l=0;l<n.length&&s;l++)s=s[n[l]];return s}}const io=Symbol("_vte"),oo=e=>e.__isTeleport,ro=Symbol("_leaveCb");function ms(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ms(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Ul(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const mn=new WeakMap;function Ht(e,t,n,s,l=!1){if(N(e)){e.forEach((C,D)=>Ht(C,t&&(N(t)?t[D]:t),n,s,l));return}if(Nt(s)&&!l){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Ht(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?An(s.component):s.el,o=l?null:i,{i:r,r:a}=e,g=t&&t.r,d=r.refs===te?r.refs={}:r.refs,u=r.setupState,v=G(u),y=u===te?il:C=>J(v,C);if(g!=null&&g!==a){if(Ds(t),ce(g))d[g]=null,y(g)&&(u[g]=null);else if(me(g)){g.value=null;const C=t;C.k&&(d[C.k]=null)}}if(K(a))Qt(a,r,12,[o,d]);else{const C=ce(a),D=me(a);if(C||D){const q=()=>{if(e.f){const V=C?y(a)?u[a]:d[a]:a.value;if(l)N(V)&&is(V,i);else if(N(V))V.includes(i)||V.push(i);else if(C)d[a]=[i],y(a)&&(u[a]=d[a]);else{const k=[i];a.value=k,e.k&&(d[e.k]=k)}}else C?(d[a]=o,y(a)&&(u[a]=o)):D&&(a.value=o,e.k&&(d[e.k]=o))};if(o){const V=()=>{q(),mn.delete(e)};V.id=-1,mn.set(e,V),$e(V,n)}else Ds(e),q()}}}function Ds(e){const t=mn.get(e);t&&(t.flags|=8,mn.delete(e))}Sn().requestIdleCallback;Sn().cancelIdleCallback;const Nt=e=>!!e.type.__asyncLoader,Ll=e=>e.type.__isKeepAlive;function ao(e,t){jl(e,"a",t)}function co(e,t){jl(e,"da",t)}function jl(e,t,n=be){const s=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if($n(t,s,n),n){let l=n.parent;for(;l&&l.parent;)Ll(l.parent.vnode)&&uo(s,t,n,l),l=l.parent}}function uo(e,t,n,s){const l=$n(t,e,s,!0);vs(()=>{is(s[t],l)},n)}function $n(e,t,n=be,s=!1){if(n){const l=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Je();const r=Xt(n),a=Ke(t,n,e,o);return r(),Qe(),a});return s?l.unshift(i):l.push(i),i}}const et=e=>(t,n=be)=>{(!Yt||e==="sp")&&$n(e,(...s)=>t(...s),n)},fo=et("bm"),Hl=et("m"),po=et("bu"),ho=et("u"),go=et("bum"),vs=et("um"),mo=et("sp"),vo=et("rtg"),yo=et("rtc");function bo(e,t=be){$n("ec",e,t)}const _o=Symbol.for("v-ndc");function Ze(e,t,n,s){let l;const i=n,o=N(e);if(o||ce(e)){const r=o&&vt(e);let a=!1,g=!1;r&&(a=!Ie(e),g=Xe(e),e=Cn(e)),l=new Array(e.length);for(let d=0,u=e.length;d<u;d++)l[d]=t(a?g?Ft(Pe(e[d])):Pe(e[d]):e[d],d,void 0,i)}else if(typeof e=="number"){l=new Array(e);for(let r=0;r<e;r++)l[r]=t(r+1,r,void 0,i)}else if(ie(e))if(e[Symbol.iterator])l=Array.from(e,(r,a)=>t(r,a,void 0,i));else{const r=Object.keys(e);l=new Array(r.length);for(let a=0,g=r.length;a<g;a++){const d=r[a];l[a]=t(e[d],d,a,i)}}else l=[];return l}const zn=e=>e?oi(e)?An(e):zn(e.parent):null,Vt=xe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zn(e.parent),$root:e=>zn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Vl(e),$forceUpdate:e=>e.f||(e.f=()=>{gs(e.update)}),$nextTick:e=>e.n||(e.n=Il.bind(e.proxy)),$watch:e=>lo.bind(e)}),Un=(e,t)=>e!==te&&!e.__isScriptSetup&&J(e,t),xo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:l,props:i,accessCache:o,type:r,appContext:a}=e;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return l[t];case 4:return n[t];case 3:return i[t]}else{if(Un(s,t))return o[t]=1,s[t];if(l!==te&&J(l,t))return o[t]=2,l[t];if(J(i,t))return o[t]=3,i[t];if(n!==te&&J(n,t))return o[t]=4,n[t];Yn&&(o[t]=0)}}const g=Vt[t];let d,u;if(g)return t==="$attrs"&&ge(e.attrs,"get",""),g(e);if((d=r.__cssModules)&&(d=d[t]))return d;if(n!==te&&J(n,t))return o[t]=4,n[t];if(u=a.config.globalProperties,J(u,t))return u[t]},set({_:e},t,n){const{data:s,setupState:l,ctx:i}=e;return Un(l,t)?(l[t]=n,!0):s!==te&&J(s,t)?(s[t]=n,!0):J(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:l,props:i,type:o}},r){let a;return!!(n[r]||e!==te&&r[0]!=="$"&&J(e,r)||Un(t,r)||J(i,r)||J(s,r)||J(Vt,r)||J(l.config.globalProperties,r)||(a=o.__cssModules)&&a[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:J(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ks(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Yn=!0;function wo(e){const t=Vl(e),n=e.proxy,s=e.ctx;Yn=!1,t.beforeCreate&&Ms(t.beforeCreate,e,"bc");const{data:l,computed:i,methods:o,watch:r,provide:a,inject:g,created:d,beforeMount:u,mounted:v,beforeUpdate:y,updated:C,activated:D,deactivated:q,beforeDestroy:V,beforeUnmount:k,destroyed:$,unmounted:P,render:S,renderTracked:H,renderTriggered:R,errorCaptured:Y,serverPrefetch:oe,expose:ae,inheritAttrs:Q,components:De,directives:Oe,filters:tt}=t;if(g&&So(g,s,null),o)for(const ne in o){const Z=o[ne];K(Z)&&(s[ne]=Z.bind(n))}if(l){const ne=l.call(n,n);ie(ne)&&(e.data=ds(ne))}if(Yn=!0,i)for(const ne in i){const Z=i[ne],j=K(Z)?Z.bind(n,n):K(Z.get)?Z.get.bind(n,n):Ve,h=!K(Z)&&K(Z.set)?Z.set.bind(n):Ve,F=$t({get:j,set:h});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>F.value,set:re=>F.value=re})}if(r)for(const ne in r)Nl(r[ne],s,n,ne);if(a){const ne=K(a)?a.call(n):a;Reflect.ownKeys(ne).forEach(Z=>{to(Z,ne[Z])})}d&&Ms(d,e,"c");function de(ne,Z){N(Z)?Z.forEach(j=>ne(j.bind(n))):Z&&ne(Z.bind(n))}if(de(fo,u),de(Hl,v),de(po,y),de(ho,C),de(ao,D),de(co,q),de(bo,Y),de(yo,H),de(vo,R),de(go,k),de(vs,P),de(mo,oe),N(ae))if(ae.length){const ne=e.exposed||(e.exposed={});ae.forEach(Z=>{Object.defineProperty(ne,Z,{get:()=>n[Z],set:j=>n[Z]=j,enumerable:!0})})}else e.exposed||(e.exposed={});S&&e.render===Ve&&(e.render=S),Q!=null&&(e.inheritAttrs=Q),De&&(e.components=De),Oe&&(e.directives=Oe),oe&&Ul(e)}function So(e,t,n=Ve){N(e)&&(e=Gn(e));for(const s in e){const l=e[s];let i;ie(l)?"default"in l?i=cn(l.from||s,l.default,!0):i=cn(l.from||s):i=cn(l),me(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Ms(e,t,n){Ke(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Nl(e,t,n,s){let l=s.includes(".")?Rl(n,s):()=>n[s];if(ce(e)){const i=t[e];K(i)&&jt(l,i)}else if(K(e))jt(l,e.bind(n));else if(ie(e))if(N(e))e.forEach(i=>Nl(i,t,n,s));else{const i=K(e.handler)?e.handler.bind(n):t[e.handler];K(i)&&jt(l,i,e)}}function Vl(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:l,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,r=i.get(t);let a;return r?a=r:!l.length&&!n&&!s?a=t:(a={},l.length&&l.forEach(g=>vn(a,g,o,!0)),vn(a,t,o)),ie(t)&&i.set(t,a),a}function vn(e,t,n,s=!1){const{mixins:l,extends:i}=t;i&&vn(e,i,n,!0),l&&l.forEach(o=>vn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const r=Co[o]||n&&n[o];e[o]=r?r(e[o],t[o]):t[o]}return e}const Co={data:Ps,props:Os,emits:Os,methods:Ot,computed:Ot,beforeCreate:ve,created:ve,beforeMount:ve,mounted:ve,beforeUpdate:ve,updated:ve,beforeDestroy:ve,beforeUnmount:ve,destroyed:ve,unmounted:ve,activated:ve,deactivated:ve,errorCaptured:ve,serverPrefetch:ve,components:Ot,directives:Ot,watch:$o,provide:Ps,inject:Eo};function Ps(e,t){return t?e?function(){return xe(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Eo(e,t){return Ot(Gn(e),Gn(t))}function Gn(e){if(N(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function ve(e,t){return e?[...new Set([].concat(e,t))]:t}function Ot(e,t){return e?xe(Object.create(null),e,t):t}function Os(e,t){return e?N(e)&&N(t)?[...new Set([...e,...t])]:xe(Object.create(null),ks(e),ks(t??{})):t}function $o(e,t){if(!e)return t;if(!t)return e;const n=xe(Object.create(null),e);for(const s in t)n[s]=ve(e[s],t[s]);return n}function Wl(){return{app:null,config:{isNativeTag:il,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 To=0;function Fo(e,t){return function(s,l=null){K(s)||(s=xe({},s)),l!=null&&!ie(l)&&(l=null);const i=Wl(),o=new WeakSet,r=[];let a=!1;const g=i.app={_uid:To++,_component:s,_props:l,_container:null,_context:i,_instance:null,version:or,get config(){return i.config},set config(d){},use(d,...u){return o.has(d)||(d&&K(d.install)?(o.add(d),d.install(g,...u)):K(d)&&(o.add(d),d(g,...u))),g},mixin(d){return i.mixins.includes(d)||i.mixins.push(d),g},component(d,u){return u?(i.components[d]=u,g):i.components[d]},directive(d,u){return u?(i.directives[d]=u,g):i.directives[d]},mount(d,u,v){if(!a){const y=g._ceVNode||_e(s,l);return y.appContext=i,v===!0?v="svg":v===!1&&(v=void 0),e(y,d,v),a=!0,g._container=d,d.__vue_app__=g,An(y.component)}},onUnmount(d){r.push(d)},unmount(){a&&(Ke(r,g._instance,16),e(null,g._container),delete g._container.__vue_app__)},provide(d,u){return i.provides[d]=u,g},runWithContext(d){const u=Et;Et=g;try{return d()}finally{Et=u}}};return g}}let Et=null;const Ao=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ct(t)}Modifiers`]||e[`${yt(t)}Modifiers`];function Io(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||te;let l=n;const i=t.startsWith("update:"),o=i&&Ao(s,t.slice(7));o&&(o.trim&&(l=n.map(d=>ce(d)?d.trim():d)),o.number&&(l=n.map(wn)));let r,a=s[r=kn(t)]||s[r=kn(ct(t))];!a&&i&&(a=s[r=kn(yt(t))]),a&&Ke(a,e,6,l);const g=s[r+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Ke(g,e,6,l)}}const Do=new WeakMap;function Kl(e,t,n=!1){const s=n?Do:t.emitsCache,l=s.get(e);if(l!==void 0)return l;const i=e.emits;let o={},r=!1;if(!K(e)){const a=g=>{const d=Kl(g,t,!0);d&&(r=!0,xe(o,d))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!r?(ie(e)&&s.set(e,null),null):(N(i)?i.forEach(a=>o[a]=null):xe(o,i),ie(e)&&s.set(e,o),o)}function Tn(e,t){return!e||!bn(t)?!1:(t=t.slice(2).replace(/Once$/,""),J(e,t[0].toLowerCase()+t.slice(1))||J(e,yt(t))||J(e,t))}function Rs(e){const{type:t,vnode:n,proxy:s,withProxy:l,propsOptions:[i],slots:o,attrs:r,emit:a,render:g,renderCache:d,props:u,data:v,setupState:y,ctx:C,inheritAttrs:D}=e,q=gn(e);let V,k;try{if(n.shapeFlag&4){const P=l||s,S=P;V=Ne(g.call(S,P,d,u,y,v,C)),k=r}else{const P=t;V=Ne(P.length>1?P(u,{attrs:r,slots:o,emit:a}):P(u,null)),k=t.props?r:ko(r)}}catch(P){Wt.length=0,En(P,e,1),V=_e(ft)}let $=V;if(k&&D!==!1){const P=Object.keys(k),{shapeFlag:S}=$;P.length&&S&7&&(i&&P.some(ls)&&(k=Mo(k,i)),$=At($,k,!1,!0))}return n.dirs&&($=At($,null,!1,!0),$.dirs=$.dirs?$.dirs.concat(n.dirs):n.dirs),n.transition&&ms($,n.transition),V=$,gn(q),V}const ko=e=>{let t;for(const n in e)(n==="class"||n==="style"||bn(n))&&((t||(t={}))[n]=e[n]);return t},Mo=(e,t)=>{const n={};for(const s in e)(!ls(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Po(e,t,n){const{props:s,children:l,component:i}=e,{props:o,children:r,patchFlag:a}=t,g=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return s?Us(s,o,g):!!o;if(a&8){const d=t.dynamicProps;for(let u=0;u<d.length;u++){const v=d[u];if(o[v]!==s[v]&&!Tn(g,v))return!0}}}else return(l||r)&&(!r||!r.$stable)?!0:s===o?!1:s?o?Us(s,o,g):!0:!!o;return!1}function Us(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let l=0;l<s.length;l++){const i=s[l];if(t[i]!==e[i]&&!Tn(n,i))return!0}return!1}function Oo({vnode:e,parent:t},n){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.el=e.el),s===e)(e=t.vnode).el=n,t=t.parent;else break}}const ql={},Bl=()=>Object.create(ql),zl=e=>Object.getPrototypeOf(e)===ql;function Ro(e,t,n,s=!1){const l={},i=Bl();e.propsDefaults=Object.create(null),Yl(e,t,l,i);for(const o in e.propsOptions[0])o in l||(l[o]=void 0);n?e.props=s?l:Ni(l):e.type.props?e.props=l:e.props=i,e.attrs=i}function Uo(e,t,n,s){const{props:l,attrs:i,vnode:{patchFlag:o}}=e,r=G(l),[a]=e.propsOptions;let g=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let u=0;u<d.length;u++){let v=d[u];if(Tn(e.emitsOptions,v))continue;const y=t[v];if(a)if(J(i,v))y!==i[v]&&(i[v]=y,g=!0);else{const C=ct(v);l[C]=Jn(a,r,C,y,e,!1)}else y!==i[v]&&(i[v]=y,g=!0)}}}else{Yl(e,t,l,i)&&(g=!0);let d;for(const u in r)(!t||!J(t,u)&&((d=yt(u))===u||!J(t,d)))&&(a?n&&(n[u]!==void 0||n[d]!==void 0)&&(l[u]=Jn(a,r,u,void 0,e,!0)):delete l[u]);if(i!==r)for(const u in i)(!t||!J(t,u))&&(delete i[u],g=!0)}g&&ze(e.attrs,"set","")}function Yl(e,t,n,s){const[l,i]=e.propsOptions;let o=!1,r;if(t)for(let a in t){if(Rt(a))continue;const g=t[a];let d;l&&J(l,d=ct(a))?!i||!i.includes(d)?n[d]=g:(r||(r={}))[d]=g:Tn(e.emitsOptions,a)||(!(a in s)||g!==s[a])&&(s[a]=g,o=!0)}if(i){const a=G(n),g=r||te;for(let d=0;d<i.length;d++){const u=i[d];n[u]=Jn(l,a,u,g[u],e,!J(g,u))}}return o}function Jn(e,t,n,s,l,i){const o=e[n];if(o!=null){const r=J(o,"default");if(r&&s===void 0){const a=o.default;if(o.type!==Function&&!o.skipFactory&&K(a)){const{propsDefaults:g}=l;if(n in g)s=g[n];else{const d=Xt(l);s=g[n]=a.call(null,t),d()}}else s=a;l.ce&&l.ce._setProp(n,s)}o[0]&&(i&&!r?s=!1:o[1]&&(s===""||s===yt(n))&&(s=!0))}return s}const Lo=new WeakMap;function Gl(e,t,n=!1){const s=n?Lo:t.propsCache,l=s.get(e);if(l)return l;const i=e.props,o={},r=[];let a=!1;if(!K(e)){const d=u=>{a=!0;const[v,y]=Gl(u,t,!0);xe(o,v),y&&r.push(...y)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!a)return ie(e)&&s.set(e,wt),wt;if(N(i))for(let d=0;d<i.length;d++){const u=ct(i[d]);Ls(u)&&(o[u]=te)}else if(i)for(const d in i){const u=ct(d);if(Ls(u)){const v=i[d],y=o[u]=N(v)||K(v)?{type:v}:xe({},v),C=y.type;let D=!1,q=!0;if(N(C))for(let V=0;V<C.length;++V){const k=C[V],$=K(k)&&k.name;if($==="Boolean"){D=!0;break}else $==="String"&&(q=!1)}else D=K(C)&&C.name==="Boolean";y[0]=D,y[1]=q,(D||J(y,"default"))&&r.push(u)}}const g=[o,r];return ie(e)&&s.set(e,g),g}function Ls(e){return e[0]!=="$"&&!Rt(e)}const ys=e=>e==="_"||e==="_ctx"||e==="$stable",bs=e=>N(e)?e.map(Ne):[Ne(e)],jo=(e,t,n)=>{if(t._n)return t;const s=eo((...l)=>bs(t(...l)),n);return s._c=!1,s},Jl=(e,t,n)=>{const s=e._ctx;for(const l in e){if(ys(l))continue;const i=e[l];if(K(i))t[l]=jo(l,i,s);else if(i!=null){const o=bs(i);t[l]=()=>o}}},Ql=(e,t)=>{const n=bs(t);e.slots.default=()=>n},Xl=(e,t,n)=>{for(const s in t)(n||!ys(s))&&(e[s]=t[s])},Ho=(e,t,n)=>{const s=e.slots=Bl();if(e.vnode.shapeFlag&32){const l=t._;l?(Xl(s,t,n),n&&ul(s,"_",l,!0)):Jl(t,s)}else t&&Ql(e,t)},No=(e,t,n)=>{const{vnode:s,slots:l}=e;let i=!0,o=te;if(s.shapeFlag&32){const r=t._;r?n&&r===1?i=!1:Xl(l,t,n):(i=!t.$stable,Jl(t,l)),o=t}else t&&(Ql(e,t),o={default:1});if(i)for(const r in l)!ys(r)&&o[r]==null&&delete l[r]},$e=Bo;function Vo(e){return Wo(e)}function Wo(e,t){const n=Sn();n.__VUE__=!0;const{insert:s,remove:l,patchProp:i,createElement:o,createText:r,createComment:a,setText:g,setElementText:d,parentNode:u,nextSibling:v,setScopeId:y=Ve,insertStaticContent:C}=e,D=(c,p,m,w=null,b=null,_=null,A=void 0,T=null,E=!!p.dynamicChildren)=>{if(c===p)return;c&&!Pt(c,p)&&(w=tn(c),re(c,b,_,!0),c=null),p.patchFlag===-2&&(E=!1,p.dynamicChildren=null);const{type:x,ref:L,shapeFlag:I}=p;switch(x){case Fn:q(c,p,m,w);break;case ft:V(c,p,m,w);break;case un:c==null&&k(p,m,w,A);break;case fe:De(c,p,m,w,b,_,A,T,E);break;default:I&1?S(c,p,m,w,b,_,A,T,E):I&6?Oe(c,p,m,w,b,_,A,T,E):(I&64||I&128)&&x.process(c,p,m,w,b,_,A,T,E,Dt)}L!=null&&b?Ht(L,c&&c.ref,_,p||c,!p):L==null&&c&&c.ref!=null&&Ht(c.ref,null,_,c,!0)},q=(c,p,m,w)=>{if(c==null)s(p.el=r(p.children),m,w);else{const b=p.el=c.el;p.children!==c.children&&g(b,p.children)}},V=(c,p,m,w)=>{c==null?s(p.el=a(p.children||""),m,w):p.el=c.el},k=(c,p,m,w)=>{[c.el,c.anchor]=C(c.children,p,m,w,c.el,c.anchor)},$=({el:c,anchor:p},m,w)=>{let b;for(;c&&c!==p;)b=v(c),s(c,m,w),c=b;s(p,m,w)},P=({el:c,anchor:p})=>{let m;for(;c&&c!==p;)m=v(c),l(c),c=m;l(p)},S=(c,p,m,w,b,_,A,T,E)=>{if(p.type==="svg"?A="svg":p.type==="math"&&(A="mathml"),c==null)H(p,m,w,b,_,A,T,E);else{const x=c.el&&c.el._isVueCE?c.el:null;try{x&&x._beginPatch(),oe(c,p,b,_,A,T,E)}finally{x&&x._endPatch()}}},H=(c,p,m,w,b,_,A,T)=>{let E,x;const{props:L,shapeFlag:I,transition:U,dirs:W}=c;if(E=c.el=o(c.type,_,L&&L.is,L),I&8?d(E,c.children):I&16&&Y(c.children,E,null,w,b,Ln(c,_),A,T),W&&pt(c,null,w,"created"),R(E,c,c.scopeId,A,w),L){for(const se in L)se!=="value"&&!Rt(se)&&i(E,se,null,L[se],_,w);"value"in L&&i(E,"value",null,L.value,_),(x=L.onVnodeBeforeMount)&&je(x,w,c)}W&&pt(c,null,w,"beforeMount");const B=Ko(b,U);B&&U.beforeEnter(E),s(E,p,m),((x=L&&L.onVnodeMounted)||B||W)&&$e(()=>{x&&je(x,w,c),B&&U.enter(E),W&&pt(c,null,w,"mounted")},b)},R=(c,p,m,w,b)=>{if(m&&y(c,m),w)for(let _=0;_<w.length;_++)y(c,w[_]);if(b){let _=b.subTree;if(p===_||ni(_.type)&&(_.ssContent===p||_.ssFallback===p)){const A=b.vnode;R(c,A,A.scopeId,A.slotScopeIds,b.parent)}}},Y=(c,p,m,w,b,_,A,T,E=0)=>{for(let x=E;x<c.length;x++){const L=c[x]=T?it(c[x]):Ne(c[x]);D(null,L,p,m,w,b,_,A,T)}},oe=(c,p,m,w,b,_,A)=>{const T=p.el=c.el;let{patchFlag:E,dynamicChildren:x,dirs:L}=p;E|=c.patchFlag&16;const I=c.props||te,U=p.props||te;let W;if(m&&ht(m,!1),(W=U.onVnodeBeforeUpdate)&&je(W,m,p,c),L&&pt(p,c,m,"beforeUpdate"),m&&ht(m,!0),(I.innerHTML&&U.innerHTML==null||I.textContent&&U.textContent==null)&&d(T,""),x?ae(c.dynamicChildren,x,T,m,w,Ln(p,b),_):A||Z(c,p,T,null,m,w,Ln(p,b),_,!1),E>0){if(E&16)Q(T,I,U,m,b);else if(E&2&&I.class!==U.class&&i(T,"class",null,U.class,b),E&4&&i(T,"style",I.style,U.style,b),E&8){const B=p.dynamicProps;for(let se=0;se<B.length;se++){const X=B[se],we=I[X],Se=U[X];(Se!==we||X==="value")&&i(T,X,we,Se,b,m)}}E&1&&c.children!==p.children&&d(T,p.children)}else!A&&x==null&&Q(T,I,U,m,b);((W=U.onVnodeUpdated)||L)&&$e(()=>{W&&je(W,m,p,c),L&&pt(p,c,m,"updated")},w)},ae=(c,p,m,w,b,_,A)=>{for(let T=0;T<p.length;T++){const E=c[T],x=p[T],L=E.el&&(E.type===fe||!Pt(E,x)||E.shapeFlag&198)?u(E.el):m;D(E,x,L,null,w,b,_,A,!0)}},Q=(c,p,m,w,b)=>{if(p!==m){if(p!==te)for(const _ in p)!Rt(_)&&!(_ in m)&&i(c,_,p[_],null,b,w);for(const _ in m){if(Rt(_))continue;const A=m[_],T=p[_];A!==T&&_!=="value"&&i(c,_,T,A,b,w)}"value"in m&&i(c,"value",p.value,m.value,b)}},De=(c,p,m,w,b,_,A,T,E)=>{const x=p.el=c?c.el:r(""),L=p.anchor=c?c.anchor:r("");let{patchFlag:I,dynamicChildren:U,slotScopeIds:W}=p;W&&(T=T?T.concat(W):W),c==null?(s(x,m,w),s(L,m,w),Y(p.children||[],m,L,b,_,A,T,E)):I>0&&I&64&&U&&c.dynamicChildren&&c.dynamicChildren.length===U.length?(ae(c.dynamicChildren,U,m,b,_,A,T),(p.key!=null||b&&p===b.subTree)&&Zl(c,p,!0)):Z(c,p,m,L,b,_,A,T,E)},Oe=(c,p,m,w,b,_,A,T,E)=>{p.slotScopeIds=T,c==null?p.shapeFlag&512?b.ctx.activate(p,m,w,A,E):tt(p,m,w,b,_,A,E):Zt(c,p,E)},tt=(c,p,m,w,b,_,A)=>{const T=c.component=Zo(c,w,b);if(Ll(c)&&(T.ctx.renderer=Dt),tr(T,!1,A),T.asyncDep){if(b&&b.registerDep(T,de,A),!c.el){const E=T.subTree=_e(ft);V(null,E,p,m),c.placeholder=E.el}}else de(T,c,p,m,b,_,A)},Zt=(c,p,m)=>{const w=p.component=c.component;if(Po(c,p,m))if(w.asyncDep&&!w.asyncResolved){ne(w,p,m);return}else w.next=p,w.update();else p.el=c.el,w.vnode=p},de=(c,p,m,w,b,_,A)=>{const T=()=>{if(c.isMounted){let{next:I,bu:U,u:W,parent:B,vnode:se}=c;{const Ue=ei(c);if(Ue){I&&(I.el=se.el,ne(c,I,A)),Ue.asyncDep.then(()=>{c.isUnmounted||T()});return}}let X=I,we;ht(c,!1),I?(I.el=se.el,ne(c,I,A)):I=se,U&&an(U),(we=I.props&&I.props.onVnodeBeforeUpdate)&&je(we,B,I,se),ht(c,!0);const Se=Rs(c),Re=c.subTree;c.subTree=Se,D(Re,Se,u(Re.el),tn(Re),c,b,_),I.el=Se.el,X===null&&Oo(c,Se.el),W&&$e(W,b),(we=I.props&&I.props.onVnodeUpdated)&&$e(()=>je(we,B,I,se),b)}else{let I;const{el:U,props:W}=p,{bm:B,m:se,parent:X,root:we,type:Se}=c,Re=Nt(p);ht(c,!1),B&&an(B),!Re&&(I=W&&W.onVnodeBeforeMount)&&je(I,X,p),ht(c,!0);{we.ce&&we.ce._def.shadowRoot!==!1&&we.ce._injectChildStyle(Se);const Ue=c.subTree=Rs(c);D(null,Ue,m,w,c,b,_),p.el=Ue.el}if(se&&$e(se,b),!Re&&(I=W&&W.onVnodeMounted)){const Ue=p;$e(()=>je(I,X,Ue),b)}(p.shapeFlag&256||X&&Nt(X.vnode)&&X.vnode.shapeFlag&256)&&c.a&&$e(c.a,b),c.isMounted=!0,p=m=w=null}};c.scope.on();const E=c.effect=new hl(T);c.scope.off();const x=c.update=E.run.bind(E),L=c.job=E.runIfDirty.bind(E);L.i=c,L.id=c.uid,E.scheduler=()=>gs(L),ht(c,!0),x()},ne=(c,p,m)=>{p.component=c;const w=c.vnode.props;c.vnode=p,c.next=null,Uo(c,p.props,w,m),No(c,p.children,m),Je(),Is(c),Qe()},Z=(c,p,m,w,b,_,A,T,E=!1)=>{const x=c&&c.children,L=c?c.shapeFlag:0,I=p.children,{patchFlag:U,shapeFlag:W}=p;if(U>0){if(U&128){h(x,I,m,w,b,_,A,T,E);return}else if(U&256){j(x,I,m,w,b,_,A,T,E);return}}W&8?(L&16&&nt(x,b,_),I!==x&&d(m,I)):L&16?W&16?h(x,I,m,w,b,_,A,T,E):nt(x,b,_,!0):(L&8&&d(m,""),W&16&&Y(I,m,w,b,_,A,T,E))},j=(c,p,m,w,b,_,A,T,E)=>{c=c||wt,p=p||wt;const x=c.length,L=p.length,I=Math.min(x,L);let U;for(U=0;U<I;U++){const W=p[U]=E?it(p[U]):Ne(p[U]);D(c[U],W,m,null,b,_,A,T,E)}x>L?nt(c,b,_,!0,!1,I):Y(p,m,w,b,_,A,T,E,I)},h=(c,p,m,w,b,_,A,T,E)=>{let x=0;const L=p.length;let I=c.length-1,U=L-1;for(;x<=I&&x<=U;){const W=c[x],B=p[x]=E?it(p[x]):Ne(p[x]);if(Pt(W,B))D(W,B,m,null,b,_,A,T,E);else break;x++}for(;x<=I&&x<=U;){const W=c[I],B=p[U]=E?it(p[U]):Ne(p[U]);if(Pt(W,B))D(W,B,m,null,b,_,A,T,E);else break;I--,U--}if(x>I){if(x<=U){const W=U+1,B=W<L?p[W].el:w;for(;x<=U;)D(null,p[x]=E?it(p[x]):Ne(p[x]),m,B,b,_,A,T,E),x++}}else if(x>U)for(;x<=I;)re(c[x],b,_,!0),x++;else{const W=x,B=x,se=new Map;for(x=B;x<=U;x++){const Ee=p[x]=E?it(p[x]):Ne(p[x]);Ee.key!=null&&se.set(Ee.key,x)}let X,we=0;const Se=U-B+1;let Re=!1,Ue=0;const kt=new Array(Se);for(x=0;x<Se;x++)kt[x]=0;for(x=W;x<=I;x++){const Ee=c[x];if(we>=Se){re(Ee,b,_,!0);continue}let Le;if(Ee.key!=null)Le=se.get(Ee.key);else for(X=B;X<=U;X++)if(kt[X-B]===0&&Pt(Ee,p[X])){Le=X;break}Le===void 0?re(Ee,b,_,!0):(kt[Le-B]=x+1,Le>=Ue?Ue=Le:Re=!0,D(Ee,p[Le],m,null,b,_,A,T,E),we++)}const Ss=Re?qo(kt):wt;for(X=Ss.length-1,x=Se-1;x>=0;x--){const Ee=B+x,Le=p[Ee],Cs=p[Ee+1],Es=Ee+1<L?Cs.el||ti(Cs):w;kt[x]===0?D(null,Le,m,Es,b,_,A,T,E):Re&&(X<0||x!==Ss[X]?F(Le,m,Es,2):X--)}}},F=(c,p,m,w,b=null)=>{const{el:_,type:A,transition:T,children:E,shapeFlag:x}=c;if(x&6){F(c.component.subTree,p,m,w);return}if(x&128){c.suspense.move(p,m,w);return}if(x&64){A.move(c,p,m,Dt);return}if(A===fe){s(_,p,m);for(let I=0;I<E.length;I++)F(E[I],p,m,w);s(c.anchor,p,m);return}if(A===un){$(c,p,m);return}if(w!==2&&x&1&&T)if(w===0)T.beforeEnter(_),s(_,p,m),$e(()=>T.enter(_),b);else{const{leave:I,delayLeave:U,afterLeave:W}=T,B=()=>{c.ctx.isUnmounted?l(_):s(_,p,m)},se=()=>{_._isLeaving&&_[ro](!0),I(_,()=>{B(),W&&W()})};U?U(_,B,se):se()}else s(_,p,m)},re=(c,p,m,w=!1,b=!1)=>{const{type:_,props:A,ref:T,children:E,dynamicChildren:x,shapeFlag:L,patchFlag:I,dirs:U,cacheIndex:W}=c;if(I===-2&&(b=!1),T!=null&&(Je(),Ht(T,null,m,c,!0),Qe()),W!=null&&(p.renderCache[W]=void 0),L&256){p.ctx.deactivate(c);return}const B=L&1&&U,se=!Nt(c);let X;if(se&&(X=A&&A.onVnodeBeforeUnmount)&&je(X,p,c),L&6)In(c.component,m,w);else{if(L&128){c.suspense.unmount(m,w);return}B&&pt(c,null,p,"beforeUnmount"),L&64?c.type.remove(c,p,m,Dt,w):x&&!x.hasOnce&&(_!==fe||I>0&&I&64)?nt(x,p,m,!1,!0):(_===fe&&I&384||!b&&L&16)&&nt(E,p,m),w&&Fe(c)}(se&&(X=A&&A.onVnodeUnmounted)||B)&&$e(()=>{X&&je(X,p,c),B&&pt(c,null,p,"unmounted")},m)},Fe=c=>{const{type:p,el:m,anchor:w,transition:b}=c;if(p===fe){en(m,w);return}if(p===un){P(c);return}const _=()=>{l(m),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(c.shapeFlag&1&&b&&!b.persisted){const{leave:A,delayLeave:T}=b,E=()=>A(m,_);T?T(c.el,_,E):E()}else _()},en=(c,p)=>{let m;for(;c!==p;)m=v(c),l(c),c=m;l(p)},In=(c,p,m)=>{const{bum:w,scope:b,job:_,subTree:A,um:T,m:E,a:x}=c;js(E),js(x),w&&an(w),b.stop(),_&&(_.flags|=8,re(A,c,p,m)),T&&$e(T,p),$e(()=>{c.isUnmounted=!0},p)},nt=(c,p,m,w=!1,b=!1,_=0)=>{for(let A=_;A<c.length;A++)re(c[A],p,m,w,b)},tn=c=>{if(c.shapeFlag&6)return tn(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const p=v(c.anchor||c.el),m=p&&p[io];return m?v(m):p};let Dn=!1;const ws=(c,p,m)=>{let w;c==null?p._vnode&&(re(p._vnode,null,null,!0),w=p._vnode.component):D(p._vnode||null,c,p,null,null,null,m),p._vnode=c,Dn||(Dn=!0,Is(w),kl(),Dn=!1)},Dt={p:D,um:re,m:F,r:Fe,mt:tt,mc:Y,pc:Z,pbc:ae,n:tn,o:e};return{render:ws,hydrate:void 0,createApp:Fo(ws)}}function Ln({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ht({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ko(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Zl(e,t,n=!1){const s=e.children,l=t.children;if(N(s)&&N(l))for(let i=0;i<s.length;i++){const o=s[i];let r=l[i];r.shapeFlag&1&&!r.dynamicChildren&&((r.patchFlag<=0||r.patchFlag===32)&&(r=l[i]=it(l[i]),r.el=o.el),!n&&r.patchFlag!==-2&&Zl(o,r)),r.type===Fn&&(r.patchFlag!==-1?r.el=o.el:r.__elIndex=i+(e.type===fe?1:0)),r.type===ft&&!r.el&&(r.el=o.el)}}function qo(e){const t=e.slice(),n=[0];let s,l,i,o,r;const a=e.length;for(s=0;s<a;s++){const g=e[s];if(g!==0){if(l=n[n.length-1],e[l]<g){t[s]=l,n.push(s);continue}for(i=0,o=n.length-1;i<o;)r=i+o>>1,e[n[r]]<g?i=r+1:o=r;g<e[n[i]]&&(i>0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function ei(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ei(t)}function js(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function ti(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?ti(t.subTree):null}const ni=e=>e.__isSuspense;function Bo(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):Zi(e)}const fe=Symbol.for("v-fgt"),Fn=Symbol.for("v-txt"),ft=Symbol.for("v-cmt"),un=Symbol.for("v-stc"),Wt=[];let Te=null;function M(e=!1){Wt.push(Te=e?null:[])}function zo(){Wt.pop(),Te=Wt[Wt.length-1]||null}let zt=1;function Hs(e,t=!1){zt+=e,e<0&&Te&&t&&(Te.hasOnce=!0)}function si(e){return e.dynamicChildren=zt>0?Te||wt:null,zo(),zt>0&&Te&&Te.push(e),e}function O(e,t,n,s,l,i){return si(f(e,t,n,s,l,i,!0))}function _s(e,t,n,s,l){return si(_e(e,t,n,s,l,!0))}function li(e){return e?e.__v_isVNode===!0:!1}function Pt(e,t){return e.type===t.type&&e.key===t.key}const ii=({key:e})=>e??null,fn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ce(e)||me(e)||K(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function f(e,t=null,n=null,s=0,l=null,i=e===fe?0:1,o=!1,r=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ii(t),ref:t&&fn(t),scopeId:Pl,slotScopeIds:null,children:n,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:i,patchFlag:s,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:Ae};return r?(xs(a,n),i&128&&e.normalize(a)):n&&(a.shapeFlag|=ce(n)?8:16),zt>0&&!o&&Te&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&Te.push(a),a}const _e=Yo;function Yo(e,t=null,n=null,s=0,l=null,i=!1){if((!e||e===_o)&&(e=ft),li(e)){const r=At(e,t,!0);return n&&xs(r,n),zt>0&&!i&&Te&&(r.shapeFlag&6?Te[Te.indexOf(e)]=r:Te.push(r)),r.patchFlag=-2,r}if(ir(e)&&(e=e.__vccOpts),t){t=Go(t);let{class:r,style:a}=t;r&&!ce(r)&&(t.class=pe(r)),ie(a)&&(hs(a)&&!N(a)&&(a=xe({},a)),t.style=ut(a))}const o=ce(e)?1:ni(e)?128:oo(e)?64:ie(e)?4:K(e)?2:0;return f(e,t,n,s,l,o,i,!0)}function Go(e){return e?hs(e)||zl(e)?xe({},e):e:null}function At(e,t,n=!1,s=!1){const{props:l,ref:i,patchFlag:o,children:r,transition:a}=e,g=t?Jo(l||{},t):l,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&ii(g),ref:t&&t.ref?n&&i?N(i)?i.concat(fn(t)):[i,fn(t)]:fn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==fe?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&At(e.ssContent),ssFallback:e.ssFallback&&At(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&s&&ms(d,a.clone(d)),d}function Qn(e=" ",t=0){return _e(Fn,null,e,t)}function Ns(e,t){const n=_e(un,null,e);return n.staticCount=t,n}function ee(e="",t=!1){return t?(M(),_s(ft,null,e)):_e(ft,null,e)}function Ne(e){return e==null||typeof e=="boolean"?_e(ft):N(e)?_e(fe,null,e.slice()):li(e)?it(e):_e(Fn,null,String(e))}function it(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:At(e)}function xs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const l=t.default;l&&(l._c&&(l._d=!1),xs(e,l()),l._c&&(l._d=!0));return}else{n=32;const l=t._;!l&&!zl(t)?t._ctx=Ae:l===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:Ae},n=32):(t=String(t),s&64?(n=16,t=[Qn(t)]):n=8);e.children=t,e.shapeFlag|=n}function Jo(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const l in s)if(l==="class")t.class!==s.class&&(t.class=pe([t.class,s.class]));else if(l==="style")t.style=ut([t.style,s.style]);else if(bn(l)){const i=t[l],o=s[l];o&&i!==o&&!(N(i)&&i.includes(o))&&(t[l]=i?[].concat(i,o):o)}else l!==""&&(t[l]=s[l])}return t}function je(e,t,n,s=null){Ke(e,t,7,[n,s])}const Qo=Wl();let Xo=0;function Zo(e,t,n){const s=e.type,l=(t?t.appContext:e.appContext)||Qo,i={uid:Xo++,vnode:e,type:s,parent:t,appContext:l,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new xi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(l.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Gl(s,l),emitsOptions:Kl(s,l),emit:null,emitted:null,propsDefaults:te,inheritAttrs:s.inheritAttrs,ctx:te,data:te,props:te,attrs:te,slots:te,refs:te,setupState:te,setupContext:null,suspense:n,suspenseId:n?n.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 i.ctx={_:i},i.root=t?t.root:i,i.emit=Io.bind(null,i),e.ce&&e.ce(i),i}let be=null;const er=()=>be||Ae;let yn,Xn;{const e=Sn(),t=(n,s)=>{let l;return(l=e[n])||(l=e[n]=[]),l.push(s),i=>{l.length>1?l.forEach(o=>o(i)):l[0](i)}};yn=t("__VUE_INSTANCE_SETTERS__",n=>be=n),Xn=t("__VUE_SSR_SETTERS__",n=>Yt=n)}const Xt=e=>{const t=be;return yn(e),e.scope.on(),()=>{e.scope.off(),yn(t)}},Vs=()=>{be&&be.scope.off(),yn(null)};function oi(e){return e.vnode.shapeFlag&4}let Yt=!1;function tr(e,t=!1,n=!1){t&&Xn(t);const{props:s,children:l}=e.vnode,i=oi(e);Ro(e,s,i,t),Ho(e,l,n||t);const o=i?nr(e,t):void 0;return t&&Xn(!1),o}function nr(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,xo);const{setup:s}=n;if(s){Je();const l=e.setupContext=s.length>1?lr(e):null,i=Xt(e),o=Qt(s,e,0,[e.props,l]),r=ol(o);if(Qe(),i(),(r||e.sp)&&!Nt(e)&&Ul(e),r){if(o.then(Vs,Vs),t)return o.then(a=>{Ws(e,a)}).catch(a=>{En(a,e,0)});e.asyncDep=o}else Ws(e,o)}else ri(e)}function Ws(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ie(t)&&(e.setupState=Fl(t)),ri(e)}function ri(e,t,n){const s=e.type;e.render||(e.render=s.render||Ve);{const l=Xt(e);Je();try{wo(e)}finally{Qe(),l()}}}const sr={get(e,t){return ge(e,"get",""),e[t]}};function lr(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,sr),slots:e.slots,emit:e.emit,expose:t}}function An(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Fl(Vi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vt)return Vt[n](e)},has(t,n){return n in t||n in Vt}})):e.proxy}function ir(e){return K(e)&&"__vccOpts"in e}const $t=(e,t)=>Yi(e,t,Yt),or="3.5.26";/**
14
+ * @vue/runtime-dom v3.5.26
15
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
+ * @license MIT
17
+ **/let Zn;const Ks=typeof window<"u"&&window.trustedTypes;if(Ks)try{Zn=Ks.createPolicy("vue",{createHTML:e=>e})}catch{}const ai=Zn?e=>Zn.createHTML(e):e=>e,rr="http://www.w3.org/2000/svg",ar="http://www.w3.org/1998/Math/MathML",Be=typeof document<"u"?document:null,qs=Be&&Be.createElement("template"),cr={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const l=t==="svg"?Be.createElementNS(rr,e):t==="mathml"?Be.createElementNS(ar,e):n?Be.createElement(e,{is:n}):Be.createElement(e);return e==="select"&&s&&s.multiple!=null&&l.setAttribute("multiple",s.multiple),l},createText:e=>Be.createTextNode(e),createComment:e=>Be.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Be.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,l,i){const o=n?n.previousSibling:t.lastChild;if(l&&(l===i||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),!(l===i||!(l=l.nextSibling)););else{qs.innerHTML=ai(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const r=qs.content;if(s==="svg"||s==="mathml"){const a=r.firstChild;for(;a.firstChild;)r.appendChild(a.firstChild);r.removeChild(a)}t.insertBefore(r,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ur=Symbol("_vtc");function fr(e,t,n){const s=e[ur];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Bs=Symbol("_vod"),dr=Symbol("_vsh"),pr=Symbol(""),hr=/(?:^|;)\s*display\s*:/;function gr(e,t,n){const s=e.style,l=ce(n);let i=!1;if(n&&!l){if(t)if(ce(t))for(const o of t.split(";")){const r=o.slice(0,o.indexOf(":")).trim();n[r]==null&&dn(s,r,"")}else for(const o in t)n[o]==null&&dn(s,o,"");for(const o in n)o==="display"&&(i=!0),dn(s,o,n[o])}else if(l){if(t!==n){const o=s[pr];o&&(n+=";"+o),s.cssText=n,i=hr.test(n)}}else t&&e.removeAttribute("style");Bs in e&&(e[Bs]=i?s.display:"",e[dr]&&(s.display="none"))}const zs=/\s*!important$/;function dn(e,t,n){if(N(n))n.forEach(s=>dn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=mr(e,t);zs.test(n)?e.setProperty(yt(s),n.replace(zs,""),"important"):e[s]=n}}const Ys=["Webkit","Moz","ms"],jn={};function mr(e,t){const n=jn[t];if(n)return n;let s=ct(t);if(s!=="filter"&&s in e)return jn[t]=s;s=cl(s);for(let l=0;l<Ys.length;l++){const i=Ys[l]+s;if(i in e)return jn[t]=i}return t}const Gs="http://www.w3.org/1999/xlink";function Js(e,t,n,s,l,i=yi(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Gs,t.slice(6,t.length)):e.setAttributeNS(Gs,t,n):n==null||i&&!fl(n)?e.removeAttribute(t):e.setAttribute(t,i?"":We(n)?String(n):n)}function Qs(e,t,n,s,l){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?ai(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const r=i==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(r!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let o=!1;if(n===""||n==null){const r=typeof e[t];r==="boolean"?n=fl(n):n==null&&r==="string"?(n="",o=!0):r==="number"&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(l||t)}function rt(e,t,n,s){e.addEventListener(t,n,s)}function vr(e,t,n,s){e.removeEventListener(t,n,s)}const Xs=Symbol("_vei");function yr(e,t,n,s,l=null){const i=e[Xs]||(e[Xs]={}),o=i[t];if(s&&o)o.value=s;else{const[r,a]=br(t);if(s){const g=i[t]=wr(s,l);rt(e,r,g,a)}else o&&(vr(e,r,o,a),i[t]=void 0)}}const Zs=/(?:Once|Passive|Capture)$/;function br(e){let t;if(Zs.test(e)){t={};let s;for(;s=e.match(Zs);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):yt(e.slice(2)),t]}let Hn=0;const _r=Promise.resolve(),xr=()=>Hn||(_r.then(()=>Hn=0),Hn=Date.now());function wr(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ke(Sr(s,n.value),t,5,[s])};return n.value=e,n.attached=xr(),n}function Sr(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>l=>!l._stopped&&s&&s(l))}else return t}const el=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Cr=(e,t,n,s,l,i)=>{const o=l==="svg";t==="class"?fr(e,s,o):t==="style"?gr(e,n,s):bn(t)?ls(t)||yr(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Er(e,t,s,o))?(Qs(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Js(e,t,s,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ce(s))?Qs(e,ct(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Js(e,t,s,o))};function Er(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&el(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const l=e.tagName;if(l==="IMG"||l==="VIDEO"||l==="CANVAS"||l==="SOURCE")return!1}return el(t)&&ce(n)?!1:t in e}const It=e=>{const t=e.props["onUpdate:modelValue"]||!1;return N(t)?n=>an(t,n):t};function $r(e){e.target.composing=!0}function tl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ge=Symbol("_assign");function nl(e,t,n){return t&&(e=e.trim()),n&&(e=wn(e)),e}const ke={created(e,{modifiers:{lazy:t,trim:n,number:s}},l){e[Ge]=It(l);const i=s||l.props&&l.props.type==="number";rt(e,t?"change":"input",o=>{o.target.composing||e[Ge](nl(e.value,n,i))}),(n||i)&&rt(e,"change",()=>{e.value=nl(e.value,n,i)}),t||(rt(e,"compositionstart",$r),rt(e,"compositionend",tl),rt(e,"change",tl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:l,number:i}},o){if(e[Ge]=It(o),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?wn(e.value):e.value,a=t??"";r!==a&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||l&&e.value.trim()===a)||(e.value=a))}},on={created(e,{value:t},n){e.checked=Tt(t,n.props.value),e[Ge]=It(n),rt(e,"change",()=>{e[Ge](Gt(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[Ge]=It(s),t!==n&&(e.checked=Tt(t,s.props.value))}},rn={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const l=_n(t);rt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>n?wn(Gt(o)):Gt(o));e[Ge](e.multiple?l?new Set(i):i:i[0]),e._assigning=!0,Il(()=>{e._assigning=!1})}),e[Ge]=It(s)},mounted(e,{value:t}){sl(e,t)},beforeUpdate(e,t,n){e[Ge]=It(n)},updated(e,{value:t}){e._assigning||sl(e,t)}};function sl(e,t){const n=e.multiple,s=N(t);if(!(n&&!s&&!_n(t))){for(let l=0,i=e.options.length;l<i;l++){const o=e.options[l],r=Gt(o);if(n)if(s){const a=typeof r;a==="string"||a==="number"?o.selected=t.some(g=>String(g)===String(r)):o.selected=_i(t,r)>-1}else o.selected=t.has(r);else if(Tt(Gt(o),t)){e.selectedIndex!==l&&(e.selectedIndex=l);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Gt(e){return"_value"in e?e._value:e.value}const Tr=["ctrl","shift","alt","meta"],Fr={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Tr.some(n=>e[`${n}Key`]&&!t.includes(n))},ot=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(l,...i)=>{for(let o=0;o<t.length;o++){const r=Fr[t[o]];if(r&&r(l,t))return}return e(l,...i)})},Ar=xe({patchProp:Cr},cr);let ll;function Ir(){return ll||(ll=Vo(Ar))}const Dr=(...e)=>{const t=Ir().createApp(...e),{mount:n}=t;return t.mount=s=>{const l=Mr(s);if(!l)return;const i=t._component;!K(i)&&!i.render&&!i.template&&(i.template=l.innerHTML),l.nodeType===1&&(l.textContent="");const o=n(l,!1,kr(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),o},t};function kr(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Mr(e){return ce(e)?document.querySelector(e):e}const es=[{id:"vertical-1",name:"竖版模板1",type:"vertical",width:972,height:1378,background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",description:"经典竖版证书模板"},{id:"vertical-2",name:"竖版模板2",type:"vertical",width:972,height:1378,background:"linear-gradient(135deg, #f093fb 0%, #f5576c 100%)",description:"优雅竖版证书模板"},{id:"vertical-3",name:"竖版模板3",type:"vertical",width:972,height:1378,background:"linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)",description:"现代竖版证书模板"},{id:"horizontal-1",name:"横版模板1",type:"horizontal",width:1303,height:897,background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",description:"经典横版证书模板"},{id:"horizontal-2",name:"横版模板2",type:"horizontal",width:1303,height:897,background:"linear-gradient(135deg, #f093fb 0%, #f5576c 100%)",description:"优雅横版证书模板"},{id:"horizontal-3",name:"横版模板3",type:"horizontal",width:1303,height:897,background:"linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)",description:"现代横版证书模板"}],ts=e=>["image/jpeg","image/jpg","image/png"].includes(e.type)?e.size>2097152?{valid:!1,error:"图片大小不能超过 2MB"}:{valid:!0}:{valid:!1,error:"只支持 JPG、JPEG、PNG 格式的图片"},ns=e=>new Promise((t,n)=>{const s=new FileReader;s.onload=()=>t(s.result),s.onerror=n,s.readAsDataURL(e)}),Pr=e=>e==="vertical"?{width:972,height:1378}:{width:1303,height:897},bt=(e,t)=>{const n=e.__vccOpts||e;for(const[s,l]of t)n[s]=l;return n},Or={class:"design-panel"},Rr={class:"panel-tabs"},Ur={class:"panel-content"},Lr={key:0,class:"elements-section"},jr={class:"elements-grid"},Hr={key:1,class:"templates-section"},Nr={class:"upload-section"},Vr={class:"upload-hint"},Wr={class:"template-type-switch"},Kr={class:"templates-list"},qr=["onClick"],Br={class:"template-name"},zr={__name:"DesignPanel",emits:["add-element","select-template","upload-template"],setup(e,{emit:t}){const n=t,s=z("elements"),l=z("vertical"),i=z(null),o=$t(()=>es.filter(d=>d.type===l.value)),r=d=>{n("select-template",d)},a=()=>{var d;(d=i.value)==null||d.click()},g=async d=>{var y;const u=(y=d.target.files)==null?void 0:y[0];if(!u)return;const v=ts(u);if(!v.valid){alert(v.error);return}try{const C=await ns(u),D=Pr(l.value),q={id:`custom-${Date.now()}`,name:"自定义模板",type:l.value,width:D.width,height:D.height,background:C,description:"自定义上传的模板"};n("upload-template",q)}catch(C){alert("上传失败,请重试"),console.error(C)}i.value&&(i.value.value="")};return(d,u)=>(M(),O("div",Or,[f("div",Rr,[f("div",{class:pe(["tab-item",{active:s.value==="elements"}]),onClick:u[0]||(u[0]=v=>s.value="elements")}," 设计元素 ",2),f("div",{class:pe(["tab-item",{active:s.value==="templates"}]),onClick:u[1]||(u[1]=v=>s.value="templates")}," 底图模板 ",2)]),f("div",Ur,[s.value==="elements"?(M(),O("div",Lr,[f("div",jr,[f("div",{class:"element-item",onClick:u[2]||(u[2]=v=>d.$emit("add-element","text"))},[...u[8]||(u[8]=[f("div",{class:"element-icon"},"📝",-1),f("div",{class:"element-label"},"短文本",-1)])]),f("div",{class:"element-item",onClick:u[3]||(u[3]=v=>d.$emit("add-element","longtext"))},[...u[9]||(u[9]=[f("div",{class:"element-icon"},"📄",-1),f("div",{class:"element-label"},"长文本",-1)])]),f("div",{class:"element-item",onClick:u[4]||(u[4]=v=>d.$emit("add-element","image"))},[...u[10]||(u[10]=[f("div",{class:"element-icon"},"🖼️",-1),f("div",{class:"element-label"},"图片",-1)])]),f("div",{class:"element-item",onClick:u[5]||(u[5]=v=>d.$emit("add-element","qrcode"))},[...u[11]||(u[11]=[f("div",{class:"element-icon"},"🔲",-1),f("div",{class:"element-label"},"二维码",-1)])])])])):ee("",!0),s.value==="templates"?(M(),O("div",Hr,[f("div",Nr,[f("input",{ref_key:"fileInputRef",ref:i,type:"file",accept:"image/jpeg,image/jpg,image/png",onChange:g,style:{display:"none"}},null,544),f("button",{class:"upload-btn",onClick:a},[...u[12]||(u[12]=[f("span",null,"📁",-1),f("span",null,"上传模板",-1)])]),f("div",Vr,[u[13]||(u[13]=Qn(" 支持:jpg、jpeg、png 小于2M",-1)),u[14]||(u[14]=f("br",null,null,-1)),Qn(" 建议尺寸:"+he(l.value==="vertical"?"972 x 1378":"1303 x 897"),1)])]),f("div",Wr,[f("button",{class:pe(["switch-btn",{active:l.value==="vertical"}]),onClick:u[6]||(u[6]=v=>l.value="vertical")}," 竖版 ",2),f("button",{class:pe(["switch-btn",{active:l.value==="horizontal"}]),onClick:u[7]||(u[7]=v=>l.value="horizontal")}," 横版 ",2)]),f("div",Kr,[(M(!0),O(fe,null,Ze(o.value,v=>(M(),O("div",{key:v.id,class:"template-item",onClick:y=>r(v)},[f("div",{class:"template-preview",style:ut({background:v.background})},null,4),f("div",Br,he(v.name),1)],8,qr))),128))])])):ee("",!0)])]))}},Yr=bt(zr,[["__scopeId","data-v-b694f9ff"]]),dt=[{key:"name",label:"姓名",placeholder:"{{姓名}}",category:"基本信息",description:"证书持有人的姓名"},{key:"gender",label:"性别称呼",placeholder:"{{性别称呼}}",category:"基本信息",description:"先生/女士"},{key:"examName",label:"考试名称",placeholder:"{{考试名称}}",category:"考试信息",description:"参加的考试名称"},{key:"score",label:"成绩",placeholder:"{{成绩}}",category:"考试信息",description:"考试成绩"},{key:"scoreLevel",label:"成绩等级",placeholder:"{{成绩等级}}",category:"考试信息",description:"成绩等级(如:优秀、良好、合格等)"},{key:"certificateNumber",label:"证书编号",placeholder:"{{证书编号}}",category:"证书信息",description:"证书的唯一编号"},{key:"validityPeriod",label:"有效期",placeholder:"{{有效期}}",category:"证书信息",description:"证书的有效期限"},{key:"issueDate",label:"颁发日期",placeholder:"{{颁发日期}}",category:"证书信息",description:"证书颁发的日期"},{key:"organization",label:"颁发机构",placeholder:"{{颁发机构}}",category:"证书信息",description:"颁发证书的机构名称"},{key:"idNumber",label:"身份证号",placeholder:"{{身份证号}}",category:"基本信息",description:"身份证号码"},{key:"phone",label:"联系电话",placeholder:"{{联系电话}}",category:"基本信息",description:"联系电话"},{key:"email",label:"电子邮箱",placeholder:"{{电子邮箱}}",category:"基本信息",description:"电子邮箱地址"},{key:"account",label:"账号",placeholder:"{{账号}}",category:"基本信息",description:"用户账号"},{key:"examScore",label:"考试得分",placeholder:"{{考试得分}}",category:"考试信息",description:"考试得分"},{key:"issueDateMonth",label:"颁证时间(月)",placeholder:"{{颁证时间(月)}}",category:"证书信息",description:"证书颁发的月份"},{key:"issueDateDay",label:"颁证时间(日)",placeholder:"{{颁证时间(日)}}",category:"证书信息",description:"证书颁发的日期"}],Gr=dt.reduce((e,t)=>(e[t.category]||(e[t.category]=[]),e[t.category].push(t),e),{}),Jr=e=>dt.find(t=>t.key===e),Qr={name:"张三",gender:"先生",examName:"计算机应用能力考试",score:"95",scoreLevel:"优秀",certificateNumber:"CERT-2024-001234",validityPeriod:"2024-01-01 至 2027-01-01",issueDate:"2024-01-01",organization:"考试认证中心",idNumber:"110101199001011234",phone:"13800138000",email:"zhangsan@example.com",account:"user001",examScore:"95",issueDateMonth:"01",issueDateDay:"01"},Xr={class:"canvas-area"},Zr={key:0,class:"certificate-border"},ea=["onClick","onMousedown"],ta={key:0,class:"text-content"},na=["innerHTML"],sa={key:1,class:"image-element"},la=["src"],ia={key:1,class:"image-placeholder"},oa={key:2,class:"qrcode-element"},ra=["src"],aa={key:1,class:"qrcode-content"},ca={class:"qrcode-info"},ua={key:2,class:"qrcode-placeholder"},fa={key:3,class:"resize-handles"},da=["onMousedown"],pa=["onMousedown"],ha=["onMousedown"],ga=["onMousedown"],ma=["onClick"],va={__name:"CanvasArea",props:{elements:{type:Array,default:()=>[]},selectedElement:{type:Object,default:null},fieldData:{type:Object,default:()=>({})},template:{type:Object,default:null},systemFields:{type:Array,default:()=>dt}},emits:["select-element","update-element","delete-element"],setup(e,{emit:t}){const n=e,s=t,l=S=>{if(!S)return"";const H=n.fieldData||{};let R=S;return n.systemFields.forEach(Y=>{const oe=Y.placeholder,ae=H[Y.key]||oe;if(H[Y.key]){const Q=new RegExp(oe.replace(/[{}]/g,"\\$&"),"g");R=R.replace(Q,`<span class="field-value">${ae}</span>`)}else{const Q=new RegExp(oe.replace(/[{}]/g,"\\$&"),"g");R=R.replace(Q,`<span class="field-placeholder-highlight">${oe}</span>`)}}),R},i=S=>{if(!S)return null;if(S.imageSource==="field"){const H=S.imageField;return H&&n.fieldData&&n.fieldData[H]?n.fieldData[H]:null}else return S.imageUrl||null},o=S=>{if(!S)return null;if(S.qrcodeSource==="field"){const H=S.qrcodeField;return H&&n.fieldData&&n.fieldData[H]?n.fieldData[H]:null}else return S.qrcodeContent||null},r=S=>{if(!S)return!1;if(S.startsWith("data:image/"))return!0;if(S.startsWith("http://")||S.startsWith("https://")){const H=[".jpg",".jpeg",".png",".gif",".webp",".svg",".bmp"],R=S.toLowerCase();return H.some(Y=>R.includes(Y))}return!1},a=()=>{const S={};return n.template?(S.width=`${n.template.width}px`,S.minHeight=`${n.template.height}px`):(S.width="800px",S.minHeight="1000px"),n.template&&n.template.background&&(n.template.background.startsWith("data:")||n.template.background.startsWith("http")?(S.backgroundImage=`url(${n.template.background})`,S.backgroundSize="100% 100%",S.backgroundPosition="center",S.backgroundRepeat="no-repeat"):(S.background=n.template.background,S.backgroundSize="100% 100%",S.backgroundPosition="center",S.backgroundRepeat="no-repeat")),S},g=z(null),d=z(!1),u=z(!1),v=z({x:0,y:0}),y=z({x:0,y:0,width:0,height:0}),C=z(null),D=z(""),q=S=>{var R,Y,oe,ae,Q,De,Oe,tt;const H={position:"absolute",left:`${S.x}px`,top:`${S.y}px`,width:`${S.width}px`,minHeight:`${S.height}px`};return S.type==="text"||S.type==="longtext"?{...H,fontSize:`${((R=S.style)==null?void 0:R.fontSize)||18}px`,fontFamily:((Y=S.style)==null?void 0:Y.fontFamily)||"方正书宋简体",fontWeight:((oe=S.style)==null?void 0:oe.fontWeight)||"normal",fontStyle:((ae=S.style)==null?void 0:ae.fontStyle)||"normal",textDecoration:((Q=S.style)==null?void 0:Q.textDecoration)||"none",color:((De=S.style)==null?void 0:De.color)||"#000000",textAlign:((Oe=S.style)==null?void 0:Oe.textAlign)||"left",lineHeight:((tt=S.style)==null?void 0:tt.lineHeight)||1.2}:H},V=(S,H)=>{S.target.closest(".handle")||S.target.closest(".delete-btn")||(d.value=!0,C.value=H,v.value={x:S.clientX-H.x,y:S.clientY-H.y},document.addEventListener("mousemove",k),document.addEventListener("mouseup",$))},k=S=>{if(d.value&&C.value){const H=S.clientX-v.value.x,R=S.clientY-v.value.y,Y={...C.value,x:Math.max(0,H),y:Math.max(0,R)};s("update-element",Y)}else if(u.value&&C.value){const H=S.clientX-y.value.x,R=S.clientY-y.value.y;let Y=y.value.width,oe=y.value.height,ae=C.value.x,Q=C.value.y;D.value.includes("e")&&(Y=Math.max(50,y.value.width+H)),D.value.includes("w")&&(Y=Math.max(50,y.value.width-H),ae=C.value.x+(y.value.width-Y)),D.value.includes("s")&&(oe=Math.max(30,y.value.height+R)),D.value.includes("n")&&(oe=Math.max(30,y.value.height-R),Q=C.value.y+(y.value.height-oe));const De={...C.value,x:ae,y:Q,width:Y,height:oe};s("update-element",De)}},$=()=>{d.value=!1,u.value=!1,C.value=null,D.value="",document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",$)},P=(S,H,R)=>{S.stopPropagation(),u.value=!0,C.value=H,D.value=R,y.value={x:S.clientX,y:S.clientY,width:H.width,height:H.height},document.addEventListener("mousemove",k),document.addEventListener("mouseup",$)};return vs(()=>{document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",$)}),(S,H)=>(M(),O("div",Xr,[f("div",{class:"certificate-canvas",ref_key:"canvasRef",ref:g,style:ut(a())},[!n.template||!n.template.background?(M(),O("div",Zr)):ee("",!0),(M(!0),O(fe,null,Ze(e.elements,R=>{var Y,oe,ae;return M(),O("div",{key:R.id,class:pe(["editable-element",R.type,{selected:((Y=e.selectedElement)==null?void 0:Y.id)===R.id}]),style:ut(q(R)),onClick:ot(Q=>S.$emit("select-element",R),["stop"]),onMousedown:Q=>V(Q,R)},[R.type==="text"||R.type==="longtext"?(M(),O("div",ta,[f("span",{innerHTML:l(R.content)},null,8,na)])):R.type==="image"?(M(),O("div",sa,[i(R)?(M(),O("img",{key:0,src:i(R),alt:"图片",class:"element-image"},null,8,la)):(M(),O("div",ia,[...H[0]||(H[0]=[f("span",null,"🖼️ 请设置图片",-1)])]))])):R.type==="qrcode"?(M(),O("div",oa,[o(R)&&r(o(R))?(M(),O("img",{key:0,src:o(R),alt:"二维码",class:"element-image"},null,8,ra)):o(R)?(M(),O("div",aa,[H[1]||(H[1]=f("div",{class:"qrcode-placeholder-text"},"二维码",-1)),f("div",ca,he(o(R)),1)])):(M(),O("div",ua,[...H[2]||(H[2]=[f("span",null,"🔲 请设置二维码",-1)])]))])):ee("",!0),((oe=e.selectedElement)==null?void 0:oe.id)===R.id?(M(),O("div",fa,[f("div",{class:"handle handle-nw",onMousedown:ot(Q=>P(Q,R,"nw"),["stop"])},null,40,da),f("div",{class:"handle handle-ne",onMousedown:ot(Q=>P(Q,R,"ne"),["stop"])},null,40,pa),f("div",{class:"handle handle-sw",onMousedown:ot(Q=>P(Q,R,"sw"),["stop"])},null,40,ha),f("div",{class:"handle handle-se",onMousedown:ot(Q=>P(Q,R,"se"),["stop"])},null,40,ga)])):ee("",!0),((ae=e.selectedElement)==null?void 0:ae.id)===R.id?(M(),O("button",{key:4,class:"delete-btn",onClick:ot(Q=>S.$emit("delete-element",R.id),["stop"])}," × ",8,ma)):ee("",!0)],46,ea)}),128))],4)]))}},ya=bt(va,[["__scopeId","data-v-81f2131e"]]),ba={class:"field-dialog"},_a={class:"dialog-content"},xa={class:"search-box"},wa={class:"table-container"},Sa={class:"fields-table"},Ca={class:"field-name"},Ea={class:"field-action"},$a=["onClick"],Ta={key:0,class:"pagination"},Fa=["disabled"],Aa=["onClick"],Ia=["disabled"],Nn=10,Da={__name:"FieldDialog",props:{visible:{type:Boolean,default:!1},currentText:{type:String,default:""},selectionStart:{type:Number,default:0},selectionEnd:{type:Number,default:0},systemFields:{type:Array,default:()=>dt}},emits:["close","insert"],setup(e,{emit:t}){const n=e,s=t,l=z(""),i=z(1),o=$t(()=>{if(!l.value.trim())return n.systemFields;const y=l.value.toLowerCase();return n.systemFields.filter(C=>C.label.toLowerCase().includes(y)||C.key.toLowerCase().includes(y)||C.description&&C.description.toLowerCase().includes(y))}),r=$t(()=>Math.ceil(o.value.length/Nn)),a=$t(()=>{const y=(i.value-1)*Nn,C=y+Nn;return o.value.slice(y,C)}),g=()=>{i.value=1},d=y=>{y>=1&&y<=r.value&&(i.value=y)},u=y=>{s("insert",[y])},v=()=>{l.value="",i.value=1,s("close")};return(y,C)=>e.visible?(M(),O("div",{key:0,class:"field-dialog-overlay",onClick:ot(v,["self"])},[f("div",ba,[f("div",{class:"dialog-header"},[C[3]||(C[3]=f("h3",null,"选择字段",-1)),f("button",{class:"close-btn",onClick:v},"×")]),f("div",_a,[f("div",xa,[ue(f("input",{type:"text","onUpdate:modelValue":C[0]||(C[0]=D=>l.value=D),placeholder:"搜索字段...",class:"search-input",onInput:g},null,544),[[ke,l.value]])]),f("div",wa,[f("table",Sa,[C[4]||(C[4]=f("thead",null,[f("tr",null,[f("th",null,"系统字段"),f("th",null,"操作")])],-1)),f("tbody",null,[(M(!0),O(fe,null,Ze(a.value,D=>(M(),O("tr",{key:D.key,class:"field-row"},[f("td",Ca,he(D.label),1),f("td",Ea,[f("button",{class:"select-btn",onClick:q=>u(D)}," 选择 ",8,$a)])]))),128))])])]),r.value>1?(M(),O("div",Ta,[f("button",{class:"page-btn",disabled:i.value===1,onClick:C[1]||(C[1]=D=>d(i.value-1))}," < ",8,Fa),(M(!0),O(fe,null,Ze(r.value,D=>(M(),O("button",{key:D,class:pe(["page-btn",{active:D===i.value}]),onClick:q=>d(D)},he(D),11,Aa))),128)),f("button",{class:"page-btn",disabled:i.value===r.value,onClick:C[2]||(C[2]=D=>d(i.value+1))}," > ",8,Ia)])):ee("",!0)])])])):ee("",!0)}},ka=bt(Da,[["__scopeId","data-v-c4ecd92f"]]),Ma={class:"properties-panel"},Pa={class:"panel-content"},Oa={key:0,class:"content-section"},Ra={class:"form-group"},Ua={class:"content-input-wrapper"},La=["rows"],ja={key:1,class:"style-section"},Ha={class:"form-group"},Na={class:"form-group"},Va={class:"form-group"},Wa={class:"style-buttons"},Ka={class:"form-group"},qa={class:"form-group"},Ba={class:"align-buttons"},za={class:"form-group"},Ya={key:2,class:"image-section"},Ga={class:"form-group"},Ja={class:"radio-group"},Qa={class:"radio-label"},Xa={class:"radio-label"},Za={key:0,class:"form-group"},ec={class:"image-upload-wrapper"},tc={key:0,class:"image-preview"},nc=["src"],sc={key:1,class:"form-group"},lc=["value"],ic={key:0,class:"field-preview"},oc={key:3,class:"qrcode-section"},rc={class:"form-group"},ac={class:"radio-group"},cc={class:"radio-label"},uc={class:"radio-label"},fc={key:0,class:"form-group"},dc={class:"qrcode-upload-wrapper"},pc={key:0,class:"qrcode-preview"},hc=["src"],gc={key:1,class:"form-group"},mc=["value"],vc={key:0,class:"field-preview"},yc={class:"position-section"},bc={class:"form-row"},_c={class:"form-group"},xc={class:"form-group"},wc={class:"form-row"},Sc={class:"form-group"},Cc={class:"form-group"},Ec={__name:"PropertiesPanel",props:{element:{type:Object,required:!0},systemFields:{type:Array,default:()=>dt}},emits:["update-element"],setup(e,{emit:t}){const n=e,s=t,l=z(""),i=z({}),o=z("url"),r=z(""),a=z(""),g=z("url"),d=z(""),u=z(""),v=z(!1),y=z(0),C=z(0),D=z(null),q=z(null),V=z(null);jt(()=>n.element,()=>{l.value=n.element.content||"",i.value={...n.element.style},n.element.type==="image"&&(o.value=n.element.imageSource||"url",r.value=n.element.imageUrl||"",a.value=n.element.imageField||""),n.element.type==="qrcode"&&(g.value=n.element.qrcodeSource||"url",d.value=n.element.qrcodeContent||"",u.value=n.element.qrcodeField||"")},{immediate:!0,deep:!0});const $=()=>{const j={...n.element};(n.element.type==="text"||n.element.type==="longtext")&&(j.content=l.value,j.style={...i.value}),n.element.type==="image"&&(j.imageSource=o.value,j.imageUrl=r.value,j.imageField=a.value),n.element.type==="qrcode"&&(j.qrcodeSource=g.value,j.qrcodeContent=d.value,j.qrcodeField=u.value),s("update-element",j)},P=()=>{$()},S=j=>{y.value=j.target.selectionStart,C.value=j.target.selectionEnd},H=j=>{if(j.length>0){const h=j[0],F=D.value;if(F){const re=y.value,Fe=C.value,en=l.value,In=en.substring(0,re)+h.placeholder+en.substring(Fe);l.value=In,setTimeout(()=>{const nt=re+h.placeholder.length;F.setSelectionRange(nt,nt),F.focus()},0),$()}}},R=(j,h,F)=>{i.value[j]=i.value[j]===h?F:h,$()},Y=j=>{i.value.textAlign=j,$()},oe=()=>{$()},ae=()=>{var j;(j=q.value)==null||j.click()},Q=async j=>{var re;const h=(re=j.target.files)==null?void 0:re[0];if(!h)return;const F=ts(h);if(!F.valid){alert(F.error);return}try{const Fe=await ns(h);r.value=Fe,o.value="url",$()}catch(Fe){alert("上传失败,请重试"),console.error(Fe)}q.value&&(q.value.value="")},De=()=>{r.value="",$()},Oe=()=>{$()},tt=()=>{var j;(j=V.value)==null||j.click()},Zt=async j=>{var re;const h=(re=j.target.files)==null?void 0:re[0];if(!h)return;const F=ts(h);if(!F.valid){alert(F.error);return}try{const Fe=await ns(h);d.value=Fe,g.value="url",$()}catch(Fe){alert("上传失败,请重试"),console.error(Fe)}V.value&&(V.value.value="")},de=()=>{d.value="",$()},ne=j=>{const h=n.systemFields.find(re=>re.key===j);if(h)return h.label;const F=Jr(j);return F?F.label:j},Z=j=>{if(!j)return!1;if(j.startsWith("data:image/"))return!0;if(j.startsWith("http://")||j.startsWith("https://")){const h=[".jpg",".jpeg",".png",".gif",".webp",".svg",".bmp"],F=j.toLowerCase();return h.some(re=>F.includes(re))}return!1};return(j,h)=>(M(),O("div",Ma,[h[63]||(h[63]=f("div",{class:"panel-header"},[f("h3",null,"属性设置")],-1)),f("div",Pa,[e.element.type==="text"||e.element.type==="longtext"?(M(),O("div",Oa,[f("div",Ra,[h[26]||(h[26]=f("label",{class:"form-label"},"内容",-1)),f("div",Ua,[ue(f("textarea",{ref_key:"contentTextareaRef",ref:D,"onUpdate:modelValue":h[0]||(h[0]=F=>l.value=F),onInput:P,onFocus:S,rows:e.element.type==="longtext"?6:3,class:"content-textarea"},null,40,La),[[ke,l.value]]),f("button",{class:"insert-field-btn",onClick:h[1]||(h[1]=F=>v.value=!0)},[...h[25]||(h[25]=[f("span",null,"+",-1),f("span",null,"在内容中关联系统字段",-1)])])])])])):ee("",!0),e.element.type==="text"||e.element.type==="longtext"?(M(),O("div",ja,[h[38]||(h[38]=f("div",{class:"section-title"},"文本样式",-1)),f("div",Ha,[h[28]||(h[28]=f("label",{class:"form-label"},"字体大小",-1)),ue(f("select",{"onUpdate:modelValue":h[2]||(h[2]=F=>i.value.fontSize=F),onChange:$,class:"form-select"},[...h[27]||(h[27]=[f("option",{value:12},"12px",-1),f("option",{value:14},"14px",-1),f("option",{value:16},"16px",-1),f("option",{value:18},"18px",-1),f("option",{value:20},"20px",-1),f("option",{value:24},"24px",-1),f("option",{value:28},"28px",-1),f("option",{value:32},"32px",-1),f("option",{value:36},"36px",-1),f("option",{value:48},"48px",-1)])],544),[[rn,i.value.fontSize,void 0,{number:!0}]])]),f("div",Na,[h[30]||(h[30]=f("label",{class:"form-label"},"字体",-1)),ue(f("select",{"onUpdate:modelValue":h[3]||(h[3]=F=>i.value.fontFamily=F),onChange:$,class:"form-select"},[...h[29]||(h[29]=[Ns('<option value="方正书宋简体" data-v-7662a3c6>方正书宋简体</option><option value="微软雅黑" data-v-7662a3c6>微软雅黑</option><option value="宋体" data-v-7662a3c6>宋体</option><option value="黑体" data-v-7662a3c6>黑体</option><option value="Arial" data-v-7662a3c6>Arial</option>',5)])],544),[[rn,i.value.fontFamily]])]),f("div",Va,[h[34]||(h[34]=f("label",{class:"form-label"},"文字样式",-1)),f("div",Wa,[f("button",{class:pe(["style-btn",{active:i.value.fontWeight==="bold"}]),onClick:h[4]||(h[4]=F=>R("fontWeight","bold","normal"))},[...h[31]||(h[31]=[f("strong",null,"B",-1)])],2),f("button",{class:pe(["style-btn",{active:i.value.fontStyle==="italic"}]),onClick:h[5]||(h[5]=F=>R("fontStyle","italic","normal"))},[...h[32]||(h[32]=[f("em",null,"I",-1)])],2),f("button",{class:pe(["style-btn",{active:i.value.textDecoration==="underline"}]),onClick:h[6]||(h[6]=F=>R("textDecoration","underline","none"))},[...h[33]||(h[33]=[f("u",null,"U",-1)])],2)])]),f("div",Ka,[h[35]||(h[35]=f("label",{class:"form-label"},"颜色",-1)),ue(f("input",{type:"color","onUpdate:modelValue":h[7]||(h[7]=F=>i.value.color=F),onChange:$,class:"color-input"},null,544),[[ke,i.value.color]])]),f("div",qa,[h[36]||(h[36]=f("label",{class:"form-label"},"对齐方式",-1)),f("div",Ba,[f("button",{class:pe(["align-btn",{active:i.value.textAlign==="left"}]),onClick:h[8]||(h[8]=F=>Y("left"))}," 左对齐 ",2),f("button",{class:pe(["align-btn",{active:i.value.textAlign==="center"}]),onClick:h[9]||(h[9]=F=>Y("center"))}," 居中 ",2),f("button",{class:pe(["align-btn",{active:i.value.textAlign==="right"}]),onClick:h[10]||(h[10]=F=>Y("right"))}," 右对齐 ",2)])]),f("div",za,[h[37]||(h[37]=f("label",{class:"form-label"},"行高",-1)),ue(f("input",{type:"number","onUpdate:modelValue":h[11]||(h[11]=F=>i.value.lineHeight=F),onInput:$,step:"0.1",min:"0.5",max:"3",class:"form-input"},null,544),[[ke,i.value.lineHeight,void 0,{number:!0}]])])])):ee("",!0),e.element.type==="image"?(M(),O("div",Ya,[h[49]||(h[49]=f("div",{class:"section-title"},"图片设置",-1)),f("div",Ga,[h[41]||(h[41]=f("label",{class:"form-label"},"图片来源",-1)),f("div",Ja,[f("label",Qa,[ue(f("input",{type:"radio",value:"url","onUpdate:modelValue":h[12]||(h[12]=F=>o.value=F),onChange:oe},null,544),[[on,o.value]]),h[39]||(h[39]=f("span",null,"URL",-1))]),f("label",Xa,[ue(f("input",{type:"radio",value:"field","onUpdate:modelValue":h[13]||(h[13]=F=>o.value=F),onChange:oe},null,544),[[on,o.value]]),h[40]||(h[40]=f("span",null,"关联字段",-1))])])]),o.value==="url"?(M(),O("div",Za,[h[43]||(h[43]=f("label",{class:"form-label"},"图片URL",-1)),f("div",ec,[f("input",{ref_key:"imageFileInputRef",ref:q,type:"file",accept:"image/jpeg,image/jpg,image/png",onChange:Q,style:{display:"none"}},null,544),f("button",{class:"upload-btn",onClick:ae},[...h[42]||(h[42]=[f("span",null,"📁",-1),f("span",null,"本地上传",-1)])]),ue(f("input",{type:"text","onUpdate:modelValue":h[14]||(h[14]=F=>r.value=F),onInput:$,placeholder:"请输入图片URL",class:"image-url-input"},null,544),[[ke,r.value]]),r.value?(M(),O("button",{key:0,class:"remove-btn",onClick:De},"移除")):ee("",!0)]),r.value?(M(),O("div",tc,[f("img",{src:r.value,alt:"预览"},null,8,nc)])):ee("",!0)])):ee("",!0),o.value==="field"?(M(),O("div",sc,[h[48]||(h[48]=f("label",{class:"form-label"},"关联字段",-1)),ue(f("select",{"onUpdate:modelValue":h[15]||(h[15]=F=>a.value=F),onChange:$,class:"form-select"},[h[44]||(h[44]=f("option",{value:""},"请选择字段",-1)),h[45]||(h[45]=f("option",{value:"avatar"},"头像 (avatar)",-1)),h[46]||(h[46]=f("option",{value:"photo"},"照片 (photo)",-1)),h[47]||(h[47]=f("option",{value:"headImage"},"头像图片 (headImage)",-1)),(M(!0),O(fe,null,Ze(e.systemFields,F=>(M(),O("option",{key:F.key,value:F.key},he(F.label)+" ("+he(F.placeholder)+") ",9,lc))),128))],544),[[rn,a.value]]),a.value?(M(),O("div",ic," 字段: "+he(ne(a.value)),1)):ee("",!0)])):ee("",!0)])):ee("",!0),e.element.type==="qrcode"?(M(),O("div",oc,[h[57]||(h[57]=f("div",{class:"section-title"},"二维码设置",-1)),f("div",rc,[h[52]||(h[52]=f("label",{class:"form-label"},"二维码来源",-1)),f("div",ac,[f("label",cc,[ue(f("input",{type:"radio",value:"url","onUpdate:modelValue":h[16]||(h[16]=F=>g.value=F),onChange:Oe},null,544),[[on,g.value]]),h[50]||(h[50]=f("span",null,"URL/内容",-1))]),f("label",uc,[ue(f("input",{type:"radio",value:"field","onUpdate:modelValue":h[17]||(h[17]=F=>g.value=F),onChange:Oe},null,544),[[on,g.value]]),h[51]||(h[51]=f("span",null,"关联字段",-1))])])]),g.value==="url"?(M(),O("div",fc,[h[54]||(h[54]=f("label",{class:"form-label"},"二维码内容/图片URL",-1)),f("div",dc,[f("input",{ref_key:"qrcodeFileInputRef",ref:V,type:"file",accept:"image/jpeg,image/jpg,image/png",onChange:Zt,style:{display:"none"}},null,544),f("button",{class:"upload-btn",onClick:tt},[...h[53]||(h[53]=[f("span",null,"📁",-1),f("span",null,"本地上传",-1)])]),ue(f("input",{type:"text","onUpdate:modelValue":h[18]||(h[18]=F=>d.value=F),onInput:$,placeholder:"请输入二维码内容或图片URL",class:"qrcode-input"},null,544),[[ke,d.value]]),d.value?(M(),O("button",{key:0,class:"remove-btn",onClick:de},"移除")):ee("",!0)]),d.value&&Z(d.value)?(M(),O("div",pc,[f("img",{src:d.value,alt:"预览"},null,8,hc)])):ee("",!0)])):ee("",!0),g.value==="field"?(M(),O("div",gc,[h[56]||(h[56]=f("label",{class:"form-label"},"关联字段",-1)),ue(f("select",{"onUpdate:modelValue":h[19]||(h[19]=F=>u.value=F),onChange:$,class:"form-select"},[h[55]||(h[55]=Ns('<option value="" data-v-7662a3c6>请选择字段</option><option value="certificateNumber" data-v-7662a3c6>证书编号 (certificateNumber)</option><option value="idNumber" data-v-7662a3c6>身份证号 (idNumber)</option><option value="url" data-v-7662a3c6>链接地址 (url)</option><option value="examName" data-v-7662a3c6>考试名称 (examName)</option>',5)),(M(!0),O(fe,null,Ze(e.systemFields,F=>(M(),O("option",{key:F.key,value:F.key},he(F.label)+" ("+he(F.placeholder)+") ",9,mc))),128))],544),[[rn,u.value]]),u.value?(M(),O("div",vc," 字段: "+he(ne(u.value)),1)):ee("",!0)])):ee("",!0)])):ee("",!0),f("div",yc,[h[62]||(h[62]=f("div",{class:"section-title"},"位置和尺寸",-1)),f("div",bc,[f("div",_c,[h[58]||(h[58]=f("label",{class:"form-label"},"X",-1)),ue(f("input",{type:"number","onUpdate:modelValue":h[20]||(h[20]=F=>e.element.x=F),onInput:$,class:"form-input"},null,544),[[ke,e.element.x,void 0,{number:!0}]])]),f("div",xc,[h[59]||(h[59]=f("label",{class:"form-label"},"Y",-1)),ue(f("input",{type:"number","onUpdate:modelValue":h[21]||(h[21]=F=>e.element.y=F),onInput:$,class:"form-input"},null,544),[[ke,e.element.y,void 0,{number:!0}]])])]),f("div",wc,[f("div",Sc,[h[60]||(h[60]=f("label",{class:"form-label"},"宽度",-1)),ue(f("input",{type:"number","onUpdate:modelValue":h[22]||(h[22]=F=>e.element.width=F),onInput:$,class:"form-input"},null,544),[[ke,e.element.width,void 0,{number:!0}]])]),f("div",Cc,[h[61]||(h[61]=f("label",{class:"form-label"},"高度",-1)),ue(f("input",{type:"number","onUpdate:modelValue":h[23]||(h[23]=F=>e.element.height=F),onInput:$,class:"form-input"},null,544),[[ke,e.element.height,void 0,{number:!0}]])])])])]),_e(ka,{visible:v.value,"current-text":l.value,"selection-start":y.value,"selection-end":C.value,"system-fields":e.systemFields,onClose:h[24]||(h[24]=F=>v.value=!1),onInsert:H},null,8,["visible","current-text","selection-start","selection-end","system-fields"])]))}},$c=bt(Ec,[["__scopeId","data-v-7662a3c6"]]),Tc={class:"field-data-panel"},Fc={class:"panel-content"},Ac={class:"category-title"},Ic={class:"fields-list"},Dc={class:"field-label"},kc=["onUpdate:modelValue","placeholder"],Mc={class:"field-hint"},Pc={__name:"FieldDataPanel",props:{fieldData:{type:Object,default:()=>({})}},emits:["update-field-data"],setup(e,{emit:t}){const n=e,s=t,l=z({...n.fieldData}),i=$t(()=>Gr);jt(()=>n.fieldData,a=>{l.value={...a}},{deep:!0});const o=()=>{s("update-field-data",{...l.value})},r=()=>{l.value={...Qr},o()};return(a,g)=>(M(),O("div",Tc,[f("div",{class:"panel-header"},[g[0]||(g[0]=f("h3",null,"字段数据",-1)),f("button",{class:"reset-btn",onClick:r},"重置")]),f("div",Fc,[(M(!0),O(fe,null,Ze(i.value,(d,u)=>(M(),O("div",{key:u,class:"field-category"},[f("div",Ac,he(u),1),f("div",Ic,[(M(!0),O(fe,null,Ze(d,v=>(M(),O("div",{key:v.key,class:"field-item"},[f("label",Dc,he(v.label),1),ue(f("input",{"onUpdate:modelValue":y=>l.value[v.key]=y,onInput:o,type:"text",class:"field-input",placeholder:v.placeholder},null,40,kc),[[ke,l.value[v.key]]]),f("div",Mc,he(v.description),1)]))),128))])]))),128))])]))}},Oc=bt(Pc,[["__scopeId","data-v-33e53b63"]]),Rc={class:"preview-dialog"},Uc={class:"preview-content"},Lc={class:"preview-canvas-wrapper"},jc={key:0,class:"preview-text-content"},Hc=["innerHTML"],Nc={key:1,class:"preview-image-element"},Vc=["src"],Wc={key:2,class:"preview-qrcode-element"},Kc=["src"],qc={key:1,class:"preview-qrcode-text"},Bc={__name:"CertificatePreview",props:{visible:{type:Boolean,default:!1},elements:{type:Array,default:()=>[]},template:{type:Object,default:null},fieldData:{type:Object,default:()=>({})},systemFields:{type:Array,default:()=>dt}},emits:["close"],setup(e,{emit:t}){const n=e,s=t,l=()=>{s("close")},i=()=>{const u={};return n.template?(u.width=`${n.template.width}px`,u.height=`${n.template.height}px`):(u.width="800px",u.height="1000px"),n.template&&n.template.background&&(n.template.background.startsWith("data:")||n.template.background.startsWith("http")?(u.backgroundImage=`url(${n.template.background})`,u.backgroundSize="100% 100%",u.backgroundPosition="center",u.backgroundRepeat="no-repeat"):(u.background=n.template.background,u.backgroundSize="100% 100%",u.backgroundPosition="center",u.backgroundRepeat="no-repeat")),u},o=u=>{var y,C,D,q,V,k,$,P;const v={position:"absolute",left:`${u.x}px`,top:`${u.y}px`,width:`${u.width}px`,minHeight:`${u.height}px`};return u.type==="text"||u.type==="longtext"?{...v,fontSize:`${((y=u.style)==null?void 0:y.fontSize)||18}px`,fontFamily:((C=u.style)==null?void 0:C.fontFamily)||"方正书宋简体",fontWeight:((D=u.style)==null?void 0:D.fontWeight)||"normal",fontStyle:((q=u.style)==null?void 0:q.fontStyle)||"normal",textDecoration:((V=u.style)==null?void 0:V.textDecoration)||"none",color:((k=u.style)==null?void 0:k.color)||"#000000",textAlign:(($=u.style)==null?void 0:$.textAlign)||"left",lineHeight:((P=u.style)==null?void 0:P.lineHeight)||1.2}:v},r=u=>{if(!u)return"";const v=n.fieldData||{};let y=u;return n.systemFields.forEach(C=>{const D=C.placeholder,q=v[C.key]||D,V=new RegExp(D.replace(/[{}]/g,"\\$&"),"g");y=y.replace(V,q)}),y},a=u=>{if(!u)return null;if(u.imageSource==="field"){const v=u.imageField;return v&&n.fieldData&&n.fieldData[v]?n.fieldData[v]:null}else return u.imageUrl||null},g=u=>{if(!u)return null;if(u.qrcodeSource==="field"){const v=u.qrcodeField;return v&&n.fieldData&&n.fieldData[v]?n.fieldData[v]:null}else return u.qrcodeContent||null},d=u=>{if(!u)return!1;if(u.startsWith("data:image/"))return!0;if(u.startsWith("http://")||u.startsWith("https://")){const v=[".jpg",".jpeg",".png",".gif",".webp",".svg",".bmp"],y=u.toLowerCase();return v.some(C=>y.includes(C))}return!1};return(u,v)=>e.visible?(M(),O("div",{key:0,class:"preview-overlay",onClick:ot(l,["self"])},[f("div",Rc,[f("div",{class:"preview-header"},[v[0]||(v[0]=f("h3",null,"证书预览",-1)),f("button",{class:"close-btn",onClick:l},"×")]),f("div",Uc,[f("div",Lc,[f("div",{class:"preview-canvas",style:ut(i())},[(M(!0),O(fe,null,Ze(e.elements,y=>(M(),O("div",{key:y.id,class:pe(["preview-element",y.type]),style:ut(o(y))},[y.type==="text"||y.type==="longtext"?(M(),O("div",jc,[f("span",{innerHTML:r(y.content)},null,8,Hc)])):y.type==="image"?(M(),O("div",Nc,[a(y)?(M(),O("img",{key:0,src:a(y),alt:"图片",class:"preview-element-image"},null,8,Vc)):ee("",!0)])):y.type==="qrcode"?(M(),O("div",Wc,[g(y)&&d(g(y))?(M(),O("img",{key:0,src:g(y),alt:"二维码",class:"preview-element-image"},null,8,Kc)):g(y)?(M(),O("div",qc,he(g(y)),1)):ee("",!0)])):ee("",!0)],6))),128))],4)])])])])):ee("",!0)}},zc=bt(Bc,[["__scopeId","data-v-813a5922"]]),Yc={class:"certificate-editor"},Gc={class:"toolbar"},Jc={class:"certificate-editor-content"},Qc={class:"right-panel"},Xc={__name:"CertificateEditor",props:{systemFields:{type:Array,default:()=>dt}},emits:["save"],setup(e,{expose:t,emit:n}){const s=n,l=z([]),i=z(null),o=z({}),r=z(!1),a=z(es.find(k=>k.type==="vertical")||es[0]);Hl(()=>{l.value=[{id:1,type:"text",x:115,y:466,width:698,height:29,content:"{{姓名}} ({{性别称呼}})",style:{fontSize:18,fontFamily:"方正书宋简体",fontWeight:"normal",fontStyle:"normal",textDecoration:"none",color:"#000000",textAlign:"left",lineHeight:1.2}},{id:2,type:"longtext",x:115,y:520,width:698,height:80,content:'您参加了"{{考试名称}}"考试,成绩: {{成绩等级}},经审定,准予颁发考试证书!',style:{fontSize:18,fontFamily:"方正书宋简体",fontWeight:"normal",fontStyle:"normal",textDecoration:"none",color:"#000000",textAlign:"left",lineHeight:1.2}},{id:3,type:"text",x:115,y:620,width:698,height:29,content:"证书编号: {{证书编号}}",style:{fontSize:18,fontFamily:"方正书宋简体",fontWeight:"normal",fontStyle:"normal",textDecoration:"none",color:"#000000",textAlign:"left",lineHeight:1.2}},{id:4,type:"text",x:115,y:660,width:698,height:29,content:"有效期: {{有效期}}",style:{fontSize:18,fontFamily:"方正书宋简体",fontWeight:"normal",fontStyle:"normal",textDecoration:"none",color:"#000000",textAlign:"left",lineHeight:1.2}}]});const g=k=>{const $={id:Date.now(),type:k,x:100,y:100,width:k==="text"?200:k==="qrcode"?100:150,height:k==="text"?50:k==="qrcode"?100:150,content:k==="text"?"新文本":"",style:{fontSize:18,fontFamily:"方正书宋简体",fontWeight:"normal",fontStyle:"normal",textDecoration:"none",color:"#000000",textAlign:"left",lineHeight:1.2}};k==="image"&&($.imageSource="url",$.imageUrl="",$.imageField=""),k==="qrcode"&&($.qrcodeSource="url",$.qrcodeContent="",$.qrcodeField=""),l.value.push($),i.value=$},d=k=>{i.value=k},u=k=>{const $=l.value.findIndex(P=>P.id===k.id);$!==-1&&(l.value[$]={...k},i.value=l.value[$])},v=k=>{var $;l.value=l.value.filter(P=>P.id!==k),(($=i.value)==null?void 0:$.id)===k&&(i.value=null)},y=k=>{o.value={...k}},C=k=>{a.value=k},D=k=>{a.value=k},q=()=>({template:a.value,elements:l.value,fieldData:o.value,timestamp:new Date().toISOString()}),V=()=>{const k=q();console.log("=== 证书配置数据 ==="),console.log(JSON.stringify(k,null,2)),console.log("=================="),s("save",k),alert("证书配置已保存,数据已传递给父组件")};return t({getCertificateData:q}),(k,$)=>(M(),O("div",Yc,[f("div",Gc,[f("button",{class:"toolbar-btn preview-btn",onClick:$[0]||($[0]=P=>r.value=!0)},[...$[2]||($[2]=[f("span",null,"👁️",-1),f("span",null,"预览",-1)])]),f("button",{class:"toolbar-btn save-btn",onClick:V},[...$[3]||($[3]=[f("span",null,"💾",-1),f("span",null,"保存",-1)])])]),f("div",Jc,[_e(Yr,{onAddElement:g,onSelectTemplate:C,onUploadTemplate:D,class:"left-panel"}),_e(ya,{elements:l.value,"selected-element":i.value,"field-data":o.value,template:a.value,"system-fields":e.systemFields,onSelectElement:d,onUpdateElement:u,onDeleteElement:v,class:"canvas-area"},null,8,["elements","selected-element","field-data","template","system-fields"]),f("div",Qc,[i.value?(M(),_s($c,{key:0,element:i.value,"system-fields":e.systemFields,onUpdateElement:u,class:"properties-section"},null,8,["element","system-fields"])):ee("",!0),_e(Oc,{"field-data":o.value,onUpdateFieldData:y,class:"field-data-section"},null,8,["field-data"])])]),_e(zc,{visible:r.value,elements:l.value,template:a.value,"field-data":o.value,"system-fields":e.systemFields,onClose:$[1]||($[1]=P=>r.value=!1)},null,8,["visible","elements","template","field-data","system-fields"])]))}},Zc=bt(Xc,[["__scopeId","data-v-df3b0a86"]]),eu={__name:"App",setup(e,{expose:t}){const n=z([...dt]),s=z(null),l=o=>{console.log("父组件接收到保存的数据:",o)};return t({getCertificateData:()=>{if(s.value){const o=s.value.getCertificateData();return console.log("主动获取的证书数据:",o),o}return null}}),(o,r)=>(M(),_s(Zc,{ref_key:"certificateEditorRef",ref:s,"system-fields":n.value,onSave:l},null,8,["system-fields"]))}};Dr(eu).mount("#app");
@@ -0,0 +1 @@
1
+ .design-panel[data-v-b694f9ff]{display:flex;flex-direction:column;height:100%;background:#fff}.panel-tabs[data-v-b694f9ff]{display:flex;border-bottom:1px solid #e0e0e0;background:#fafafa}.tab-item[data-v-b694f9ff]{flex:1;padding:12px;text-align:center;cursor:pointer;font-size:14px;color:#666;border-bottom:2px solid transparent;transition:all .3s}.tab-item[data-v-b694f9ff]:hover{color:#1890ff;background:#f0f0f0}.tab-item.active[data-v-b694f9ff]{color:#1890ff;border-bottom-color:#1890ff;background:#fff;font-weight:500}.panel-content[data-v-b694f9ff]{flex:1;overflow-y:auto;padding:16px}.elements-section[data-v-b694f9ff]{width:100%}.elements-grid[data-v-b694f9ff]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.element-item[data-v-b694f9ff]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;transition:all .3s;background:#fff}.element-item[data-v-b694f9ff]:hover{border-color:#1890ff;background:#f0f7ff;transform:translateY(-2px);box-shadow:0 2px 8px #1890ff33}.element-icon[data-v-b694f9ff]{font-size:32px;margin-bottom:8px}.element-label[data-v-b694f9ff]{font-size:12px;color:#333}.templates-section[data-v-b694f9ff]{width:100%}.upload-section[data-v-b694f9ff]{padding:16px;border:1px dashed #d9d9d9;border-radius:4px;text-align:center;background:#fafafa;margin-bottom:16px}.template-type-switch[data-v-b694f9ff]{display:flex;gap:8px;margin-bottom:16px;padding:4px;background:#f5f5f5;border-radius:4px}.switch-btn[data-v-b694f9ff]{flex:1;padding:6px 12px;border:none;background:transparent;color:#666;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s}.switch-btn.active[data-v-b694f9ff]{background:#fff;color:#1890ff;font-weight:500;box-shadow:0 1px 2px #0000001a}.templates-list[data-v-b694f9ff]{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.template-item[data-v-b694f9ff]{border:1px solid #e0e0e0;border-radius:4px;overflow:hidden;cursor:pointer;transition:all .3s;background:#fff}.template-item[data-v-b694f9ff]:hover{border-color:#1890ff;box-shadow:0 2px 8px #1890ff33}.template-preview[data-v-b694f9ff]{width:100%;height:120px;background:#f5f5f5}.template-name[data-v-b694f9ff]{padding:8px 12px;font-size:13px;color:#333;text-align:center;background:#fff}.upload-btn[data-v-b694f9ff]{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s;margin-bottom:8px}.upload-btn[data-v-b694f9ff]:hover{border-color:#1890ff;color:#1890ff}.upload-hint[data-v-b694f9ff]{font-size:11px;color:#999;line-height:1.5}.canvas-area[data-v-81f2131e]{width:100%;height:100%;overflow:auto;background:#f0f0f0;display:flex;justify-content:center;align-items:flex-start;padding:40px 20px}.certificate-canvas[data-v-81f2131e]{position:relative;width:800px;min-height:1000px;background:#fff;box-shadow:0 4px 12px #0000001a;padding:60px 50px}.certificate-border[data-v-81f2131e]{position:absolute;top:0;left:0;right:0;bottom:0;border:12px solid #1890ff;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.1) 2px,rgba(255,255,255,.1) 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(255,255,255,.1) 2px,rgba(255,255,255,.1) 4px);background-size:20px 20px;box-shadow:inset 0 0 0 2px #ffffff4d,inset 0 0 0 4px #1890ff,inset 0 0 0 6px #ffffff4d}.editable-element[data-v-81f2131e]{position:absolute;border:1px dashed #ccc;cursor:move;min-width:50px;min-height:30px;padding:4px}.editable-element.selected[data-v-81f2131e]{border-color:#1890ff;border-width:2px;background:#1890ff0d}.editable-element.text[data-v-81f2131e],.editable-element.longtext[data-v-81f2131e]{border:1px dashed #999}.editable-element.text.selected[data-v-81f2131e],.editable-element.longtext.selected[data-v-81f2131e]{border-color:#1890ff;border-width:2px}.text-content[data-v-81f2131e]{width:100%;height:100%;word-wrap:break-word;white-space:pre-wrap;padding:2px;min-height:20px}.field-placeholder-highlight[data-v-81f2131e]{background:#e6f7ff;color:#1890ff;padding:2px 4px;border-radius:2px;font-weight:500}.field-value[data-v-81f2131e]{color:#52c41a;font-weight:500}.image-placeholder[data-v-81f2131e],.qrcode-placeholder[data-v-81f2131e]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:1px dashed #ccc;color:#999}.image-element[data-v-81f2131e],.qrcode-element[data-v-81f2131e]{width:100%;height:100%;overflow:hidden}.element-image[data-v-81f2131e]{width:100%;height:100%;object-fit:contain;display:block}.qrcode-content[data-v-81f2131e]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f5f5;border:1px dashed #ccc;padding:8px}.qrcode-placeholder-text[data-v-81f2131e]{font-size:12px;color:#999;margin-bottom:4px}.qrcode-info[data-v-81f2131e]{font-size:10px;color:#666;word-break:break-all;text-align:center}.resize-handles[data-v-81f2131e]{position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;pointer-events:none}.handle[data-v-81f2131e]{position:absolute;width:8px;height:8px;background:#1890ff;border:1px solid #fff;pointer-events:all;cursor:nwse-resize}.handle-nw[data-v-81f2131e]{top:-4px;left:-4px;cursor:nwse-resize}.handle-ne[data-v-81f2131e]{top:-4px;right:-4px;cursor:nesw-resize}.handle-sw[data-v-81f2131e]{bottom:-4px;left:-4px;cursor:nesw-resize}.handle-se[data-v-81f2131e]{bottom:-4px;right:-4px;cursor:nwse-resize}.delete-btn[data-v-81f2131e]{position:absolute;top:-12px;right:-12px;width:24px;height:24px;border-radius:50%;background:#ff4d4f;color:#fff;border:none;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003}.delete-btn[data-v-81f2131e]:hover{background:#ff7875}.field-dialog-overlay[data-v-c4ecd92f]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.field-dialog[data-v-c4ecd92f]{background:#fff;border-radius:8px;width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.dialog-header[data-v-c4ecd92f]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0}.dialog-header h3[data-v-c4ecd92f]{font-size:18px;font-weight:500;color:#333;margin:0}.close-btn[data-v-c4ecd92f]{width:32px;height:32px;border:none;background:transparent;font-size:24px;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .3s}.close-btn[data-v-c4ecd92f]:hover{background:#f5f5f5;color:#333}.dialog-content[data-v-c4ecd92f]{flex:1;display:flex;flex-direction:column;padding:20px;overflow:hidden}.search-box[data-v-c4ecd92f]{margin-bottom:16px}.search-input[data-v-c4ecd92f]{width:100%;padding:8px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px}.search-input[data-v-c4ecd92f]:focus{outline:none;border-color:#1890ff}.table-container[data-v-c4ecd92f]{flex:1;overflow-y:auto;border:1px solid #e0e0e0;border-radius:4px}.fields-table[data-v-c4ecd92f]{width:100%;border-collapse:collapse;background:#fff}.fields-table thead[data-v-c4ecd92f]{background:#fafafa;position:sticky;top:0;z-index:10}.fields-table th[data-v-c4ecd92f]{padding:12px 16px;text-align:left;font-size:14px;font-weight:500;color:#333;border-bottom:1px solid #e0e0e0}.fields-table th[data-v-c4ecd92f]:first-child{width:70%}.fields-table th[data-v-c4ecd92f]:last-child{width:30%;text-align:center}.fields-table tbody tr[data-v-c4ecd92f]{border-bottom:1px solid #f0f0f0;transition:background .2s}.fields-table tbody tr[data-v-c4ecd92f]:hover{background:#fafafa}.fields-table tbody tr[data-v-c4ecd92f]:last-child{border-bottom:none}.field-row[data-v-c4ecd92f]{cursor:pointer}.field-name[data-v-c4ecd92f]{padding:12px 16px;font-size:14px;color:#333}.field-action[data-v-c4ecd92f]{padding:12px 16px;text-align:center}.select-btn[data-v-c4ecd92f]{padding:4px 16px;border:1px solid #1890ff;background:#fff;color:#1890ff;border-radius:4px;font-size:14px;cursor:pointer;transition:all .3s}.select-btn[data-v-c4ecd92f]:hover{background:#1890ff;color:#fff}.pagination[data-v-c4ecd92f]{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.page-btn[data-v-c4ecd92f]{min-width:32px;height:32px;padding:0 8px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;font-size:14px;cursor:pointer;transition:all .3s}.page-btn[data-v-c4ecd92f]:hover:not(:disabled){border-color:#1890ff;color:#1890ff}.page-btn.active[data-v-c4ecd92f]{background:#1890ff;border-color:#1890ff;color:#fff}.page-btn[data-v-c4ecd92f]:disabled{opacity:.5;cursor:not-allowed}.properties-panel[data-v-7662a3c6]{display:flex;flex-direction:column;height:100%;background:#fff}.panel-header[data-v-7662a3c6]{padding:12px 16px;border-bottom:1px solid #e0e0e0}.panel-header h3[data-v-7662a3c6]{font-size:14px;font-weight:500;color:#333;margin:0}.panel-content[data-v-7662a3c6]{flex:1;overflow-y:auto;padding:16px}.section-title[data-v-7662a3c6]{font-size:13px;font-weight:500;color:#666;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.form-group[data-v-7662a3c6]{margin-bottom:16px}.form-label[data-v-7662a3c6]{display:block;font-size:12px;color:#666;margin-bottom:6px}.form-input[data-v-7662a3c6],.form-select[data-v-7662a3c6]{width:100%;padding:6px 10px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px}.form-input[data-v-7662a3c6]:focus,.form-select[data-v-7662a3c6]:focus{outline:none;border-color:#1890ff}.content-input-wrapper[data-v-7662a3c6]{display:flex;flex-direction:column;gap:8px}.content-textarea[data-v-7662a3c6]{width:100%;padding:8px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px;resize:vertical}.content-textarea[data-v-7662a3c6]:focus{outline:none;border-color:#1890ff}.insert-field-btn[data-v-7662a3c6]{display:flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid #d9d9d9;background:#fff;color:#666;border-radius:4px;font-size:12px;cursor:pointer;transition:all .3s}.insert-field-btn[data-v-7662a3c6]:hover{border-color:#1890ff;color:#1890ff}.style-buttons[data-v-7662a3c6]{display:flex;gap:8px}.style-btn[data-v-7662a3c6]{width:32px;height:32px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s}.style-btn[data-v-7662a3c6]:hover{border-color:#1890ff}.style-btn.active[data-v-7662a3c6]{background:#1890ff;border-color:#1890ff;color:#fff}.color-input[data-v-7662a3c6]{width:100%;height:32px;border:1px solid #d9d9d9;border-radius:4px;cursor:pointer}.align-buttons[data-v-7662a3c6]{display:flex;gap:8px}.align-btn[data-v-7662a3c6]{flex:1;padding:6px 12px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;font-size:12px;cursor:pointer;transition:all .3s}.align-btn[data-v-7662a3c6]:hover{border-color:#1890ff}.align-btn.active[data-v-7662a3c6]{background:#1890ff;border-color:#1890ff;color:#fff}.radio-group[data-v-7662a3c6]{display:flex;gap:16px}.radio-label[data-v-7662a3c6]{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.image-upload-wrapper[data-v-7662a3c6],.qrcode-upload-wrapper[data-v-7662a3c6]{display:flex;flex-direction:column;gap:8px}.upload-btn[data-v-7662a3c6]{width:100%;padding:10px 16px;border:2px solid #1890ff;background:#1890ff;color:#fff;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:6px}.upload-btn[data-v-7662a3c6]:hover{background:#40a9ff;border-color:#40a9ff;box-shadow:0 2px 8px #1890ff4d}.upload-btn[data-v-7662a3c6]:active{background:#096dd9;border-color:#096dd9}.image-url-input[data-v-7662a3c6],.qrcode-input[data-v-7662a3c6]{width:100%;padding:6px 10px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px}.image-url-input[data-v-7662a3c6]:focus,.qrcode-input[data-v-7662a3c6]:focus{outline:none;border-color:#1890ff}.remove-btn[data-v-7662a3c6]{padding:4px 12px;border:1px solid #ff4d4f;background:#fff;color:#ff4d4f;border-radius:4px;font-size:12px;cursor:pointer;transition:all .3s;align-self:flex-start}.remove-btn[data-v-7662a3c6]:hover{background:#ff4d4f;color:#fff}.image-preview[data-v-7662a3c6],.qrcode-preview[data-v-7662a3c6]{margin-top:8px;padding:8px;border:1px solid #e0e0e0;border-radius:4px;background:#fafafa}.image-preview img[data-v-7662a3c6],.qrcode-preview img[data-v-7662a3c6]{max-width:100%;max-height:200px;display:block}.field-preview[data-v-7662a3c6]{margin-top:8px;padding:6px 10px;background:#f0f7ff;border:1px solid #d6e4ff;border-radius:4px;font-size:12px;color:#1890ff}.form-row[data-v-7662a3c6]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-data-panel[data-v-33e53b63]{display:flex;flex-direction:column;height:100%;background:#fff;border-top:1px solid #e0e0e0}.panel-header[data-v-33e53b63]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e0e0e0}.panel-header h3[data-v-33e53b63]{font-size:14px;font-weight:500;color:#333;margin:0}.reset-btn[data-v-33e53b63]{padding:4px 12px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;font-size:12px;color:#666;cursor:pointer}.reset-btn[data-v-33e53b63]:hover{border-color:#1890ff;color:#1890ff}.panel-content[data-v-33e53b63]{flex:1;overflow-y:auto;padding:16px}.field-category[data-v-33e53b63]{margin-bottom:24px}.category-title[data-v-33e53b63]{font-size:13px;font-weight:500;color:#666;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.fields-list[data-v-33e53b63]{display:flex;flex-direction:column;gap:16px}.field-item[data-v-33e53b63]{display:flex;flex-direction:column;gap:6px}.field-label[data-v-33e53b63]{font-size:13px;color:#333;font-weight:500}.field-input[data-v-33e53b63]{padding:6px 10px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px}.field-input[data-v-33e53b63]:focus{outline:none;border-color:#1890ff}.field-hint[data-v-33e53b63]{font-size:11px;color:#999}.preview-overlay[data-v-813a5922]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000}.preview-dialog[data-v-813a5922]{background:#fff;border-radius:8px;width:90%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d}.preview-header[data-v-813a5922]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0}.preview-header h3[data-v-813a5922]{font-size:18px;font-weight:500;color:#333;margin:0}.close-btn[data-v-813a5922]{width:32px;height:32px;border:none;background:transparent;font-size:24px;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .3s}.close-btn[data-v-813a5922]:hover{background:#f5f5f5;color:#333}.preview-content[data-v-813a5922]{flex:1;overflow:auto;padding:40px;display:flex;justify-content:center;align-items:flex-start;background:#f5f5f5}.preview-canvas-wrapper[data-v-813a5922]{display:flex;justify-content:center;align-items:flex-start}.preview-canvas[data-v-813a5922]{background:#fff;box-shadow:0 4px 12px #00000026;position:relative;padding:60px 50px}.preview-element[data-v-813a5922]{position:absolute}.preview-text-content[data-v-813a5922]{width:100%;height:100%;word-wrap:break-word;white-space:pre-wrap}.preview-image-element[data-v-813a5922],.preview-qrcode-element[data-v-813a5922]{width:100%;height:100%;overflow:hidden}.preview-element-image[data-v-813a5922]{width:100%;height:100%;object-fit:contain;display:block}.preview-qrcode-text[data-v-813a5922]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:1px solid #e0e0e0;font-size:12px;color:#666;word-break:break-all;padding:8px}.certificate-editor[data-v-df3b0a86]{display:flex;flex-direction:column;width:100%;height:100vh;background:#f5f5f5}.toolbar[data-v-df3b0a86]{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000000d;flex-shrink:0}.toolbar-btn[data-v-df3b0a86]{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #d9d9d9;background:#fff;color:#333;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s}.toolbar-btn[data-v-df3b0a86]:hover{border-color:#1890ff;color:#1890ff}.toolbar-btn.preview-btn[data-v-df3b0a86]:hover{background:#e6f7ff;border-color:#1890ff}.toolbar-btn.save-btn[data-v-df3b0a86]:hover{background:#f6ffed;border-color:#52c41a;color:#52c41a}.certificate-editor-content[data-v-df3b0a86]{display:flex;flex:1;min-height:0;overflow:hidden}.left-panel[data-v-df3b0a86]{width:280px;background:#fff;border-right:1px solid #e0e0e0;overflow-y:auto}.canvas-area[data-v-df3b0a86]{flex:1;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:20px}.right-panel[data-v-df3b0a86]{width:350px;background:#fff;border-left:1px solid #e0e0e0;display:flex;flex-direction:column;overflow:hidden}.properties-section[data-v-df3b0a86]{flex:1;overflow-y:auto;border-bottom:1px solid #e0e0e0}.field-data-section[data-v-df3b0a86]{height:300px;overflow-y:auto}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}#app{width:100vw;height:100vh}
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>证书编辑器</title>
7
+ <script type="module" crossorigin src="/assets/index-BeHLPd8F.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-Cyfa9hPm.css">
9
+ </head>
10
+ <body>
11
+ <div id="app"></div>
12
+ </body>
13
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "z-certificate-editor",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "一个功能强大的基于 Vue 3 的可视化证书编辑器,支持拖拽编辑、系统字段关联、模板管理、图片/二维码处理等功能",
5
5
  "type": "module",
6
6
  "main": "./dist/z-certificate-editor.umd.js",